From 9df24d048043b9b827789b4fa49fa8389c02d98c Mon Sep 17 00:00:00 2001 From: Jules Parker <19994093+jules-p@users.noreply.github.com> Date: Thu, 6 Jan 2022 10:48:01 +0100 Subject: [PATCH 01/68] Clarifies triggers for repo scanning --- ...nd-dependabot-alerts-on-your-enterprise-account.md | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/content/admin/configuration/managing-connections-between-your-enterprise-accounts/enabling-the-dependency-graph-and-dependabot-alerts-on-your-enterprise-account.md b/content/admin/configuration/managing-connections-between-your-enterprise-accounts/enabling-the-dependency-graph-and-dependabot-alerts-on-your-enterprise-account.md index 27ad1a6dcc..bae87b327b 100644 --- a/content/admin/configuration/managing-connections-between-your-enterprise-accounts/enabling-the-dependency-graph-and-dependabot-alerts-on-your-enterprise-account.md +++ b/content/admin/configuration/managing-connections-between-your-enterprise-accounts/enabling-the-dependency-graph-and-dependabot-alerts-on-your-enterprise-account.md @@ -33,12 +33,17 @@ For more information about these features, see "[About the dependency graph](/gi ### About synchronization of data from the {% data variables.product.prodname_advisory_database %} -{% data reusables.repositories.tracks-vulnerabilities %} +{% data reusables.repositories.tracks-vulnerabilities %} You can connect {% data variables.product.product_location %} to {% data variables.product.prodname_dotcom_the_website %} with {% data variables.product.prodname_github_connect %}. Once connected, vulnerability data is synced from the {% data variables.product.prodname_advisory_database %} to your instance once every hour. You can also choose to manually sync vulnerability data at any time. No code or information about code from {% data variables.product.product_location %} is uploaded to {% data variables.product.prodname_dotcom_the_website %}. Only {% data variables.product.company_short %}-reviewed advisories are synchronized. {% data reusables.security-advisory.link-browsing-advisory-db %} +### About repository scanning with synchronized data from the {% data variables.product.prodname_advisory_database %} + +For repositories with {% data variables.product.prodname_dependabot_alerts %} enabled, scanning will be triggered on any push to the default branch that contains a manifest file or lock file. Additionally, when a new vulnerability record is added to the instance, all existing repositories in that instance will be scanned and alerts will be issued for any repository that is vulnerable. For more information, see "[Detection of vulnerable dependencies](/code-security/supply-chain-security/managing-vulnerabilities-in-your-projects-dependencies/about-alerts-for-vulnerable-dependencies#detection-of-vulnerable-dependencies)." + + ### About generation of {% data variables.product.prodname_dependabot_alerts %} If you enable vulnerability detection, when {% data variables.product.product_location %} receives information about a vulnerability, it identifies repositories in your instance that use the affected version of the dependency and generates {% data variables.product.prodname_dependabot_alerts %}. You can choose whether or not to notify users automatically about new {% data variables.product.prodname_dependabot_alerts %}. @@ -54,7 +59,7 @@ For {% data variables.product.product_location %} to detect vulnerable dependenc {% ifversion ghes %} {% ifversion ghes > 3.1 %} -You can enable the dependency graph via the {% data variables.enterprise.management_console %} or the administrative shell. We recommend you follow the {% data variables.enterprise.management_console %} route unless {% data variables.product.product_location %} uses clustering. +You can enable the dependency graph via the {% data variables.enterprise.management_console %} or the administrative shell. We recommend you follow the {% data variables.enterprise.management_console %} route unless {% data variables.product.product_location %} uses clustering. ### Enabling the dependency graph via the {% data variables.enterprise.management_console %} {% data reusables.enterprise_site_admin_settings.sign-in %} @@ -104,7 +109,7 @@ Before enabling {% data variables.product.prodname_dependabot_alerts %} for your ![Drop-down menu to enable scanning repositories for vulnerabilities](/assets/images/enterprise/site-admin-settings/enable-vulnerability-scanning-in-repositories.png) {% tip %} - + **Tip**: We recommend configuring {% data variables.product.prodname_dependabot_alerts %} without notifications for the first few days to avoid an overload of emails. After a few days, you can enable notifications to receive {% data variables.product.prodname_dependabot_alerts %} as usual. {% endtip %} From 1f60a5625ef5ba674f1e4d0297bb8794d8897561 Mon Sep 17 00:00:00 2001 From: Jules Parker <19994093+jules-p@users.noreply.github.com> Date: Thu, 6 Jan 2022 12:32:46 +0100 Subject: [PATCH 02/68] rewording of sub-heading --- ...cy-graph-and-dependabot-alerts-on-your-enterprise-account.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/content/admin/configuration/managing-connections-between-your-enterprise-accounts/enabling-the-dependency-graph-and-dependabot-alerts-on-your-enterprise-account.md b/content/admin/configuration/managing-connections-between-your-enterprise-accounts/enabling-the-dependency-graph-and-dependabot-alerts-on-your-enterprise-account.md index bae87b327b..4984c7860c 100644 --- a/content/admin/configuration/managing-connections-between-your-enterprise-accounts/enabling-the-dependency-graph-and-dependabot-alerts-on-your-enterprise-account.md +++ b/content/admin/configuration/managing-connections-between-your-enterprise-accounts/enabling-the-dependency-graph-and-dependabot-alerts-on-your-enterprise-account.md @@ -39,7 +39,7 @@ You can connect {% data variables.product.product_location %} to {% data variabl Only {% data variables.product.company_short %}-reviewed advisories are synchronized. {% data reusables.security-advisory.link-browsing-advisory-db %} -### About repository scanning with synchronized data from the {% data variables.product.prodname_advisory_database %} +### About scanning of repositories with synchronized data from the {% data variables.product.prodname_advisory_database %} For repositories with {% data variables.product.prodname_dependabot_alerts %} enabled, scanning will be triggered on any push to the default branch that contains a manifest file or lock file. Additionally, when a new vulnerability record is added to the instance, all existing repositories in that instance will be scanned and alerts will be issued for any repository that is vulnerable. For more information, see "[Detection of vulnerable dependencies](/code-security/supply-chain-security/managing-vulnerabilities-in-your-projects-dependencies/about-alerts-for-vulnerable-dependencies#detection-of-vulnerable-dependencies)." From 7b3a1d084fb8178566549e99f8deedaae478edae Mon Sep 17 00:00:00 2001 From: Jules Parker <19994093+jules-p@users.noreply.github.com> Date: Thu, 6 Jan 2022 13:03:39 +0100 Subject: [PATCH 03/68] removes future tense --- ...cy-graph-and-dependabot-alerts-on-your-enterprise-account.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/content/admin/configuration/managing-connections-between-your-enterprise-accounts/enabling-the-dependency-graph-and-dependabot-alerts-on-your-enterprise-account.md b/content/admin/configuration/managing-connections-between-your-enterprise-accounts/enabling-the-dependency-graph-and-dependabot-alerts-on-your-enterprise-account.md index 4984c7860c..c8411ebb15 100644 --- a/content/admin/configuration/managing-connections-between-your-enterprise-accounts/enabling-the-dependency-graph-and-dependabot-alerts-on-your-enterprise-account.md +++ b/content/admin/configuration/managing-connections-between-your-enterprise-accounts/enabling-the-dependency-graph-and-dependabot-alerts-on-your-enterprise-account.md @@ -41,7 +41,7 @@ Only {% data variables.product.company_short %}-reviewed advisories are synchron ### About scanning of repositories with synchronized data from the {% data variables.product.prodname_advisory_database %} -For repositories with {% data variables.product.prodname_dependabot_alerts %} enabled, scanning will be triggered on any push to the default branch that contains a manifest file or lock file. Additionally, when a new vulnerability record is added to the instance, all existing repositories in that instance will be scanned and alerts will be issued for any repository that is vulnerable. For more information, see "[Detection of vulnerable dependencies](/code-security/supply-chain-security/managing-vulnerabilities-in-your-projects-dependencies/about-alerts-for-vulnerable-dependencies#detection-of-vulnerable-dependencies)." +For repositories with {% data variables.product.prodname_dependabot_alerts %} enabled, scanning is triggered on any push to the default branch that contains a manifest file or lock file. Additionally, when a new vulnerability record is added to the instance, all existing repositories in that instance are scanned and alerts are issued for any repository that is vulnerable. For more information, see "[Detection of vulnerable dependencies](/code-security/supply-chain-security/managing-vulnerabilities-in-your-projects-dependencies/about-alerts-for-vulnerable-dependencies#detection-of-vulnerable-dependencies)." ### About generation of {% data variables.product.prodname_dependabot_alerts %} From 4225fdc066752eaee3ea696c102a787705d74789 Mon Sep 17 00:00:00 2001 From: Markus Olsson Date: Fri, 7 Jan 2022 15:23:35 +0100 Subject: [PATCH 04/68] Display the workflow oauth scope for GHES 3.0 and above, GHAE, and GHEC --- .../apps/building-oauth-apps/scopes-for-oauth-apps.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/content/developers/apps/building-oauth-apps/scopes-for-oauth-apps.md b/content/developers/apps/building-oauth-apps/scopes-for-oauth-apps.md index 8471eadaa4..28164f8035 100644 --- a/content/developers/apps/building-oauth-apps/scopes-for-oauth-apps.md +++ b/content/developers/apps/building-oauth-apps/scopes-for-oauth-apps.md @@ -74,7 +74,7 @@ Name | Description **`admin:gpg_key`** | Fully manage GPG keys.  `write:gpg_key`| Create, list, and view details for GPG keys.  `read:gpg_key`| List and view details for GPG keys.{% ifversion fpt or ghec %} -**`codespace`** | Grants the ability to create and manage codespaces. Codespaces can expose a GITHUB_TOKEN which may have a different set of scopes. For more information, see "[Security in Codespaces](/codespaces/codespaces-reference/security-in-codespaces#authentication)." +**`codespace`** | Grants the ability to create and manage codespaces. Codespaces can expose a GITHUB_TOKEN which may have a different set of scopes. For more information, see "[Security in Codespaces](/codespaces/codespaces-reference/security-in-codespaces#authentication)."{% endif %}{% ifversion fpt or ghec or ghae or ghes > 3.0 %} **`workflow`** | Grants the ability to add and update {% data variables.product.prodname_actions %} workflow files. Workflow files can be committed without this scope if the same file (with both the same path and contents) exists on another branch in the same repository. Workflow files can expose `GITHUB_TOKEN` which may have a different set of scopes. For more information, see "[Authentication in a workflow](/actions/reference/authentication-in-a-workflow#permissions-for-the-github_token)."{% endif %} {% note %} From 334916c82944ced7d52fa5fe3d6b6d9102f7ca15 Mon Sep 17 00:00:00 2001 From: Markus Olsson Date: Fri, 7 Jan 2022 17:20:48 +0100 Subject: [PATCH 05/68] Oh I guess we don't care about GHES < 3 --- .../apps/building-oauth-apps/scopes-for-oauth-apps.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/content/developers/apps/building-oauth-apps/scopes-for-oauth-apps.md b/content/developers/apps/building-oauth-apps/scopes-for-oauth-apps.md index 28164f8035..d56371fa67 100644 --- a/content/developers/apps/building-oauth-apps/scopes-for-oauth-apps.md +++ b/content/developers/apps/building-oauth-apps/scopes-for-oauth-apps.md @@ -74,8 +74,8 @@ Name | Description **`admin:gpg_key`** | Fully manage GPG keys.  `write:gpg_key`| Create, list, and view details for GPG keys.  `read:gpg_key`| List and view details for GPG keys.{% ifversion fpt or ghec %} -**`codespace`** | Grants the ability to create and manage codespaces. Codespaces can expose a GITHUB_TOKEN which may have a different set of scopes. For more information, see "[Security in Codespaces](/codespaces/codespaces-reference/security-in-codespaces#authentication)."{% endif %}{% ifversion fpt or ghec or ghae or ghes > 3.0 %} -**`workflow`** | Grants the ability to add and update {% data variables.product.prodname_actions %} workflow files. Workflow files can be committed without this scope if the same file (with both the same path and contents) exists on another branch in the same repository. Workflow files can expose `GITHUB_TOKEN` which may have a different set of scopes. For more information, see "[Authentication in a workflow](/actions/reference/authentication-in-a-workflow#permissions-for-the-github_token)."{% endif %} +**`codespace`** | Grants the ability to create and manage codespaces. Codespaces can expose a GITHUB_TOKEN which may have a different set of scopes. For more information, see "[Security in Codespaces](/codespaces/codespaces-reference/security-in-codespaces#authentication)."{% endif %} +**`workflow`** | Grants the ability to add and update {% data variables.product.prodname_actions %} workflow files. Workflow files can be committed without this scope if the same file (with both the same path and contents) exists on another branch in the same repository. Workflow files can expose `GITHUB_TOKEN` which may have a different set of scopes. For more information, see "[Authentication in a workflow](/actions/reference/authentication-in-a-workflow#permissions-for-the-github_token)." {% note %} From 46826ed53301315aba7966d0bca8448b92c32b64 Mon Sep 17 00:00:00 2001 From: github-openapi-bot Date: Fri, 7 Jan 2022 12:13:12 -0800 Subject: [PATCH 06/68] Update OpenAPI Descriptions --- .../dereferenced/api.github.com.deref.json | 3023 +++++++++++++++++ .../static/dereferenced/github.ae.deref.json | 117 + 2 files changed, 3140 insertions(+) diff --git a/lib/rest/static/dereferenced/api.github.com.deref.json b/lib/rest/static/dereferenced/api.github.com.deref.json index dfa619fd11..0e478a3746 100644 --- a/lib/rest/static/dereferenced/api.github.com.deref.json +++ b/lib/rest/static/dereferenced/api.github.com.deref.json @@ -51777,6 +51777,123 @@ } } }, + "/organizations/{org}/team/{team_slug}/external-groups": { + "get": { + "summary": "List a connection between an external group and a team", + "description": "Lists a connection between a team and an external group.\n\nYou can manage team membership with your identity provider using Enterprise Managed Users for GitHub Enterprise Cloud. For more information, see \"[GitHub's products](https://docs.github.com/github/getting-started-with-github/githubs-products)\" in the GitHub Help documentation.", + "tags": [ + "teams" + ], + "operationId": "teams/list-linked-external-idp-groups-to-team-for-org", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/reference/teams#list-external-idp-group-team-connection" + }, + "parameters": [ + { + "name": "org", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "team_slug", + "description": "team_slug parameter", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Response", + "content": { + "application/json": { + "schema": { + "title": "ExternalGroups", + "description": "A list of external groups available to be connected to a team", + "type": "object", + "properties": { + "groups": { + "description": "An array of external groups available to be mapped to a team", + "example": [ + { + "group_id": 1, + "group_name": "group-azuread-test", + "updated_at": "2021-01-03 22:27:15:000 -700" + }, + { + "group_id": 2, + "group_name": "group-azuread-test2", + "updated_at": "2021-06-03 22:27:15:000 -700" + } + ], + "type": "array", + "items": { + "type": "object", + "required": [ + "group_id", + "group_name", + "updated_at" + ], + "properties": { + "group_id": { + "description": "The internal ID of the group", + "example": 1, + "type": "integer" + }, + "group_name": { + "description": "The display name of the group", + "example": "group-azuread-test", + "type": "string" + }, + "updated_at": { + "description": "The time of the last update for this group", + "example": "2019-06-03 22:27:15:000 -700", + "type": "string" + } + } + } + } + } + }, + "examples": { + "default": { + "value": { + "groups": [ + { + "group_id": "123", + "group_name": "Octocat admins", + "updated_at": "2021-01-24T11:31:04-06:00" + }, + { + "group_id": "456", + "group_name": "Octocat docs members", + "updated_at": "2021-03-24T11:31:04-06:00" + } + ] + } + } + } + } + } + } + }, + "x-github": { + "githubCloudOnly": true, + "enabledForGitHubApps": true, + "previews": [ + + ], + "category": "teams", + "subcategory": "external-groups" + } + } + }, "/orgs/{org}": { "get": { "summary": "Get an organization", @@ -64861,6 +64978,2476 @@ } } }, + "/orgs/{org}/dependabot/secrets": { + "get": { + "summary": "List organization secrets", + "description": "Lists all secrets available in an organization without revealing their encrypted values. You must authenticate using an access token with the `admin:org` scope to use this endpoint. GitHub Apps must have the `dependabot_secrets` organization permission to use this endpoint.", + "tags": [ + "dependabot" + ], + "operationId": "dependabot/list-org-secrets", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/reference/dependabot#list-organization-secrets" + }, + "parameters": [ + { + "name": "org", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "per_page", + "description": "Results per page (max 100)", + "in": "query", + "schema": { + "type": "integer", + "default": 30 + } + }, + { + "name": "page", + "description": "Page number of the results to fetch.", + "in": "query", + "schema": { + "type": "integer", + "default": 1 + } + } + ], + "responses": { + "200": { + "description": "Response", + "content": { + "application/json": { + "schema": { + "type": "object", + "required": [ + "total_count", + "secrets" + ], + "properties": { + "total_count": { + "type": "integer" + }, + "secrets": { + "type": "array", + "items": { + "title": "Dependabot Secret for an Organization", + "description": "Secrets for GitHub Dependabot for an organization.", + "type": "object", + "properties": { + "name": { + "description": "The name of the secret.", + "example": "SECRET_TOKEN", + "type": "string" + }, + "created_at": { + "type": "string", + "format": "date-time" + }, + "updated_at": { + "type": "string", + "format": "date-time" + }, + "visibility": { + "description": "Visibility of a secret", + "enum": [ + "all", + "private", + "selected" + ], + "type": "string" + }, + "selected_repositories_url": { + "type": "string", + "format": "uri", + "example": "https://api.github.com/organizations/org/dependabot/secrets/my_secret/repositories" + } + }, + "required": [ + "name", + "created_at", + "updated_at", + "visibility" + ] + } + } + } + }, + "examples": { + "default": { + "value": { + "total_count": 3, + "secrets": [ + { + "name": "MY_ARTIFACTORY_PASSWORD", + "created_at": "2021-08-10T14:59:22Z", + "updated_at": "2021-12-10T14:59:22Z", + "visibility": "private" + }, + { + "name": "NPM_TOKEN", + "created_at": "2021-08-10T14:59:22Z", + "updated_at": "2021-12-10T14:59:22Z", + "visibility": "all" + }, + { + "name": "GH_TOKEN", + "created_at": "2021-08-10T14:59:22Z", + "updated_at": "2021-12-10T14:59:22Z", + "visibility": "selected", + "selected_repositories_url": "https://api.github.com/orgs/octo-org/dependabot/secrets/SUPER_SECRET/repositories" + } + ] + } + } + } + } + }, + "headers": { + "Link": { + "example": "; rel=\"next\", ; rel=\"last\"", + "schema": { + "type": "string" + } + } + } + } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "category": "dependabot", + "subcategory": "secrets" + } + } + }, + "/orgs/{org}/dependabot/secrets/public-key": { + "get": { + "summary": "Get an organization public key", + "description": "Gets your public key, which you need to encrypt secrets. You need to encrypt a secret before you can create or update secrets. You must authenticate using an access token with the `admin:org` scope to use this endpoint. GitHub Apps must have the `dependabot_secrets` organization permission to use this endpoint.", + "tags": [ + "dependabot" + ], + "operationId": "dependabot/get-org-public-key", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/reference/dependabot#get-an-organization-public-key" + }, + "parameters": [ + { + "name": "org", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Response", + "content": { + "application/json": { + "schema": { + "title": "DependabotPublicKey", + "description": "The public key used for setting Dependabot Secrets.", + "type": "object", + "properties": { + "key_id": { + "description": "The identifier for the key.", + "type": "string", + "example": "1234567" + }, + "key": { + "description": "The Base64 encoded public key.", + "type": "string", + "example": "hBT5WZEj8ZoOv6TYJsfWq7MxTEQopZO5/IT3ZCVQPzs=" + } + }, + "required": [ + "key_id", + "key" + ] + }, + "examples": { + "default": { + "value": { + "key_id": "012345678912345678", + "key": "2Sg8iYjAxxmI2LvUXpJjkYrMxURPc8r+dB7TJyvv1234" + } + } + } + } + } + } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "category": "dependabot", + "subcategory": "secrets" + } + } + }, + "/orgs/{org}/dependabot/secrets/{secret_name}": { + "get": { + "summary": "Get an organization secret", + "description": "Gets a single organization secret without revealing its encrypted value. You must authenticate using an access token with the `admin:org` scope to use this endpoint. GitHub Apps must have the `dependabot_secrets` organization permission to use this endpoint.", + "tags": [ + "dependabot" + ], + "operationId": "dependabot/get-org-secret", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/reference/dependabot#get-an-organization-secret" + }, + "parameters": [ + { + "name": "org", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "secret_name", + "description": "secret_name parameter", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Response", + "content": { + "application/json": { + "schema": { + "title": "Dependabot Secret for an Organization", + "description": "Secrets for GitHub Dependabot for an organization.", + "type": "object", + "properties": { + "name": { + "description": "The name of the secret.", + "example": "SECRET_TOKEN", + "type": "string" + }, + "created_at": { + "type": "string", + "format": "date-time" + }, + "updated_at": { + "type": "string", + "format": "date-time" + }, + "visibility": { + "description": "Visibility of a secret", + "enum": [ + "all", + "private", + "selected" + ], + "type": "string" + }, + "selected_repositories_url": { + "type": "string", + "format": "uri", + "example": "https://api.github.com/organizations/org/dependabot/secrets/my_secret/repositories" + } + }, + "required": [ + "name", + "created_at", + "updated_at", + "visibility" + ] + }, + "examples": { + "default": { + "value": { + "name": "NPM_TOKEN", + "created_at": "2019-08-10T14:59:22Z", + "updated_at": "2020-01-10T14:59:22Z", + "visibility": "selected", + "selected_repositories_url": "https://api.github.com/orgs/octo-org/dependabot/secrets/NPM_TOKEN/repositories" + } + } + } + } + } + } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "category": "dependabot", + "subcategory": "secrets" + } + }, + "put": { + "summary": "Create or update an organization secret", + "description": "Creates or updates an organization secret with an encrypted value. Encrypt your secret using\n[LibSodium](https://libsodium.gitbook.io/doc/bindings_for_other_languages). You must authenticate using an access\ntoken with the `admin:org` scope to use this endpoint. GitHub Apps must have the `dependabot_secrets` organization\npermission to use this endpoint.\n\n#### Example encrypting a secret using Node.js\n\nEncrypt your secret using the [tweetsodium](https://github.com/github/tweetsodium) library.\n\n```\nconst sodium = require('tweetsodium');\n\nconst key = \"base64-encoded-public-key\";\nconst value = \"plain-text-secret\";\n\n// Convert the message and key to Uint8Array's (Buffer implements that interface)\nconst messageBytes = Buffer.from(value);\nconst keyBytes = Buffer.from(key, 'base64');\n\n// Encrypt using LibSodium.\nconst encryptedBytes = sodium.seal(messageBytes, keyBytes);\n\n// Base64 the encrypted secret\nconst encrypted = Buffer.from(encryptedBytes).toString('base64');\n\nconsole.log(encrypted);\n```\n\n\n#### Example encrypting a secret using Python\n\nEncrypt your secret using [pynacl](https://pynacl.readthedocs.io/en/stable/public/#nacl-public-sealedbox) with Python 3.\n\n```\nfrom base64 import b64encode\nfrom nacl import encoding, public\n\ndef encrypt(public_key: str, secret_value: str) -> str:\n \"\"\"Encrypt a Unicode string using the public key.\"\"\"\n public_key = public.PublicKey(public_key.encode(\"utf-8\"), encoding.Base64Encoder())\n sealed_box = public.SealedBox(public_key)\n encrypted = sealed_box.encrypt(secret_value.encode(\"utf-8\"))\n return b64encode(encrypted).decode(\"utf-8\")\n```\n\n#### Example encrypting a secret using C#\n\nEncrypt your secret using the [Sodium.Core](https://www.nuget.org/packages/Sodium.Core/) package.\n\n```\nvar secretValue = System.Text.Encoding.UTF8.GetBytes(\"mySecret\");\nvar publicKey = Convert.FromBase64String(\"2Sg8iYjAxxmI2LvUXpJjkYrMxURPc8r+dB7TJyvvcCU=\");\n\nvar sealedPublicKeyBox = Sodium.SealedPublicKeyBox.Create(secretValue, publicKey);\n\nConsole.WriteLine(Convert.ToBase64String(sealedPublicKeyBox));\n```\n\n#### Example encrypting a secret using Ruby\n\nEncrypt your secret using the [rbnacl](https://github.com/RubyCrypto/rbnacl) gem.\n\n```ruby\nrequire \"rbnacl\"\nrequire \"base64\"\n\nkey = Base64.decode64(\"+ZYvJDZMHUfBkJdyq5Zm9SKqeuBQ4sj+6sfjlH4CgG0=\")\npublic_key = RbNaCl::PublicKey.new(key)\n\nbox = RbNaCl::Boxes::Sealed.from_public_key(public_key)\nencrypted_secret = box.encrypt(\"my_secret\")\n\n# Print the base64 encoded secret\nputs Base64.strict_encode64(encrypted_secret)\n```", + "tags": [ + "dependabot" + ], + "operationId": "dependabot/create-or-update-org-secret", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/reference/dependabot#create-or-update-an-organization-secret" + }, + "parameters": [ + { + "name": "org", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "secret_name", + "description": "secret_name parameter", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "encrypted_value": { + "type": "string", + "description": "Value for your secret, encrypted with [LibSodium](https://libsodium.gitbook.io/doc/bindings_for_other_languages) using the public key retrieved from the [Get an organization public key](https://docs.github.com/rest/reference/dependabot#get-an-organization-public-key) endpoint.", + "pattern": "^(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=|[A-Za-z0-9+/]{4})$" + }, + "key_id": { + "type": "string", + "description": "ID of the key you used to encrypt the secret." + }, + "visibility": { + "type": "string", + "description": "Configures the access that repositories have to the organization secret. Can be one of: \n\\- `all` - All repositories in an organization can access the secret. \n\\- `private` - Private repositories in an organization can access the secret. \n\\- `selected` - Only specific repositories can access the secret.", + "enum": [ + "all", + "private", + "selected" + ] + }, + "selected_repository_ids": { + "type": "array", + "description": "An array of repository ids that can access the organization secret. You can only provide a list of repository ids when the `visibility` is set to `selected`. You can manage the list of selected repositories using the [List selected repositories for an organization secret](https://docs.github.com/rest/reference/dependabot#list-selected-repositories-for-an-organization-secret), [Set selected repositories for an organization secret](https://docs.github.com/rest/reference/dependabot#set-selected-repositories-for-an-organization-secret), and [Remove selected repository from an organization secret](https://docs.github.com/rest/reference/dependabot#remove-selected-repository-from-an-organization-secret) endpoints.", + "items": { + "type": "string" + } + } + }, + "required": [ + "visibility" + ] + }, + "example": { + "encrypted_value": "c2VjcmV0", + "key_id": "012345678912345678", + "visibility": "selected", + "selected_repository_ids": [ + "1296269", + "1296280" + ] + } + } + } + }, + "responses": { + "201": { + "description": "Response when creating a secret", + "content": { + "application/json": { + "schema": { + "title": "Empty Object", + "description": "An object without any properties.", + "type": "object", + "properties": { + }, + "additionalProperties": false + } + } + } + }, + "204": { + "description": "Response when updating a secret" + } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "category": "dependabot", + "subcategory": "secrets" + } + }, + "delete": { + "summary": "Delete an organization secret", + "description": "Deletes a secret in an organization using the secret name. You must authenticate using an access token with the `admin:org` scope to use this endpoint. GitHub Apps must have the `dependabot_secrets` organization permission to use this endpoint.", + "tags": [ + "dependabot" + ], + "operationId": "dependabot/delete-org-secret", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/reference/dependabot#delete-an-organization-secret" + }, + "parameters": [ + { + "name": "org", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "secret_name", + "description": "secret_name parameter", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "204": { + "description": "Response" + } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "category": "dependabot", + "subcategory": "secrets" + } + } + }, + "/orgs/{org}/dependabot/secrets/{secret_name}/repositories": { + "get": { + "summary": "List selected repositories for an organization secret", + "description": "Lists all repositories that have been selected when the `visibility` for repository access to a secret is set to `selected`. You must authenticate using an access token with the `admin:org` scope to use this endpoint. GitHub Apps must have the `dependabot_secrets` organization permission to use this endpoint.", + "tags": [ + "dependabot" + ], + "operationId": "dependabot/list-selected-repos-for-org-secret", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/reference/dependabot#list-selected-repositories-for-an-organization-secret" + }, + "parameters": [ + { + "name": "org", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "secret_name", + "description": "secret_name parameter", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "page", + "description": "Page number of the results to fetch.", + "in": "query", + "schema": { + "type": "integer", + "default": 1 + } + }, + { + "name": "per_page", + "description": "Results per page (max 100)", + "in": "query", + "schema": { + "type": "integer", + "default": 30 + } + } + ], + "responses": { + "200": { + "description": "Response", + "content": { + "application/json": { + "schema": { + "type": "object", + "required": [ + "total_count", + "repositories" + ], + "properties": { + "total_count": { + "type": "integer" + }, + "repositories": { + "type": "array", + "items": { + "title": "Minimal Repository", + "description": "Minimal Repository", + "type": "object", + "properties": { + "id": { + "type": "integer", + "example": 1296269 + }, + "node_id": { + "type": "string", + "example": "MDEwOlJlcG9zaXRvcnkxMjk2MjY5" + }, + "name": { + "type": "string", + "example": "Hello-World" + }, + "full_name": { + "type": "string", + "example": "octocat/Hello-World" + }, + "owner": { + "title": "Simple User", + "description": "Simple User", + "type": "object", + "properties": { + "name": { + "nullable": true, + "type": "string" + }, + "email": { + "nullable": true, + "type": "string" + }, + "login": { + "type": "string", + "example": "octocat" + }, + "id": { + "type": "integer", + "example": 1 + }, + "node_id": { + "type": "string", + "example": "MDQ6VXNlcjE=" + }, + "avatar_url": { + "type": "string", + "format": "uri", + "example": "https://github.com/images/error/octocat_happy.gif" + }, + "gravatar_id": { + "type": "string", + "example": "41d064eb2195891e12d0413f63227ea7", + "nullable": true + }, + "url": { + "type": "string", + "format": "uri", + "example": "https://api.github.com/users/octocat" + }, + "html_url": { + "type": "string", + "format": "uri", + "example": "https://github.com/octocat" + }, + "followers_url": { + "type": "string", + "format": "uri", + "example": "https://api.github.com/users/octocat/followers" + }, + "following_url": { + "type": "string", + "example": "https://api.github.com/users/octocat/following{/other_user}" + }, + "gists_url": { + "type": "string", + "example": "https://api.github.com/users/octocat/gists{/gist_id}" + }, + "starred_url": { + "type": "string", + "example": "https://api.github.com/users/octocat/starred{/owner}{/repo}" + }, + "subscriptions_url": { + "type": "string", + "format": "uri", + "example": "https://api.github.com/users/octocat/subscriptions" + }, + "organizations_url": { + "type": "string", + "format": "uri", + "example": "https://api.github.com/users/octocat/orgs" + }, + "repos_url": { + "type": "string", + "format": "uri", + "example": "https://api.github.com/users/octocat/repos" + }, + "events_url": { + "type": "string", + "example": "https://api.github.com/users/octocat/events{/privacy}" + }, + "received_events_url": { + "type": "string", + "format": "uri", + "example": "https://api.github.com/users/octocat/received_events" + }, + "type": { + "type": "string", + "example": "User" + }, + "site_admin": { + "type": "boolean" + }, + "starred_at": { + "type": "string", + "example": "\"2020-07-09T00:17:55Z\"" + } + }, + "required": [ + "avatar_url", + "events_url", + "followers_url", + "following_url", + "gists_url", + "gravatar_id", + "html_url", + "id", + "node_id", + "login", + "organizations_url", + "received_events_url", + "repos_url", + "site_admin", + "starred_url", + "subscriptions_url", + "type", + "url" + ] + }, + "private": { + "type": "boolean" + }, + "html_url": { + "type": "string", + "format": "uri", + "example": "https://github.com/octocat/Hello-World" + }, + "description": { + "type": "string", + "example": "This your first repo!", + "nullable": true + }, + "fork": { + "type": "boolean" + }, + "url": { + "type": "string", + "format": "uri", + "example": "https://api.github.com/repos/octocat/Hello-World" + }, + "archive_url": { + "type": "string", + "example": "http://api.github.com/repos/octocat/Hello-World/{archive_format}{/ref}" + }, + "assignees_url": { + "type": "string", + "example": "http://api.github.com/repos/octocat/Hello-World/assignees{/user}" + }, + "blobs_url": { + "type": "string", + "example": "http://api.github.com/repos/octocat/Hello-World/git/blobs{/sha}" + }, + "branches_url": { + "type": "string", + "example": "http://api.github.com/repos/octocat/Hello-World/branches{/branch}" + }, + "collaborators_url": { + "type": "string", + "example": "http://api.github.com/repos/octocat/Hello-World/collaborators{/collaborator}" + }, + "comments_url": { + "type": "string", + "example": "http://api.github.com/repos/octocat/Hello-World/comments{/number}" + }, + "commits_url": { + "type": "string", + "example": "http://api.github.com/repos/octocat/Hello-World/commits{/sha}" + }, + "compare_url": { + "type": "string", + "example": "http://api.github.com/repos/octocat/Hello-World/compare/{base}...{head}" + }, + "contents_url": { + "type": "string", + "example": "http://api.github.com/repos/octocat/Hello-World/contents/{+path}" + }, + "contributors_url": { + "type": "string", + "format": "uri", + "example": "http://api.github.com/repos/octocat/Hello-World/contributors" + }, + "deployments_url": { + "type": "string", + "format": "uri", + "example": "http://api.github.com/repos/octocat/Hello-World/deployments" + }, + "downloads_url": { + "type": "string", + "format": "uri", + "example": "http://api.github.com/repos/octocat/Hello-World/downloads" + }, + "events_url": { + "type": "string", + "format": "uri", + "example": "http://api.github.com/repos/octocat/Hello-World/events" + }, + "forks_url": { + "type": "string", + "format": "uri", + "example": "http://api.github.com/repos/octocat/Hello-World/forks" + }, + "git_commits_url": { + "type": "string", + "example": "http://api.github.com/repos/octocat/Hello-World/git/commits{/sha}" + }, + "git_refs_url": { + "type": "string", + "example": "http://api.github.com/repos/octocat/Hello-World/git/refs{/sha}" + }, + "git_tags_url": { + "type": "string", + "example": "http://api.github.com/repos/octocat/Hello-World/git/tags{/sha}" + }, + "git_url": { + "type": "string" + }, + "issue_comment_url": { + "type": "string", + "example": "http://api.github.com/repos/octocat/Hello-World/issues/comments{/number}" + }, + "issue_events_url": { + "type": "string", + "example": "http://api.github.com/repos/octocat/Hello-World/issues/events{/number}" + }, + "issues_url": { + "type": "string", + "example": "http://api.github.com/repos/octocat/Hello-World/issues{/number}" + }, + "keys_url": { + "type": "string", + "example": "http://api.github.com/repos/octocat/Hello-World/keys{/key_id}" + }, + "labels_url": { + "type": "string", + "example": "http://api.github.com/repos/octocat/Hello-World/labels{/name}" + }, + "languages_url": { + "type": "string", + "format": "uri", + "example": "http://api.github.com/repos/octocat/Hello-World/languages" + }, + "merges_url": { + "type": "string", + "format": "uri", + "example": "http://api.github.com/repos/octocat/Hello-World/merges" + }, + "milestones_url": { + "type": "string", + "example": "http://api.github.com/repos/octocat/Hello-World/milestones{/number}" + }, + "notifications_url": { + "type": "string", + "example": "http://api.github.com/repos/octocat/Hello-World/notifications{?since,all,participating}" + }, + "pulls_url": { + "type": "string", + "example": "http://api.github.com/repos/octocat/Hello-World/pulls{/number}" + }, + "releases_url": { + "type": "string", + "example": "http://api.github.com/repos/octocat/Hello-World/releases{/id}" + }, + "ssh_url": { + "type": "string" + }, + "stargazers_url": { + "type": "string", + "format": "uri", + "example": "http://api.github.com/repos/octocat/Hello-World/stargazers" + }, + "statuses_url": { + "type": "string", + "example": "http://api.github.com/repos/octocat/Hello-World/statuses/{sha}" + }, + "subscribers_url": { + "type": "string", + "format": "uri", + "example": "http://api.github.com/repos/octocat/Hello-World/subscribers" + }, + "subscription_url": { + "type": "string", + "format": "uri", + "example": "http://api.github.com/repos/octocat/Hello-World/subscription" + }, + "tags_url": { + "type": "string", + "format": "uri", + "example": "http://api.github.com/repos/octocat/Hello-World/tags" + }, + "teams_url": { + "type": "string", + "format": "uri", + "example": "http://api.github.com/repos/octocat/Hello-World/teams" + }, + "trees_url": { + "type": "string", + "example": "http://api.github.com/repos/octocat/Hello-World/git/trees{/sha}" + }, + "clone_url": { + "type": "string" + }, + "mirror_url": { + "type": "string", + "nullable": true + }, + "hooks_url": { + "type": "string", + "format": "uri", + "example": "http://api.github.com/repos/octocat/Hello-World/hooks" + }, + "svn_url": { + "type": "string" + }, + "homepage": { + "type": "string", + "nullable": true + }, + "language": { + "type": "string", + "nullable": true + }, + "forks_count": { + "type": "integer" + }, + "stargazers_count": { + "type": "integer" + }, + "watchers_count": { + "type": "integer" + }, + "size": { + "type": "integer" + }, + "default_branch": { + "type": "string" + }, + "open_issues_count": { + "type": "integer" + }, + "is_template": { + "type": "boolean" + }, + "topics": { + "type": "array", + "items": { + "type": "string" + } + }, + "has_issues": { + "type": "boolean" + }, + "has_projects": { + "type": "boolean" + }, + "has_wiki": { + "type": "boolean" + }, + "has_pages": { + "type": "boolean" + }, + "has_downloads": { + "type": "boolean" + }, + "archived": { + "type": "boolean" + }, + "disabled": { + "type": "boolean" + }, + "visibility": { + "type": "string" + }, + "pushed_at": { + "type": "string", + "format": "date-time", + "example": "2011-01-26T19:06:43Z", + "nullable": true + }, + "created_at": { + "type": "string", + "format": "date-time", + "example": "2011-01-26T19:01:12Z", + "nullable": true + }, + "updated_at": { + "type": "string", + "format": "date-time", + "example": "2011-01-26T19:14:43Z", + "nullable": true + }, + "permissions": { + "type": "object", + "properties": { + "admin": { + "type": "boolean" + }, + "maintain": { + "type": "boolean" + }, + "push": { + "type": "boolean" + }, + "triage": { + "type": "boolean" + }, + "pull": { + "type": "boolean" + } + } + }, + "role_name": { + "type": "string", + "example": "admin" + }, + "template_repository": { + "title": "Repository", + "description": "A git repository", + "type": "object", + "properties": { + "id": { + "description": "Unique identifier of the repository", + "example": 42, + "type": "integer" + }, + "node_id": { + "type": "string", + "example": "MDEwOlJlcG9zaXRvcnkxMjk2MjY5" + }, + "name": { + "description": "The name of the repository.", + "type": "string", + "example": "Team Environment" + }, + "full_name": { + "type": "string", + "example": "octocat/Hello-World" + }, + "license": { + "title": "License Simple", + "description": "License Simple", + "type": "object", + "properties": { + "key": { + "type": "string", + "example": "mit" + }, + "name": { + "type": "string", + "example": "MIT License" + }, + "url": { + "type": "string", + "nullable": true, + "format": "uri", + "example": "https://api.github.com/licenses/mit" + }, + "spdx_id": { + "type": "string", + "nullable": true, + "example": "MIT" + }, + "node_id": { + "type": "string", + "example": "MDc6TGljZW5zZW1pdA==" + }, + "html_url": { + "type": "string", + "format": "uri" + } + }, + "required": [ + "key", + "name", + "url", + "spdx_id", + "node_id" + ], + "nullable": true + }, + "organization": { + "title": "Simple User", + "description": "Simple User", + "type": "object", + "properties": { + "name": { + "nullable": true, + "type": "string" + }, + "email": { + "nullable": true, + "type": "string" + }, + "login": { + "type": "string", + "example": "octocat" + }, + "id": { + "type": "integer", + "example": 1 + }, + "node_id": { + "type": "string", + "example": "MDQ6VXNlcjE=" + }, + "avatar_url": { + "type": "string", + "format": "uri", + "example": "https://github.com/images/error/octocat_happy.gif" + }, + "gravatar_id": { + "type": "string", + "example": "41d064eb2195891e12d0413f63227ea7", + "nullable": true + }, + "url": { + "type": "string", + "format": "uri", + "example": "https://api.github.com/users/octocat" + }, + "html_url": { + "type": "string", + "format": "uri", + "example": "https://github.com/octocat" + }, + "followers_url": { + "type": "string", + "format": "uri", + "example": "https://api.github.com/users/octocat/followers" + }, + "following_url": { + "type": "string", + "example": "https://api.github.com/users/octocat/following{/other_user}" + }, + "gists_url": { + "type": "string", + "example": "https://api.github.com/users/octocat/gists{/gist_id}" + }, + "starred_url": { + "type": "string", + "example": "https://api.github.com/users/octocat/starred{/owner}{/repo}" + }, + "subscriptions_url": { + "type": "string", + "format": "uri", + "example": "https://api.github.com/users/octocat/subscriptions" + }, + "organizations_url": { + "type": "string", + "format": "uri", + "example": "https://api.github.com/users/octocat/orgs" + }, + "repos_url": { + "type": "string", + "format": "uri", + "example": "https://api.github.com/users/octocat/repos" + }, + "events_url": { + "type": "string", + "example": "https://api.github.com/users/octocat/events{/privacy}" + }, + "received_events_url": { + "type": "string", + "format": "uri", + "example": "https://api.github.com/users/octocat/received_events" + }, + "type": { + "type": "string", + "example": "User" + }, + "site_admin": { + "type": "boolean" + }, + "starred_at": { + "type": "string", + "example": "\"2020-07-09T00:17:55Z\"" + } + }, + "required": [ + "avatar_url", + "events_url", + "followers_url", + "following_url", + "gists_url", + "gravatar_id", + "html_url", + "id", + "node_id", + "login", + "organizations_url", + "received_events_url", + "repos_url", + "site_admin", + "starred_url", + "subscriptions_url", + "type", + "url" + ], + "nullable": true + }, + "forks": { + "type": "integer" + }, + "permissions": { + "type": "object", + "properties": { + "admin": { + "type": "boolean" + }, + "pull": { + "type": "boolean" + }, + "triage": { + "type": "boolean" + }, + "push": { + "type": "boolean" + }, + "maintain": { + "type": "boolean" + } + }, + "required": [ + "admin", + "pull", + "push" + ] + }, + "owner": { + "title": "Simple User", + "description": "Simple User", + "type": "object", + "properties": { + "name": { + "nullable": true, + "type": "string" + }, + "email": { + "nullable": true, + "type": "string" + }, + "login": { + "type": "string", + "example": "octocat" + }, + "id": { + "type": "integer", + "example": 1 + }, + "node_id": { + "type": "string", + "example": "MDQ6VXNlcjE=" + }, + "avatar_url": { + "type": "string", + "format": "uri", + "example": "https://github.com/images/error/octocat_happy.gif" + }, + "gravatar_id": { + "type": "string", + "example": "41d064eb2195891e12d0413f63227ea7", + "nullable": true + }, + "url": { + "type": "string", + "format": "uri", + "example": "https://api.github.com/users/octocat" + }, + "html_url": { + "type": "string", + "format": "uri", + "example": "https://github.com/octocat" + }, + "followers_url": { + "type": "string", + "format": "uri", + "example": "https://api.github.com/users/octocat/followers" + }, + "following_url": { + "type": "string", + "example": "https://api.github.com/users/octocat/following{/other_user}" + }, + "gists_url": { + "type": "string", + "example": "https://api.github.com/users/octocat/gists{/gist_id}" + }, + "starred_url": { + "type": "string", + "example": "https://api.github.com/users/octocat/starred{/owner}{/repo}" + }, + "subscriptions_url": { + "type": "string", + "format": "uri", + "example": "https://api.github.com/users/octocat/subscriptions" + }, + "organizations_url": { + "type": "string", + "format": "uri", + "example": "https://api.github.com/users/octocat/orgs" + }, + "repos_url": { + "type": "string", + "format": "uri", + "example": "https://api.github.com/users/octocat/repos" + }, + "events_url": { + "type": "string", + "example": "https://api.github.com/users/octocat/events{/privacy}" + }, + "received_events_url": { + "type": "string", + "format": "uri", + "example": "https://api.github.com/users/octocat/received_events" + }, + "type": { + "type": "string", + "example": "User" + }, + "site_admin": { + "type": "boolean" + }, + "starred_at": { + "type": "string", + "example": "\"2020-07-09T00:17:55Z\"" + } + }, + "required": [ + "avatar_url", + "events_url", + "followers_url", + "following_url", + "gists_url", + "gravatar_id", + "html_url", + "id", + "node_id", + "login", + "organizations_url", + "received_events_url", + "repos_url", + "site_admin", + "starred_url", + "subscriptions_url", + "type", + "url" + ] + }, + "private": { + "description": "Whether the repository is private or public.", + "default": false, + "type": "boolean" + }, + "html_url": { + "type": "string", + "format": "uri", + "example": "https://github.com/octocat/Hello-World" + }, + "description": { + "type": "string", + "example": "This your first repo!", + "nullable": true + }, + "fork": { + "type": "boolean" + }, + "url": { + "type": "string", + "format": "uri", + "example": "https://api.github.com/repos/octocat/Hello-World" + }, + "archive_url": { + "type": "string", + "example": "http://api.github.com/repos/octocat/Hello-World/{archive_format}{/ref}" + }, + "assignees_url": { + "type": "string", + "example": "http://api.github.com/repos/octocat/Hello-World/assignees{/user}" + }, + "blobs_url": { + "type": "string", + "example": "http://api.github.com/repos/octocat/Hello-World/git/blobs{/sha}" + }, + "branches_url": { + "type": "string", + "example": "http://api.github.com/repos/octocat/Hello-World/branches{/branch}" + }, + "collaborators_url": { + "type": "string", + "example": "http://api.github.com/repos/octocat/Hello-World/collaborators{/collaborator}" + }, + "comments_url": { + "type": "string", + "example": "http://api.github.com/repos/octocat/Hello-World/comments{/number}" + }, + "commits_url": { + "type": "string", + "example": "http://api.github.com/repos/octocat/Hello-World/commits{/sha}" + }, + "compare_url": { + "type": "string", + "example": "http://api.github.com/repos/octocat/Hello-World/compare/{base}...{head}" + }, + "contents_url": { + "type": "string", + "example": "http://api.github.com/repos/octocat/Hello-World/contents/{+path}" + }, + "contributors_url": { + "type": "string", + "format": "uri", + "example": "http://api.github.com/repos/octocat/Hello-World/contributors" + }, + "deployments_url": { + "type": "string", + "format": "uri", + "example": "http://api.github.com/repos/octocat/Hello-World/deployments" + }, + "downloads_url": { + "type": "string", + "format": "uri", + "example": "http://api.github.com/repos/octocat/Hello-World/downloads" + }, + "events_url": { + "type": "string", + "format": "uri", + "example": "http://api.github.com/repos/octocat/Hello-World/events" + }, + "forks_url": { + "type": "string", + "format": "uri", + "example": "http://api.github.com/repos/octocat/Hello-World/forks" + }, + "git_commits_url": { + "type": "string", + "example": "http://api.github.com/repos/octocat/Hello-World/git/commits{/sha}" + }, + "git_refs_url": { + "type": "string", + "example": "http://api.github.com/repos/octocat/Hello-World/git/refs{/sha}" + }, + "git_tags_url": { + "type": "string", + "example": "http://api.github.com/repos/octocat/Hello-World/git/tags{/sha}" + }, + "git_url": { + "type": "string", + "example": "git:github.com/octocat/Hello-World.git" + }, + "issue_comment_url": { + "type": "string", + "example": "http://api.github.com/repos/octocat/Hello-World/issues/comments{/number}" + }, + "issue_events_url": { + "type": "string", + "example": "http://api.github.com/repos/octocat/Hello-World/issues/events{/number}" + }, + "issues_url": { + "type": "string", + "example": "http://api.github.com/repos/octocat/Hello-World/issues{/number}" + }, + "keys_url": { + "type": "string", + "example": "http://api.github.com/repos/octocat/Hello-World/keys{/key_id}" + }, + "labels_url": { + "type": "string", + "example": "http://api.github.com/repos/octocat/Hello-World/labels{/name}" + }, + "languages_url": { + "type": "string", + "format": "uri", + "example": "http://api.github.com/repos/octocat/Hello-World/languages" + }, + "merges_url": { + "type": "string", + "format": "uri", + "example": "http://api.github.com/repos/octocat/Hello-World/merges" + }, + "milestones_url": { + "type": "string", + "example": "http://api.github.com/repos/octocat/Hello-World/milestones{/number}" + }, + "notifications_url": { + "type": "string", + "example": "http://api.github.com/repos/octocat/Hello-World/notifications{?since,all,participating}" + }, + "pulls_url": { + "type": "string", + "example": "http://api.github.com/repos/octocat/Hello-World/pulls{/number}" + }, + "releases_url": { + "type": "string", + "example": "http://api.github.com/repos/octocat/Hello-World/releases{/id}" + }, + "ssh_url": { + "type": "string", + "example": "git@github.com:octocat/Hello-World.git" + }, + "stargazers_url": { + "type": "string", + "format": "uri", + "example": "http://api.github.com/repos/octocat/Hello-World/stargazers" + }, + "statuses_url": { + "type": "string", + "example": "http://api.github.com/repos/octocat/Hello-World/statuses/{sha}" + }, + "subscribers_url": { + "type": "string", + "format": "uri", + "example": "http://api.github.com/repos/octocat/Hello-World/subscribers" + }, + "subscription_url": { + "type": "string", + "format": "uri", + "example": "http://api.github.com/repos/octocat/Hello-World/subscription" + }, + "tags_url": { + "type": "string", + "format": "uri", + "example": "http://api.github.com/repos/octocat/Hello-World/tags" + }, + "teams_url": { + "type": "string", + "format": "uri", + "example": "http://api.github.com/repos/octocat/Hello-World/teams" + }, + "trees_url": { + "type": "string", + "example": "http://api.github.com/repos/octocat/Hello-World/git/trees{/sha}" + }, + "clone_url": { + "type": "string", + "example": "https://github.com/octocat/Hello-World.git" + }, + "mirror_url": { + "type": "string", + "format": "uri", + "example": "git:git.example.com/octocat/Hello-World", + "nullable": true + }, + "hooks_url": { + "type": "string", + "format": "uri", + "example": "http://api.github.com/repos/octocat/Hello-World/hooks" + }, + "svn_url": { + "type": "string", + "format": "uri", + "example": "https://svn.github.com/octocat/Hello-World" + }, + "homepage": { + "type": "string", + "format": "uri", + "example": "https://github.com", + "nullable": true + }, + "language": { + "type": "string", + "nullable": true + }, + "forks_count": { + "type": "integer", + "example": 9 + }, + "stargazers_count": { + "type": "integer", + "example": 80 + }, + "watchers_count": { + "type": "integer", + "example": 80 + }, + "size": { + "type": "integer", + "example": 108 + }, + "default_branch": { + "description": "The default branch of the repository.", + "type": "string", + "example": "master" + }, + "open_issues_count": { + "type": "integer", + "example": 0 + }, + "is_template": { + "description": "Whether this repository acts as a template that can be used to generate new repositories.", + "default": false, + "type": "boolean", + "example": true + }, + "topics": { + "type": "array", + "items": { + "type": "string" + } + }, + "has_issues": { + "description": "Whether issues are enabled.", + "default": true, + "type": "boolean", + "example": true + }, + "has_projects": { + "description": "Whether projects are enabled.", + "default": true, + "type": "boolean", + "example": true + }, + "has_wiki": { + "description": "Whether the wiki is enabled.", + "default": true, + "type": "boolean", + "example": true + }, + "has_pages": { + "type": "boolean" + }, + "has_downloads": { + "description": "Whether downloads are enabled.", + "default": true, + "type": "boolean", + "example": true + }, + "archived": { + "description": "Whether the repository is archived.", + "default": false, + "type": "boolean" + }, + "disabled": { + "type": "boolean", + "description": "Returns whether or not this repository disabled." + }, + "visibility": { + "description": "The repository visibility: public, private, or internal.", + "default": "public", + "type": "string" + }, + "pushed_at": { + "type": "string", + "format": "date-time", + "example": "2011-01-26T19:06:43Z", + "nullable": true + }, + "created_at": { + "type": "string", + "format": "date-time", + "example": "2011-01-26T19:01:12Z", + "nullable": true + }, + "updated_at": { + "type": "string", + "format": "date-time", + "example": "2011-01-26T19:14:43Z", + "nullable": true + }, + "allow_rebase_merge": { + "description": "Whether to allow rebase merges for pull requests.", + "default": true, + "type": "boolean", + "example": true + }, + "template_repository": { + "nullable": true, + "type": "object", + "properties": { + "id": { + "type": "integer" + }, + "node_id": { + "type": "string" + }, + "name": { + "type": "string" + }, + "full_name": { + "type": "string" + }, + "owner": { + "type": "object", + "properties": { + "login": { + "type": "string" + }, + "id": { + "type": "integer" + }, + "node_id": { + "type": "string" + }, + "avatar_url": { + "type": "string" + }, + "gravatar_id": { + "type": "string" + }, + "url": { + "type": "string" + }, + "html_url": { + "type": "string" + }, + "followers_url": { + "type": "string" + }, + "following_url": { + "type": "string" + }, + "gists_url": { + "type": "string" + }, + "starred_url": { + "type": "string" + }, + "subscriptions_url": { + "type": "string" + }, + "organizations_url": { + "type": "string" + }, + "repos_url": { + "type": "string" + }, + "events_url": { + "type": "string" + }, + "received_events_url": { + "type": "string" + }, + "type": { + "type": "string" + }, + "site_admin": { + "type": "boolean" + } + } + }, + "private": { + "type": "boolean" + }, + "html_url": { + "type": "string" + }, + "description": { + "type": "string" + }, + "fork": { + "type": "boolean" + }, + "url": { + "type": "string" + }, + "archive_url": { + "type": "string" + }, + "assignees_url": { + "type": "string" + }, + "blobs_url": { + "type": "string" + }, + "branches_url": { + "type": "string" + }, + "collaborators_url": { + "type": "string" + }, + "comments_url": { + "type": "string" + }, + "commits_url": { + "type": "string" + }, + "compare_url": { + "type": "string" + }, + "contents_url": { + "type": "string" + }, + "contributors_url": { + "type": "string" + }, + "deployments_url": { + "type": "string" + }, + "downloads_url": { + "type": "string" + }, + "events_url": { + "type": "string" + }, + "forks_url": { + "type": "string" + }, + "git_commits_url": { + "type": "string" + }, + "git_refs_url": { + "type": "string" + }, + "git_tags_url": { + "type": "string" + }, + "git_url": { + "type": "string" + }, + "issue_comment_url": { + "type": "string" + }, + "issue_events_url": { + "type": "string" + }, + "issues_url": { + "type": "string" + }, + "keys_url": { + "type": "string" + }, + "labels_url": { + "type": "string" + }, + "languages_url": { + "type": "string" + }, + "merges_url": { + "type": "string" + }, + "milestones_url": { + "type": "string" + }, + "notifications_url": { + "type": "string" + }, + "pulls_url": { + "type": "string" + }, + "releases_url": { + "type": "string" + }, + "ssh_url": { + "type": "string" + }, + "stargazers_url": { + "type": "string" + }, + "statuses_url": { + "type": "string" + }, + "subscribers_url": { + "type": "string" + }, + "subscription_url": { + "type": "string" + }, + "tags_url": { + "type": "string" + }, + "teams_url": { + "type": "string" + }, + "trees_url": { + "type": "string" + }, + "clone_url": { + "type": "string" + }, + "mirror_url": { + "type": "string" + }, + "hooks_url": { + "type": "string" + }, + "svn_url": { + "type": "string" + }, + "homepage": { + "type": "string" + }, + "language": { + "type": "string" + }, + "forks_count": { + "type": "integer" + }, + "stargazers_count": { + "type": "integer" + }, + "watchers_count": { + "type": "integer" + }, + "size": { + "type": "integer" + }, + "default_branch": { + "type": "string" + }, + "open_issues_count": { + "type": "integer" + }, + "is_template": { + "type": "boolean" + }, + "topics": { + "type": "array", + "items": { + "type": "string" + } + }, + "has_issues": { + "type": "boolean" + }, + "has_projects": { + "type": "boolean" + }, + "has_wiki": { + "type": "boolean" + }, + "has_pages": { + "type": "boolean" + }, + "has_downloads": { + "type": "boolean" + }, + "archived": { + "type": "boolean" + }, + "disabled": { + "type": "boolean" + }, + "visibility": { + "type": "string" + }, + "pushed_at": { + "type": "string" + }, + "created_at": { + "type": "string" + }, + "updated_at": { + "type": "string" + }, + "permissions": { + "type": "object", + "properties": { + "admin": { + "type": "boolean" + }, + "maintain": { + "type": "boolean" + }, + "push": { + "type": "boolean" + }, + "triage": { + "type": "boolean" + }, + "pull": { + "type": "boolean" + } + } + }, + "allow_rebase_merge": { + "type": "boolean" + }, + "temp_clone_token": { + "type": "string" + }, + "allow_squash_merge": { + "type": "boolean" + }, + "allow_auto_merge": { + "type": "boolean" + }, + "delete_branch_on_merge": { + "type": "boolean" + }, + "allow_update_branch": { + "type": "boolean" + }, + "allow_merge_commit": { + "type": "boolean" + }, + "subscribers_count": { + "type": "integer" + }, + "network_count": { + "type": "integer" + } + } + }, + "temp_clone_token": { + "type": "string" + }, + "allow_squash_merge": { + "description": "Whether to allow squash merges for pull requests.", + "default": true, + "type": "boolean", + "example": true + }, + "allow_auto_merge": { + "description": "Whether to allow Auto-merge to be used on pull requests.", + "default": false, + "type": "boolean", + "example": false + }, + "delete_branch_on_merge": { + "description": "Whether to delete head branches when pull requests are merged", + "default": false, + "type": "boolean", + "example": false + }, + "allow_merge_commit": { + "description": "Whether to allow merge commits for pull requests.", + "default": true, + "type": "boolean", + "example": true + }, + "allow_forking": { + "description": "Whether to allow forking this repo", + "type": "boolean" + }, + "subscribers_count": { + "type": "integer" + }, + "network_count": { + "type": "integer" + }, + "open_issues": { + "type": "integer" + }, + "watchers": { + "type": "integer" + }, + "master_branch": { + "type": "string" + }, + "starred_at": { + "type": "string", + "example": "\"2020-07-09T00:17:42Z\"" + } + }, + "required": [ + "archive_url", + "assignees_url", + "blobs_url", + "branches_url", + "collaborators_url", + "comments_url", + "commits_url", + "compare_url", + "contents_url", + "contributors_url", + "deployments_url", + "description", + "downloads_url", + "events_url", + "fork", + "forks_url", + "full_name", + "git_commits_url", + "git_refs_url", + "git_tags_url", + "hooks_url", + "html_url", + "id", + "node_id", + "issue_comment_url", + "issue_events_url", + "issues_url", + "keys_url", + "labels_url", + "languages_url", + "merges_url", + "milestones_url", + "name", + "notifications_url", + "owner", + "private", + "pulls_url", + "releases_url", + "stargazers_url", + "statuses_url", + "subscribers_url", + "subscription_url", + "tags_url", + "teams_url", + "trees_url", + "url", + "clone_url", + "default_branch", + "forks", + "forks_count", + "git_url", + "has_downloads", + "has_issues", + "has_projects", + "has_wiki", + "has_pages", + "homepage", + "language", + "archived", + "disabled", + "mirror_url", + "open_issues", + "open_issues_count", + "license", + "pushed_at", + "size", + "ssh_url", + "stargazers_count", + "svn_url", + "watchers", + "watchers_count", + "created_at", + "updated_at" + ], + "nullable": true + }, + "temp_clone_token": { + "type": "string" + }, + "delete_branch_on_merge": { + "type": "boolean" + }, + "subscribers_count": { + "type": "integer" + }, + "network_count": { + "type": "integer" + }, + "code_of_conduct": { + "title": "Code Of Conduct", + "description": "Code Of Conduct", + "type": "object", + "properties": { + "key": { + "type": "string", + "example": "contributor_covenant" + }, + "name": { + "type": "string", + "example": "Contributor Covenant" + }, + "url": { + "type": "string", + "format": "uri", + "example": "https://api.github.com/codes_of_conduct/contributor_covenant" + }, + "body": { + "type": "string", + "example": "# Contributor Covenant Code of Conduct\n\n## Our Pledge\n\nIn the interest of fostering an open and welcoming environment, we as contributors and maintainers pledge to making participation in our project and our community a harassment-free experience for everyone, regardless of age, body size, disability, ethnicity, gender identity and expression, level of experience, nationality, personal appearance, race, religion, or sexual identity and orientation.\n\n## Our Standards\n\nExamples of behavior that contributes to creating a positive environment include:\n\n* Using welcoming and inclusive language\n* Being respectful of differing viewpoints and experiences\n* Gracefully accepting constructive criticism\n* Focusing on what is best for the community\n* Showing empathy towards other community members\n\nExamples of unacceptable behavior by participants include:\n\n* The use of sexualized language or imagery and unwelcome sexual attention or advances\n* Trolling, insulting/derogatory comments, and personal or political attacks\n* Public or private harassment\n* Publishing others' private information, such as a physical or electronic address, without explicit permission\n* Other conduct which could reasonably be considered inappropriate in a professional setting\n\n## Our Responsibilities\n\nProject maintainers are responsible for clarifying the standards of acceptable behavior and are expected to take appropriate and fair corrective action in response\n to any instances of unacceptable behavior.\n\nProject maintainers have the right and responsibility to remove, edit, or reject comments, commits, code, wiki edits, issues, and other contributions that are not aligned to this Code of Conduct, or to ban temporarily or permanently any contributor for other behaviors that they deem inappropriate, threatening, offensive, or harmful.\n\n## Scope\n\nThis Code of Conduct applies both within project spaces and in public spaces when an individual is representing the project or its community. Examples of representing a project or community include using an official project e-mail address,\n posting via an official social media account, or acting as an appointed representative at an online or offline event. Representation of a project may be further defined and clarified by project maintainers.\n\n## Enforcement\n\nInstances of abusive, harassing, or otherwise unacceptable behavior may be reported by contacting the project team at [EMAIL]. The project team will review and investigate all complaints, and will respond in a way that it deems appropriate to the circumstances. The project team is obligated to maintain confidentiality with regard to the reporter of an incident. Further details of specific enforcement policies may be posted separately.\n\nProject maintainers who do not follow or enforce the Code of Conduct in good faith may face temporary or permanent repercussions as determined by other members of the project's leadership.\n\n## Attribution\n\nThis Code of Conduct is adapted from the [Contributor Covenant][homepage], version 1.4, available at [http://contributor-covenant.org/version/1/4][version]\n\n[homepage]: http://contributor-covenant.org\n[version]: http://contributor-covenant.org/version/1/4/\n" + }, + "html_url": { + "type": "string", + "format": "uri", + "nullable": true + } + }, + "required": [ + "url", + "html_url", + "key", + "name" + ] + }, + "license": { + "type": "object", + "properties": { + "key": { + "type": "string" + }, + "name": { + "type": "string" + }, + "spdx_id": { + "type": "string" + }, + "url": { + "type": "string" + }, + "node_id": { + "type": "string" + } + }, + "nullable": true + }, + "forks": { + "type": "integer", + "example": 0 + }, + "open_issues": { + "type": "integer", + "example": 0 + }, + "watchers": { + "type": "integer", + "example": 0 + }, + "allow_forking": { + "type": "boolean" + } + }, + "required": [ + "archive_url", + "assignees_url", + "blobs_url", + "branches_url", + "collaborators_url", + "comments_url", + "commits_url", + "compare_url", + "contents_url", + "contributors_url", + "deployments_url", + "description", + "downloads_url", + "events_url", + "fork", + "forks_url", + "full_name", + "git_commits_url", + "git_refs_url", + "git_tags_url", + "hooks_url", + "html_url", + "id", + "node_id", + "issue_comment_url", + "issue_events_url", + "issues_url", + "keys_url", + "labels_url", + "languages_url", + "merges_url", + "milestones_url", + "name", + "notifications_url", + "owner", + "private", + "pulls_url", + "releases_url", + "stargazers_url", + "statuses_url", + "subscribers_url", + "subscription_url", + "tags_url", + "teams_url", + "trees_url", + "url" + ] + } + } + } + }, + "examples": { + "default": { + "value": { + "total_count": 1, + "repositories": [ + { + "id": 1296269, + "node_id": "MDEwOlJlcG9zaXRvcnkxMjk2MjY5", + "name": "Hello-World", + "full_name": "octocat/Hello-World", + "owner": { + "login": "octocat", + "id": 1, + "node_id": "MDQ6VXNlcjE=", + "avatar_url": "https://github.com/images/error/octocat_happy.gif", + "gravatar_id": "", + "url": "https://api.github.com/users/octocat", + "html_url": "https://github.com/octocat", + "followers_url": "https://api.github.com/users/octocat/followers", + "following_url": "https://api.github.com/users/octocat/following{/other_user}", + "gists_url": "https://api.github.com/users/octocat/gists{/gist_id}", + "starred_url": "https://api.github.com/users/octocat/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/octocat/subscriptions", + "organizations_url": "https://api.github.com/users/octocat/orgs", + "repos_url": "https://api.github.com/users/octocat/repos", + "events_url": "https://api.github.com/users/octocat/events{/privacy}", + "received_events_url": "https://api.github.com/users/octocat/received_events", + "type": "User", + "site_admin": false + }, + "private": false, + "html_url": "https://github.com/octocat/Hello-World", + "description": "This your first repo!", + "fork": false, + "url": "https://api.github.com/repos/octocat/Hello-World", + "archive_url": "https://api.github.com/repos/octocat/Hello-World/{archive_format}{/ref}", + "assignees_url": "https://api.github.com/repos/octocat/Hello-World/assignees{/user}", + "blobs_url": "https://api.github.com/repos/octocat/Hello-World/git/blobs{/sha}", + "branches_url": "https://api.github.com/repos/octocat/Hello-World/branches{/branch}", + "collaborators_url": "https://api.github.com/repos/octocat/Hello-World/collaborators{/collaborator}", + "comments_url": "https://api.github.com/repos/octocat/Hello-World/comments{/number}", + "commits_url": "https://api.github.com/repos/octocat/Hello-World/commits{/sha}", + "compare_url": "https://api.github.com/repos/octocat/Hello-World/compare/{base}...{head}", + "contents_url": "https://api.github.com/repos/octocat/Hello-World/contents/{+path}", + "contributors_url": "https://api.github.com/repos/octocat/Hello-World/contributors", + "deployments_url": "https://api.github.com/repos/octocat/Hello-World/deployments", + "downloads_url": "https://api.github.com/repos/octocat/Hello-World/downloads", + "events_url": "https://api.github.com/repos/octocat/Hello-World/events", + "forks_url": "https://api.github.com/repos/octocat/Hello-World/forks", + "git_commits_url": "https://api.github.com/repos/octocat/Hello-World/git/commits{/sha}", + "git_refs_url": "https://api.github.com/repos/octocat/Hello-World/git/refs{/sha}", + "git_tags_url": "https://api.github.com/repos/octocat/Hello-World/git/tags{/sha}", + "git_url": "git:github.com/octocat/Hello-World.git", + "issue_comment_url": "https://api.github.com/repos/octocat/Hello-World/issues/comments{/number}", + "issue_events_url": "https://api.github.com/repos/octocat/Hello-World/issues/events{/number}", + "issues_url": "https://api.github.com/repos/octocat/Hello-World/issues{/number}", + "keys_url": "https://api.github.com/repos/octocat/Hello-World/keys{/key_id}", + "labels_url": "https://api.github.com/repos/octocat/Hello-World/labels{/name}", + "languages_url": "https://api.github.com/repos/octocat/Hello-World/languages", + "merges_url": "https://api.github.com/repos/octocat/Hello-World/merges", + "milestones_url": "https://api.github.com/repos/octocat/Hello-World/milestones{/number}", + "notifications_url": "https://api.github.com/repos/octocat/Hello-World/notifications{?since,all,participating}", + "pulls_url": "https://api.github.com/repos/octocat/Hello-World/pulls{/number}", + "releases_url": "https://api.github.com/repos/octocat/Hello-World/releases{/id}", + "ssh_url": "git@github.com:octocat/Hello-World.git", + "stargazers_url": "https://api.github.com/repos/octocat/Hello-World/stargazers", + "statuses_url": "https://api.github.com/repos/octocat/Hello-World/statuses/{sha}", + "subscribers_url": "https://api.github.com/repos/octocat/Hello-World/subscribers", + "subscription_url": "https://api.github.com/repos/octocat/Hello-World/subscription", + "tags_url": "https://api.github.com/repos/octocat/Hello-World/tags", + "teams_url": "https://api.github.com/repos/octocat/Hello-World/teams", + "trees_url": "https://api.github.com/repos/octocat/Hello-World/git/trees{/sha}", + "hooks_url": "http://api.github.com/repos/octocat/Hello-World/hooks" + } + ] + } + } + } + } + } + } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "category": "dependabot", + "subcategory": "secrets" + } + }, + "put": { + "summary": "Set selected repositories for an organization secret", + "description": "Replaces all repositories for an organization secret when the `visibility` for repository access is set to `selected`. The visibility is set when you [Create or update an organization secret](https://docs.github.com/rest/reference/dependabot#create-or-update-an-organization-secret). You must authenticate using an access token with the `admin:org` scope to use this endpoint. GitHub Apps must have the `dependabot_secrets` organization permission to use this endpoint.", + "tags": [ + "dependabot" + ], + "operationId": "dependabot/set-selected-repos-for-org-secret", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/reference/dependabot#set-selected-repositories-for-an-organization-secret" + }, + "parameters": [ + { + "name": "org", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "secret_name", + "description": "secret_name parameter", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "selected_repository_ids": { + "type": "array", + "description": "An array of repository ids that can access the organization secret. You can only provide a list of repository ids when the `visibility` is set to `selected`. You can add and remove individual repositories using the [Set selected repositories for an organization secret](https://docs.github.com/rest/reference/dependabot#set-selected-repositories-for-an-organization-secret) and [Remove selected repository from an organization secret](https://docs.github.com/rest/reference/dependabot#remove-selected-repository-from-an-organization-secret) endpoints.", + "items": { + "type": "integer" + } + } + }, + "required": [ + "selected_repository_ids" + ] + }, + "example": { + "selected_repository_ids": [ + 64780797 + ] + } + } + } + }, + "responses": { + "204": { + "description": "Response" + } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "category": "dependabot", + "subcategory": "secrets" + } + } + }, + "/orgs/{org}/dependabot/secrets/{secret_name}/repositories/{repository_id}": { + "put": { + "summary": "Add selected repository to an organization secret", + "description": "Adds a repository to an organization secret when the `visibility` for repository access is set to `selected`. The visibility is set when you [Create or update an organization secret](https://docs.github.com/rest/reference/dependabot#create-or-update-an-organization-secret). You must authenticate using an access token with the `admin:org` scope to use this endpoint. GitHub Apps must have the `dependabot_secrets` organization permission to use this endpoint.", + "tags": [ + "dependabot" + ], + "operationId": "dependabot/add-selected-repo-to-org-secret", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/reference/dependabot#add-selected-repository-to-an-organization-secret" + }, + "parameters": [ + { + "name": "org", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "secret_name", + "description": "secret_name parameter", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "repository_id", + "in": "path", + "required": true, + "schema": { + "type": "integer" + } + } + ], + "responses": { + "204": { + "description": "No Content when repository was added to the selected list" + }, + "409": { + "description": "Conflict when visibility type is not set to selected" + } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "category": "dependabot", + "subcategory": "secrets" + } + }, + "delete": { + "summary": "Remove selected repository from an organization secret", + "description": "Removes a repository from an organization secret when the `visibility` for repository access is set to `selected`. The visibility is set when you [Create or update an organization secret](https://docs.github.com/rest/reference/dependabot#create-or-update-an-organization-secret). You must authenticate using an access token with the `admin:org` scope to use this endpoint. GitHub Apps must have the `dependabot_secrets` organization permission to use this endpoint.", + "tags": [ + "dependabot" + ], + "operationId": "dependabot/remove-selected-repo-from-org-secret", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/reference/dependabot#remove-selected-repository-from-an-organization-secret" + }, + "parameters": [ + { + "name": "org", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "secret_name", + "description": "secret_name parameter", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "repository_id", + "in": "path", + "required": true, + "schema": { + "type": "integer" + } + } + ], + "responses": { + "204": { + "description": "Response when repository was removed from the selected list" + }, + "409": { + "description": "Conflict when visibility type not set to selected" + } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "category": "dependabot", + "subcategory": "secrets" + } + } + }, "/orgs/{org}/events": { "get": { "summary": "List public organization events", @@ -216842,6 +219429,442 @@ } } }, + "/repos/{owner}/{repo}/dependabot/secrets": { + "get": { + "summary": "List repository secrets", + "description": "Lists all secrets available in a repository without revealing their encrypted values. You must authenticate using an access token with the `repo` scope to use this endpoint. GitHub Apps must have the `dependabot_secrets` repository permission to use this endpoint.", + "tags": [ + "dependabot" + ], + "operationId": "dependabot/list-repo-secrets", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/reference/dependabot#list-repository-secrets" + }, + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "repo", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "per_page", + "description": "Results per page (max 100)", + "in": "query", + "schema": { + "type": "integer", + "default": 30 + } + }, + { + "name": "page", + "description": "Page number of the results to fetch.", + "in": "query", + "schema": { + "type": "integer", + "default": 1 + } + } + ], + "responses": { + "200": { + "description": "Response", + "content": { + "application/json": { + "schema": { + "type": "object", + "required": [ + "total_count", + "secrets" + ], + "properties": { + "total_count": { + "type": "integer" + }, + "secrets": { + "type": "array", + "items": { + "title": "Dependabot Secret", + "description": "Set secrets for Dependabot.", + "type": "object", + "properties": { + "name": { + "description": "The name of the secret.", + "example": "MY_ARTIFACTORY_PASSWORD", + "type": "string" + }, + "created_at": { + "type": "string", + "format": "date-time" + }, + "updated_at": { + "type": "string", + "format": "date-time" + } + }, + "required": [ + "name", + "created_at", + "updated_at" + ] + } + } + } + }, + "examples": { + "default": { + "value": { + "total_count": 2, + "secrets": [ + { + "name": "AZURE_DEVOPS_PAT", + "created_at": "2019-08-10T14:59:22Z", + "updated_at": "2020-01-10T14:59:22Z" + }, + { + "name": "MY_ARTIFACTORY_PASSWORD", + "created_at": "2020-01-10T10:59:22Z", + "updated_at": "2020-01-11T11:59:22Z" + } + ] + } + } + } + } + }, + "headers": { + "Link": { + "example": "; rel=\"next\", ; rel=\"last\"", + "schema": { + "type": "string" + } + } + } + } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "category": "dependabot", + "subcategory": "secrets" + } + } + }, + "/repos/{owner}/{repo}/dependabot/secrets/public-key": { + "get": { + "summary": "Get a repository public key", + "description": "Gets your public key, which you need to encrypt secrets. You need to encrypt a secret before you can create or update secrets. Anyone with read access to the repository can use this endpoint. If the repository is private you must use an access token with the `repo` scope. GitHub Apps must have the `dependabot_secrets` repository permission to use this endpoint.", + "tags": [ + "dependabot" + ], + "operationId": "dependabot/get-repo-public-key", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/reference/dependabot#get-a-repository-public-key" + }, + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "repo", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Response", + "content": { + "application/json": { + "schema": { + "title": "DependabotPublicKey", + "description": "The public key used for setting Dependabot Secrets.", + "type": "object", + "properties": { + "key_id": { + "description": "The identifier for the key.", + "type": "string", + "example": "1234567" + }, + "key": { + "description": "The Base64 encoded public key.", + "type": "string", + "example": "hBT5WZEj8ZoOv6TYJsfWq7MxTEQopZO5/IT3ZCVQPzs=" + } + }, + "required": [ + "key_id", + "key" + ] + }, + "examples": { + "default": { + "value": { + "key_id": "012345678912345678", + "key": "2Sg8iYjAxxmI2LvUXpJjkYrMxURPc8r+dB7TJyvv1234" + } + } + } + } + } + } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "category": "dependabot", + "subcategory": "secrets" + } + } + }, + "/repos/{owner}/{repo}/dependabot/secrets/{secret_name}": { + "get": { + "summary": "Get a repository secret", + "description": "Gets a single repository secret without revealing its encrypted value. You must authenticate using an access token with the `repo` scope to use this endpoint. GitHub Apps must have the `dependabot_secrets` repository permission to use this endpoint.", + "tags": [ + "dependabot" + ], + "operationId": "dependabot/get-repo-secret", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/reference/dependabot#get-a-repository-secret" + }, + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "repo", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "secret_name", + "description": "secret_name parameter", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Response", + "content": { + "application/json": { + "schema": { + "title": "Dependabot Secret", + "description": "Set secrets for Dependabot.", + "type": "object", + "properties": { + "name": { + "description": "The name of the secret.", + "example": "MY_ARTIFACTORY_PASSWORD", + "type": "string" + }, + "created_at": { + "type": "string", + "format": "date-time" + }, + "updated_at": { + "type": "string", + "format": "date-time" + } + }, + "required": [ + "name", + "created_at", + "updated_at" + ] + }, + "examples": { + "default": { + "value": { + "name": "MY_ARTIFACTORY_PASSWORD", + "created_at": "2019-08-10T14:59:22Z", + "updated_at": "2020-01-10T14:59:22Z" + } + } + } + } + } + } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "category": "dependabot", + "subcategory": "secrets" + } + }, + "put": { + "summary": "Create or update a repository secret", + "description": "Creates or updates a repository secret with an encrypted value. Encrypt your secret using\n[LibSodium](https://libsodium.gitbook.io/doc/bindings_for_other_languages). You must authenticate using an access\ntoken with the `repo` scope to use this endpoint. GitHub Apps must have the `dependabot_secrets` repository\npermission to use this endpoint.\n\n#### Example encrypting a secret using Node.js\n\nEncrypt your secret using the [tweetsodium](https://github.com/github/tweetsodium) library.\n\n```\nconst sodium = require('tweetsodium');\n\nconst key = \"base64-encoded-public-key\";\nconst value = \"plain-text-secret\";\n\n// Convert the message and key to Uint8Array's (Buffer implements that interface)\nconst messageBytes = Buffer.from(value);\nconst keyBytes = Buffer.from(key, 'base64');\n\n// Encrypt using LibSodium.\nconst encryptedBytes = sodium.seal(messageBytes, keyBytes);\n\n// Base64 the encrypted secret\nconst encrypted = Buffer.from(encryptedBytes).toString('base64');\n\nconsole.log(encrypted);\n```\n\n\n#### Example encrypting a secret using Python\n\nEncrypt your secret using [pynacl](https://pynacl.readthedocs.io/en/stable/public/#nacl-public-sealedbox) with Python 3.\n\n```\nfrom base64 import b64encode\nfrom nacl import encoding, public\n\ndef encrypt(public_key: str, secret_value: str) -> str:\n \"\"\"Encrypt a Unicode string using the public key.\"\"\"\n public_key = public.PublicKey(public_key.encode(\"utf-8\"), encoding.Base64Encoder())\n sealed_box = public.SealedBox(public_key)\n encrypted = sealed_box.encrypt(secret_value.encode(\"utf-8\"))\n return b64encode(encrypted).decode(\"utf-8\")\n```\n\n#### Example encrypting a secret using C#\n\nEncrypt your secret using the [Sodium.Core](https://www.nuget.org/packages/Sodium.Core/) package.\n\n```\nvar secretValue = System.Text.Encoding.UTF8.GetBytes(\"mySecret\");\nvar publicKey = Convert.FromBase64String(\"2Sg8iYjAxxmI2LvUXpJjkYrMxURPc8r+dB7TJyvvcCU=\");\n\nvar sealedPublicKeyBox = Sodium.SealedPublicKeyBox.Create(secretValue, publicKey);\n\nConsole.WriteLine(Convert.ToBase64String(sealedPublicKeyBox));\n```\n\n#### Example encrypting a secret using Ruby\n\nEncrypt your secret using the [rbnacl](https://github.com/RubyCrypto/rbnacl) gem.\n\n```ruby\nrequire \"rbnacl\"\nrequire \"base64\"\n\nkey = Base64.decode64(\"+ZYvJDZMHUfBkJdyq5Zm9SKqeuBQ4sj+6sfjlH4CgG0=\")\npublic_key = RbNaCl::PublicKey.new(key)\n\nbox = RbNaCl::Boxes::Sealed.from_public_key(public_key)\nencrypted_secret = box.encrypt(\"my_secret\")\n\n# Print the base64 encoded secret\nputs Base64.strict_encode64(encrypted_secret)\n```", + "tags": [ + "dependabot" + ], + "operationId": "dependabot/create-or-update-repo-secret", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/reference/dependabot#create-or-update-a-repository-secret" + }, + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "repo", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "secret_name", + "description": "secret_name parameter", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "encrypted_value": { + "type": "string", + "description": "Value for your secret, encrypted with [LibSodium](https://libsodium.gitbook.io/doc/bindings_for_other_languages) using the public key retrieved from the [Get a repository public key](https://docs.github.com/rest/reference/dependabot#get-a-repository-public-key) endpoint.", + "pattern": "^(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=|[A-Za-z0-9+/]{4})$" + }, + "key_id": { + "type": "string", + "description": "ID of the key you used to encrypt the secret." + } + } + }, + "example": { + "encrypted_value": "c2VjcmV0", + "key_id": "012345678912345678" + } + } + } + }, + "responses": { + "201": { + "description": "Response when creating a secret", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + }, + "additionalProperties": false + } + } + } + }, + "204": { + "description": "Response when updating a secret" + } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "category": "dependabot", + "subcategory": "secrets" + } + }, + "delete": { + "summary": "Delete a repository secret", + "description": "Deletes a secret in a repository using the secret name. You must authenticate using an access token with the `repo` scope to use this endpoint. GitHub Apps must have the `dependabot_secrets` repository permission to use this endpoint.", + "tags": [ + "dependabot" + ], + "operationId": "dependabot/delete-repo-secret", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/reference/dependabot#delete-a-repository-secret" + }, + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "repo", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "secret_name", + "description": "secret_name parameter", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "204": { + "description": "Response" + } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "category": "dependabot", + "subcategory": "secrets" + } + } + }, "/repos/{owner}/{repo}/deployments": { "get": { "summary": "List deployments", diff --git a/lib/rest/static/dereferenced/github.ae.deref.json b/lib/rest/static/dereferenced/github.ae.deref.json index 7ed46e9a62..fa9c701db4 100644 --- a/lib/rest/static/dereferenced/github.ae.deref.json +++ b/lib/rest/static/dereferenced/github.ae.deref.json @@ -35800,6 +35800,123 @@ } } }, + "/organizations/{org}/team/{team_slug}/external-groups": { + "get": { + "summary": "List a connection between an external group and a team", + "description": "Lists a connection between a team and an external group.\n\nYou can manage team membership with your identity provider using Enterprise Managed Users for GitHub Enterprise Cloud. For more information, see \"[GitHub's products](https://docs.github.com/github-ae@latest/github/getting-started-with-github/githubs-products)\" in the GitHub Help documentation.", + "tags": [ + "teams" + ], + "operationId": "teams/list-linked-external-idp-groups-to-team-for-org", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/github-ae@latest/rest/reference/teams#list-external-idp-group-team-connection" + }, + "parameters": [ + { + "name": "org", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "team_slug", + "description": "team_slug parameter", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Response", + "content": { + "application/json": { + "schema": { + "title": "ExternalGroups", + "description": "A list of external groups available to be connected to a team", + "type": "object", + "properties": { + "groups": { + "description": "An array of external groups available to be mapped to a team", + "example": [ + { + "group_id": 1, + "group_name": "group-azuread-test", + "updated_at": "2021-01-03 22:27:15:000 -700" + }, + { + "group_id": 2, + "group_name": "group-azuread-test2", + "updated_at": "2021-06-03 22:27:15:000 -700" + } + ], + "type": "array", + "items": { + "type": "object", + "required": [ + "group_id", + "group_name", + "updated_at" + ], + "properties": { + "group_id": { + "description": "The internal ID of the group", + "example": 1, + "type": "integer" + }, + "group_name": { + "description": "The display name of the group", + "example": "group-azuread-test", + "type": "string" + }, + "updated_at": { + "description": "The time of the last update for this group", + "example": "2019-06-03 22:27:15:000 -700", + "type": "string" + } + } + } + } + } + }, + "examples": { + "default": { + "value": { + "groups": [ + { + "group_id": "123", + "group_name": "Octocat admins", + "updated_at": "2021-01-24T11:31:04-06:00" + }, + { + "group_id": "456", + "group_name": "Octocat docs members", + "updated_at": "2021-03-24T11:31:04-06:00" + } + ] + } + } + } + } + } + } + }, + "x-github": { + "githubCloudOnly": true, + "enabledForGitHubApps": true, + "previews": [ + + ], + "category": "teams", + "subcategory": "external-groups" + } + } + }, "/orgs/{org}": { "get": { "summary": "Get an organization", From 405891197de8ca9a762108d7a923e3941b372b65 Mon Sep 17 00:00:00 2001 From: github-openapi-bot Date: Fri, 7 Jan 2022 20:19:22 +0000 Subject: [PATCH 07/68] Add decorated OpenAPI schema files --- lib/rest/static/decorated/api.github.com.json | 1365 +++++++++++++++++ lib/rest/static/decorated/github.ae.json | 71 + 2 files changed, 1436 insertions(+) diff --git a/lib/rest/static/decorated/api.github.com.json b/lib/rest/static/decorated/api.github.com.json index 1abdc8937f..8458a270e3 100644 --- a/lib/rest/static/decorated/api.github.com.json +++ b/lib/rest/static/decorated/api.github.com.json @@ -14361,6 +14361,77 @@ } ] }, + { + "verb": "get", + "requestPath": "/organizations/{org}/team/{team_slug}/external-groups", + "serverUrl": "https://api.github.com", + "parameters": [ + { + "name": "org", + "in": "path", + "required": true, + "schema": { + "type": "string" + }, + "descriptionHTML": "" + }, + { + "name": "team_slug", + "description": "team_slug parameter", + "in": "path", + "required": true, + "schema": { + "type": "string" + }, + "descriptionHTML": "

team_slug parameter

" + } + ], + "x-codeSamples": [ + { + "lang": "Shell", + "source": "curl \\\n -H \"Accept: application/vnd.github.v3+json\" \\\n https://api.github.com/organizations/ORG/team/TEAM_SLUG/external-groups", + "html": "
curl \\\n  -H \"Accept: application/vnd.github.v3+json\" \\\n  https://api.github.com/organizations/ORG/team/TEAM_SLUG/external-groups
" + }, + { + "lang": "JavaScript", + "source": "await octokit.request('GET /organizations/{org}/team/{team_slug}/external-groups', {\n org: 'org',\n team_slug: 'team_slug'\n})", + "html": "
await octokit.request('GET /organizations/{org}/team/{team_slug}/external-groups', {\n  org: 'org',\n  team_slug: 'team_slug'\n})\n
" + } + ], + "summary": "List a connection between an external group and a team", + "description": "Lists a connection between a team and an external group.\n\nYou can manage team membership with your identity provider using Enterprise Managed Users for GitHub Enterprise Cloud. For more information, see \"[GitHub's products](https://docs.github.com/github/getting-started-with-github/githubs-products)\" in the GitHub Help documentation.", + "tags": [ + "teams" + ], + "operationId": "teams/list-linked-external-idp-groups-to-team-for-org", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/reference/teams#list-external-idp-group-team-connection" + }, + "x-github": { + "githubCloudOnly": true, + "enabledForGitHubApps": true, + "previews": [], + "category": "teams", + "subcategory": "external-groups" + }, + "slug": "list-a-connection-between-an-external-group-and-a-team", + "category": "teams", + "categoryLabel": "Teams", + "subcategory": "external-groups", + "subcategoryLabel": "External groups", + "notes": [], + "bodyParameters": [], + "descriptionHTML": "

Lists a connection between a team and an external group.

\n

You can manage team membership with your identity provider using Enterprise Managed Users for GitHub Enterprise Cloud. For more information, see \"GitHub's products\" in the GitHub Help documentation.

", + "responses": [ + { + "httpStatusCode": "200", + "httpStatusMessage": "OK", + "description": "Response", + "payload": "
{\n  \"groups\": [\n    {\n      \"group_id\": \"123\",\n      \"group_name\": \"Octocat admins\",\n      \"updated_at\": \"2021-01-24T11:31:04-06:00\"\n    },\n    {\n      \"group_id\": \"456\",\n      \"group_name\": \"Octocat docs members\",\n      \"updated_at\": \"2021-03-24T11:31:04-06:00\"\n    }\n  ]\n}\n
" + } + ] + }, { "verb": "get", "requestPath": "/orgs/{org}", @@ -19228,6 +19299,846 @@ "bodyParameters": [], "descriptionHTML": "

Listing and deleting credential authorizations is available to organizations with GitHub Enterprise Cloud. For more information, see GitHub's products.

\n

An authenticated organization owner with the admin:org scope can remove a credential authorization for an organization that uses SAML SSO. Once you remove someone's credential authorization, they will need to create a new personal access token or SSH key and authorize it for the organization they want to access.

" }, + { + "verb": "get", + "requestPath": "/orgs/{org}/dependabot/secrets", + "serverUrl": "https://api.github.com", + "parameters": [ + { + "name": "org", + "in": "path", + "required": true, + "schema": { + "type": "string" + }, + "descriptionHTML": "" + }, + { + "name": "per_page", + "description": "Results per page (max 100)", + "in": "query", + "schema": { + "type": "integer", + "default": 30 + }, + "descriptionHTML": "

Results per page (max 100)

" + }, + { + "name": "page", + "description": "Page number of the results to fetch.", + "in": "query", + "schema": { + "type": "integer", + "default": 1 + }, + "descriptionHTML": "

Page number of the results to fetch.

" + } + ], + "x-codeSamples": [ + { + "lang": "Shell", + "source": "curl \\\n -H \"Accept: application/vnd.github.v3+json\" \\\n https://api.github.com/orgs/ORG/dependabot/secrets", + "html": "
curl \\\n  -H \"Accept: application/vnd.github.v3+json\" \\\n  https://api.github.com/orgs/ORG/dependabot/secrets
" + }, + { + "lang": "JavaScript", + "source": "await octokit.request('GET /orgs/{org}/dependabot/secrets', {\n org: 'org'\n})", + "html": "
await octokit.request('GET /orgs/{org}/dependabot/secrets', {\n  org: 'org'\n})\n
" + } + ], + "summary": "List organization secrets", + "description": "Lists all secrets available in an organization without revealing their encrypted values. You must authenticate using an access token with the `admin:org` scope to use this endpoint. GitHub Apps must have the `dependabot_secrets` organization permission to use this endpoint.", + "tags": [ + "dependabot" + ], + "operationId": "dependabot/list-org-secrets", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/reference/dependabot#list-organization-secrets" + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "category": "dependabot", + "subcategory": "secrets" + }, + "slug": "list-organization-secrets", + "category": "dependabot", + "categoryLabel": "Dependabot", + "subcategory": "secrets", + "subcategoryLabel": "Secrets", + "notes": [], + "bodyParameters": [], + "descriptionHTML": "

Lists all secrets available in an organization without revealing their encrypted values. You must authenticate using an access token with the admin:org scope to use this endpoint. GitHub Apps must have the dependabot_secrets organization permission to use this endpoint.

", + "responses": [ + { + "httpStatusCode": "200", + "httpStatusMessage": "OK", + "description": "Response", + "payload": "
{\n  \"total_count\": 3,\n  \"secrets\": [\n    {\n      \"name\": \"MY_ARTIFACTORY_PASSWORD\",\n      \"created_at\": \"2021-08-10T14:59:22Z\",\n      \"updated_at\": \"2021-12-10T14:59:22Z\",\n      \"visibility\": \"private\"\n    },\n    {\n      \"name\": \"NPM_TOKEN\",\n      \"created_at\": \"2021-08-10T14:59:22Z\",\n      \"updated_at\": \"2021-12-10T14:59:22Z\",\n      \"visibility\": \"all\"\n    },\n    {\n      \"name\": \"GH_TOKEN\",\n      \"created_at\": \"2021-08-10T14:59:22Z\",\n      \"updated_at\": \"2021-12-10T14:59:22Z\",\n      \"visibility\": \"selected\",\n      \"selected_repositories_url\": \"https://api.github.com/orgs/octo-org/dependabot/secrets/SUPER_SECRET/repositories\"\n    }\n  ]\n}\n
" + } + ] + }, + { + "verb": "get", + "requestPath": "/orgs/{org}/dependabot/secrets/public-key", + "serverUrl": "https://api.github.com", + "parameters": [ + { + "name": "org", + "in": "path", + "required": true, + "schema": { + "type": "string" + }, + "descriptionHTML": "" + } + ], + "x-codeSamples": [ + { + "lang": "Shell", + "source": "curl \\\n -H \"Accept: application/vnd.github.v3+json\" \\\n https://api.github.com/orgs/ORG/dependabot/secrets/public-key", + "html": "
curl \\\n  -H \"Accept: application/vnd.github.v3+json\" \\\n  https://api.github.com/orgs/ORG/dependabot/secrets/public-key
" + }, + { + "lang": "JavaScript", + "source": "await octokit.request('GET /orgs/{org}/dependabot/secrets/public-key', {\n org: 'org'\n})", + "html": "
await octokit.request('GET /orgs/{org}/dependabot/secrets/public-key', {\n  org: 'org'\n})\n
" + } + ], + "summary": "Get an organization public key", + "description": "Gets your public key, which you need to encrypt secrets. You need to encrypt a secret before you can create or update secrets. You must authenticate using an access token with the `admin:org` scope to use this endpoint. GitHub Apps must have the `dependabot_secrets` organization permission to use this endpoint.", + "tags": [ + "dependabot" + ], + "operationId": "dependabot/get-org-public-key", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/reference/dependabot#get-an-organization-public-key" + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "category": "dependabot", + "subcategory": "secrets" + }, + "slug": "get-an-organization-public-key", + "category": "dependabot", + "categoryLabel": "Dependabot", + "subcategory": "secrets", + "subcategoryLabel": "Secrets", + "notes": [], + "bodyParameters": [], + "descriptionHTML": "

Gets your public key, which you need to encrypt secrets. You need to encrypt a secret before you can create or update secrets. You must authenticate using an access token with the admin:org scope to use this endpoint. GitHub Apps must have the dependabot_secrets organization permission to use this endpoint.

", + "responses": [ + { + "httpStatusCode": "200", + "httpStatusMessage": "OK", + "description": "Response", + "payload": "
{\n  \"key_id\": \"012345678912345678\",\n  \"key\": \"2Sg8iYjAxxmI2LvUXpJjkYrMxURPc8r+dB7TJyvv1234\"\n}\n
" + } + ] + }, + { + "verb": "get", + "requestPath": "/orgs/{org}/dependabot/secrets/{secret_name}", + "serverUrl": "https://api.github.com", + "parameters": [ + { + "name": "org", + "in": "path", + "required": true, + "schema": { + "type": "string" + }, + "descriptionHTML": "" + }, + { + "name": "secret_name", + "description": "secret_name parameter", + "in": "path", + "required": true, + "schema": { + "type": "string" + }, + "descriptionHTML": "

secret_name parameter

" + } + ], + "x-codeSamples": [ + { + "lang": "Shell", + "source": "curl \\\n -H \"Accept: application/vnd.github.v3+json\" \\\n https://api.github.com/orgs/ORG/dependabot/secrets/SECRET_NAME", + "html": "
curl \\\n  -H \"Accept: application/vnd.github.v3+json\" \\\n  https://api.github.com/orgs/ORG/dependabot/secrets/SECRET_NAME
" + }, + { + "lang": "JavaScript", + "source": "await octokit.request('GET /orgs/{org}/dependabot/secrets/{secret_name}', {\n org: 'org',\n secret_name: 'secret_name'\n})", + "html": "
await octokit.request('GET /orgs/{org}/dependabot/secrets/{secret_name}', {\n  org: 'org',\n  secret_name: 'secret_name'\n})\n
" + } + ], + "summary": "Get an organization secret", + "description": "Gets a single organization secret without revealing its encrypted value. You must authenticate using an access token with the `admin:org` scope to use this endpoint. GitHub Apps must have the `dependabot_secrets` organization permission to use this endpoint.", + "tags": [ + "dependabot" + ], + "operationId": "dependabot/get-org-secret", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/reference/dependabot#get-an-organization-secret" + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "category": "dependabot", + "subcategory": "secrets" + }, + "slug": "get-an-organization-secret", + "category": "dependabot", + "categoryLabel": "Dependabot", + "subcategory": "secrets", + "subcategoryLabel": "Secrets", + "notes": [], + "bodyParameters": [], + "descriptionHTML": "

Gets a single organization secret without revealing its encrypted value. You must authenticate using an access token with the admin:org scope to use this endpoint. GitHub Apps must have the dependabot_secrets organization permission to use this endpoint.

", + "responses": [ + { + "httpStatusCode": "200", + "httpStatusMessage": "OK", + "description": "Response", + "payload": "
{\n  \"name\": \"NPM_TOKEN\",\n  \"created_at\": \"2019-08-10T14:59:22Z\",\n  \"updated_at\": \"2020-01-10T14:59:22Z\",\n  \"visibility\": \"selected\",\n  \"selected_repositories_url\": \"https://api.github.com/orgs/octo-org/dependabot/secrets/NPM_TOKEN/repositories\"\n}\n
" + } + ] + }, + { + "verb": "put", + "requestPath": "/orgs/{org}/dependabot/secrets/{secret_name}", + "serverUrl": "https://api.github.com", + "parameters": [ + { + "name": "org", + "in": "path", + "required": true, + "schema": { + "type": "string" + }, + "descriptionHTML": "" + }, + { + "name": "secret_name", + "description": "secret_name parameter", + "in": "path", + "required": true, + "schema": { + "type": "string" + }, + "descriptionHTML": "

secret_name parameter

" + } + ], + "x-codeSamples": [ + { + "lang": "Shell", + "source": "curl \\\n -X PUT \\\n -H \"Accept: application/vnd.github.v3+json\" \\\n https://api.github.com/orgs/ORG/dependabot/secrets/SECRET_NAME \\\n -d '{\"visibility\":\"visibility\"}'", + "html": "
curl \\\n  -X PUT \\\n  -H \"Accept: application/vnd.github.v3+json\" \\\n  https://api.github.com/orgs/ORG/dependabot/secrets/SECRET_NAME \\\n  -d '{\"visibility\":\"visibility\"}'
" + }, + { + "lang": "JavaScript", + "source": "await octokit.request('PUT /orgs/{org}/dependabot/secrets/{secret_name}', {\n org: 'org',\n secret_name: 'secret_name',\n visibility: 'visibility'\n})", + "html": "
await octokit.request('PUT /orgs/{org}/dependabot/secrets/{secret_name}', {\n  org: 'org',\n  secret_name: 'secret_name',\n  visibility: 'visibility'\n})\n
" + } + ], + "summary": "Create or update an organization secret", + "description": "Creates or updates an organization secret with an encrypted value. Encrypt your secret using\n[LibSodium](https://libsodium.gitbook.io/doc/bindings_for_other_languages). You must authenticate using an access\ntoken with the `admin:org` scope to use this endpoint. GitHub Apps must have the `dependabot_secrets` organization\npermission to use this endpoint.\n\n#### Example encrypting a secret using Node.js\n\nEncrypt your secret using the [tweetsodium](https://github.com/github/tweetsodium) library.\n\n```\nconst sodium = require('tweetsodium');\n\nconst key = \"base64-encoded-public-key\";\nconst value = \"plain-text-secret\";\n\n// Convert the message and key to Uint8Array's (Buffer implements that interface)\nconst messageBytes = Buffer.from(value);\nconst keyBytes = Buffer.from(key, 'base64');\n\n// Encrypt using LibSodium.\nconst encryptedBytes = sodium.seal(messageBytes, keyBytes);\n\n// Base64 the encrypted secret\nconst encrypted = Buffer.from(encryptedBytes).toString('base64');\n\nconsole.log(encrypted);\n```\n\n\n#### Example encrypting a secret using Python\n\nEncrypt your secret using [pynacl](https://pynacl.readthedocs.io/en/stable/public/#nacl-public-sealedbox) with Python 3.\n\n```\nfrom base64 import b64encode\nfrom nacl import encoding, public\n\ndef encrypt(public_key: str, secret_value: str) -> str:\n \"\"\"Encrypt a Unicode string using the public key.\"\"\"\n public_key = public.PublicKey(public_key.encode(\"utf-8\"), encoding.Base64Encoder())\n sealed_box = public.SealedBox(public_key)\n encrypted = sealed_box.encrypt(secret_value.encode(\"utf-8\"))\n return b64encode(encrypted).decode(\"utf-8\")\n```\n\n#### Example encrypting a secret using C#\n\nEncrypt your secret using the [Sodium.Core](https://www.nuget.org/packages/Sodium.Core/) package.\n\n```\nvar secretValue = System.Text.Encoding.UTF8.GetBytes(\"mySecret\");\nvar publicKey = Convert.FromBase64String(\"2Sg8iYjAxxmI2LvUXpJjkYrMxURPc8r+dB7TJyvvcCU=\");\n\nvar sealedPublicKeyBox = Sodium.SealedPublicKeyBox.Create(secretValue, publicKey);\n\nConsole.WriteLine(Convert.ToBase64String(sealedPublicKeyBox));\n```\n\n#### Example encrypting a secret using Ruby\n\nEncrypt your secret using the [rbnacl](https://github.com/RubyCrypto/rbnacl) gem.\n\n```ruby\nrequire \"rbnacl\"\nrequire \"base64\"\n\nkey = Base64.decode64(\"+ZYvJDZMHUfBkJdyq5Zm9SKqeuBQ4sj+6sfjlH4CgG0=\")\npublic_key = RbNaCl::PublicKey.new(key)\n\nbox = RbNaCl::Boxes::Sealed.from_public_key(public_key)\nencrypted_secret = box.encrypt(\"my_secret\")\n\n# Print the base64 encoded secret\nputs Base64.strict_encode64(encrypted_secret)\n```", + "tags": [ + "dependabot" + ], + "operationId": "dependabot/create-or-update-org-secret", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/reference/dependabot#create-or-update-an-organization-secret" + }, + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "encrypted_value": { + "type": "string", + "description": "

Value for your secret, encrypted with LibSodium using the public key retrieved from the Get an organization public key endpoint.

", + "pattern": "^(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=|[A-Za-z0-9+/]{4})$", + "name": "encrypted_value", + "in": "body", + "rawType": "string", + "rawDescription": "Value for your secret, encrypted with [LibSodium](https://libsodium.gitbook.io/doc/bindings_for_other_languages) using the public key retrieved from the [Get an organization public key](https://docs.github.com/rest/reference/dependabot#get-an-organization-public-key) endpoint.", + "childParamsGroups": [] + }, + "key_id": { + "type": "string", + "description": "

ID of the key you used to encrypt the secret.

", + "name": "key_id", + "in": "body", + "rawType": "string", + "rawDescription": "ID of the key you used to encrypt the secret.", + "childParamsGroups": [] + }, + "visibility": { + "type": "string", + "description": "

Required. Configures the access that repositories have to the organization secret. Can be one of:
\n- all - All repositories in an organization can access the secret.
\n- private - Private repositories in an organization can access the secret.
\n- selected - Only specific repositories can access the secret.

", + "enum": [ + "all", + "private", + "selected" + ], + "name": "visibility", + "in": "body", + "rawType": "string", + "rawDescription": "Configures the access that repositories have to the organization secret. Can be one of: \n\\- `all` - All repositories in an organization can access the secret. \n\\- `private` - Private repositories in an organization can access the secret. \n\\- `selected` - Only specific repositories can access the secret.", + "childParamsGroups": [] + }, + "selected_repository_ids": { + "type": "array of strings", + "description": "

An array of repository ids that can access the organization secret. You can only provide a list of repository ids when the visibility is set to selected. You can manage the list of selected repositories using the List selected repositories for an organization secret, Set selected repositories for an organization secret, and Remove selected repository from an organization secret endpoints.

", + "items": { + "type": "string" + }, + "name": "selected_repository_ids", + "in": "body", + "rawType": "array", + "rawDescription": "An array of repository ids that can access the organization secret. You can only provide a list of repository ids when the `visibility` is set to `selected`. You can manage the list of selected repositories using the [List selected repositories for an organization secret](https://docs.github.com/rest/reference/dependabot#list-selected-repositories-for-an-organization-secret), [Set selected repositories for an organization secret](https://docs.github.com/rest/reference/dependabot#set-selected-repositories-for-an-organization-secret), and [Remove selected repository from an organization secret](https://docs.github.com/rest/reference/dependabot#remove-selected-repository-from-an-organization-secret) endpoints.", + "childParamsGroups": [] + } + }, + "required": [ + "visibility" + ] + }, + "example": { + "encrypted_value": "c2VjcmV0", + "key_id": "012345678912345678", + "visibility": "selected", + "selected_repository_ids": [ + "1296269", + "1296280" + ] + } + } + } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "category": "dependabot", + "subcategory": "secrets" + }, + "slug": "create-or-update-an-organization-secret", + "category": "dependabot", + "categoryLabel": "Dependabot", + "subcategory": "secrets", + "subcategoryLabel": "Secrets", + "contentType": "application/json", + "notes": [], + "responses": [ + { + "httpStatusCode": "201", + "httpStatusMessage": "Created", + "description": "Response when creating a secret" + }, + { + "httpStatusCode": "204", + "httpStatusMessage": "No Content", + "description": "Response when updating a secret" + } + ], + "descriptionHTML": "

Creates or updates an organization secret with an encrypted value. Encrypt your secret using\nLibSodium. You must authenticate using an access\ntoken with the admin:org scope to use this endpoint. GitHub Apps must have the dependabot_secrets organization\npermission to use this endpoint.

\n

Example encrypting a secret using Node.js

\n

Encrypt your secret using the tweetsodium library.

\n
const sodium = require('tweetsodium');\n\nconst key = \"base64-encoded-public-key\";\nconst value = \"plain-text-secret\";\n\n// Convert the message and key to Uint8Array's (Buffer implements that interface)\nconst messageBytes = Buffer.from(value);\nconst keyBytes = Buffer.from(key, 'base64');\n\n// Encrypt using LibSodium.\nconst encryptedBytes = sodium.seal(messageBytes, keyBytes);\n\n// Base64 the encrypted secret\nconst encrypted = Buffer.from(encryptedBytes).toString('base64');\n\nconsole.log(encrypted);\n
\n

Example encrypting a secret using Python

\n

Encrypt your secret using pynacl with Python 3.

\n
from base64 import b64encode\nfrom nacl import encoding, public\n\ndef encrypt(public_key: str, secret_value: str) -> str:\n  \"\"\"Encrypt a Unicode string using the public key.\"\"\"\n  public_key = public.PublicKey(public_key.encode(\"utf-8\"), encoding.Base64Encoder())\n  sealed_box = public.SealedBox(public_key)\n  encrypted = sealed_box.encrypt(secret_value.encode(\"utf-8\"))\n  return b64encode(encrypted).decode(\"utf-8\")\n
\n

Example encrypting a secret using C#

\n

Encrypt your secret using the Sodium.Core package.

\n
var secretValue = System.Text.Encoding.UTF8.GetBytes(\"mySecret\");\nvar publicKey = Convert.FromBase64String(\"2Sg8iYjAxxmI2LvUXpJjkYrMxURPc8r+dB7TJyvvcCU=\");\n\nvar sealedPublicKeyBox = Sodium.SealedPublicKeyBox.Create(secretValue, publicKey);\n\nConsole.WriteLine(Convert.ToBase64String(sealedPublicKeyBox));\n
\n

Example encrypting a secret using Ruby

\n

Encrypt your secret using the rbnacl gem.

\n
require \"rbnacl\"\nrequire \"base64\"\n\nkey = Base64.decode64(\"+ZYvJDZMHUfBkJdyq5Zm9SKqeuBQ4sj+6sfjlH4CgG0=\")\npublic_key = RbNaCl::PublicKey.new(key)\n\nbox = RbNaCl::Boxes::Sealed.from_public_key(public_key)\nencrypted_secret = box.encrypt(\"my_secret\")\n\n# Print the base64 encoded secret\nputs Base64.strict_encode64(encrypted_secret)\n
", + "bodyParameters": [ + { + "type": "string", + "description": "

Value for your secret, encrypted with LibSodium using the public key retrieved from the Get an organization public key endpoint.

", + "pattern": "^(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=|[A-Za-z0-9+/]{4})$", + "name": "encrypted_value", + "in": "body", + "rawType": "string", + "rawDescription": "Value for your secret, encrypted with [LibSodium](https://libsodium.gitbook.io/doc/bindings_for_other_languages) using the public key retrieved from the [Get an organization public key](https://docs.github.com/rest/reference/dependabot#get-an-organization-public-key) endpoint.", + "childParamsGroups": [] + }, + { + "type": "string", + "description": "

ID of the key you used to encrypt the secret.

", + "name": "key_id", + "in": "body", + "rawType": "string", + "rawDescription": "ID of the key you used to encrypt the secret.", + "childParamsGroups": [] + }, + { + "type": "string", + "description": "

Required. Configures the access that repositories have to the organization secret. Can be one of:
\n- all - All repositories in an organization can access the secret.
\n- private - Private repositories in an organization can access the secret.
\n- selected - Only specific repositories can access the secret.

", + "enum": [ + "all", + "private", + "selected" + ], + "name": "visibility", + "in": "body", + "rawType": "string", + "rawDescription": "Configures the access that repositories have to the organization secret. Can be one of: \n\\- `all` - All repositories in an organization can access the secret. \n\\- `private` - Private repositories in an organization can access the secret. \n\\- `selected` - Only specific repositories can access the secret.", + "childParamsGroups": [] + }, + { + "type": "array of strings", + "description": "

An array of repository ids that can access the organization secret. You can only provide a list of repository ids when the visibility is set to selected. You can manage the list of selected repositories using the List selected repositories for an organization secret, Set selected repositories for an organization secret, and Remove selected repository from an organization secret endpoints.

", + "items": { + "type": "string" + }, + "name": "selected_repository_ids", + "in": "body", + "rawType": "array", + "rawDescription": "An array of repository ids that can access the organization secret. You can only provide a list of repository ids when the `visibility` is set to `selected`. You can manage the list of selected repositories using the [List selected repositories for an organization secret](https://docs.github.com/rest/reference/dependabot#list-selected-repositories-for-an-organization-secret), [Set selected repositories for an organization secret](https://docs.github.com/rest/reference/dependabot#set-selected-repositories-for-an-organization-secret), and [Remove selected repository from an organization secret](https://docs.github.com/rest/reference/dependabot#remove-selected-repository-from-an-organization-secret) endpoints.", + "childParamsGroups": [] + } + ] + }, + { + "verb": "delete", + "requestPath": "/orgs/{org}/dependabot/secrets/{secret_name}", + "serverUrl": "https://api.github.com", + "parameters": [ + { + "name": "org", + "in": "path", + "required": true, + "schema": { + "type": "string" + }, + "descriptionHTML": "" + }, + { + "name": "secret_name", + "description": "secret_name parameter", + "in": "path", + "required": true, + "schema": { + "type": "string" + }, + "descriptionHTML": "

secret_name parameter

" + } + ], + "x-codeSamples": [ + { + "lang": "Shell", + "source": "curl \\\n -X DELETE \\\n -H \"Accept: application/vnd.github.v3+json\" \\\n https://api.github.com/orgs/ORG/dependabot/secrets/SECRET_NAME", + "html": "
curl \\\n  -X DELETE \\\n  -H \"Accept: application/vnd.github.v3+json\" \\\n  https://api.github.com/orgs/ORG/dependabot/secrets/SECRET_NAME
" + }, + { + "lang": "JavaScript", + "source": "await octokit.request('DELETE /orgs/{org}/dependabot/secrets/{secret_name}', {\n org: 'org',\n secret_name: 'secret_name'\n})", + "html": "
await octokit.request('DELETE /orgs/{org}/dependabot/secrets/{secret_name}', {\n  org: 'org',\n  secret_name: 'secret_name'\n})\n
" + } + ], + "summary": "Delete an organization secret", + "description": "Deletes a secret in an organization using the secret name. You must authenticate using an access token with the `admin:org` scope to use this endpoint. GitHub Apps must have the `dependabot_secrets` organization permission to use this endpoint.", + "tags": [ + "dependabot" + ], + "operationId": "dependabot/delete-org-secret", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/reference/dependabot#delete-an-organization-secret" + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "category": "dependabot", + "subcategory": "secrets" + }, + "slug": "delete-an-organization-secret", + "category": "dependabot", + "categoryLabel": "Dependabot", + "subcategory": "secrets", + "subcategoryLabel": "Secrets", + "notes": [], + "responses": [ + { + "httpStatusCode": "204", + "httpStatusMessage": "No Content", + "description": "Response" + } + ], + "bodyParameters": [], + "descriptionHTML": "

Deletes a secret in an organization using the secret name. You must authenticate using an access token with the admin:org scope to use this endpoint. GitHub Apps must have the dependabot_secrets organization permission to use this endpoint.

" + }, + { + "verb": "get", + "requestPath": "/orgs/{org}/dependabot/secrets/{secret_name}/repositories", + "serverUrl": "https://api.github.com", + "parameters": [ + { + "name": "org", + "in": "path", + "required": true, + "schema": { + "type": "string" + }, + "descriptionHTML": "" + }, + { + "name": "secret_name", + "description": "secret_name parameter", + "in": "path", + "required": true, + "schema": { + "type": "string" + }, + "descriptionHTML": "

secret_name parameter

" + }, + { + "name": "page", + "description": "Page number of the results to fetch.", + "in": "query", + "schema": { + "type": "integer", + "default": 1 + }, + "descriptionHTML": "

Page number of the results to fetch.

" + }, + { + "name": "per_page", + "description": "Results per page (max 100)", + "in": "query", + "schema": { + "type": "integer", + "default": 30 + }, + "descriptionHTML": "

Results per page (max 100)

" + } + ], + "x-codeSamples": [ + { + "lang": "Shell", + "source": "curl \\\n -H \"Accept: application/vnd.github.v3+json\" \\\n https://api.github.com/orgs/ORG/dependabot/secrets/SECRET_NAME/repositories", + "html": "
curl \\\n  -H \"Accept: application/vnd.github.v3+json\" \\\n  https://api.github.com/orgs/ORG/dependabot/secrets/SECRET_NAME/repositories
" + }, + { + "lang": "JavaScript", + "source": "await octokit.request('GET /orgs/{org}/dependabot/secrets/{secret_name}/repositories', {\n org: 'org',\n secret_name: 'secret_name'\n})", + "html": "
await octokit.request('GET /orgs/{org}/dependabot/secrets/{secret_name}/repositories', {\n  org: 'org',\n  secret_name: 'secret_name'\n})\n
" + } + ], + "summary": "List selected repositories for an organization secret", + "description": "Lists all repositories that have been selected when the `visibility` for repository access to a secret is set to `selected`. You must authenticate using an access token with the `admin:org` scope to use this endpoint. GitHub Apps must have the `dependabot_secrets` organization permission to use this endpoint.", + "tags": [ + "dependabot" + ], + "operationId": "dependabot/list-selected-repos-for-org-secret", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/reference/dependabot#list-selected-repositories-for-an-organization-secret" + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "category": "dependabot", + "subcategory": "secrets" + }, + "slug": "list-selected-repositories-for-an-organization-secret", + "category": "dependabot", + "categoryLabel": "Dependabot", + "subcategory": "secrets", + "subcategoryLabel": "Secrets", + "notes": [], + "bodyParameters": [], + "descriptionHTML": "

Lists all repositories that have been selected when the visibility for repository access to a secret is set to selected. You must authenticate using an access token with the admin:org scope to use this endpoint. GitHub Apps must have the dependabot_secrets organization permission to use this endpoint.

", + "responses": [ + { + "httpStatusCode": "200", + "httpStatusMessage": "OK", + "description": "Response", + "payload": "
{\n  \"total_count\": 1,\n  \"repositories\": [\n    {\n      \"id\": 1296269,\n      \"node_id\": \"MDEwOlJlcG9zaXRvcnkxMjk2MjY5\",\n      \"name\": \"Hello-World\",\n      \"full_name\": \"octocat/Hello-World\",\n      \"owner\": {\n        \"login\": \"octocat\",\n        \"id\": 1,\n        \"node_id\": \"MDQ6VXNlcjE=\",\n        \"avatar_url\": \"https://github.com/images/error/octocat_happy.gif\",\n        \"gravatar_id\": \"\",\n        \"url\": \"https://api.github.com/users/octocat\",\n        \"html_url\": \"https://github.com/octocat\",\n        \"followers_url\": \"https://api.github.com/users/octocat/followers\",\n        \"following_url\": \"https://api.github.com/users/octocat/following{/other_user}\",\n        \"gists_url\": \"https://api.github.com/users/octocat/gists{/gist_id}\",\n        \"starred_url\": \"https://api.github.com/users/octocat/starred{/owner}{/repo}\",\n        \"subscriptions_url\": \"https://api.github.com/users/octocat/subscriptions\",\n        \"organizations_url\": \"https://api.github.com/users/octocat/orgs\",\n        \"repos_url\": \"https://api.github.com/users/octocat/repos\",\n        \"events_url\": \"https://api.github.com/users/octocat/events{/privacy}\",\n        \"received_events_url\": \"https://api.github.com/users/octocat/received_events\",\n        \"type\": \"User\",\n        \"site_admin\": false\n      },\n      \"private\": false,\n      \"html_url\": \"https://github.com/octocat/Hello-World\",\n      \"description\": \"This your first repo!\",\n      \"fork\": false,\n      \"url\": \"https://api.github.com/repos/octocat/Hello-World\",\n      \"archive_url\": \"https://api.github.com/repos/octocat/Hello-World/{archive_format}{/ref}\",\n      \"assignees_url\": \"https://api.github.com/repos/octocat/Hello-World/assignees{/user}\",\n      \"blobs_url\": \"https://api.github.com/repos/octocat/Hello-World/git/blobs{/sha}\",\n      \"branches_url\": \"https://api.github.com/repos/octocat/Hello-World/branches{/branch}\",\n      \"collaborators_url\": \"https://api.github.com/repos/octocat/Hello-World/collaborators{/collaborator}\",\n      \"comments_url\": \"https://api.github.com/repos/octocat/Hello-World/comments{/number}\",\n      \"commits_url\": \"https://api.github.com/repos/octocat/Hello-World/commits{/sha}\",\n      \"compare_url\": \"https://api.github.com/repos/octocat/Hello-World/compare/{base}...{head}\",\n      \"contents_url\": \"https://api.github.com/repos/octocat/Hello-World/contents/{+path}\",\n      \"contributors_url\": \"https://api.github.com/repos/octocat/Hello-World/contributors\",\n      \"deployments_url\": \"https://api.github.com/repos/octocat/Hello-World/deployments\",\n      \"downloads_url\": \"https://api.github.com/repos/octocat/Hello-World/downloads\",\n      \"events_url\": \"https://api.github.com/repos/octocat/Hello-World/events\",\n      \"forks_url\": \"https://api.github.com/repos/octocat/Hello-World/forks\",\n      \"git_commits_url\": \"https://api.github.com/repos/octocat/Hello-World/git/commits{/sha}\",\n      \"git_refs_url\": \"https://api.github.com/repos/octocat/Hello-World/git/refs{/sha}\",\n      \"git_tags_url\": \"https://api.github.com/repos/octocat/Hello-World/git/tags{/sha}\",\n      \"git_url\": \"git:github.com/octocat/Hello-World.git\",\n      \"issue_comment_url\": \"https://api.github.com/repos/octocat/Hello-World/issues/comments{/number}\",\n      \"issue_events_url\": \"https://api.github.com/repos/octocat/Hello-World/issues/events{/number}\",\n      \"issues_url\": \"https://api.github.com/repos/octocat/Hello-World/issues{/number}\",\n      \"keys_url\": \"https://api.github.com/repos/octocat/Hello-World/keys{/key_id}\",\n      \"labels_url\": \"https://api.github.com/repos/octocat/Hello-World/labels{/name}\",\n      \"languages_url\": \"https://api.github.com/repos/octocat/Hello-World/languages\",\n      \"merges_url\": \"https://api.github.com/repos/octocat/Hello-World/merges\",\n      \"milestones_url\": \"https://api.github.com/repos/octocat/Hello-World/milestones{/number}\",\n      \"notifications_url\": \"https://api.github.com/repos/octocat/Hello-World/notifications{?since,all,participating}\",\n      \"pulls_url\": \"https://api.github.com/repos/octocat/Hello-World/pulls{/number}\",\n      \"releases_url\": \"https://api.github.com/repos/octocat/Hello-World/releases{/id}\",\n      \"ssh_url\": \"git@github.com:octocat/Hello-World.git\",\n      \"stargazers_url\": \"https://api.github.com/repos/octocat/Hello-World/stargazers\",\n      \"statuses_url\": \"https://api.github.com/repos/octocat/Hello-World/statuses/{sha}\",\n      \"subscribers_url\": \"https://api.github.com/repos/octocat/Hello-World/subscribers\",\n      \"subscription_url\": \"https://api.github.com/repos/octocat/Hello-World/subscription\",\n      \"tags_url\": \"https://api.github.com/repos/octocat/Hello-World/tags\",\n      \"teams_url\": \"https://api.github.com/repos/octocat/Hello-World/teams\",\n      \"trees_url\": \"https://api.github.com/repos/octocat/Hello-World/git/trees{/sha}\",\n      \"hooks_url\": \"http://api.github.com/repos/octocat/Hello-World/hooks\"\n    }\n  ]\n}\n
" + } + ] + }, + { + "verb": "put", + "requestPath": "/orgs/{org}/dependabot/secrets/{secret_name}/repositories", + "serverUrl": "https://api.github.com", + "parameters": [ + { + "name": "org", + "in": "path", + "required": true, + "schema": { + "type": "string" + }, + "descriptionHTML": "" + }, + { + "name": "secret_name", + "description": "secret_name parameter", + "in": "path", + "required": true, + "schema": { + "type": "string" + }, + "descriptionHTML": "

secret_name parameter

" + } + ], + "x-codeSamples": [ + { + "lang": "Shell", + "source": "curl \\\n -X PUT \\\n -H \"Accept: application/vnd.github.v3+json\" \\\n https://api.github.com/orgs/ORG/dependabot/secrets/SECRET_NAME/repositories \\\n -d '{\"selected_repository_ids\":[42]}'", + "html": "
curl \\\n  -X PUT \\\n  -H \"Accept: application/vnd.github.v3+json\" \\\n  https://api.github.com/orgs/ORG/dependabot/secrets/SECRET_NAME/repositories \\\n  -d '{\"selected_repository_ids\":[42]}'
" + }, + { + "lang": "JavaScript", + "source": "await octokit.request('PUT /orgs/{org}/dependabot/secrets/{secret_name}/repositories', {\n org: 'org',\n secret_name: 'secret_name',\n selected_repository_ids: [\n 42\n ]\n})", + "html": "
await octokit.request('PUT /orgs/{org}/dependabot/secrets/{secret_name}/repositories', {\n  org: 'org',\n  secret_name: 'secret_name',\n  selected_repository_ids: [\n    42\n  ]\n})\n
" + } + ], + "summary": "Set selected repositories for an organization secret", + "description": "Replaces all repositories for an organization secret when the `visibility` for repository access is set to `selected`. The visibility is set when you [Create or update an organization secret](https://docs.github.com/rest/reference/dependabot#create-or-update-an-organization-secret). You must authenticate using an access token with the `admin:org` scope to use this endpoint. GitHub Apps must have the `dependabot_secrets` organization permission to use this endpoint.", + "tags": [ + "dependabot" + ], + "operationId": "dependabot/set-selected-repos-for-org-secret", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/reference/dependabot#set-selected-repositories-for-an-organization-secret" + }, + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "selected_repository_ids": { + "type": "array of integers", + "description": "

Required. An array of repository ids that can access the organization secret. You can only provide a list of repository ids when the visibility is set to selected. You can add and remove individual repositories using the Set selected repositories for an organization secret and Remove selected repository from an organization secret endpoints.

", + "items": { + "type": "integer" + }, + "name": "selected_repository_ids", + "in": "body", + "rawType": "array", + "rawDescription": "An array of repository ids that can access the organization secret. You can only provide a list of repository ids when the `visibility` is set to `selected`. You can add and remove individual repositories using the [Set selected repositories for an organization secret](https://docs.github.com/rest/reference/dependabot#set-selected-repositories-for-an-organization-secret) and [Remove selected repository from an organization secret](https://docs.github.com/rest/reference/dependabot#remove-selected-repository-from-an-organization-secret) endpoints.", + "childParamsGroups": [] + } + }, + "required": [ + "selected_repository_ids" + ] + }, + "example": { + "selected_repository_ids": [ + 64780797 + ] + } + } + } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "category": "dependabot", + "subcategory": "secrets" + }, + "slug": "set-selected-repositories-for-an-organization-secret", + "category": "dependabot", + "categoryLabel": "Dependabot", + "subcategory": "secrets", + "subcategoryLabel": "Secrets", + "contentType": "application/json", + "notes": [], + "responses": [ + { + "httpStatusCode": "204", + "httpStatusMessage": "No Content", + "description": "Response" + } + ], + "descriptionHTML": "

Replaces all repositories for an organization secret when the visibility for repository access is set to selected. The visibility is set when you Create or update an organization secret. You must authenticate using an access token with the admin:org scope to use this endpoint. GitHub Apps must have the dependabot_secrets organization permission to use this endpoint.

", + "bodyParameters": [ + { + "type": "array of integers", + "description": "

Required. An array of repository ids that can access the organization secret. You can only provide a list of repository ids when the visibility is set to selected. You can add and remove individual repositories using the Set selected repositories for an organization secret and Remove selected repository from an organization secret endpoints.

", + "items": { + "type": "integer" + }, + "name": "selected_repository_ids", + "in": "body", + "rawType": "array", + "rawDescription": "An array of repository ids that can access the organization secret. You can only provide a list of repository ids when the `visibility` is set to `selected`. You can add and remove individual repositories using the [Set selected repositories for an organization secret](https://docs.github.com/rest/reference/dependabot#set-selected-repositories-for-an-organization-secret) and [Remove selected repository from an organization secret](https://docs.github.com/rest/reference/dependabot#remove-selected-repository-from-an-organization-secret) endpoints.", + "childParamsGroups": [] + } + ] + }, + { + "verb": "put", + "requestPath": "/orgs/{org}/dependabot/secrets/{secret_name}/repositories/{repository_id}", + "serverUrl": "https://api.github.com", + "parameters": [ + { + "name": "org", + "in": "path", + "required": true, + "schema": { + "type": "string" + }, + "descriptionHTML": "" + }, + { + "name": "secret_name", + "description": "secret_name parameter", + "in": "path", + "required": true, + "schema": { + "type": "string" + }, + "descriptionHTML": "

secret_name parameter

" + }, + { + "name": "repository_id", + "in": "path", + "required": true, + "schema": { + "type": "integer" + }, + "descriptionHTML": "" + } + ], + "x-codeSamples": [ + { + "lang": "Shell", + "source": "curl \\\n -X PUT \\\n -H \"Accept: application/vnd.github.v3+json\" \\\n https://api.github.com/orgs/ORG/dependabot/secrets/SECRET_NAME/repositories/42", + "html": "
curl \\\n  -X PUT \\\n  -H \"Accept: application/vnd.github.v3+json\" \\\n  https://api.github.com/orgs/ORG/dependabot/secrets/SECRET_NAME/repositories/42
" + }, + { + "lang": "JavaScript", + "source": "await octokit.request('PUT /orgs/{org}/dependabot/secrets/{secret_name}/repositories/{repository_id}', {\n org: 'org',\n secret_name: 'secret_name',\n repository_id: 42\n})", + "html": "
await octokit.request('PUT /orgs/{org}/dependabot/secrets/{secret_name}/repositories/{repository_id}', {\n  org: 'org',\n  secret_name: 'secret_name',\n  repository_id: 42\n})\n
" + } + ], + "summary": "Add selected repository to an organization secret", + "description": "Adds a repository to an organization secret when the `visibility` for repository access is set to `selected`. The visibility is set when you [Create or update an organization secret](https://docs.github.com/rest/reference/dependabot#create-or-update-an-organization-secret). You must authenticate using an access token with the `admin:org` scope to use this endpoint. GitHub Apps must have the `dependabot_secrets` organization permission to use this endpoint.", + "tags": [ + "dependabot" + ], + "operationId": "dependabot/add-selected-repo-to-org-secret", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/reference/dependabot#add-selected-repository-to-an-organization-secret" + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "category": "dependabot", + "subcategory": "secrets" + }, + "slug": "add-selected-repository-to-an-organization-secret", + "category": "dependabot", + "categoryLabel": "Dependabot", + "subcategory": "secrets", + "subcategoryLabel": "Secrets", + "notes": [], + "responses": [ + { + "httpStatusCode": "204", + "httpStatusMessage": "No Content", + "description": "No Content when repository was added to the selected list" + }, + { + "httpStatusCode": "409", + "httpStatusMessage": "Conflict", + "description": "Conflict when visibility type is not set to selected" + } + ], + "bodyParameters": [], + "descriptionHTML": "

Adds a repository to an organization secret when the visibility for repository access is set to selected. The visibility is set when you Create or update an organization secret. You must authenticate using an access token with the admin:org scope to use this endpoint. GitHub Apps must have the dependabot_secrets organization permission to use this endpoint.

" + }, + { + "verb": "delete", + "requestPath": "/orgs/{org}/dependabot/secrets/{secret_name}/repositories/{repository_id}", + "serverUrl": "https://api.github.com", + "parameters": [ + { + "name": "org", + "in": "path", + "required": true, + "schema": { + "type": "string" + }, + "descriptionHTML": "" + }, + { + "name": "secret_name", + "description": "secret_name parameter", + "in": "path", + "required": true, + "schema": { + "type": "string" + }, + "descriptionHTML": "

secret_name parameter

" + }, + { + "name": "repository_id", + "in": "path", + "required": true, + "schema": { + "type": "integer" + }, + "descriptionHTML": "" + } + ], + "x-codeSamples": [ + { + "lang": "Shell", + "source": "curl \\\n -X DELETE \\\n -H \"Accept: application/vnd.github.v3+json\" \\\n https://api.github.com/orgs/ORG/dependabot/secrets/SECRET_NAME/repositories/42", + "html": "
curl \\\n  -X DELETE \\\n  -H \"Accept: application/vnd.github.v3+json\" \\\n  https://api.github.com/orgs/ORG/dependabot/secrets/SECRET_NAME/repositories/42
" + }, + { + "lang": "JavaScript", + "source": "await octokit.request('DELETE /orgs/{org}/dependabot/secrets/{secret_name}/repositories/{repository_id}', {\n org: 'org',\n secret_name: 'secret_name',\n repository_id: 42\n})", + "html": "
await octokit.request('DELETE /orgs/{org}/dependabot/secrets/{secret_name}/repositories/{repository_id}', {\n  org: 'org',\n  secret_name: 'secret_name',\n  repository_id: 42\n})\n
" + } + ], + "summary": "Remove selected repository from an organization secret", + "description": "Removes a repository from an organization secret when the `visibility` for repository access is set to `selected`. The visibility is set when you [Create or update an organization secret](https://docs.github.com/rest/reference/dependabot#create-or-update-an-organization-secret). You must authenticate using an access token with the `admin:org` scope to use this endpoint. GitHub Apps must have the `dependabot_secrets` organization permission to use this endpoint.", + "tags": [ + "dependabot" + ], + "operationId": "dependabot/remove-selected-repo-from-org-secret", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/reference/dependabot#remove-selected-repository-from-an-organization-secret" + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "category": "dependabot", + "subcategory": "secrets" + }, + "slug": "remove-selected-repository-from-an-organization-secret", + "category": "dependabot", + "categoryLabel": "Dependabot", + "subcategory": "secrets", + "subcategoryLabel": "Secrets", + "notes": [], + "responses": [ + { + "httpStatusCode": "204", + "httpStatusMessage": "No Content", + "description": "Response when repository was removed from the selected list" + }, + { + "httpStatusCode": "409", + "httpStatusMessage": "Conflict", + "description": "Conflict when visibility type not set to selected" + } + ], + "bodyParameters": [], + "descriptionHTML": "

Removes a repository from an organization secret when the visibility for repository access is set to selected. The visibility is set when you Create or update an organization secret. You must authenticate using an access token with the admin:org scope to use this endpoint. GitHub Apps must have the dependabot_secrets organization permission to use this endpoint.

" + }, { "verb": "get", "requestPath": "/orgs/{org}/events", @@ -55844,6 +56755,460 @@ } ] }, + { + "verb": "get", + "requestPath": "/repos/{owner}/{repo}/dependabot/secrets", + "serverUrl": "https://api.github.com", + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + }, + "descriptionHTML": "" + }, + { + "name": "repo", + "in": "path", + "required": true, + "schema": { + "type": "string" + }, + "descriptionHTML": "" + }, + { + "name": "per_page", + "description": "Results per page (max 100)", + "in": "query", + "schema": { + "type": "integer", + "default": 30 + }, + "descriptionHTML": "

Results per page (max 100)

" + }, + { + "name": "page", + "description": "Page number of the results to fetch.", + "in": "query", + "schema": { + "type": "integer", + "default": 1 + }, + "descriptionHTML": "

Page number of the results to fetch.

" + } + ], + "x-codeSamples": [ + { + "lang": "Shell", + "source": "curl \\\n -H \"Accept: application/vnd.github.v3+json\" \\\n https://api.github.com/repos/octocat/hello-world/dependabot/secrets", + "html": "
curl \\\n  -H \"Accept: application/vnd.github.v3+json\" \\\n  https://api.github.com/repos/octocat/hello-world/dependabot/secrets
" + }, + { + "lang": "JavaScript", + "source": "await octokit.request('GET /repos/{owner}/{repo}/dependabot/secrets', {\n owner: 'octocat',\n repo: 'hello-world'\n})", + "html": "
await octokit.request('GET /repos/{owner}/{repo}/dependabot/secrets', {\n  owner: 'octocat',\n  repo: 'hello-world'\n})\n
" + } + ], + "summary": "List repository secrets", + "description": "Lists all secrets available in a repository without revealing their encrypted values. You must authenticate using an access token with the `repo` scope to use this endpoint. GitHub Apps must have the `dependabot_secrets` repository permission to use this endpoint.", + "tags": [ + "dependabot" + ], + "operationId": "dependabot/list-repo-secrets", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/reference/dependabot#list-repository-secrets" + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "category": "dependabot", + "subcategory": "secrets" + }, + "slug": "list-repository-secrets", + "category": "dependabot", + "categoryLabel": "Dependabot", + "subcategory": "secrets", + "subcategoryLabel": "Secrets", + "notes": [], + "bodyParameters": [], + "descriptionHTML": "

Lists all secrets available in a repository without revealing their encrypted values. You must authenticate using an access token with the repo scope to use this endpoint. GitHub Apps must have the dependabot_secrets repository permission to use this endpoint.

", + "responses": [ + { + "httpStatusCode": "200", + "httpStatusMessage": "OK", + "description": "Response", + "payload": "
{\n  \"total_count\": 2,\n  \"secrets\": [\n    {\n      \"name\": \"AZURE_DEVOPS_PAT\",\n      \"created_at\": \"2019-08-10T14:59:22Z\",\n      \"updated_at\": \"2020-01-10T14:59:22Z\"\n    },\n    {\n      \"name\": \"MY_ARTIFACTORY_PASSWORD\",\n      \"created_at\": \"2020-01-10T10:59:22Z\",\n      \"updated_at\": \"2020-01-11T11:59:22Z\"\n    }\n  ]\n}\n
" + } + ] + }, + { + "verb": "get", + "requestPath": "/repos/{owner}/{repo}/dependabot/secrets/public-key", + "serverUrl": "https://api.github.com", + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + }, + "descriptionHTML": "" + }, + { + "name": "repo", + "in": "path", + "required": true, + "schema": { + "type": "string" + }, + "descriptionHTML": "" + } + ], + "x-codeSamples": [ + { + "lang": "Shell", + "source": "curl \\\n -H \"Accept: application/vnd.github.v3+json\" \\\n https://api.github.com/repos/octocat/hello-world/dependabot/secrets/public-key", + "html": "
curl \\\n  -H \"Accept: application/vnd.github.v3+json\" \\\n  https://api.github.com/repos/octocat/hello-world/dependabot/secrets/public-key
" + }, + { + "lang": "JavaScript", + "source": "await octokit.request('GET /repos/{owner}/{repo}/dependabot/secrets/public-key', {\n owner: 'octocat',\n repo: 'hello-world'\n})", + "html": "
await octokit.request('GET /repos/{owner}/{repo}/dependabot/secrets/public-key', {\n  owner: 'octocat',\n  repo: 'hello-world'\n})\n
" + } + ], + "summary": "Get a repository public key", + "description": "Gets your public key, which you need to encrypt secrets. You need to encrypt a secret before you can create or update secrets. Anyone with read access to the repository can use this endpoint. If the repository is private you must use an access token with the `repo` scope. GitHub Apps must have the `dependabot_secrets` repository permission to use this endpoint.", + "tags": [ + "dependabot" + ], + "operationId": "dependabot/get-repo-public-key", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/reference/dependabot#get-a-repository-public-key" + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "category": "dependabot", + "subcategory": "secrets" + }, + "slug": "get-a-repository-public-key", + "category": "dependabot", + "categoryLabel": "Dependabot", + "subcategory": "secrets", + "subcategoryLabel": "Secrets", + "notes": [], + "bodyParameters": [], + "descriptionHTML": "

Gets your public key, which you need to encrypt secrets. You need to encrypt a secret before you can create or update secrets. Anyone with read access to the repository can use this endpoint. If the repository is private you must use an access token with the repo scope. GitHub Apps must have the dependabot_secrets repository permission to use this endpoint.

", + "responses": [ + { + "httpStatusCode": "200", + "httpStatusMessage": "OK", + "description": "Response", + "payload": "
{\n  \"key_id\": \"012345678912345678\",\n  \"key\": \"2Sg8iYjAxxmI2LvUXpJjkYrMxURPc8r+dB7TJyvv1234\"\n}\n
" + } + ] + }, + { + "verb": "get", + "requestPath": "/repos/{owner}/{repo}/dependabot/secrets/{secret_name}", + "serverUrl": "https://api.github.com", + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + }, + "descriptionHTML": "" + }, + { + "name": "repo", + "in": "path", + "required": true, + "schema": { + "type": "string" + }, + "descriptionHTML": "" + }, + { + "name": "secret_name", + "description": "secret_name parameter", + "in": "path", + "required": true, + "schema": { + "type": "string" + }, + "descriptionHTML": "

secret_name parameter

" + } + ], + "x-codeSamples": [ + { + "lang": "Shell", + "source": "curl \\\n -H \"Accept: application/vnd.github.v3+json\" \\\n https://api.github.com/repos/octocat/hello-world/dependabot/secrets/SECRET_NAME", + "html": "
curl \\\n  -H \"Accept: application/vnd.github.v3+json\" \\\n  https://api.github.com/repos/octocat/hello-world/dependabot/secrets/SECRET_NAME
" + }, + { + "lang": "JavaScript", + "source": "await octokit.request('GET /repos/{owner}/{repo}/dependabot/secrets/{secret_name}', {\n owner: 'octocat',\n repo: 'hello-world',\n secret_name: 'secret_name'\n})", + "html": "
await octokit.request('GET /repos/{owner}/{repo}/dependabot/secrets/{secret_name}', {\n  owner: 'octocat',\n  repo: 'hello-world',\n  secret_name: 'secret_name'\n})\n
" + } + ], + "summary": "Get a repository secret", + "description": "Gets a single repository secret without revealing its encrypted value. You must authenticate using an access token with the `repo` scope to use this endpoint. GitHub Apps must have the `dependabot_secrets` repository permission to use this endpoint.", + "tags": [ + "dependabot" + ], + "operationId": "dependabot/get-repo-secret", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/reference/dependabot#get-a-repository-secret" + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "category": "dependabot", + "subcategory": "secrets" + }, + "slug": "get-a-repository-secret", + "category": "dependabot", + "categoryLabel": "Dependabot", + "subcategory": "secrets", + "subcategoryLabel": "Secrets", + "notes": [], + "bodyParameters": [], + "descriptionHTML": "

Gets a single repository secret without revealing its encrypted value. You must authenticate using an access token with the repo scope to use this endpoint. GitHub Apps must have the dependabot_secrets repository permission to use this endpoint.

", + "responses": [ + { + "httpStatusCode": "200", + "httpStatusMessage": "OK", + "description": "Response", + "payload": "
{\n  \"name\": \"MY_ARTIFACTORY_PASSWORD\",\n  \"created_at\": \"2019-08-10T14:59:22Z\",\n  \"updated_at\": \"2020-01-10T14:59:22Z\"\n}\n
" + } + ] + }, + { + "verb": "put", + "requestPath": "/repos/{owner}/{repo}/dependabot/secrets/{secret_name}", + "serverUrl": "https://api.github.com", + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + }, + "descriptionHTML": "" + }, + { + "name": "repo", + "in": "path", + "required": true, + "schema": { + "type": "string" + }, + "descriptionHTML": "" + }, + { + "name": "secret_name", + "description": "secret_name parameter", + "in": "path", + "required": true, + "schema": { + "type": "string" + }, + "descriptionHTML": "

secret_name parameter

" + } + ], + "x-codeSamples": [ + { + "lang": "Shell", + "source": "curl \\\n -X PUT \\\n -H \"Accept: application/vnd.github.v3+json\" \\\n https://api.github.com/repos/octocat/hello-world/dependabot/secrets/SECRET_NAME \\\n -d '{\"encrypted_value\":\"encrypted_value\"}'", + "html": "
curl \\\n  -X PUT \\\n  -H \"Accept: application/vnd.github.v3+json\" \\\n  https://api.github.com/repos/octocat/hello-world/dependabot/secrets/SECRET_NAME \\\n  -d '{\"encrypted_value\":\"encrypted_value\"}'
" + }, + { + "lang": "JavaScript", + "source": "await octokit.request('PUT /repos/{owner}/{repo}/dependabot/secrets/{secret_name}', {\n owner: 'octocat',\n repo: 'hello-world',\n secret_name: 'secret_name',\n encrypted_value: 'encrypted_value'\n})", + "html": "
await octokit.request('PUT /repos/{owner}/{repo}/dependabot/secrets/{secret_name}', {\n  owner: 'octocat',\n  repo: 'hello-world',\n  secret_name: 'secret_name',\n  encrypted_value: 'encrypted_value'\n})\n
" + } + ], + "summary": "Create or update a repository secret", + "description": "Creates or updates a repository secret with an encrypted value. Encrypt your secret using\n[LibSodium](https://libsodium.gitbook.io/doc/bindings_for_other_languages). You must authenticate using an access\ntoken with the `repo` scope to use this endpoint. GitHub Apps must have the `dependabot_secrets` repository\npermission to use this endpoint.\n\n#### Example encrypting a secret using Node.js\n\nEncrypt your secret using the [tweetsodium](https://github.com/github/tweetsodium) library.\n\n```\nconst sodium = require('tweetsodium');\n\nconst key = \"base64-encoded-public-key\";\nconst value = \"plain-text-secret\";\n\n// Convert the message and key to Uint8Array's (Buffer implements that interface)\nconst messageBytes = Buffer.from(value);\nconst keyBytes = Buffer.from(key, 'base64');\n\n// Encrypt using LibSodium.\nconst encryptedBytes = sodium.seal(messageBytes, keyBytes);\n\n// Base64 the encrypted secret\nconst encrypted = Buffer.from(encryptedBytes).toString('base64');\n\nconsole.log(encrypted);\n```\n\n\n#### Example encrypting a secret using Python\n\nEncrypt your secret using [pynacl](https://pynacl.readthedocs.io/en/stable/public/#nacl-public-sealedbox) with Python 3.\n\n```\nfrom base64 import b64encode\nfrom nacl import encoding, public\n\ndef encrypt(public_key: str, secret_value: str) -> str:\n \"\"\"Encrypt a Unicode string using the public key.\"\"\"\n public_key = public.PublicKey(public_key.encode(\"utf-8\"), encoding.Base64Encoder())\n sealed_box = public.SealedBox(public_key)\n encrypted = sealed_box.encrypt(secret_value.encode(\"utf-8\"))\n return b64encode(encrypted).decode(\"utf-8\")\n```\n\n#### Example encrypting a secret using C#\n\nEncrypt your secret using the [Sodium.Core](https://www.nuget.org/packages/Sodium.Core/) package.\n\n```\nvar secretValue = System.Text.Encoding.UTF8.GetBytes(\"mySecret\");\nvar publicKey = Convert.FromBase64String(\"2Sg8iYjAxxmI2LvUXpJjkYrMxURPc8r+dB7TJyvvcCU=\");\n\nvar sealedPublicKeyBox = Sodium.SealedPublicKeyBox.Create(secretValue, publicKey);\n\nConsole.WriteLine(Convert.ToBase64String(sealedPublicKeyBox));\n```\n\n#### Example encrypting a secret using Ruby\n\nEncrypt your secret using the [rbnacl](https://github.com/RubyCrypto/rbnacl) gem.\n\n```ruby\nrequire \"rbnacl\"\nrequire \"base64\"\n\nkey = Base64.decode64(\"+ZYvJDZMHUfBkJdyq5Zm9SKqeuBQ4sj+6sfjlH4CgG0=\")\npublic_key = RbNaCl::PublicKey.new(key)\n\nbox = RbNaCl::Boxes::Sealed.from_public_key(public_key)\nencrypted_secret = box.encrypt(\"my_secret\")\n\n# Print the base64 encoded secret\nputs Base64.strict_encode64(encrypted_secret)\n```", + "tags": [ + "dependabot" + ], + "operationId": "dependabot/create-or-update-repo-secret", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/reference/dependabot#create-or-update-a-repository-secret" + }, + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "encrypted_value": { + "type": "string", + "description": "

Value for your secret, encrypted with LibSodium using the public key retrieved from the Get a repository public key endpoint.

", + "pattern": "^(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=|[A-Za-z0-9+/]{4})$", + "name": "encrypted_value", + "in": "body", + "rawType": "string", + "rawDescription": "Value for your secret, encrypted with [LibSodium](https://libsodium.gitbook.io/doc/bindings_for_other_languages) using the public key retrieved from the [Get a repository public key](https://docs.github.com/rest/reference/dependabot#get-a-repository-public-key) endpoint.", + "childParamsGroups": [] + }, + "key_id": { + "type": "string", + "description": "

ID of the key you used to encrypt the secret.

", + "name": "key_id", + "in": "body", + "rawType": "string", + "rawDescription": "ID of the key you used to encrypt the secret.", + "childParamsGroups": [] + } + } + }, + "example": { + "encrypted_value": "c2VjcmV0", + "key_id": "012345678912345678" + } + } + } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "category": "dependabot", + "subcategory": "secrets" + }, + "slug": "create-or-update-a-repository-secret", + "category": "dependabot", + "categoryLabel": "Dependabot", + "subcategory": "secrets", + "subcategoryLabel": "Secrets", + "contentType": "application/json", + "notes": [], + "responses": [ + { + "httpStatusCode": "201", + "httpStatusMessage": "Created", + "description": "Response when creating a secret" + }, + { + "httpStatusCode": "204", + "httpStatusMessage": "No Content", + "description": "Response when updating a secret" + } + ], + "descriptionHTML": "

Creates or updates a repository secret with an encrypted value. Encrypt your secret using\nLibSodium. You must authenticate using an access\ntoken with the repo scope to use this endpoint. GitHub Apps must have the dependabot_secrets repository\npermission to use this endpoint.

\n

Example encrypting a secret using Node.js

\n

Encrypt your secret using the tweetsodium library.

\n
const sodium = require('tweetsodium');\n\nconst key = \"base64-encoded-public-key\";\nconst value = \"plain-text-secret\";\n\n// Convert the message and key to Uint8Array's (Buffer implements that interface)\nconst messageBytes = Buffer.from(value);\nconst keyBytes = Buffer.from(key, 'base64');\n\n// Encrypt using LibSodium.\nconst encryptedBytes = sodium.seal(messageBytes, keyBytes);\n\n// Base64 the encrypted secret\nconst encrypted = Buffer.from(encryptedBytes).toString('base64');\n\nconsole.log(encrypted);\n
\n

Example encrypting a secret using Python

\n

Encrypt your secret using pynacl with Python 3.

\n
from base64 import b64encode\nfrom nacl import encoding, public\n\ndef encrypt(public_key: str, secret_value: str) -> str:\n  \"\"\"Encrypt a Unicode string using the public key.\"\"\"\n  public_key = public.PublicKey(public_key.encode(\"utf-8\"), encoding.Base64Encoder())\n  sealed_box = public.SealedBox(public_key)\n  encrypted = sealed_box.encrypt(secret_value.encode(\"utf-8\"))\n  return b64encode(encrypted).decode(\"utf-8\")\n
\n

Example encrypting a secret using C#

\n

Encrypt your secret using the Sodium.Core package.

\n
var secretValue = System.Text.Encoding.UTF8.GetBytes(\"mySecret\");\nvar publicKey = Convert.FromBase64String(\"2Sg8iYjAxxmI2LvUXpJjkYrMxURPc8r+dB7TJyvvcCU=\");\n\nvar sealedPublicKeyBox = Sodium.SealedPublicKeyBox.Create(secretValue, publicKey);\n\nConsole.WriteLine(Convert.ToBase64String(sealedPublicKeyBox));\n
\n

Example encrypting a secret using Ruby

\n

Encrypt your secret using the rbnacl gem.

\n
require \"rbnacl\"\nrequire \"base64\"\n\nkey = Base64.decode64(\"+ZYvJDZMHUfBkJdyq5Zm9SKqeuBQ4sj+6sfjlH4CgG0=\")\npublic_key = RbNaCl::PublicKey.new(key)\n\nbox = RbNaCl::Boxes::Sealed.from_public_key(public_key)\nencrypted_secret = box.encrypt(\"my_secret\")\n\n# Print the base64 encoded secret\nputs Base64.strict_encode64(encrypted_secret)\n
", + "bodyParameters": [ + { + "type": "string", + "description": "

Value for your secret, encrypted with LibSodium using the public key retrieved from the Get a repository public key endpoint.

", + "pattern": "^(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=|[A-Za-z0-9+/]{4})$", + "name": "encrypted_value", + "in": "body", + "rawType": "string", + "rawDescription": "Value for your secret, encrypted with [LibSodium](https://libsodium.gitbook.io/doc/bindings_for_other_languages) using the public key retrieved from the [Get a repository public key](https://docs.github.com/rest/reference/dependabot#get-a-repository-public-key) endpoint.", + "childParamsGroups": [] + }, + { + "type": "string", + "description": "

ID of the key you used to encrypt the secret.

", + "name": "key_id", + "in": "body", + "rawType": "string", + "rawDescription": "ID of the key you used to encrypt the secret.", + "childParamsGroups": [] + } + ] + }, + { + "verb": "delete", + "requestPath": "/repos/{owner}/{repo}/dependabot/secrets/{secret_name}", + "serverUrl": "https://api.github.com", + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + }, + "descriptionHTML": "" + }, + { + "name": "repo", + "in": "path", + "required": true, + "schema": { + "type": "string" + }, + "descriptionHTML": "" + }, + { + "name": "secret_name", + "description": "secret_name parameter", + "in": "path", + "required": true, + "schema": { + "type": "string" + }, + "descriptionHTML": "

secret_name parameter

" + } + ], + "x-codeSamples": [ + { + "lang": "Shell", + "source": "curl \\\n -X DELETE \\\n -H \"Accept: application/vnd.github.v3+json\" \\\n https://api.github.com/repos/octocat/hello-world/dependabot/secrets/SECRET_NAME", + "html": "
curl \\\n  -X DELETE \\\n  -H \"Accept: application/vnd.github.v3+json\" \\\n  https://api.github.com/repos/octocat/hello-world/dependabot/secrets/SECRET_NAME
" + }, + { + "lang": "JavaScript", + "source": "await octokit.request('DELETE /repos/{owner}/{repo}/dependabot/secrets/{secret_name}', {\n owner: 'octocat',\n repo: 'hello-world',\n secret_name: 'secret_name'\n})", + "html": "
await octokit.request('DELETE /repos/{owner}/{repo}/dependabot/secrets/{secret_name}', {\n  owner: 'octocat',\n  repo: 'hello-world',\n  secret_name: 'secret_name'\n})\n
" + } + ], + "summary": "Delete a repository secret", + "description": "Deletes a secret in a repository using the secret name. You must authenticate using an access token with the `repo` scope to use this endpoint. GitHub Apps must have the `dependabot_secrets` repository permission to use this endpoint.", + "tags": [ + "dependabot" + ], + "operationId": "dependabot/delete-repo-secret", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/reference/dependabot#delete-a-repository-secret" + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "category": "dependabot", + "subcategory": "secrets" + }, + "slug": "delete-a-repository-secret", + "category": "dependabot", + "categoryLabel": "Dependabot", + "subcategory": "secrets", + "subcategoryLabel": "Secrets", + "notes": [], + "responses": [ + { + "httpStatusCode": "204", + "httpStatusMessage": "No Content", + "description": "Response" + } + ], + "bodyParameters": [], + "descriptionHTML": "

Deletes a secret in a repository using the secret name. You must authenticate using an access token with the repo scope to use this endpoint. GitHub Apps must have the dependabot_secrets repository permission to use this endpoint.

" + }, { "verb": "get", "requestPath": "/repos/{owner}/{repo}/deployments", diff --git a/lib/rest/static/decorated/github.ae.json b/lib/rest/static/decorated/github.ae.json index 1621e4368a..7d89ca391b 100644 --- a/lib/rest/static/decorated/github.ae.json +++ b/lib/rest/static/decorated/github.ae.json @@ -12015,6 +12015,77 @@ } ] }, + { + "verb": "get", + "requestPath": "/organizations/{org}/team/{team_slug}/external-groups", + "serverUrl": "https://{hostname}/api/v3", + "parameters": [ + { + "name": "org", + "in": "path", + "required": true, + "schema": { + "type": "string" + }, + "descriptionHTML": "" + }, + { + "name": "team_slug", + "description": "team_slug parameter", + "in": "path", + "required": true, + "schema": { + "type": "string" + }, + "descriptionHTML": "

team_slug parameter

" + } + ], + "x-codeSamples": [ + { + "lang": "Shell", + "source": "curl \\\n -H \"Accept: application/vnd.github.v3+json\" \\\n https://{hostname}/api/v3/organizations/ORG/team/TEAM_SLUG/external-groups", + "html": "
curl \\\n  -H \"Accept: application/vnd.github.v3+json\" \\\n  https://{hostname}/api/v3/organizations/ORG/team/TEAM_SLUG/external-groups
" + }, + { + "lang": "JavaScript", + "source": "await octokit.request('GET /organizations/{org}/team/{team_slug}/external-groups', {\n org: 'org',\n team_slug: 'team_slug'\n})", + "html": "
await octokit.request('GET /organizations/{org}/team/{team_slug}/external-groups', {\n  org: 'org',\n  team_slug: 'team_slug'\n})\n
" + } + ], + "summary": "List a connection between an external group and a team", + "description": "Lists a connection between a team and an external group.\n\nYou can manage team membership with your identity provider using Enterprise Managed Users for GitHub Enterprise Cloud. For more information, see \"[GitHub's products](https://docs.github.com/github-ae@latest/github/getting-started-with-github/githubs-products)\" in the GitHub Help documentation.", + "tags": [ + "teams" + ], + "operationId": "teams/list-linked-external-idp-groups-to-team-for-org", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/github-ae@latest/rest/reference/teams#list-external-idp-group-team-connection" + }, + "x-github": { + "githubCloudOnly": true, + "enabledForGitHubApps": true, + "previews": [], + "category": "teams", + "subcategory": "external-groups" + }, + "slug": "list-a-connection-between-an-external-group-and-a-team", + "category": "teams", + "categoryLabel": "Teams", + "subcategory": "external-groups", + "subcategoryLabel": "External groups", + "notes": [], + "bodyParameters": [], + "descriptionHTML": "

Lists a connection between a team and an external group.

\n

You can manage team membership with your identity provider using Enterprise Managed Users for GitHub Enterprise Cloud. For more information, see \"GitHub's products\" in the GitHub Help documentation.

", + "responses": [ + { + "httpStatusCode": "200", + "httpStatusMessage": "OK", + "description": "Response", + "payload": "
{\n  \"groups\": [\n    {\n      \"group_id\": \"123\",\n      \"group_name\": \"Octocat admins\",\n      \"updated_at\": \"2021-01-24T11:31:04-06:00\"\n    },\n    {\n      \"group_id\": \"456\",\n      \"group_name\": \"Octocat docs members\",\n      \"updated_at\": \"2021-03-24T11:31:04-06:00\"\n    }\n  ]\n}\n
" + } + ] + }, { "verb": "get", "requestPath": "/orgs/{org}", From 2e97911ebe8e737130ac58194ab80b7ed40a3f0d Mon Sep 17 00:00:00 2001 From: Jules Parker <19994093+jules-p@users.noreply.github.com> Date: Mon, 10 Jan 2022 12:01:15 +0100 Subject: [PATCH 08/68] adds clarifying language on scan triggers --- .../about-alerts-for-vulnerable-dependencies.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/content/code-security/supply-chain-security/managing-vulnerabilities-in-your-projects-dependencies/about-alerts-for-vulnerable-dependencies.md b/content/code-security/supply-chain-security/managing-vulnerabilities-in-your-projects-dependencies/about-alerts-for-vulnerable-dependencies.md index 1312ef64f1..367a0af3e7 100644 --- a/content/code-security/supply-chain-security/managing-vulnerabilities-in-your-projects-dependencies/about-alerts-for-vulnerable-dependencies.md +++ b/content/code-security/supply-chain-security/managing-vulnerabilities-in-your-projects-dependencies/about-alerts-for-vulnerable-dependencies.md @@ -32,7 +32,7 @@ When your code depends on a package that has a security vulnerability, this vuln {% data reusables.dependabot.dependabot-alerts-beta %} -{% data variables.product.prodname_dependabot %} detects vulnerable dependencies and sends {% data variables.product.prodname_dependabot_alerts %} when: +{% data variables.product.prodname_dependabot %} performs a scan to detect vulnerable dependencies and sends {% data variables.product.prodname_dependabot_alerts %} when: {% ifversion fpt or ghec %} - A new vulnerability is added to the {% data variables.product.prodname_advisory_database %}. For more information, see "[Browsing security vulnerabilities in the {% data variables.product.prodname_advisory_database %}](/code-security/supply-chain-security/managing-vulnerabilities-in-your-projects-dependencies/browsing-security-vulnerabilities-in-the-github-advisory-database)" and "[About {% data variables.product.prodname_security_advisories %}](/code-security/security-advisories/about-github-security-advisories)."{% else %} From 6d714615d05839ffbaac991263e2c10d74c51565 Mon Sep 17 00:00:00 2001 From: Jurre Stender Date: Mon, 10 Jan 2022 09:34:07 +0000 Subject: [PATCH 09/68] Publish Dependabot Secrets REST API docs --- content/rest/reference/dependabot.md | 19 +++++++++++++++++++ content/rest/reference/index.md | 2 +- .../permissions-required-for-github-apps.md | 18 ++++++++++++++++++ 3 files changed, 38 insertions(+), 1 deletion(-) create mode 100644 content/rest/reference/dependabot.md diff --git a/content/rest/reference/dependabot.md b/content/rest/reference/dependabot.md new file mode 100644 index 0000000000..efff366858 --- /dev/null +++ b/content/rest/reference/dependabot.md @@ -0,0 +1,19 @@ +--- +title: Dependabot +intro: 'With the {% data variables.product.prodname_dependabot %} Secrets API, you can manage and control {% data variables.product.prodname_dependabot %} Secrets for an organization or repository.' +versions: + fpt: '*' + ghes: '>=3.4' + ghec: '*' +topics: + - API +miniTocMaxHeadingLevel: 3 +--- + +The {% data variables.product.prodname_dependabot %} Secrets API lets you create, update, delete, and retrieve information about encrypted secrets. {% data reusables.actions.about-secrets %} For more information, see "[Managing encrypted secrets for Dependabot](/code-security/supply-chain-security/keeping-your-dependencies-updated-automatically/managing-encrypted-secrets-for-dependabot)." + +{% data reusables.actions.actions-authentication %} {% data variables.product.prodname_github_apps %} must have the `dependabot_secrets` permission to use this API. Authenticated users must have collaborator access to a repository to create, update, or read secrets. + +{% for operation in currentRestOperations %} + {% if operation.subcategory == 'secrets' %}{% include rest_operation %}{% endif %} +{% endfor %} diff --git a/content/rest/reference/index.md b/content/rest/reference/index.md index eb8dc90939..5494db97e9 100644 --- a/content/rest/reference/index.md +++ b/content/rest/reference/index.md @@ -21,6 +21,7 @@ children: - /codespaces - /commits - /collaborators + - /dependabot - /deployments - /emojis - /enterprise-admin @@ -52,4 +53,3 @@ children: - /webhooks - /permissions-required-for-github-apps --- - diff --git a/content/rest/reference/permissions-required-for-github-apps.md b/content/rest/reference/permissions-required-for-github-apps.md index a067fef447..cd04125707 100644 --- a/content/rest/reference/permissions-required-for-github-apps.md +++ b/content/rest/reference/permissions-required-for-github-apps.md @@ -872,6 +872,24 @@ _Teams_ - [`DELETE /orgs/:org/actions/secrets/:secret_name`](/rest/reference/actions#delete-an-organization-secret) (:write) {% endif %} +{% ifversion fpt or ghec %} +### Permissions on "dependabot_secrets" +- [`GET /repos/:owner/:repo/dependabot/secrets/public-key`](/rest/reference/dependabot#get-a-repository-public-key) (:read) +- [`GET /repos/:owner/:repo/dependabot/secrets`](/rest/reference/dependabot#list-repository-secrets) (:read) +- [`GET /repos/:owner/:repo/dependabot/secrets/:secret_name`](/rest/reference/dependabot#get-a-repository-secret) (:read) +- [`PUT /repos/:owner/:repo/dependabot/secrets/:secret_name`](/rest/reference/dependabot#create-or-update-a-repository-secret) (:write) +- [`DELETE /repos/:owner/:repo/dependabot/secrets/:secret_name`](/rest/reference/dependabot#delete-a-repository-secret) (:write) +- [`GET /orgs/:org/dependabot/secrets/public-key`](/rest/reference/dependabot#get-an-organization-public-key) (:read) +- [`GET /orgs/:org/dependabot/secrets`](/rest/reference/dependabot#list-organization-secrets) (:read) +- [`GET /orgs/:org/dependabot/secrets/:secret_name`](/rest/reference/dependabot#get-an-organization-secret) (:read) +- [`PUT /orgs/:org/dependabot/secrets/:secret_name`](/rest/reference/dependabot#create-or-update-an-organization-secret) (:write) +- [`GET /orgs/:org/dependabot/secrets/:secret_name/repositories`](/rest/reference/dependabot#list-selected-repositories-for-an-organization-secret) (:read) +- [`PUT /orgs/:org/dependabot/secrets/:secret_name/repositories`](/rest/reference/dependabot#set-selected-repositories-for-an-organization-secret) (:write) +- [`PUT /orgs/:org/dependabot/secrets/:secret_name/repositories/:repository_id`](/rest/reference/dependabot#add-selected-repository-to-an-organization-secret) (:write) +- [`DELETE /orgs/:org/dependabot/secrets/:secret_name/repositories/:repository_id`](/rest/reference/dependabot#remove-selected-repository-from-an-organization-secret) (:write) +- [`DELETE /orgs/:org/dependabot/secrets/:secret_name`](/rest/reference/dependabot#delete-an-organization-secret) (:write) +{% endif %} + {% ifversion fpt or ghes > 3.0 or ghec %} ### Permission on "secret scanning alerts" From ab62d49e7d649492d091039bc3b0a5e1bbd8ab4d Mon Sep 17 00:00:00 2001 From: Anil Seervi <61609033+AnilSeervi@users.noreply.github.com> Date: Mon, 10 Jan 2022 14:59:41 +0000 Subject: [PATCH 10/68] Update keyboard shortcuts to new style guidelines --- .../using-github/github-command-palette.md | 20 +++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/content/get-started/using-github/github-command-palette.md b/content/get-started/using-github/github-command-palette.md index 37b977176b..1f015ffbeb 100644 --- a/content/get-started/using-github/github-command-palette.md +++ b/content/get-started/using-github/github-command-palette.md @@ -29,8 +29,8 @@ The ability to run commands directly from your keyboard, without navigating thro ## Opening the {% data variables.product.prodname_command_palette %} Open the command palette using one of the following keyboard shortcuts: -- Windows and Linux: Ctrlk or Ctrlaltk -- Mac: k or optionk +- Windows and Linux: Ctrl+K or Ctrl+Alt+K +- Mac: Command+K or Command+Option+K When you open the command palette, it shows your location at the top left and uses it as the scope for suggestions (for example, the `mashed-avocado` organization). @@ -39,7 +39,7 @@ When you open the command palette, it shows your location at the top left and us {% note %} **Notes:** -- If you are editing Markdown text, open the command palette with Ctrlaltk (Windows and Linux) or optionk (Mac). +- If you are editing Markdown text, open the command palette with Ctrl+Alt+K (Windows and Linux) or Command+Option+K (Mac). - If you are working on a project (beta), a project-specific command palette is displayed instead. For more information, see "[Customizing your project (beta) views](/issues/trying-out-the-new-projects-experience/customizing-your-project-views)." {% endnote %} @@ -60,7 +60,7 @@ You can use the command palette to navigate to any page that you have access to 4. Finish entering the path, or use the arrow keys to highlight the path you want from the list of suggestions. -5. Use Enter to jump to your chosen location. Alternatively, use CtrlEnter (Windows and Linux) or Enter (Mac) to open the location in a new browser tab. +5. Use Enter to jump to your chosen location. Alternatively, use Ctrl+Enter (Windows and Linux) or Command+Enter (Mac) to open the location in a new browser tab. ## Searching with the {% data variables.product.prodname_command_palette %} @@ -87,7 +87,7 @@ You can use the command palette to search for anything on {% data variables.prod {% endtip %} -5. Use the arrow keys to highlight the search result you want and use Enter to jump to your chosen location. Alternatively, use CtrlEnter (Windows and Linux) or Enter (Mac) to open the location in a new browser tab. +5. Use the arrow keys to highlight the search result you want and use Enter to jump to your chosen location. Alternatively, use Ctrl+Enter (Windows and Linux) or Command+Enter (Mac) to open the location in a new browser tab. ## Running commands from the {% data variables.product.prodname_command_palette %} @@ -98,7 +98,7 @@ You can use the {% data variables.product.prodname_command_palette %} to run com For a full list of supported commands, see "[{% data variables.product.prodname_command_palette %} reference](#github-command-palette-reference)." -1. Use CtrlShiftk (Windows and Linux) or Shiftk (Mac) to open the command palette in command mode. If you already have the command palette open, press > to switch to command mode. {% data variables.product.prodname_dotcom %} suggests commands based on your location. +1. Use Ctrl+Shift+K (Windows and Linux) or Command+Shift+K (Mac) to open the command palette in command mode. If you already have the command palette open, press > to switch to command mode. {% data variables.product.prodname_dotcom %} suggests commands based on your location. ![Command palette command mode](/assets/images/help/command-palette/command-palette-command-mode.png) @@ -112,8 +112,8 @@ For a full list of supported commands, see "[{% data variables.product.prodname_ When the command palette is active, you can use one of the following keyboard shortcuts to close the command palette: -- Search and navigation mode: esc or Ctrlk (Windows and Linux) k (Mac) -- Command mode: esc or CtrlShiftk (Windows and Linux) Shiftk (Mac) +- Search and navigation mode: Esc or Ctrl+K (Windows and Linux) Command+K (Mac) +- Command mode: Esc or Ctrl+Shift+K (Windows and Linux) Command+Shift+K (Mac) ## {% data variables.product.prodname_command_palette %} reference @@ -128,9 +128,9 @@ These keystrokes are available when the command palette is in navigation and sea |@| Search for users, organizations, and repositories. For more information, see "[Searching with the {% data variables.product.prodname_command_palette %}](#searching-with-the-github-command-palette)."| |/| Search for files within a repository scope or repositories within an organization scope. For more information, see "[Searching with the {% data variables.product.prodname_command_palette %}](#searching-with-the-github-command-palette)." | |!| Search just for projects. For more information, see "[Searching with the {% data variables.product.prodname_command_palette %}](#searching-with-the-github-command-palette)."| -|Ctrlc or c| Copy the search or navigation URL for the highlighted result to the clipboard.| +|Ctrl+C or Command+C| Copy the search or navigation URL for the highlighted result to the clipboard.| |Enter| Jump to the highlighted result or run the highlighted command.| -|CtrlEnter or Enter| Open the highlighted search or navigation result in a new brower tab.| +|Ctrl+Enter or Command+Enter| Open the highlighted search or navigation result in a new brower tab.| |?| Display help within the command palette.| ### Global commands From 96a5cead2ebe407addc480a3496062d76b2bd222 Mon Sep 17 00:00:00 2001 From: Anil Seervi <61609033+AnilSeervi@users.noreply.github.com> Date: Mon, 10 Jan 2022 20:35:22 +0530 Subject: [PATCH 11/68] Update keyboard shortcuts to meet new style guidelines --- .../using-the-vs-code-command-palette-in-codespaces.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/content/codespaces/codespaces-reference/using-the-vs-code-command-palette-in-codespaces.md b/content/codespaces/codespaces-reference/using-the-vs-code-command-palette-in-codespaces.md index 15f78fb8eb..1abf739940 100644 --- a/content/codespaces/codespaces-reference/using-the-vs-code-command-palette-in-codespaces.md +++ b/content/codespaces/codespaces-reference/using-the-vs-code-command-palette-in-codespaces.md @@ -23,10 +23,10 @@ The Command Palette is one of the focal features of {% data variables.product.pr You can access the {% data variables.product.prodname_vscode_command_palette %} in a number of ways. -- `Shift + Command + P` (Mac) / `Ctrl + Shift + P` (Windows). +- Shift+Command+P (Mac) / Ctrl+Shift+P (Windows/Linux). Note that this command is a reserved keyboard shortcut in Firefox. -- `F1` +- F1 - From the Application Menu, click **View > Command Palette…**. ![The application menu](/assets/images/help/codespaces/codespaces-view-menu.png) From 5b87d853581ca9c57cf3655679d7748fa32b3fa3 Mon Sep 17 00:00:00 2001 From: Anil Seervi <61609033+AnilSeervi@users.noreply.github.com> Date: Mon, 10 Jan 2022 20:49:03 +0530 Subject: [PATCH 12/68] Update keyboard shortcut to meet new style guidelines --- .../managing-commits/squashing-commits.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/content/desktop/contributing-and-collaborating-using-github-desktop/managing-commits/squashing-commits.md b/content/desktop/contributing-and-collaborating-using-github-desktop/managing-commits/squashing-commits.md index 25aa8bdc8b..d389962f6c 100644 --- a/content/desktop/contributing-and-collaborating-using-github-desktop/managing-commits/squashing-commits.md +++ b/content/desktop/contributing-and-collaborating-using-github-desktop/managing-commits/squashing-commits.md @@ -16,7 +16,7 @@ Squashing allows you to combine multiple commits in your branch's history into a {% data reusables.desktop.current-branch-menu %} 2. In the list of branches, select the branch that has the commits that you want to squash. {% data reusables.desktop.history-tab %} -4. Select the commits to squash and drop them on the commit you want to combine them with. You can select one commit or select multiple commits using or Shift. +4. Select the commits to squash and drop them on the commit you want to combine them with. You can select one commit or select multiple commits using Command or Shift. ![squash drag and drop](/assets/images/help/desktop/squash-drag-and-drop.png) 5. Modify the commit message of your new commit. The commit messages of the selected commits you want to squash are pre-filled into the **Summary** and **Description** fields. 6. Click **Squash Commits**. From 2969d6640e2b83085e8ed969dd43d9c6b7b905dc Mon Sep 17 00:00:00 2001 From: Anil Seervi <61609033+AnilSeervi@users.noreply.github.com> Date: Mon, 10 Jan 2022 21:13:52 +0530 Subject: [PATCH 13/68] Update keyboard shortcut to meet new style guidelines --- data/reusables/desktop/delete-branch-win.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/data/reusables/desktop/delete-branch-win.md b/data/reusables/desktop/delete-branch-win.md index 90b7d37719..4053cb7cce 100644 --- a/data/reusables/desktop/delete-branch-win.md +++ b/data/reusables/desktop/delete-branch-win.md @@ -1 +1 @@ -1. In your menu bar, click **Branch**, then click **Delete...**. You can also press CtrlShiftD. +1. In your menu bar, click **Branch**, then click **Delete...**. You can also press Ctrl+Shift+D. From bf0d91c1e0b7c9e058fe211405d1a7e3df0dba71 Mon Sep 17 00:00:00 2001 From: Jules Parker <19994093+jules-p@users.noreply.github.com> Date: Mon, 10 Jan 2022 16:44:07 +0100 Subject: [PATCH 14/68] Revert "Updating Unwatch a Repository to include Multiple Repositories" --- .../unsubscribe-from-all-repos.png | Bin 292545 -> 0 bytes .../notifications-v2/unwatch-repo-dialog.png | Bin 28366 -> 0 bytes .../managing-your-subscriptions.md | 45 ++++++------------ .../custom-notification-types.md | 8 ++-- 4 files changed, 20 insertions(+), 33 deletions(-) delete mode 100644 assets/images/help/notifications-v2/unsubscribe-from-all-repos.png delete mode 100644 assets/images/help/notifications-v2/unwatch-repo-dialog.png diff --git a/assets/images/help/notifications-v2/unsubscribe-from-all-repos.png b/assets/images/help/notifications-v2/unsubscribe-from-all-repos.png deleted file mode 100644 index 60913fb588af8aa2f67d341d3230ed55e04517dd..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 292545 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
$GIT_DIR
| Ruta al repositorio remoto en la instancia | /data/user/repositories/a/ab/
a1/b2/34/100001234/1234.git | -|
$GIT_PUSH_OPTION_COUNT
| La cantidad de opciones de subida que envió el cliente con `--push-option`. Para obtener más información, consulta la sección "[git-push](https://git-scm.com/docs/git-push#Documentation/git-push.txt---push-optionltoptiongt)" en la documentación de Git. | 1 | -|
$GIT\_PUSH\_OPTION\_N
| Donde _N_ es un número entero que comienza con 0, esta variable contiene la cadena de opción de subida que envió el cliente. La primera opción que se envió se almacena en `GIT_PUSH_OPTION_0`, la segunda opción que se envió se almacena en `GIT_PUSH_OPTION_1`, y así sucesivamente. Para obtener más información sobre las opciones de subida, consulta "[git-push](https://git-scm.com/docs/git-push#git-push---push-optionltoptiongt)" en la documentación de Git. | abcd |{% ifversion ghes %} -|
$GIT_USER_AGENT
| El cliente de Git que subió los cambios envía la secuencia de usuario-agente | git/2.0.0{% endif %} -|
$GITHUB_REPO_NAME
| Nombre del repositorio que se está actualizando en formato _NAME_/_OWNER_ | octo-org/hello-enterprise | -|
$GITHUB_REPO_PUBLIC
| Valor booleano que representa si el repositorio que se está actualizando es público |
  • true: La visibilidad del repositorio es pública
  • false: La visibilidad del repositorio es privada o interna
| -|
$GITHUB_USER_IP
| La dirección IP del cliente que inició la subida | 192.0.2.1 | -|
$GITHUB_USER_LOGIN
| El nombre de usuario de la cuenta que inició la subida | octocat | +| Variable | Description | Example value | +| :- | :- | :- | +|
$GIT_DIR
| Path to the remote repository on the instance | /data/user/repositories/a/ab/
a1/b2/34/100001234/1234.git | +|
$GIT_PUSH_OPTION_COUNT
| The number of push options that were sent by the client with `--push-option`. For more information, see "[git-push](https://git-scm.com/docs/git-push#Documentation/git-push.txt---push-optionltoptiongt)" in the Git documentation. | 1 | +|
$GIT\_PUSH\_OPTION\_N
| Where _N_ is an integer starting at 0, this variable contains the push option string that was sent by the client. The first option that was sent is stored in `GIT_PUSH_OPTION_0`, the second option that was sent is stored in `GIT_PUSH_OPTION_1`, and so on. For more information about push options, see "[git-push](https://git-scm.com/docs/git-push#git-push---push-optionltoptiongt)" in the Git documentation. | abcd |{% ifversion ghes %} +|
$GIT_USER_AGENT
| User-agent string sent by the Git client that pushed the changes | git/2.0.0{% endif %} +|
$GITHUB_REPO_NAME
| Name of the repository being updated in _NAME_/_OWNER_ format | octo-org/hello-enterprise | +|
$GITHUB_REPO_PUBLIC
| Boolean representing whether the repository being updated is public |
  • true: Repository's visibility is public
  • false: Repository's visibility is private or internal
+|
$GITHUB_USER_IP
| IP address of client that initiated the push | 192.0.2.1 | +|
$GITHUB_USER_LOGIN
| Username for account that initiated the push | octocat | -#### Disponible para subidas desde la interface web o API +#### Available for pushes from the web interface or API -La variable `$GITHUB_VIA` se encuentra disponible en el ambiente de gancho de pre-recepción cuando la actualización de la referencia que activa el gancho ocurre a través ya sea de la interface web o de la API para {% data variables.product.prodname_ghe_server %}. El valor describe la acción que actualizó la referencia. +The `$GITHUB_VIA` variable is available in the pre-receive hook environment when the ref update that triggers the hook occurs via either the web interface or the API for {% data variables.product.prodname_ghe_server %}. The value describes the action that updated the ref. -| Valor | Acción | Más información | -|:-------------------------- |:------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |:------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -|
auto-merge deployment api
| Fusión automática de la rama base a través del despliegue que se creó con la API | "[Repositorios](/rest/reference/repos#create-a-deployment)" en la documentación de la API de REST | -|
blob#save
| Cambio al contenido de un archivo en la interface web | "[Editar archivos](/repositories/working-with-files/managing-files/editing-files)" | -|
branch merge api
| Fusión de una rama a través de la API | "[Repositorios](/rest/reference/repos#merge-a-branch)" en la documentación de la API de REST | -|
branches page delete button
| Borrado de una rama en la interface web | "[Crear y borrar ramas dentro de tu repositorio](/github/collaborating-with-issues-and-pull-requests/creating-and-deleting-branches-within-your-repository#deleting-a-branch)" | -|
git refs create api
| Creación de una referencia a través de la API | "[Base de datos de Git](/rest/reference/git#create-a-reference)" en la documentación de la API de REST | -|
git refs delete api
| Borrado de una referencia a través de la API | "[Bases de datos de Git](/rest/reference/git#delete-a-reference)" En la documentación de la API de REST | -|
git refs update api
| Actualización de una referencia a tracvés de la API | "[Base de datos de Git](/rest/reference/git#update-a-reference)" en la documentación de la API de REST | -|
git repo contents api
| Cambio al contenido de un archivo a través de la API | "[Repositorios](/rest/reference/repos#create-or-update-file-contents)" en la documentación de la API de REST | -|
merge base into head
| Actualiza la rama de tema de la rama base cuando la rama base requiere verificaciones de estado estrictas (a través de **Actualización de rama** en una solicitud de cambios, por ejemplo) | "[Acerca de las ramas protegidas](/github/administering-a-repository/about-protected-branches#require-status-checks-before-merging)" | -|
pull request branch delete button
| Borrado de una rama de tema desde una solicitud de cambios en la interface web | "[Borrar y restaurar ramas en una solicitud de extracción](/github/administering-a-repository/deleting-and-restoring-branches-in-a-pull-request#deleting-a-branch-used-for-a-pull-request)" | -|
pull request branch undo button
| Restablecimiento de una rama de tema desde una solicitud de cambios en la interface web | "[Borrar y restaurar ramas en una solicitud de extracción](/github/administering-a-repository/deleting-and-restoring-branches-in-a-pull-request#restoring-a-deleted-branch)" | -|
pull request merge api
| Fusión de una solicitud de cambios a través de la API | "[Cambios](/rest/reference/pulls#merge-a-pull-request)" en la documentación de la API de REST | -|
pull request merge button
| Fusión de una solicitud de cambios en la interface web | "[Fusionar una solicitud de extracción](/github/collaborating-with-issues-and-pull-requests/merging-a-pull-request#merging-a-pull-request-on-github)" | -|
pull request revert button
| Revertir una solicitud de cambios | "[Revertir una solicitud de extracción](/github/collaborating-with-issues-and-pull-requests/reverting-a-pull-request)" | -|
releases delete button
| Borrado de una solicitud | "[Administrar los lanzamientos en un repositorio](/github/administering-a-repository/managing-releases-in-a-repository#deleting-a-release)" | -|
stafftools branch restore
| Restablecimiento de una rama desde el panel de administrador del sitio | "[Panel de administrador del sitio](/admin/configuration/site-admin-dashboard#repositories)" | -|
tag create api
| Creación de una etiqueta a través de la API | "[Base de datos de Git](/rest/reference/git#create-a-tag-object)" en la documentación de la API de REST | -|
slumlord (#SHA)
| Confirmar a través de Subversion | "[Compatibilidad para los clientes de Subversion](/github/importing-your-projects-to-github/support-for-subversion-clients#making-commits-to-subversion)" | -|
web branch create
| Creación de una rama a través de la interface web | "[Crear y borrar ramas dentro de tu repositorio](/github/collaborating-with-issues-and-pull-requests/creating-and-deleting-branches-within-your-repository#creating-a-branch)" | +| Value | Action | More information | +| :- | :- | :- | +|
auto-merge deployment api
| Automatic merge of the base branch via a deployment created with the API | "[Create a deployment](/rest/reference/deployments#create-a-deployment)" in the REST API documentation | +|
blob#save
| Change to a file's contents in the web interface | "[Editing files](/repositories/working-with-files/managing-files/editing-files)" | +|
branch merge api
| Merge of a branch via the API | "[Merge a branch](/rest/reference/branches#merge-a-branch)" in the REST API documentation | +|
branches page delete button
| Deletion of a branch in the web interface | "[Creating and deleting branches within your repository](/github/collaborating-with-issues-and-pull-requests/creating-and-deleting-branches-within-your-repository#deleting-a-branch)" | +|
git refs create api
| Creation of a ref via the API | "[Git database](/rest/reference/git#create-a-reference)" in the REST API documentation | +|
git refs delete api
| Deletion of a ref via the API | "[Git database](/rest/reference/git#delete-a-reference)" in the REST API documentation | +|
git refs update api
| Update of a ref via the API | "[Git database](/rest/reference/git#update-a-reference)" in the REST API documentation | +|
git repo contents api
| Change to a file's contents via the API | "[Create or update file contents](/rest/reference/repos#create-or-update-file-contents)" in the REST API documentation | +|
merge base into head
| Update of the topic branch from the base branch when the base branch requires strict status checks (via **Update branch** in a pull request, for example) | "[About protected branches](/github/administering-a-repository/about-protected-branches#require-status-checks-before-merging)" | +|
pull request branch delete button
| Deletion of a topic branch from a pull request in the web interface | "[Deleting and restoring branches in a pull request](/github/administering-a-repository/deleting-and-restoring-branches-in-a-pull-request#deleting-a-branch-used-for-a-pull-request)" | +|
pull request branch undo button
| Restoration of a topic branch from a pull request in the web interface | "[Deleting and restoring branches in a pull request](/github/administering-a-repository/deleting-and-restoring-branches-in-a-pull-request#restoring-a-deleted-branch)" | +|
pull request merge api
| Merge of a pull request via the API | "[Pulls](/rest/reference/pulls#merge-a-pull-request)" in the REST API documentation | +|
pull request merge button
| Merge of a pull request in the web interface | "[Merging a pull request](/github/collaborating-with-issues-and-pull-requests/merging-a-pull-request#merging-a-pull-request-on-github)" | +|
pull request revert button
| Revert of a pull request | "[Reverting a pull request](/github/collaborating-with-issues-and-pull-requests/reverting-a-pull-request)" | +|
releases delete button
| Deletion of a release | "[Managing releases in a repository](/github/administering-a-repository/managing-releases-in-a-repository#deleting-a-release)" | +|
stafftools branch restore
| Restoration of a branch from the site admin dashboard | "[Site admin dashboard](/admin/configuration/site-admin-dashboard#repositories)" | +|
tag create api
| Creation of a tag via the API | "[Git database](/rest/reference/git#create-a-tag-object)" in the REST API documentation | +|
slumlord (#SHA)
| Commit via Subversion | "[Support for Subversion clients](/github/importing-your-projects-to-github/support-for-subversion-clients#making-commits-to-subversion)" | +|
web branch create
| Creation of a branch via the web interface | "[Creating and deleting branches within your repository](/github/collaborating-with-issues-and-pull-requests/creating-and-deleting-branches-within-your-repository#creating-a-branch)" | -#### Disponible para las fusiones de solicitudes de cambio +#### Available for pull request merges -Las siguientes variables se encuentran disponibles en el ambiente de gancho de pre-recepción cuando la subida que activa el gancho se debe a la fusión de una solicitud de cambios. +The following variables are available in the pre-receive hook environment when the push that triggers the hook is a push due to the merge of a pull request. -| Variable | Descripción | Valor de ejemplo | -|:-------------------------- |:--------------------------------------------------------------------------------------- |:---------------------------- | -|
$GITHUB_PULL_REQUEST_AUTHOR_LOGIN
| Nombre de usuario de la cuenta que creó la solicitud de cambios | octocat | -|
$GITHUB_PULL_REQUEST_HEAD
| El nombre de la rama de tema de la solicitud de cambios en el formato `USERNAME:BRANCH` | octocat:fix-bug | -|
$GITHUB_PULL_REQUEST_BASE
| El nombre de la rama base de la solicitud de cambios en el formato `USERNAME:BRANCH` | octocat:main | +| Variable | Description | Example value | +| :- | :- | :- | +|
$GITHUB_PULL_REQUEST_AUTHOR_LOGIN
| Username of account that authored the pull request | octocat | +|
$GITHUB_PULL_REQUEST_HEAD
| The name of the pull request's topic branch, in the format `USERNAME:BRANCH` | octocat:fix-bug | +|
$GITHUB_PULL_REQUEST_BASE
| The name of the pull request's base branch, in the format `USERNAME:BRANCH` | octocat:main | -#### Disponible para las subidas utilizando autenticación por SSH +#### Available for pushes using SSH authentication -| Variable | Descripción | Valor de ejemplo | -|:-------------------------- |:---------------------------------------------------------------------------- |:----------------------------------------------- | -|
$GITHUB_PUBLIC_KEY_FINGERPRINT
| La huella dactilar de la llave pública para el usuario que subió los cambios | a1:b2:c3:d4:e5:f6:g7:h8:i9:j0:k1:l2:m3:n4:o5:p6 | +| Variable | Description | Example value | +| :- | :- | :- | +|
$GITHUB_PUBLIC_KEY_FINGERPRINT
| The public key fingerprint for the user who pushed the changes | a1:b2:c3:d4:e5:f6:g7:h8:i9:j0:k1:l2:m3:n4:o5:p6 | -## Establecer permisos y subidas a un ganchos de pre-recepción para {% data variables.product.prodname_ghe_server %} +## Setting permissions and pushing a pre-receive hook to {% data variables.product.prodname_ghe_server %} -Un script de gancho de pre-recepción se contiene en un repositorio de {% data variables.product.product_location %}. Un administrador del sitio debe tener en cuenta los permisos del repositorio y garantizar que solo los usuarios correspondientes tengan acceso. +A pre-receive hook script is contained in a repository on {% data variables.product.product_location %}. A site administrator must take into consideration the repository permissions and ensure that only the appropriate users have access. -Recomendamos los ganchos de consolidación a un solo repositorio. Si el repositorio de gancho consolidado es público, `README.md` puede usarse para explicar los cumplimientos de la política. Además, las contribuciones pueden aceptarse mediante solicitudes de extracción. Sin embargo, los ganchos de pre-recepción solo pueden agregarse desde la rama por defecto. Para un flujo de trabajo de prueba, se deben usar las bifurcaciones del repositorio con la configuración. +We recommend consolidating hooks to a single repository. If the consolidated hook repository is public, the `README.md` can be used to explain policy enforcements. Also, contributions can be accepted via pull requests. However, pre-receive hooks can only be added from the default branch. For a testing workflow, forks of the repository with configuration should be used. -1. Para usuarios de Mac, asegúrate de que los scripts tengan permisos de ejecución: +1. For Mac users, ensure the scripts have execute permissions: ```shell $ sudo chmod +x SCRIPT_FILE.sh ``` - Para usuarios de Windows, asegúrate de que los scripts tengan permisos de ejecución: + For Windows users, ensure the scripts have execute permissions: ```shell git update-index --chmod=+x SCRIPT_FILE.sh ``` -2. Confirma y sube al repositorio designado para los ganchos de pre-recepción en {% data variables.product.product_location %}. +2. Commit and push to the designated repository for pre-receive hooks on {% data variables.product.product_location %}. ```shell $ git commit -m "YOUR COMMIT MESSAGE" $ git push ``` -3. [Crear la instancia de ganchos de pre-recepción](/enterprise/{{ currentVersion }}/admin/guides/developer-workflow/managing-pre-receive-hooks-on-the-github-enterprise-server-appliance/#creating-pre-receive-hooks) on the {% data variables.product.prodname_ghe_server %}. +3. [Create the pre-receive hook](/enterprise/{{ currentVersion }}/admin/guides/developer-workflow/managing-pre-receive-hooks-on-the-github-enterprise-server-appliance/#creating-pre-receive-hooks) on the {% data variables.product.prodname_ghe_server %} instance. -## Probar scripts de pre-recepción localmente -Puedes probar un script de gancho de pre-recepción localmente antes de que lo crees o actualices en {% data variables.product.product_location %}. Un método es crear un entorno de Docker local para que actúe como un repositorio remoto que pueda ejecutar el gancho de pre-recepción. +## Testing pre-receive scripts locally +You can test a pre-receive hook script locally before you create or update it on {% data variables.product.product_location %}. One method is to create a local Docker environment to act as a remote repository that can execute the pre-receive hook. {% data reusables.linux.ensure-docker %} -2. Crear un archivo denominado `Dockerfile.dev` que contenga: +2. Create a file called `Dockerfile.dev` containing: ```dockerfile FROM gliderlabs/alpine:3.3 @@ -172,7 +171,7 @@ Puedes probar un script de gancho de pre-recepción localmente antes de que lo c CMD ["/usr/sbin/sshd", "-D"] ``` -3. Crear un script de pre-recepción de prueba denominado `always_reject.sh`. Este script del ejemplo rechazará todas las subidas, lo cual es útil para bloquear un repositorio: +3. Create a test pre-receive script called `always_reject.sh`. This example script will reject all pushes, which is useful for locking a repository: ``` #!/usr/bin/env bash @@ -181,13 +180,13 @@ Puedes probar un script de gancho de pre-recepción localmente antes de que lo c exit 1 ``` -4. Asegúrate de que los scripts `always_reject.sh` tengan permisos de ejecución: +4. Ensure the `always_reject.sh` scripts has execute permissions: ```shell $ chmod +x always_reject.sh ``` -5. Desde el directorio que contiene `Dockerfile.dev`, crea una imagen: +5. From the directory containing `Dockerfile.dev`, build an image: ```shell $ docker build -f Dockerfile.dev -t pre-receive.dev . @@ -210,32 +209,32 @@ Puedes probar un script de gancho de pre-recepción localmente antes de que lo c > Successfully built dd8610c24f82 ``` -6. Ejecutar un contenedor de datos que contiene una clave SSH generada: +6. Run a data container that contains a generated SSH key: ```shell $ docker run --name data pre-receive.dev /bin/true ``` -7. Copiar el ganchos de pre-recepción de prueba `always_reject.sh` en el contenedor de datos: +7. Copy the test pre-receive hook `always_reject.sh` into the data container: ```shell $ docker cp always_reject.sh data:/home/git/test.git/hooks/pre-receive ``` -8. Poner en marcha un contenedor de la aplicación que corre `sshd` y ejecuta el gancho. Toma nota del id del contenedor que se devolvió: +8. Run an application container that runs `sshd` and executes the hook. Take note of the container id that is returned: ```shell $ docker run -d -p 52311:22 --volumes-from data pre-receive.dev > 7f888bc700b8d23405dbcaf039e6c71d486793cad7d8ae4dd184f4a47000bc58 ``` -9. Copilar la clave SSH generada desde el contenedor de datos hasta la máquina local: +9. Copy the generated SSH key from the data container to the local machine: ```shell $ docker cp data:/home/git/.ssh/id_ed25519 . ``` -10. Modificar el remoto de un repositorio de prueba y subirlo al repositorio `test.git` dentro del contenedor Docker. Este ejemplo utiliza `git@github.com:octocat/Hello-World.git`, pero puedes utilizar cualquier repositorio que quieras. Este ejemplo asume que tu máquina local (127.0.01) es el puerto vinculante 52311, pero puedes usar una dirección IP diferente si el docker está ejecutándose en una máquina remota. +10. Modify the remote of a test repository and push to the `test.git` repo within the Docker container. This example uses `git@github.com:octocat/Hello-World.git` but you can use any repository you want. This example assumes your local machine (127.0.0.1) is binding port 52311, but you can use a different IP address if docker is running on a remote machine. ```shell $ git clone git@github.com:octocat/Hello-World.git @@ -254,7 +253,7 @@ Puedes probar un script de gancho de pre-recepción localmente antes de que lo c > error: failed to push some refs to 'git@192.168.99.100:test.git' ``` - Observa que la subida fue rechazada después de ejecutar el ganchos de pre-recepción y de hace eco la salida del script. + Notice that the push was rejected after executing the pre-receive hook and echoing the output from the script. -## Leer más - - "[Personalizar Git - Un ejemplo de la política activa de Git](https://git-scm.com/book/en/v2/Customizing-Git-An-Example-Git-Enforced-Policy)" desde el *sitio web de Pro Git* +## Further reading + - "[Customizing Git - An Example Git-Enforced Policy](https://git-scm.com/book/en/v2/Customizing-Git-An-Example-Git-Enforced-Policy)" from the *Pro Git website* diff --git a/translations/es-ES/content/admin/policies/enforcing-policy-with-pre-receive-hooks/managing-pre-receive-hooks-on-the-github-enterprise-server-appliance.md b/translations/es-ES/content/admin/policies/enforcing-policy-with-pre-receive-hooks/managing-pre-receive-hooks-on-the-github-enterprise-server-appliance.md index 7fce6a2759..1a2e868839 100644 --- a/translations/es-ES/content/admin/policies/enforcing-policy-with-pre-receive-hooks/managing-pre-receive-hooks-on-the-github-enterprise-server-appliance.md +++ b/translations/es-ES/content/admin/policies/enforcing-policy-with-pre-receive-hooks/managing-pre-receive-hooks-on-the-github-enterprise-server-appliance.md @@ -1,9 +1,9 @@ --- -title: Administrar ganchos de pre-recepción en el aparato del Servidor de GitHub Enterprise -intro: 'Configurar cómo las personas usarán sus ganchos de pre-recepción dentro de su aparato de {% data variables.product.prodname_ghe_server %}.' +title: Managing pre-receive hooks on the GitHub Enterprise Server appliance +intro: 'Configure how people will use pre-receive hooks within their {% data variables.product.prodname_ghe_server %} appliance.' redirect_from: - /enterprise/admin/developer-workflow/managing-pre-receive-hooks-on-the-github-enterprise-server-appliance - - /enterprise/admin/guides/developer-workflow/managing-pre-receive-hooks-on-the-github-enterprise-appliance/ + - /enterprise/admin/guides/developer-workflow/managing-pre-receive-hooks-on-the-github-enterprise-appliance - /enterprise/admin/policies/managing-pre-receive-hooks-on-the-github-enterprise-server-appliance - /admin/policies/managing-pre-receive-hooks-on-the-github-enterprise-server-appliance versions: @@ -13,51 +13,64 @@ topics: - Enterprise - Policies - Pre-receive hooks -shortTitle: Administrar los ganchos de pre-recepción +shortTitle: Manage pre-receive hooks --- - -## Crear ganchos de pre-recepción +## Creating pre-receive hooks {% data reusables.enterprise-accounts.access-enterprise %} {% data reusables.enterprise-accounts.settings-tab %} {% data reusables.enterprise-accounts.hooks-tab %} -4. Haz clic en **Add pre-receive hook** (Agregar gancho de pre-recepción). ![Agregar un gancho de pre-recepción](/assets/images/enterprise/site-admin-settings/add-pre-receive-hook.png) -5. En el campo **Hook name** (Nombre de gancho), escribe el nombre del gancho que deseas crear. ![Nombrar los ganchos de pre-recepción](/assets/images/enterprise/site-admin-settings/hook-name.png) -6. En el menú desplegable **Environment** (Entorno), selecciona el entorno en el que deseas ejecutar el gancho. ![Entornos para ganchos](/assets/images/enterprise/site-admin-settings/environment.png) -7. Debajo de **Script**, desde el menú desplegable **Select hook repository** (Seleccionar repositorio de gancho), selecciona el repositorio que contiene tu script de gancho de pre-recepción. Desde el menú desplegable **Select file** (Seleccionar archivo), selecciona el nombre de archivo o el script del gancho de pre-recepción. ![Script para ganchos](/assets/images/enterprise/site-admin-settings/hook-script.png) -8. Selecciona **Use the exit-status to accept or reject pushes** (Usar el estado de salida para aceptar o rechazar subidas) para imponer tu script. Al quitar la marca de selección de esta opción podrás probar el script mientras se ignora el valor del estado de salida. En este modo, el resultado del script estará visible para el usuario en la línea de comandos pero no en la interfaz web. ![Usar el estado de salida](/assets/images/enterprise/site-admin-settings/use-exit-status.png) -9. Selecciona **Enable this pre-receive hook on all repositories by default ** (Habilitar este gancho de pre-recepción en todos los repositorios por defecto) si quieres que el gancho de pre-recepción se ejecute en todos los repositorios. ![Habilitar gachos para todos los repositorios](/assets/images/enterprise/site-admin-settings/enable-hook-all-repos.png) -10. Selecciona **Administrators can enable and disable this hook** (Los administradores pueden habilitar e inhabilitar este gancho) para permitir que los miembros de la organización con permisos de administración o propietario seleccionen si desean habilitar o inhabilitar este gancho de pre-recepción. ![Los administradores habilitan o inhabilitan los ganchos](/assets/images/enterprise/site-admin-settings/admins-enable-hook.png) +4. Click **Add pre-receive hook**. +![Add pre-receive hook](/assets/images/enterprise/site-admin-settings/add-pre-receive-hook.png) +5. In the **Hook name** field, enter the name of the hook that you want to create. +![Name pre-receive hook](/assets/images/enterprise/site-admin-settings/hook-name.png) +6. From the **Environment** drop-down menu, select the environment on which you want the hook to run. +![Hook environment](/assets/images/enterprise/site-admin-settings/environment.png) +7. Under **Script**, from the **Select hook repository** drop-down menu, select the repository that contains your pre-receive hook script. From the **Select file** drop-down menu, select the filename of the pre-receive hook script. +![Hook script](/assets/images/enterprise/site-admin-settings/hook-script.png) +8. Select **Use the exit-status to accept or reject pushes** to enforce your script. Unselecting this option allows you to test the script while the exit-status value is ignored. In this mode, the output of the script will be visible to the user in the command-line but not on the web interface. +![Use exit-status](/assets/images/enterprise/site-admin-settings/use-exit-status.png) +9. Select **Enable this pre-receive hook on all repositories by default** if you want the pre-receive hook to run on all repositories. +![Enable hook all repositories](/assets/images/enterprise/site-admin-settings/enable-hook-all-repos.png) +10. Select **Administrators can enable and disable this hook** to allow organization members with admin or owner permissions to select whether they wish to enable or disable this pre-receive hook. +![Admins enable or disable hook](/assets/images/enterprise/site-admin-settings/admins-enable-hook.png) -## Editar ganchos de pre-recepción +## Editing pre-receive hooks {% data reusables.enterprise-accounts.access-enterprise %} {% data reusables.enterprise-accounts.settings-tab %} {% data reusables.enterprise-accounts.hooks-tab %} -1. Junto al gancho de pre-recepción que deseas editar, haz clic en {% octicon "pencil" aria-label="The edit icon" %}. ![Editar pre-recepción](/assets/images/enterprise/site-admin-settings/edit-pre-receive-hook.png) +1. Next to the pre-receive hook that you want to edit, click {% octicon "pencil" aria-label="The edit icon" %}. +![Edit pre-receive](/assets/images/enterprise/site-admin-settings/edit-pre-receive-hook.png) -## Eliminar ganchos de pre-recepción +## Deleting pre-receive hooks {% data reusables.enterprise-accounts.access-enterprise %} {% data reusables.enterprise-accounts.settings-tab %} {% data reusables.enterprise-accounts.hooks-tab %} -2. Junto al gancho de pre-recepción que deseas eliminar, haz clic en {% octicon "x" aria-label="X symbol" %}. ![Editar pre-recepción](/assets/images/enterprise/site-admin-settings/delete-pre-receive-hook.png) +2. Next to the pre-receive hook that you want to delete, click {% octicon "x" aria-label="X symbol" %}. +![Edit pre-receive](/assets/images/enterprise/site-admin-settings/delete-pre-receive-hook.png) -## Configurar ganchos de pre-recepción para una organización +## Configure pre-receive hooks for an organization -Un administrador de la organización solo puede configurar permisos de gancho para una organización si el administrador del sitio seleccionó la opción **Administrators can enable o disable this hook** (Los administradores pueden habilitar o inhabilitar este gancho) al crear el gancho de pre-recepción. Para configurar los ganchos de pre-recepción para un repositorio, debes ser el administrador o el propietario de una organización. +An organization administrator can only configure hook permissions for an organization if the site administrator selected the **Administrators can enable or disable this hook** option when they created the pre-receive hook. To configure pre-receive hooks for a repository, you must be an organization administrator or owner. {% data reusables.profile.access_org %} {% data reusables.profile.org_settings %} -4. En la barra lateral izquierda, haz clic en **Hooks** (Ganchos). ![Barra lateral de ganchos](/assets/images/enterprise/orgs-and-teams/hooks-sidebar.png) -5. Junto al gancho de pre-recepción que deseas configurar, haz clic en el menú desplegable **Hook permissions** (Permisos del gancho). Selecciona si deseas habilitar o inhabilitar el gancho de pre-recepción o permite que lo configuren los administradores del repositorio. ![Permisos para ganchos](/assets/images/enterprise/orgs-and-teams/hook-permissions.png) +4. In the left sidebar, click **Hooks**. +![Hooks sidebar](/assets/images/enterprise/orgs-and-teams/hooks-sidebar.png) +5. Next to the pre-receive hook that you want to configure, click the **Hook permissions** drop-down menu. Select whether to enable or disable the pre-receive hook, or allow it to be configured by the repository administrators. +![Hook permissions](/assets/images/enterprise/orgs-and-teams/hook-permissions.png) -## Configurar ganchos de pre-recepción para un repositorio +## Configure pre-receive hooks for a repository -Un propietario de repositorio solo puede configurar un gancho si el administrador del sitio seleccionó la opción **Administrators can enable or disable this hook** (Los administradores pueden habilitar o inhabilitar este gancho) al crear el gancho de pre-recepción. En una organización, el propietario de la organización también debe haber seleccionado el permiso de gancho **Configurable**. Para configurar los ganchos de pre-recepción para un repositorio, debes ser un propietario de repositorio. +A repository owner can only configure a hook if the site administrator selected the **Administrators can enable or disable this hook** option when they created the pre-receive hook. In an organization, the organization owner must also have selected the **Configurable** hook permission. To configure pre-receive hooks for a repository, you must be a repository owner. {% data reusables.profile.enterprise_access_profile %} -2. Haz clic en **Repositories** (Repositorios) y selecciona el repositorio para el que deseas configurar los ganchos de pre-recepción. ![Repositorios](/assets/images/enterprise/repos/repositories.png) +2. Click **Repositories** and select which repository you want to configure pre-receive hooks for. +![Repositories](/assets/images/enterprise/repos/repositories.png) {% data reusables.repositories.sidebar-settings %} -4. En la barra lateral izquierda, haz clic en **Hooks & Services** (Ganchos y Servicios). ![Ganchos y servicios](/assets/images/enterprise/repos/hooks-services.png) -5. Junto al gancho de pre-recepción que deseas configurar, haz clic en el menú desplegable **Hook permissions** (Permisos del gancho). Selecciona si deseas habilitar o inhabilitar el gancho de pre-recepción. ![Permisos de gancho del repositorio](/assets/images/enterprise/repos/repo-hook-permissions.png) +4. In the left sidebar, click **Hooks & Services**. +![Hooks and services](/assets/images/enterprise/repos/hooks-services.png) +5. Next to the pre-receive hook that you want to configure, click the **Hook permissions** drop-down menu. Select whether to enable or disable the pre-receive hook. +![Repository hook permissions](/assets/images/enterprise/repos/repo-hook-permissions.png) diff --git a/translations/es-ES/content/admin/user-management/index.md b/translations/es-ES/content/admin/user-management/index.md index d7dbbf1756..5e5f8682b2 100644 --- a/translations/es-ES/content/admin/user-management/index.md +++ b/translations/es-ES/content/admin/user-management/index.md @@ -1,9 +1,9 @@ --- -title: 'Administrar usuarios, organizaciones y repositorios' -shortTitle: 'Administrar usuarios, organizaciones y repositorios' -intro: 'Esta guía describe los métodos de autenticación para los usuarios que inician sesión en tu empresa, cómo crear organizaciones y equipos para acceso a repositorios y colaboraciones, y las mejores prácticas que se sugieren para la seguridad de los usuarios.' +title: 'Managing users, organizations, and repositories' +shortTitle: 'Managing users, organizations, and repositories' +intro: 'This guide describes authentication methods for users signing in to your enterprise, how to create organizations and teams for repository access and collaboration, and suggested best practices for user security.' redirect_from: - - /enterprise/admin/categories/user-management/ + - /enterprise/admin/categories/user-management - /enterprise/admin/developer-workflow/using-webhooks-for-continuous-integration - /enterprise/admin/migrations - /enterprise/admin/clustering diff --git a/translations/es-ES/content/admin/user-management/managing-organizations-in-your-enterprise/adding-people-to-teams.md b/translations/es-ES/content/admin/user-management/managing-organizations-in-your-enterprise/adding-people-to-teams.md index 99a271c897..f02cedf911 100644 --- a/translations/es-ES/content/admin/user-management/managing-organizations-in-your-enterprise/adding-people-to-teams.md +++ b/translations/es-ES/content/admin/user-management/managing-organizations-in-your-enterprise/adding-people-to-teams.md @@ -1,12 +1,12 @@ --- -title: Agregar personas a los equipos +title: Adding people to teams redirect_from: - - /enterprise/admin/articles/adding-teams/ - - /enterprise/admin/articles/adding-or-inviting-people-to-teams/ - - /enterprise/admin/guides/user-management/adding-or-inviting-people-to-teams/ + - /enterprise/admin/articles/adding-teams + - /enterprise/admin/articles/adding-or-inviting-people-to-teams + - /enterprise/admin/guides/user-management/adding-or-inviting-people-to-teams - /enterprise/admin/user-management/adding-people-to-teams - /admin/user-management/adding-people-to-teams -intro: 'Una vez que se ha creado un equipo, los administradores de la organización pueden agregar usuarios desde {% data variables.product.product_location %} al equipo y determinar a qué repositorios tienen acceso.' +intro: 'Once a team has been created, organization admins can add users from {% data variables.product.product_location %} to the team and determine which repositories they have access to.' versions: ghes: '*' type: how_to @@ -16,13 +16,12 @@ topics: - Teams - User account --- +Each team has its own individually defined [access permissions for repositories owned by your organization](/articles/permission-levels-for-an-organization). -Cada equipo tiene sus propios premisos de acceso definidos de manera individual [ para repositorios que le pertenecen a tu organización](/articles/permission-levels-for-an-organization). +- Members with the owner role can add or remove existing organization members from all teams. +- Members of teams that give admin permissions can only modify team membership and repositories for that team. -- Los miembros con el rol de propietario pueden agregar o eliminar miembros existentes de la organización de todos los equipos. -- Los miembros de equipos que dan permisos de administración solo pueden modificar los repositorios y las membresías de equipos para ese equipo. - -## Configurar un equipo +## Setting up a team {% data reusables.profile.access_org %} {% data reusables.user_settings.access_org %} @@ -30,8 +29,8 @@ Cada equipo tiene sus propios premisos de acceso definidos de manera individual {% data reusables.organizations.invite_to_team %} {% data reusables.organizations.review-team-repository-access %} -## Asignar equipos a los grupos LDAP (para instancias que usan la sincronización LDAP para la autenticación de usuario) +## Mapping teams to LDAP groups (for instances using LDAP Sync for user authentication) {% data reusables.enterprise_management_console.badge_indicator %} -Para agregar un nuevo miembro a un equipo sincronizado con un grupo LDAP, agrega el usuario como un miembro del grupo LDAP o comunícate con el administrador LDAP. +To add a new member to a team synced to an LDAP group, add the user as a member of the LDAP group, or contact your LDAP administrator. diff --git a/translations/es-ES/content/admin/user-management/managing-organizations-in-your-enterprise/index.md b/translations/es-ES/content/admin/user-management/managing-organizations-in-your-enterprise/index.md index 11ee5f9dd3..9df1581688 100644 --- a/translations/es-ES/content/admin/user-management/managing-organizations-in-your-enterprise/index.md +++ b/translations/es-ES/content/admin/user-management/managing-organizations-in-your-enterprise/index.md @@ -1,8 +1,8 @@ --- title: Managing organizations in your enterprise redirect_from: - - /enterprise/admin/articles/adding-users-and-teams/ - - /enterprise/admin/categories/admin-bootcamp/ + - /enterprise/admin/articles/adding-users-and-teams + - /enterprise/admin/categories/admin-bootcamp - /enterprise/admin/user-management/organizations-and-teams - /enterprise/admin/user-management/managing-organizations-in-your-enterprise - /articles/managing-organizations-in-your-enterprise-account diff --git a/translations/es-ES/content/admin/user-management/managing-organizations-in-your-enterprise/managing-projects-using-jira.md b/translations/es-ES/content/admin/user-management/managing-organizations-in-your-enterprise/managing-projects-using-jira.md index 7d8c489754..10a117009a 100644 --- a/translations/es-ES/content/admin/user-management/managing-organizations-in-your-enterprise/managing-projects-using-jira.md +++ b/translations/es-ES/content/admin/user-management/managing-organizations-in-your-enterprise/managing-projects-using-jira.md @@ -1,9 +1,9 @@ --- -title: Administrar proyectos utilizando Jira -intro: 'Puedes integrar Jura con {% data variables.product.prodname_enterprise %} para la administración de proyectos.' +title: Managing projects using Jira +intro: 'You can integrate Jira with {% data variables.product.prodname_enterprise %} for project management.' redirect_from: - - /enterprise/admin/guides/installation/project-management-using-jira/ - - /enterprise/admin/articles/project-management-using-jira/ + - /enterprise/admin/guides/installation/project-management-using-jira + - /enterprise/admin/articles/project-management-using-jira - /enterprise/admin/developer-workflow/managing-projects-using-jira - /enterprise/admin/developer-workflow/customizing-your-instance-with-integrations - /enterprise/admin/user-management/managing-projects-using-jira @@ -14,57 +14,56 @@ type: how_to topics: - Enterprise - Project management -shortTitle: Administración de proyectos con Jira +shortTitle: Project management with Jira --- +## Connecting Jira to a {% data variables.product.prodname_enterprise %} organization -## Conectar a Jira a una organización de {% data variables.product.prodname_enterprise %} +1. Sign into your {% data variables.product.prodname_enterprise %} account at http[s]://[hostname]/login. If already signed in, click on the {% data variables.product.prodname_dotcom %} logo in the top left corner. +2. Click on your profile icon under the {% data variables.product.prodname_dotcom %} logo and select the organization you would like to connect with Jira. -1. Inicia sesión en tu cuenta de {% data variables.product.prodname_enterprise %} en http[s]://[hostname]/login. Si ya iniciaste sesión, haz clic en el logo de {% data variables.product.prodname_dotcom %} en la esquina superior izquierda. -2. Haz clic en tu icono de perfil debajo del logo de {% data variables.product.prodname_dotcom %} y selecciona la organización con la que te gustaría conectar a Jira. + ![Select an organization](/assets/images/enterprise/orgs-and-teams/profile-select-organization.png) - ![Selecciona una organización](/assets/images/enterprise/orgs-and-teams/profile-select-organization.png) +3. Click on the **Edit _organization name_ settings** link. -3. Haz clic en el enlace de **Editar la configuración de _nombre de organización_**. + ![Edit organization settings](/assets/images/enterprise/orgs-and-teams/edit-organization-settings.png) - ![Editar la configuración de organización](/assets/images/enterprise/orgs-and-teams/edit-organization-settings.png) +4. In the left sidebar, under **Developer settings**, click **OAuth Apps**. -4. En la barra lateral izquierda, debajo de **Configuración de desarrollador**, haz clic en **Apps de OAuth**. + ![Select OAuth Apps](/assets/images/enterprise/orgs-and-teams/organization-dev-settings-oauth-apps.png) - ![Selecciona Apps de OAuth](/assets/images/enterprise/orgs-and-teams/organization-dev-settings-oauth-apps.png) +5. Click on the **Register new application** button. -5. Haz clic en el botón de **Registrar aplicación nueva**. + ![Register new application button](/assets/images/enterprise/orgs-and-teams/register-oauth-application-button.png) - ![Registrar botón de aplicación nueva](/assets/images/enterprise/orgs-and-teams/register-oauth-application-button.png) +6. Fill in the application settings: + - In the **Application name** field, type "Jira" or any name you would like to use to identify the Jira instance. + - In the **Homepage URL** field, type the full URL of your Jira instance. + - In the **Authorization callback URL** field, type the full URL of your Jira instance. +7. Click **Register application**. +8. At the top of the page, note the **Client ID** and **Client Secret**. You will need these for configuring your Jira instance. -6. Completa los parámetros de la aplicación: - - En el campo de **Nombre de aplicación**, teclea "Jira" o cualquier nombre que te gustaría utilizar para identificar a la instancia de Jira. - - En el campo **URL de página principal**, escribe la URL completa de tu instancia de Jira. - - En el campo **URL de rellamado de autorización**, escribe la URL completa de tu instancia de Jira. -7. Haz clic en **Register application** (Registrar aplicación). -8. En la parte inferior de la página, observa el **Client ID** (ID de cliente) y **Client Secret** (Secreto de cliente). Necesitarás estos para configurar tu instancia de Jira. +## Jira instance configuration -## Configuración de la instancia de Jira +1. On your Jira instance, log into an account with administrative access. +2. At the top of the page, click the settings (gear) icon and choose **Applications**. -1. En tu instancia de Jira, inicia sesión en una cuenta con acceso administrativo. -2. En la parte superior de la página, haz clic en el icono de configuración (engrane) y elige **Aplicaciones**. + ![Select Applications on Jira settings](/assets/images/enterprise/orgs-and-teams/jira/jira-applications.png) - ![Seleccionar aplicaciones en la configuración de Jira](/assets/images/enterprise/orgs-and-teams/jira/jira-applications.png) +3. In the left sidebar, under **Integrations**, click **DVCS accounts**. -3. En la barra lateral izquierda, debajo de **Integraciones**, haz clic en **Cuentas DVCS**. + ![Jira Integrations menu - DVCS accounts](/assets/images/enterprise/orgs-and-teams/jira/jira-integrations-dvcs.png) - ![Menú de integraciones de Jira - Cuentas DVCS](/assets/images/enterprise/orgs-and-teams/jira/jira-integrations-dvcs.png) +4. Click **Link Bitbucket Cloud or {% data variables.product.prodname_dotcom %} account**. -4. Haz clic en **Enlazar cuenta de Bitbucket Cloud o de {% data variables.product.prodname_dotcom %}**. + ![Link GitHub account to Jira](/assets/images/enterprise/orgs-and-teams/jira/jira-link-github-account.png) - ![Enlazar cuenta de GitHub a Jira](/assets/images/enterprise/orgs-and-teams/jira/jira-link-github-account.png) - -5. En el modal **Add New Account** (Agregar nueva cuenta), completa tus parámetros de {% data variables.product.prodname_enterprise %}: - - Desde el menú desplegable de **Host**, elige **{% data variables.product.prodname_enterprise %}**. - - En el campo **Team or User Account** (Cuenta de equipo o usuario), escribe el nombre de tu organización {% data variables.product.prodname_enterprise %} o cuenta personal. - - En el campo **OAuth Key** (Clave OAuth), escribe el ID de cliente de tu aplicación de programador de {% data variables.product.prodname_enterprise %}. - - En el campo **OAuth Secret** (OAuth secreto), escribe el secreto de cliente para tu aplicación de programador de {% data variables.product.prodname_enterprise %}. - - Si no quieres enlazar los repositorios nuevos que pertenecen a tu organización o cuenta personal de {% data variables.product.prodname_enterprise %}, quita la marca de selección de **Enlazar los repositorios nuevos automáticamente**. - - Si no quieres habilitar las confirmaciones inteligentes, deselecciona **Habilitar las confirmaciones inteligentes**. - - Da clic en **Agregar**. -6. Revisa los permisos que concedes a tu cuenta de {% data variables.product.prodname_enterprise %} y haz clic en **Authorize application** (Autorizar aplicación). -7. Si es necesario, escribe tu contraseña para continuar. +5. In the **Add New Account** modal, fill in your {% data variables.product.prodname_enterprise %} settings: + - From the **Host** dropdown menu, choose **{% data variables.product.prodname_enterprise %}**. + - In the **Team or User Account** field, type the name of your {% data variables.product.prodname_enterprise %} organization or personal account. + - In the **OAuth Key** field, type the Client ID of your {% data variables.product.prodname_enterprise %} developer application. + - In the **OAuth Secret** field, type the Client Secret for your {% data variables.product.prodname_enterprise %} developer application. + - If you don't want to link new repositories owned by your {% data variables.product.prodname_enterprise %} organization or personal account, deselect **Auto Link New Repositories**. + - If you don't want to enable smart commits, deselect **Enable Smart Commits**. + - Click **Add**. +6. Review the permissions you are granting to your {% data variables.product.prodname_enterprise %} account and click **Authorize application**. +7. If necessary, type your password to continue. diff --git a/translations/es-ES/content/admin/user-management/managing-organizations-in-your-enterprise/preventing-users-from-creating-organizations.md b/translations/es-ES/content/admin/user-management/managing-organizations-in-your-enterprise/preventing-users-from-creating-organizations.md index 8520ad2c1c..41cbf9b46b 100644 --- a/translations/es-ES/content/admin/user-management/managing-organizations-in-your-enterprise/preventing-users-from-creating-organizations.md +++ b/translations/es-ES/content/admin/user-management/managing-organizations-in-your-enterprise/preventing-users-from-creating-organizations.md @@ -1,11 +1,11 @@ --- -title: Impedir que los usuarios creen organizaciones +title: Preventing users from creating organizations redirect_from: - - /enterprise/admin/articles/preventing-users-from-creating-organizations/ - - /enterprise/admin/hidden/preventing-users-from-creating-organizations/ + - /enterprise/admin/articles/preventing-users-from-creating-organizations + - /enterprise/admin/hidden/preventing-users-from-creating-organizations - /enterprise/admin/user-management/preventing-users-from-creating-organizations - /admin/user-management/preventing-users-from-creating-organizations -intro: Puedes prevenir que los usuarios creen organizaciones en tu empresa. +intro: You can prevent users from creating organizations in your enterprise. versions: ghes: '*' ghae: '*' @@ -14,9 +14,8 @@ topics: - Enterprise - Organizations - Policies -shortTitle: Prevenir la creación de organizaciones +shortTitle: Prevent organization creation --- - {% data reusables.enterprise-accounts.access-enterprise %} {% ifversion ghes or ghae %} {% data reusables.enterprise-accounts.policies-tab %} @@ -24,4 +23,5 @@ shortTitle: Prevenir la creación de organizaciones {% data reusables.enterprise-accounts.settings-tab %} {% endif %} {% data reusables.enterprise-accounts.options-tab %} -4. En "Los usuarios pueden crear organizaciones", usa el menú desplegable y haz clic en **Activado** o **Desactivado**. ![Desplegable Los usuarios pueden crear organizaciones](/assets/images/enterprise/site-admin-settings/users-create-orgs-dropdown.png) +4. Under "Users can create organizations", use the drop-down menu and click **Enabled** or **Disabled**. +![Users can create organizations drop-down](/assets/images/enterprise/site-admin-settings/users-create-orgs-dropdown.png) diff --git a/translations/es-ES/content/admin/user-management/managing-organizations-in-your-enterprise/viewing-the-audit-logs-for-organizations-in-your-enterprise.md b/translations/es-ES/content/admin/user-management/managing-organizations-in-your-enterprise/viewing-the-audit-logs-for-organizations-in-your-enterprise.md index 373f4381fc..8ee2d906ec 100644 --- a/translations/es-ES/content/admin/user-management/managing-organizations-in-your-enterprise/viewing-the-audit-logs-for-organizations-in-your-enterprise.md +++ b/translations/es-ES/content/admin/user-management/managing-organizations-in-your-enterprise/viewing-the-audit-logs-for-organizations-in-your-enterprise.md @@ -4,7 +4,7 @@ intro: Enterprise owners can view aggregated actions from all of the organizatio product: '{% data reusables.gated-features.enterprise-accounts %}' redirect_from: - /github/setting-up-and-managing-your-enterprise/managing-organizations-in-your-enterprise-account/viewing-the-audit-logs-for-organizations-in-your-enterprise-account - - /articles/viewing-the-audit-logs-for-organizations-in-your-business-account/ + - /articles/viewing-the-audit-logs-for-organizations-in-your-business-account - /articles/viewing-the-audit-logs-for-organizations-in-your-enterprise-account - /github/setting-up-and-managing-your-enterprise-account/viewing-the-audit-logs-for-organizations-in-your-enterprise-account - /github/setting-up-and-managing-your-enterprise/viewing-the-audit-logs-for-organizations-in-your-enterprise-account diff --git a/translations/es-ES/content/admin/user-management/managing-repositories-in-your-enterprise/configuring-git-large-file-storage-for-your-enterprise.md b/translations/es-ES/content/admin/user-management/managing-repositories-in-your-enterprise/configuring-git-large-file-storage-for-your-enterprise.md index 95b2331b42..96c09af594 100644 --- a/translations/es-ES/content/admin/user-management/managing-repositories-in-your-enterprise/configuring-git-large-file-storage-for-your-enterprise.md +++ b/translations/es-ES/content/admin/user-management/managing-repositories-in-your-enterprise/configuring-git-large-file-storage-for-your-enterprise.md @@ -1,16 +1,16 @@ --- -title: Configurar el almacenamiento de archivos grandes de Git para tu empresa +title: Configuring Git Large File Storage for your enterprise intro: '{% data reusables.enterprise_site_admin_settings.configuring-large-file-storage-short-description %}' redirect_from: - - /enterprise/admin/guides/installation/configuring-git-large-file-storage-on-github-enterprise/ + - /enterprise/admin/guides/installation/configuring-git-large-file-storage-on-github-enterprise - /enterprise/admin/installation/configuring-git-large-file-storage-on-github-enterprise-server - /enterprise/admin/installation/configuring-git-large-file-storage - /enterprise/admin/installation/configuring-git-large-file-storage-to-use-a-third-party-server - /enterprise/admin/installation/migrating-to-a-different-git-large-file-storage-server - - /enterprise/admin/articles/configuring-git-large-file-storage-for-a-repository/ - - /enterprise/admin/articles/configuring-git-large-file-storage-for-every-repository-owned-by-a-user-account-or-organization/ - - /enterprise/admin/articles/configuring-git-large-file-storage-for-your-appliance/ - - /enterprise/admin/guides/installation/migrating-to-different-large-file-storage-server/ + - /enterprise/admin/articles/configuring-git-large-file-storage-for-a-repository + - /enterprise/admin/articles/configuring-git-large-file-storage-for-every-repository-owned-by-a-user-account-or-organization + - /enterprise/admin/articles/configuring-git-large-file-storage-for-your-appliance + - /enterprise/admin/guides/installation/migrating-to-different-large-file-storage-server - /enterprise/admin/user-management/configuring-git-large-file-storage-for-your-enterprise - /admin/user-management/configuring-git-large-file-storage-for-your-enterprise versions: @@ -22,21 +22,20 @@ topics: - Enterprise - LFS - Storage -shortTitle: Configurar el LFS de Git +shortTitle: Configure Git LFS --- +## About {% data variables.large_files.product_name_long %} -## Acerca de {% data variables.large_files.product_name_long %} - -{% data reusables.enterprise_site_admin_settings.configuring-large-file-storage-short-description %} Puedes utilizar {% data variables.large_files.product_name_long %} con un solo repositorio, con todos tus repositorios personales o de organización, o con todos los repositorios de tu empresa. Antes de que puedas habilitar a {% data variables.large_files.product_name_short %} para repositorios u organizaciones específicos, necesitas habilitar a {% data variables.large_files.product_name_short %} en tu empresa. +{% data reusables.enterprise_site_admin_settings.configuring-large-file-storage-short-description %} You can use {% data variables.large_files.product_name_long %} with a single repository, all of your personal or organization repositories, or with every repository in your enterprise. Before you can enable {% data variables.large_files.product_name_short %} for specific repositories or organizations, you need to enable {% data variables.large_files.product_name_short %} for your enterprise. {% data reusables.large_files.storage_assets_location %} {% data reusables.large_files.rejected_pushes %} -Para obtener más información, consulta "[Acerca de {% data variables.large_files.product_name_long %}](/articles/about-git-large-file-storage)", "[Control de versiones de archivos grandes](/enterprise/user/articles/versioning-large-files/)," y el sitio del proyecto [{% data variables.large_files.product_name_long %} ](https://git-lfs.github.com/). +For more information, see "[About {% data variables.large_files.product_name_long %}](/articles/about-git-large-file-storage)", "[Versioning large files](/enterprise/user/articles/versioning-large-files/)," and the [{% data variables.large_files.product_name_long %} project site](https://git-lfs.github.com/). {% data reusables.large_files.can-include-lfs-objects-archives %} -## Configurar a {% data variables.large_files.product_name_long %} para tu empresa +## Configuring {% data variables.large_files.product_name_long %} for your enterprise {% data reusables.enterprise-accounts.access-enterprise %} {% ifversion ghes or ghae %} @@ -45,9 +44,10 @@ Para obtener más información, consulta "[Acerca de {% data variables.large_fil {% data reusables.enterprise-accounts.settings-tab %} {% endif %} {% data reusables.enterprise-accounts.options-tab %} -4. Dentro del "acceso de {% data variables.large_files.product_name_short %}", usa el menú desplegable y haz clic en **Enabled (Habilitado)** o **Disabled (Inhabilitado)**. ![Acceso a LFS de Git](/assets/images/enterprise/site-admin-settings/git-lfs-admin-center.png) +4. Under "{% data variables.large_files.product_name_short %} access", use the drop-down menu, and click **Enabled** or **Disabled**. +![Git LFS Access](/assets/images/enterprise/site-admin-settings/git-lfs-admin-center.png) -## Configurar {% data variables.large_files.product_name_long %} para un repositorio individual +## Configuring {% data variables.large_files.product_name_long %} for an individual repository {% data reusables.enterprise_site_admin_settings.override-policy %} @@ -58,7 +58,7 @@ Para obtener más información, consulta "[Acerca de {% data variables.large_fil {% data reusables.enterprise_site_admin_settings.admin-tab %} {% data reusables.enterprise_site_admin_settings.git-lfs-toggle %} -## Configurar {% data variables.large_files.product_name_long %} para cada repositorio que pertenezca a una cuenta de usuario u organización +## Configuring {% data variables.large_files.product_name_long %} for every repository owned by a user account or organization {% data reusables.enterprise_site_admin_settings.access-settings %} {% data reusables.enterprise_site_admin_settings.search-user-or-org %} @@ -68,14 +68,14 @@ Para obtener más información, consulta "[Acerca de {% data variables.large_fil {% data reusables.enterprise_site_admin_settings.git-lfs-toggle %} {% ifversion ghes %} -## Configurar Almacenamiento de archivos de gran tamaño Git para usar un servidor de terceros +## Configuring Git Large File Storage to use a third party server {% data reusables.large_files.storage_assets_location %} {% data reusables.large_files.rejected_pushes %} -1. Inhabilita a {% data variables.large_files.product_name_short %} en {% data variables.product.product_location %}. Para obtener más información, consulta la sección "[Configurar a {% data variables.large_files.product_name_long %} para tu empresa](#configuring-git-large-file-storage-for-your-enterprise)". +1. Disable {% data variables.large_files.product_name_short %} on {% data variables.product.product_location %}. For more information, see "[Configuring {% data variables.large_files.product_name_long %} for your enterprise](#configuring-git-large-file-storage-for-your-enterprise)." -2. Crea un archivo de configuración {% data variables.large_files.product_name_short %} que apunte al servidor de terceros. +2. Create a {% data variables.large_files.product_name_short %} configuration file that points to the third party server. ```shell # Show default configuration $ git lfs env @@ -98,18 +98,18 @@ Para obtener más información, consulta "[Acerca de {% data variables.large_fil lfsurl = https://THIRD-PARTY-LFS-SERVER/path/to/repo ``` -3. Para mantener la misma configuración {% data variables.large_files.product_name_short %} para cada usuario, confirma un archivo `.lfsconfig` personalizado para el repositorio. +3. To keep the same {% data variables.large_files.product_name_short %} configuration for each user, commit a custom `.lfsconfig` file to the repository. ```shell $ git add .lfsconfig $ git commit -m "Adding LFS config file" ``` -3. Migra cualquier activo {% data variables.large_files.product_name_short %} existente. Para obtener más información, consulta la sección "[Migrarse a un servidor diferente de {% data variables.large_files.product_name_long %}](#migrating-to-a-different-git-large-file-storage-server)". +3. Migrate any existing {% data variables.large_files.product_name_short %} assets. For more information, see "[Migrating to a different {% data variables.large_files.product_name_long %} server](#migrating-to-a-different-git-large-file-storage-server)." -## Migrar a un servidor de Git Large File Storage diferente +## Migrating to a different Git Large File Storage server -Antes de migrarte a un servidor de {% data variables.large_files.product_name_long %} diferente, debes configurar a {% data variables.large_files.product_name_short %} para que utilice un servidor de terceros. Para obtener más información, consulta la sección "[Configurar a {% data variables.large_files.product_name_long %} para utilizar un servidor de terceros](#configuring-git-large-file-storage-to-use-a-third-party-server)". +Before migrating to a different {% data variables.large_files.product_name_long %} server, you must configure {% data variables.large_files.product_name_short %} to use a third party server. For more information, see "[Configuring {% data variables.large_files.product_name_long %} to use a third party server](#configuring-git-large-file-storage-to-use-a-third-party-server)." -1. Configura un repositorio con un segundo remoto. +1. Configure the repository with a second remote. ```shell $ git remote add NEW-REMOTE https://NEW-REMOTE-HOSTNAME/path/to/repo   @@ -121,25 +121,25 @@ Antes de migrarte a un servidor de {% data variables.large_files.product_name_lo > Endpoint (NEW-REMOTE)=https://NEW-REMOTE-HOSTNAME/path/to/repo/info/lfs (auth=none) ``` -2. Extrae todos los objetos del remoto anterior. +2. Fetch all objects from the old remote. ```shell $ git lfs fetch origin --all > Scanning for all objects ever referenced... > ✔ 16 objects found > Fetching objects... - > Git LFS: (16 de 16 archivos) 48.71 MB / 48.85 MB + > Git LFS: (16 of 16 files) 48.71 MB / 48.85 MB ``` -3. Extrae todos los objetos a un nuevo remoto. +3. Push all objects to the new remote. ```shell $ git lfs push NEW-REMOTE --all > Scanning for all objects ever referenced... > ✔ 16 objects found > Pushing objects... - > Git LFS: (16 de 16 archivos) 48.00 MB / 48.85 MB, 879.10 KB pasados por alto + > Git LFS: (16 of 16 files) 48.00 MB / 48.85 MB, 879.10 KB skipped ``` {% endif %} -## Leer más +## Further reading -- [Sitio del proyecto {% data variables.large_files.product_name_long %}](https://git-lfs.github.com/) +- [{% data variables.large_files.product_name_long %} project site](https://git-lfs.github.com/) diff --git a/translations/es-ES/content/admin/user-management/managing-repositories-in-your-enterprise/disabling-git-ssh-access-on-your-enterprise.md b/translations/es-ES/content/admin/user-management/managing-repositories-in-your-enterprise/disabling-git-ssh-access-on-your-enterprise.md index 1dcfbf1b7a..e02538d16a 100644 --- a/translations/es-ES/content/admin/user-management/managing-repositories-in-your-enterprise/disabling-git-ssh-access-on-your-enterprise.md +++ b/translations/es-ES/content/admin/user-management/managing-repositories-in-your-enterprise/disabling-git-ssh-access-on-your-enterprise.md @@ -1,20 +1,20 @@ --- -title: Inhabilitar el acceso por SSH a git en tu empresa +title: Disabling Git SSH access on your enterprise redirect_from: - - /enterprise/admin/hidden/disabling-ssh-access-for-a-user-account/ - - /enterprise/admin/articles/disabling-ssh-access-for-a-user-account/ - - /enterprise/admin/hidden/disabling-ssh-access-for-your-appliance/ - - /enterprise/admin/articles/disabling-ssh-access-for-your-appliance/ - - /enterprise/admin/hidden/disabling-ssh-access-for-an-organization/ - - /enterprise/admin/articles/disabling-ssh-access-for-an-organization/ - - /enterprise/admin/hidden/disabling-ssh-access-to-a-repository/ - - /enterprise/admin/articles/disabling-ssh-access-to-a-repository/ - - /enterprise/admin/guides/installation/disabling-git-ssh-access-on-github-enterprise/ + - /enterprise/admin/hidden/disabling-ssh-access-for-a-user-account + - /enterprise/admin/articles/disabling-ssh-access-for-a-user-account + - /enterprise/admin/hidden/disabling-ssh-access-for-your-appliance + - /enterprise/admin/articles/disabling-ssh-access-for-your-appliance + - /enterprise/admin/hidden/disabling-ssh-access-for-an-organization + - /enterprise/admin/articles/disabling-ssh-access-for-an-organization + - /enterprise/admin/hidden/disabling-ssh-access-to-a-repository + - /enterprise/admin/articles/disabling-ssh-access-to-a-repository + - /enterprise/admin/guides/installation/disabling-git-ssh-access-on-github-enterprise - /enterprise/admin/installation/disabling-git-ssh-access-on-github-enterprise-server - /enterprise/admin/user-management/disabling-git-ssh-access-on-github-enterprise-server - /admin/user-management/disabling-git-ssh-access-on-github-enterprise-server - /admin/user-management/disabling-git-ssh-access-on-your-enterprise -intro: Puedes prevenir que las personas utilicen git a través de SSH para ciertos repositorios o para todos ellos en tu empresa. +intro: You can prevent people from using Git over SSH for certain or all repositories on your enterprise. versions: ghes: '*' ghae: '*' @@ -24,10 +24,9 @@ topics: - Policies - Security - SSH -shortTitle: Inhabilita SSH para Git +shortTitle: Disable SSH for Git --- - -## Inhabilitar el acceso SSH de Git para un repositorio específico +## Disabling Git SSH access to a specific repository {% data reusables.enterprise_site_admin_settings.override-policy %} @@ -37,9 +36,10 @@ shortTitle: Inhabilita SSH para Git {% data reusables.enterprise_site_admin_settings.access-settings %} {% data reusables.enterprise_site_admin_settings.admin-top-tab %} {% data reusables.enterprise_site_admin_settings.admin-tab %} -1. En "Acceso SSH de Git", usa el menú desplegable y haz clic en **Disabled** (Inhabilitado). ![Menú desplegable del acceso SSH de Git con la opción de inhabilitación seleccionada](/assets/images/enterprise/site-admin-settings/git-ssh-access-repository-setting.png) +1. Under "Git SSH access", use the drop-down menu, and click **Disabled**. + ![Git SSH access drop-down menu with disabled option selected](/assets/images/enterprise/site-admin-settings/git-ssh-access-repository-setting.png) -## Inhabilitar el acceso SSH de Git para todos los repositorios que le pertenecen a un usuario o a una organización +## Disabling Git SSH access to all repositories owned by a user or organization {% data reusables.enterprise_site_admin_settings.access-settings %} {% data reusables.enterprise_site_admin_settings.search-user-or-org %} @@ -47,9 +47,10 @@ shortTitle: Inhabilita SSH para Git {% data reusables.enterprise_site_admin_settings.access-settings %} {% data reusables.enterprise_site_admin_settings.admin-top-tab %} {% data reusables.enterprise_site_admin_settings.admin-tab %} -7. En "Acceso SSH de Git", usa el menú desplegable y haz clic en **Disabled** (Inhabilitado). Luego selecciona **Enforce on all repositories** (Aplicar en todos los repositorios). ![Menú desplegable del acceso SSH de Git con la opción de inhabilitación seleccionada](/assets/images/enterprise/site-admin-settings/git-ssh-access-organization-setting.png) +7. Under "Git SSH access", use the drop-down menu, and click **Disabled**. Then, select **Enforce on all repositories**. + ![Git SSH access drop-down menu with disabled option selected](/assets/images/enterprise/site-admin-settings/git-ssh-access-organization-setting.png) -## Inhabilitar el acceso a Git por SSH para todos los repositorios de tu empresa +## Disabling Git SSH access to all repositories in your enterprise {% data reusables.enterprise-accounts.access-enterprise %} {% ifversion ghes or ghae %} @@ -58,4 +59,5 @@ shortTitle: Inhabilita SSH para Git {% data reusables.enterprise-accounts.settings-tab %} {% endif %} {% data reusables.enterprise-accounts.options-tab %} -7. En "Acceso SSH de Git", usa el menú desplegable y haz clic en **Disabled** (Inhabilitado). Luego selecciona **Enforce on all repositories** (Aplicar en todos los repositorios). ![Menú desplegable del acceso SSH de Git con la opción de inhabilitación seleccionada](/assets/images/enterprise/site-admin-settings/git-ssh-access-appliance-setting.png) +7. Under "Git SSH access", use the drop-down menu, and click **Disabled**. Then, select **Enforce on all repositories**. + ![Git SSH access drop-down menu with disabled option selected](/assets/images/enterprise/site-admin-settings/git-ssh-access-appliance-setting.png) diff --git a/translations/es-ES/content/admin/user-management/managing-repositories-in-your-enterprise/troubleshooting-service-hooks.md b/translations/es-ES/content/admin/user-management/managing-repositories-in-your-enterprise/troubleshooting-service-hooks.md index dd462cc653..90b442a4b8 100644 --- a/translations/es-ES/content/admin/user-management/managing-repositories-in-your-enterprise/troubleshooting-service-hooks.md +++ b/translations/es-ES/content/admin/user-management/managing-repositories-in-your-enterprise/troubleshooting-service-hooks.md @@ -1,8 +1,8 @@ --- -title: Solución de problemas con ganchos de servicio -intro: 'Si las cargar no se están entregando, comprueba estos problemas comunes.' +title: Troubleshooting service hooks +intro: 'If payloads aren''t being delivered, check for these common problems.' redirect_from: - - /enterprise/admin/articles/troubleshooting-service-hooks/ + - /enterprise/admin/articles/troubleshooting-service-hooks - /enterprise/admin/developer-workflow/troubleshooting-service-hooks - /enterprise/admin/user-management/troubleshooting-service-hooks - /admin/user-management/troubleshooting-service-hooks @@ -11,33 +11,38 @@ versions: ghae: '*' topics: - Enterprise -shortTitle: Solución de problemas en los ganchos de servicio +shortTitle: Troubleshoot service hooks --- +## Getting information on deliveries -## Obtener información sobre las entregas - -Puedes buscar información para la última respuesta de todas las entregas de ganchos de servicio en cualquier repositorio. +You can find information for the last response of all service hooks deliveries on any repository. {% data reusables.enterprise_site_admin_settings.access-settings %} -2. Explorar en el repositorio que estás investigando. -3. Haz clic en el enlace **Hooks** (Ganchos) en la barra lateral de navegación. ![Barra lateral de ganchos](/assets/images/enterprise/settings/Enterprise-Hooks-Sidebar.png) -4. Haz clic en el enlace **Latest Delivery** (Última entrega) bajo el gancho de servicio que tiene problemas. ![Detalles de ganchos](/assets/images/enterprise/settings/Enterprise-Hooks-Details.png) -5. En **Remote Calls** (Llamadas remotas), verás los encabezados que se usaron al publicar en el servidor remoto junto con la respuesta que el servidor remoto volvió a enviar a tu instalación. +2. Browse to the repository you're investigating. +3. Click on the **Hooks** link in the navigation sidebar. + ![Hooks Sidebar](/assets/images/enterprise/settings/Enterprise-Hooks-Sidebar.png) +4. Click on the **Latest Delivery** link under the service hook having problems. + ![Hook Details](/assets/images/enterprise/settings/Enterprise-Hooks-Details.png) +5. Under **Remote Calls**, you'll see the headers that were used when POSTing to the remote server along with the response that the remote server sent back to your installation. -## Ver la carga +## Viewing the payload {% data reusables.enterprise_site_admin_settings.access-settings %} -2. Explorar en el repositorio que estás investigando. -3. Haz clic en el enlace **Hooks** (Ganchos) en la barra lateral de navegación. ![Barra lateral de ganchos](/assets/images/enterprise/settings/Enterprise-Hooks-Sidebar.png) -4. Haz clic en el enlace **Latest Delivery** (Última entrega) bajo el gancho de servicio que tiene problemas. -5. Da clic en **Entrega**. ![Ver la carga](/assets/images/enterprise/settings/Enterprise-Hooks-Payload.png) +2. Browse to the repository you're investigating. +3. Click on the **Hooks** link in the navigation sidebar. + ![Hooks Sidebar](/assets/images/enterprise/settings/Enterprise-Hooks-Sidebar.png) +4. Click on the **Latest Delivery** link under the service hook having problems. +5. Click **Delivery**. + ![Viewing the payload](/assets/images/enterprise/settings/Enterprise-Hooks-Payload.png) -## Ver entregas anteriores +## Viewing past deliveries -Las entregas se almacenan durante 15 días. +Deliveries are stored for 15 days. {% data reusables.enterprise_site_admin_settings.access-settings %} -2. Explorar en el repositorio que estás investigando. -3. Haz clic en el enlace **Hooks** (Ganchos) en la barra lateral de navegación. ![Barra lateral de ganchos](/assets/images/enterprise/settings/Enterprise-Hooks-Sidebar.png) -4. Haz clic en el enlace **Latest Delivery** (Última entrega) bajo el gancho de servicio que tiene problemas. -5. Para ver otras entregas para ese gancho específico, haz clic en **More for this Hook ID** (Más para este ID de gancho): ![Ver más entregas](/assets/images/enterprise/settings/Enterprise-Hooks-More-Deliveries.png) +2. Browse to the repository you're investigating. +3. Click on the **Hooks** link in the navigation sidebar. + ![Hooks Sidebar](/assets/images/enterprise/settings/Enterprise-Hooks-Sidebar.png) +4. Click on the **Latest Delivery** link under the service hook having problems. +5. To view other deliveries to that specific hook, click **More for this Hook ID**: + ![Viewing more deliveries](/assets/images/enterprise/settings/Enterprise-Hooks-More-Deliveries.png) diff --git a/translations/es-ES/content/admin/user-management/managing-users-in-your-enterprise/auditing-ssh-keys.md b/translations/es-ES/content/admin/user-management/managing-users-in-your-enterprise/auditing-ssh-keys.md index 92baa28915..b7fb055a49 100644 --- a/translations/es-ES/content/admin/user-management/managing-users-in-your-enterprise/auditing-ssh-keys.md +++ b/translations/es-ES/content/admin/user-management/managing-users-in-your-enterprise/auditing-ssh-keys.md @@ -1,8 +1,8 @@ --- -title: Auditar claves SSH -intro: Los administradores del sitio pueden iniciar una auditoría en todas las instancias de las claves SSH. +title: Auditing SSH keys +intro: Site administrators can initiate an instance-wide audit of SSH keys. redirect_from: - - /enterprise/admin/articles/auditing-ssh-keys/ + - /enterprise/admin/articles/auditing-ssh-keys - /enterprise/admin/user-management/auditing-ssh-keys - /admin/user-management/auditing-ssh-keys versions: @@ -15,52 +15,51 @@ topics: - Security - SSH --- +Once initiated, the audit disables all existing SSH keys and forces users to approve or reject them before they're able to clone, pull, or push to any repositories. An audit is useful in situations where an employee or contractor leaves the company and you need to ensure that all keys are verified. -Una vez iniciada, la auditoría desactiva todas las claves SSH existentes y obliga a los usuarios a aprobarlas o rechazarlas antes de que sea posible clonarlas, extraerlas o subirlas a cualquier repositorio. Una auditoría es útil cuando un empleado o contratista se va de la empresa y necesitas asegurarte de que todas las claves estén verificadas. +## Initiating an audit -## Iniciar una auditoría +You can initiate an SSH key audit from the "All users" tab of the site admin dashboard: -Puedes iniciar una auditoría de claves SSH desde la pestaña "Todos los usuarios" del tablero de administrador del sitio: +![Starting a public key audit](/assets/images/enterprise/security/Enterprise-Start-Key-Audit.png) -![Iniciar una auditoría de clave pública](/assets/images/enterprise/security/Enterprise-Start-Key-Audit.png) +After you click the "Start public key audit" button, you'll be taken to a confirmation screen explaining what will happen next: -Una vez que haces clic en el botón "Iniciar auditoría de clave pública", serás redirigido a la pantalla de confirmación que explica lo que sucederá a continuación: +![Confirming the audit](/assets/images/enterprise/security/Enterprise-Begin-Audit.png) -![Confirmación de la auditoría](/assets/images/enterprise/security/Enterprise-Begin-Audit.png) +After you click the "Begin audit" button, all SSH keys are invalidated and will require approval. You'll see a notification indicating the audit has begun. -Una vez que haces clic en el botón "Comenzar auditoría", todas las claves SSH son invalidadas y se necesitará aprobación. Verás una notificación que indica que la auditoría ha comenzado. +## What users see -## Lo que los usuarios ven - -Si un usuario intenta realizar cualquier operación Git a través de SSH, fallará y se indicará el siguiente mensaje: +If a user attempts to perform any git operation over SSH, it will fail and provide them with the following message: ```shell -ERROR: Hola nombre de usuario. Estamos realizando una auditoría de clave SSH. -Visita http(s)://hostname/settings/ssh/audit/2 -para aprobar esta clave y saber que es segura. -Huella digital: ed:21:60:64:c0:dc:2b:16:0f:54:5f:2b:35:2a:94:91 -fatal: El final remoto ha colgado inesperadamente. +ERROR: Hi username. We're doing an SSH key audit. +Please visit http(s)://hostname/settings/ssh/audit/2 +to approve this key so we know it's safe. +Fingerprint: ed:21:60:64:c0:dc:2b:16:0f:54:5f:2b:35:2a:94:91 +fatal: The remote end hung up unexpectedly ``` -Cuando el usuario sigue el enlace, se le solicita aprobar las claves en su cuenta: +When they follow the link, they're asked to approve the keys on their account: -![Auditoría de claves](/assets/images/enterprise/security/Enterprise-Audit-SSH-Keys.jpg) +![Auditing keys](/assets/images/enterprise/security/Enterprise-Audit-SSH-Keys.jpg) -Una vez que se aprueban o se rechazan sus claves, podrá interactuar con los repositorios como siempre. +After they approve or reject their keys, they'll be able interact with repositories as usual. -## Agregar una clave SSH +## Adding an SSH key -Cuando los usuarios nuevos agreguen una clave SSH, se les solicitará su contraseña: +New users will be prompted for their password when adding an SSH key: -![Confirmación de contraseña](/assets/images/help/settings/sudo_mode_popup.png) +![Password confirmation](/assets/images/help/settings/sudo_mode_popup.png) -Cuando un usuario agrega una clave, recibirá un correo electrónico de notificación que se verá como esto: +When a user adds a key, they'll receive a notification email that will look something like this: + + The following SSH key was added to your account: - Se agregó la siguiente clave SSH a tu cuenta: - [title] ed:21:60:64:c0:dc:2b:16:0f:54:5f:2b:35:2a:94:91 - - Si crees que esta clave se agregó por error, puedes eliminar la clave y desactivar el acceso a la siguiente ubicación: - + + If you believe this key was added in error, you can remove the key and disable access at the following location: + http(s)://HOSTNAME/settings/ssh diff --git a/translations/es-ES/content/admin/user-management/managing-users-in-your-enterprise/auditing-users-across-your-enterprise.md b/translations/es-ES/content/admin/user-management/managing-users-in-your-enterprise/auditing-users-across-your-enterprise.md index f7a55c64ba..b73c09ee99 100644 --- a/translations/es-ES/content/admin/user-management/managing-users-in-your-enterprise/auditing-users-across-your-enterprise.md +++ b/translations/es-ES/content/admin/user-management/managing-users-in-your-enterprise/auditing-users-across-your-enterprise.md @@ -2,7 +2,7 @@ title: Auditing users across your enterprise intro: 'The audit log dashboard shows site administrators the actions performed by all users and organizations across your enterprise within the current month and previous six months. The audit log includes details such as who performed the action, what the action was, and when the action was performed.' redirect_from: - - /enterprise/admin/guides/user-management/auditing-users-across-an-organization/ + - /enterprise/admin/guides/user-management/auditing-users-across-an-organization - /enterprise/admin/user-management/auditing-users-across-your-instance - /admin/user-management/auditing-users-across-your-instance - /admin/user-management/auditing-users-across-your-enterprise diff --git a/translations/es-ES/content/admin/user-management/managing-users-in-your-enterprise/best-practices-for-user-security.md b/translations/es-ES/content/admin/user-management/managing-users-in-your-enterprise/best-practices-for-user-security.md index 860707055c..731713061c 100644 --- a/translations/es-ES/content/admin/user-management/managing-users-in-your-enterprise/best-practices-for-user-security.md +++ b/translations/es-ES/content/admin/user-management/managing-users-in-your-enterprise/best-practices-for-user-security.md @@ -1,6 +1,6 @@ --- -title: Las mejores prácticas para la seguridad del usuario -intro: '{% ifversion ghes %}Fuera de las medidas de seguridad a nivel de la instancia (SSL, aislamiento de subdominios, configurar un cortafuegos) que puede implementar un administrador de sitio, hay {% else %}Hay {% endif %}pasos que tus usuarios pueden llevar a cabo para ayudarte a proteger tu empresa.' +title: Best practices for user security +intro: '{% ifversion ghes %}Outside of instance-level security measures (SSL, subdomain isolation, configuring a firewall) that a site administrator can implement, there {% else %}There {% endif %}are steps your users can take to help protect your enterprise.' redirect_from: - /enterprise/admin/user-management/best-practices-for-user-security - /admin/user-management/best-practices-for-user-security @@ -12,23 +12,22 @@ topics: - Enterprise - Security - User account -shortTitle: Mejores prácticas de seguridad de usuario +shortTitle: User security best practices --- - {% ifversion ghes %} -## Activar autenticación de dos factores +## Enabling two-factor authentication -La autenticación de dos factores (2FA) es una manera de iniciar sesión en sitios web y servicios que requieren de un segundo factor además de una contraseña para la autenticación. En el caso de {% data variables.product.prodname_ghe_server %}, este segundo factor es un código de autenticación de un solo uso generado por una aplicación en el smartphone de un usuario. Te recomendamos que le solicites a tus usuarios activar la autenticación de dos factores en sus cuentas. Con la autenticación de dos factores, tanto la contraseña del usuario como su smartphone deben verse comprometidos para permitir que la propia cuenta se vea comprometida. +Two-factor authentication (2FA) is a way of logging in to websites and services that requires a second factor beyond a password for authentication. In {% data variables.product.prodname_ghe_server %}'s case, this second factor is a one time authentication code generated by an application on a user's smartphone. We strongly recommend requiring your users to enable two-factor authentication on their accounts. With two-factor authentication, both a user's password and their smartphone would have to be compromised to allow the account itself to be compromised. -Para obtener más información sobre cómo configurar la autenticación de dos factores, consulta "[Acerca de la autenticación de dos factores](/enterprise/{{ currentVersion }}/user/articles/about-two-factor-authentication)". +For more information on configuring two-factor authentication, see "[About two-factor authentication](/enterprise/{{ currentVersion }}/user/articles/about-two-factor-authentication)". {% endif %} -## Solicitar un administrador de contraseñas +## Requiring a password manager -Te recomendamos ampliamente que requieras que tus usuarios instalen y utilicen un administrador de contraseñas--tal como [LastPass](https://lastpass.com/) o [1Password](https://1password.com/)-- en cualquier computadora que utilicen para conectarse a tu empresa. Esto garantiza que las contraseñas sean más seguras y que sea menos probable que se vean comprometidas o sean robadas. +We strongly recommend requiring your users to install and use a password manager--such as [LastPass](https://lastpass.com/) or [1Password](https://1password.com/)--on any computer they use to connect to your enterprise. Doing so ensures that passwords are stronger and much less likely to be compromised or stolen. -## Restringir el acceso a equipos y repositorios +## Restrict access to teams and repositories -Para limitar la posible superficie expuesta a ataques en el caso de una vulneración de la seguridad, te recomendamos que se le de a los usuarios acceso solo a los equipos y los repositorios que realmente necesiten para realizar su trabajo. Ya que los miembros con rol de propietario pueden acceder a todos los equipos y los repositorios en la organización, te recomendamos que este equipo sea lo más pequeño posible. +To limit the potential attack surface in the event of a security breach, we strongly recommend only giving users access to teams and repositories that they absolutely need to do their work. Since members with the Owner role can access all teams and repositories in the organization, we strongly recommend keeping this team as small as possible. For more information on configuring teams and team permissions, see "[Roles in an organization](/organizations/managing-peoples-access-to-your-organization-with-roles/roles-in-an-organization)." diff --git a/translations/es-ES/content/admin/user-management/managing-users-in-your-enterprise/customizing-user-messages-for-your-enterprise.md b/translations/es-ES/content/admin/user-management/managing-users-in-your-enterprise/customizing-user-messages-for-your-enterprise.md index 38dab7b3dc..f6396f94cc 100644 --- a/translations/es-ES/content/admin/user-management/managing-users-in-your-enterprise/customizing-user-messages-for-your-enterprise.md +++ b/translations/es-ES/content/admin/user-management/managing-users-in-your-enterprise/customizing-user-messages-for-your-enterprise.md @@ -1,12 +1,12 @@ --- -title: Personalizar los mensajes de usuario para tu empresa -shortTitle: Personalizar los mensajes de usuario +title: Customizing user messages for your enterprise +shortTitle: Customizing user messages redirect_from: - - /enterprise/admin/user-management/creating-a-custom-sign-in-message/ + - /enterprise/admin/user-management/creating-a-custom-sign-in-message - /enterprise/admin/user-management/customizing-user-messages-on-your-instance - /admin/user-management/customizing-user-messages-on-your-instance - /admin/user-management/customizing-user-messages-for-your-enterprise -intro: 'Puedes crear mensajes personalizados que los usuarios verán en {% data variables.product.product_location %}.' +intro: 'You can create custom messages that users will see on {% data variables.product.product_location %}.' versions: ghes: '*' ghae: '*' @@ -15,98 +15,108 @@ topics: - Enterprise - Maintenance --- +## About user messages -## Acerca de los mensajes de usuario - -Hay varios tipos de mensajes de usuario. -- Los mensajes que aparecen en la {% ifversion ghes %}página de ingreso o de {% endif %}salida{% ifversion ghes or ghae %} -- Mensajes obligatorios, los cuales aparecen en una ventana emergente que debe cerrarse{% endif %}{% ifversion ghes or ghae %} -- Letreros de anuncio, los cuales aparecen en la parte superior de cada página{% endif %} +There are several types of user messages. +- Messages that appear on the {% ifversion ghes %}sign in or {% endif %}sign out page{% ifversion ghes or ghae %} +- Mandatory messages, which appear once in a pop-up window that must be dismissed{% endif %}{% ifversion ghes or ghae %} +- Announcement banners, which appear at the top of every page{% endif %} {% ifversion ghes %} {% note %} -**Nota:** Si usas SAML para la autenticación, tu proveedor de identidad presenta la página de inicio de sesión y no es personalizable a través de {% data variables.product.prodname_ghe_server %}. +**Note:** If you are using SAML for authentication, the sign in page is presented by your identity provider and is not customizable via {% data variables.product.prodname_ghe_server %}. {% endnote %} -Puedes usar Markdown para dar formato al mensaje. Para obtener más información, consulta "[Acerca de la escritura y el formato en {% data variables.product.prodname_dotcom %}](/articles/about-writing-and-formatting-on-github/)." +You can use Markdown to format your message. For more information, see "[About writing and formatting on {% data variables.product.prodname_dotcom %}](/articles/about-writing-and-formatting-on-github/)." -## Crear un mensaje de inicio de sesión personalizado +## Creating a custom sign in message {% data reusables.enterprise-accounts.access-enterprise %} {% data reusables.enterprise-accounts.settings-tab %} {% data reusables.enterprise-accounts.messages-tab %} -5. {% ifversion ghes %}A la derecha de{% else %}Debajo de{% endif %} "Página de inicio de sesión", da clic en **Agregar mensaje** o **Editar mensaje**. ![{% ifversion ghes %}Botón de mensaje de Agregar{% else %}Editar{% endif %}](/assets/images/enterprise/site-admin-settings/edit-message.png) -6. En **Mensaje de inicio de sesión**, escribe el mensaje que quisieras que vean los usuarios. ![Sign in message](/assets/images/enterprise/site-admin-settings/sign-in-message.png){% ifversion ghes %} +5. {% ifversion ghes %}To the right of{% else %}Under{% endif %} "Sign in page", click **Add message** or **Edit message**. +![{% ifversion ghes %}Add{% else %}Edit{% endif %} message button](/assets/images/enterprise/site-admin-settings/edit-message.png) +6. Under **Sign in message**, type the message you'd like users to see. +![Sign in message](/assets/images/enterprise/site-admin-settings/sign-in-message.png){% ifversion ghes %} {% data reusables.enterprise_site_admin_settings.message-preview-save %}{% else %} {% data reusables.enterprise_site_admin_settings.click-preview %} - ![Botón Vista previa](/assets/images/enterprise/site-admin-settings/sign-in-message-preview-button.png) -8. Revisar el mensaje presentado. ![Mensaje de inicio presentado](/assets/images/enterprise/site-admin-settings/sign-in-message-rendered.png) + ![Preview button](/assets/images/enterprise/site-admin-settings/sign-in-message-preview-button.png) +8. Review the rendered message. +![Sign in message rendered](/assets/images/enterprise/site-admin-settings/sign-in-message-rendered.png) {% data reusables.enterprise_site_admin_settings.save-changes %}{% endif %} {% endif %} -## Crear un mensaje de cierre de sesión personalizado +## Creating a custom sign out message {% data reusables.enterprise-accounts.access-enterprise %} {% data reusables.enterprise-accounts.settings-tab %} {% data reusables.enterprise-accounts.messages-tab %} -5. {% ifversion ghes or ghae %}A la derecha de{% else %}Debajo de{% endif %} "Página de salida", da clic en **Agregar mensaje** o **Editar mensaje**. ![Botón Agregar mensaje](/assets/images/enterprise/site-admin-settings/sign-out-add-message-button.png) -6. En **Mensaje de cierre de sesión**, escribe el mensaje que quieras que vean los usuarios. ![Sign two_factor_auth_header message](/assets/images/enterprise/site-admin-settings/sign-out-message.png){% ifversion ghes or ghae %} +5. {% ifversion ghes or ghae %}To the right of{% else %}Under{% endif %} "Sign out page", click **Add message** or **Edit message**. +![Add message button](/assets/images/enterprise/site-admin-settings/sign-out-add-message-button.png) +6. Under **Sign out message**, type the message you'd like users to see. +![Sign two_factor_auth_header message](/assets/images/enterprise/site-admin-settings/sign-out-message.png){% ifversion ghes or ghae %} {% data reusables.enterprise_site_admin_settings.message-preview-save %}{% else %} {% data reusables.enterprise_site_admin_settings.click-preview %} - ![Botón Vista previa](/assets/images/enterprise/site-admin-settings/sign-out-message-preview-button.png) -8. Revisar el mensaje presentado. ![Mensaje de salida presentado](/assets/images/enterprise/site-admin-settings/sign-out-message-rendered.png) + ![Preview button](/assets/images/enterprise/site-admin-settings/sign-out-message-preview-button.png) +8. Review the rendered message. +![Sign out message rendered](/assets/images/enterprise/site-admin-settings/sign-out-message-rendered.png) {% data reusables.enterprise_site_admin_settings.save-changes %}{% endif %} {% ifversion ghes or ghae %} -## Crear un mensaje obligatorio +## Creating a mandatory message -Puedes crear un mensaje obligatorio que {% data variables.product.product_name %} mostrará a todos los usuarios la primera vez que inicien sesión después de que guardaste el mensaje. El mensaje aparece en una ventana emergente que el usuario deberá descartar antes de poder utilizar {% data variables.product.product_location %}. +You can create a mandatory message that {% data variables.product.product_name %} will show to all users the first time they sign in after you save the message. The message appears in a pop-up window that the user must dismiss before the user can use {% data variables.product.product_location %}. -Los mensajes obligatorios tienen varios usos. +Mandatory messages have a variety of uses. -- Proporcinar información de integración para los empleados nuevos -- Decir a los usuarios cómo obtener ayuda con {% data variables.product.product_location %} -- Garantizar que todos los usuarios lean tus condiciones de servicio para utilizar {% data variables.product.product_location %} +- Providing onboarding information for new employees +- Telling users how to get help with {% data variables.product.product_location %} +- Ensuring that all users read your terms of service for using {% data variables.product.product_location %} -Si incluyes cajas de verificación con lenguaje de marcado en el mensaje, todas ellas deberán seleccionarse antes de que el usuario pueda descartar el mensaje. Por ejemplo, si incluyes tus condiciones de servicio en el mensaje obligatorio, puede que necesites que cada usuario seleccione una casilla para confirmar que leyó dichas condiciones. +If you include Markdown checkboxes in the message, all checkboxes must be selected before the user can dismiss the message. For example, if you include your terms of service in the mandatory message, you can require that each user selects a checkbox to confirm the user has read the terms. -Cada vez que un usuario vea un mensaje obligatorio, se crea un evento de bitácora de auditoría. El evento incluye la versión del mensaje que vio el usuario. Para obtener más información, consulta la sección "[Acciones auditadas](/admin/user-management/audited-actions)". +Each time a user sees a mandatory message, an audit log event is created. The event includes the version of the message that the user saw. For more information see "[Audited actions](/admin/user-management/audited-actions)." {% note %} -**Nota:** Si cambias el mensaje obligatorio de {% data variables.product.product_location %}, los usuarios que ya lo hayan reconocido no verán el mensaje nuevo. +**Note:** If you change the mandatory message for {% data variables.product.product_location %}, users who have already acknowledged the message will not see the new message. {% endnote %} {% data reusables.enterprise-accounts.access-enterprise %} {% data reusables.enterprise-accounts.settings-tab %} {% data reusables.enterprise-accounts.messages-tab %} -1. A la derecha de "Mensaje obligatorio", da clic en **Agregar mensaje**. ![Botón de agregar mensaje obligatorio](/assets/images/enterprise/site-admin-settings/add-mandatory-message-button.png) -1. Debajo de "Mensaje obligatorio", en la casilla de texto, teclea tu mensaje. ![Caja de texto del mensaje obligatorio](/assets/images/enterprise/site-admin-settings/mandatory-message-text-box.png) +1. To the right of "Mandatory message", click **Add message**. + ![Add mandatory message button](/assets/images/enterprise/site-admin-settings/add-mandatory-message-button.png) +1. Under "Mandatory message", in the text box, type your message. + ![Mandatory message text box](/assets/images/enterprise/site-admin-settings/mandatory-message-text-box.png) {% data reusables.enterprise_site_admin_settings.message-preview-save %} {% endif %} {% ifversion ghes or ghae %} -## Crear un letrero de anuncio global +## Creating a global announcement banner -Puedes configurar un letrero de anuncio global para que se muestre a todos los usuarios en la parte superior de cada página. +You can set a global announcement banner to be displayed to all users at the top of every page. {% ifversion ghae or ghes %} -También puedes configurar un letrero de anuncio{% ifversion ghes %} en el shell administrativo utilizando una utilidad de línea de comandos o{% endif %} utilizando la API. Para obtener más información, consulta las secciones {% ifversion ghes %}"[Utilidades de la línea de comandos](/enterprise/admin/configuration/command-line-utilities#ghe-announce)" y {% endif %}"[Administración de {% data variables.product.prodname_enterprise %}](/rest/reference/enterprise-admin#announcements)". +You can also set an announcement banner{% ifversion ghes %} in the administrative shell using a command line utility or{% endif %} using the API. For more information, see {% ifversion ghes %}"[Command-line utilities](/enterprise/admin/configuration/command-line-utilities#ghe-announce)" and {% endif %}"[{% data variables.product.prodname_enterprise %} administration](/rest/reference/enterprise-admin#announcements)." {% else %} -También puedes configurar un letrero de anuncio en el shell administrativo utilizando una utilidad de línea de comandos. Para obtener más información, consulta la sección "[Utilidades de línea de comandos](/enterprise/admin/configuration/command-line-utilities#ghe-announce)". +You can also set an announcement banner in the administrative shell using a command line utility. For more information, see "[Command-line utilities](/enterprise/admin/configuration/command-line-utilities#ghe-announce)." {% endif %} {% data reusables.enterprise-accounts.access-enterprise %} {% data reusables.enterprise-accounts.settings-tab %} {% data reusables.enterprise-accounts.messages-tab %} -1. {% ifversion ghes or ghae %}A la derecha de{% else %}Debajo de {% endif %} "Anuncio", da clic en **Agregar anuncio**. ![Botón Agregar mensaje](/assets/images/enterprise/site-admin-settings/add-announcement-button.png) -1. Debajo de "Anuncio", en el campo de texto, teclea el anuncio que quieras mostrar en un letrero. ![Campo de texto para ingresar el anuncio](/assets/images/enterprise/site-admin-settings/announcement-text-field.png) -1. Opcionalmente, debajo de "Vence en", selecciona el menú desplegable de calendario y da clic en la fecha de vencimiento. ![Menú desplegable de calendario para elegir una fecha de vencimiento](/assets/images/enterprise/site-admin-settings/expiration-drop-down.png) +1. {% ifversion ghes or ghae %}To the right of{% else %}Under{% endif %} "Announcement", click **Add announcement**. + ![Add announcement button](/assets/images/enterprise/site-admin-settings/add-announcement-button.png) +1. Under "Announcement", in the text field, type the announcement you want displayed in a banner. + ![Text field to enter announcement](/assets/images/enterprise/site-admin-settings/announcement-text-field.png) +1. Optionally, under "Expires on", select the calendar drop-down menu and click an expiration date. + ![Calendar drop-down menu to choose expiration date](/assets/images/enterprise/site-admin-settings/expiration-drop-down.png) {% data reusables.enterprise_site_admin_settings.message-preview-save %} {% endif %} diff --git a/translations/es-ES/content/admin/user-management/managing-users-in-your-enterprise/index.md b/translations/es-ES/content/admin/user-management/managing-users-in-your-enterprise/index.md index 477387bd1a..4b8443a834 100644 --- a/translations/es-ES/content/admin/user-management/managing-users-in-your-enterprise/index.md +++ b/translations/es-ES/content/admin/user-management/managing-users-in-your-enterprise/index.md @@ -3,7 +3,7 @@ title: Managing users in your enterprise intro: You can audit user activity and manage user settings. redirect_from: - /github/setting-up-and-managing-your-enterprise/managing-users-in-your-enterprise - - /enterprise/admin/guides/user-management/enabling-avatars-and-identicons/ + - /enterprise/admin/guides/user-management/enabling-avatars-and-identicons - /enterprise/admin/user-management/basic-account-settings - /enterprise/admin/user-management/user-security - /enterprise/admin/user-management/managing-users-in-your-enterprise diff --git a/translations/es-ES/content/admin/user-management/managing-users-in-your-enterprise/inviting-people-to-manage-your-enterprise.md b/translations/es-ES/content/admin/user-management/managing-users-in-your-enterprise/inviting-people-to-manage-your-enterprise.md index e3d0893b0f..bdb7d0b4f9 100644 --- a/translations/es-ES/content/admin/user-management/managing-users-in-your-enterprise/inviting-people-to-manage-your-enterprise.md +++ b/translations/es-ES/content/admin/user-management/managing-users-in-your-enterprise/inviting-people-to-manage-your-enterprise.md @@ -1,12 +1,12 @@ --- -title: Invitar a las personas para que administren tu empresa -intro: 'Puedes {% ifversion ghec %}invitar a que las personas se conviertan en propietarios empresariales o gerentes de facturación para {% elsif ghes %}agregar propietarios empresariales a{% endif %} tu cuenta empresarial. También puedes eliminar a los propietarios empresariales {% ifversion ghec %}o gerentes de facturación {% endif %}que ya no necesiten acceso a la cuenta empresarial.' +title: Inviting people to manage your enterprise +intro: 'You can {% ifversion ghec %}invite people to become enterprise owners or billing managers for{% elsif ghes %}add enterprise owners to{% endif %} your enterprise account. You can also remove enterprise owners {% ifversion ghec %}or billing managers {% endif %}who no longer need access to the enterprise account.' product: '{% data reusables.gated-features.enterprise-accounts %}' permissions: 'Enterprise owners can {% ifversion ghec %}invite other people to become{% elsif ghes %}add{% endif %} additional enterprise administrators.' redirect_from: - /github/setting-up-and-managing-your-enterprise/managing-users-in-your-enterprise/inviting-people-to-manage-your-enterprise - /github/setting-up-and-managing-your-enterprise-account/inviting-people-to-manage-your-enterprise-account - - /articles/inviting-people-to-collaborate-in-your-business-account/ + - /articles/inviting-people-to-collaborate-in-your-business-account - /articles/inviting-people-to-manage-your-enterprise-account - /github/setting-up-and-managing-your-enterprise/inviting-people-to-manage-your-enterprise versions: @@ -17,59 +17,64 @@ topics: - Administrator - Enterprise - User account -shortTitle: Invitar personas para que administren +shortTitle: Invite people to manage --- -## Acerca de los usuarios que pueden administrar tu cuenta empresarial +## About users who can manage your enterprise account -{% data reusables.enterprise-accounts.enterprise-administrators %} Para obtener más información, consulta la sección "[Roles en una empresaempresa](/admin/user-management/managing-users-in-your-enterprise/roles-in-an-enterprise)". +{% data reusables.enterprise-accounts.enterprise-administrators %} For more information, see "[Roles in an enterprise](/admin/user-management/managing-users-in-your-enterprise/roles-in-an-enterprise)." {% ifversion ghes %} -Si quieres administrar los propietarios y gerentes de facturación para una cuenta empresarial en {% data variables.product.prodname_dotcom_the_website %}, consulta la sección "[Invitar a personas para que administren tu empresa](/enterprise-cloud@latest/admin/user-management/managing-users-in-your-enterprise/inviting-people-to-manage-your-enterprise)" en la documentación de {% data variables.product.prodname_ghe_cloud %}. +If you want to manage owners and billing managers for an enterprise account on {% data variables.product.prodname_dotcom_the_website %}, see "[Inviting people to manage your enterprise](/enterprise-cloud@latest/admin/user-management/managing-users-in-your-enterprise/inviting-people-to-manage-your-enterprise)" in the {% data variables.product.prodname_ghe_cloud %} documentation. {% endif %} {% ifversion ghec %} -Si tu empresa utiliza {% data variables.product.prodname_emus %}, solo se pueden agregar o eliminar los propietarios de las empresas a través de tu proveedor de identidad. Para obtener más información, consulta la sección "[Acerca de {% data variables.product.prodname_emus %}](/enterprise-cloud@latest/admin/authentication/managing-your-enterprise-users-with-your-identity-provider/about-enterprise-managed-users)". +If your enterprise uses {% data variables.product.prodname_emus %}, enterprise owners can only be added or removed through your identity provider. For more information, see "[About {% data variables.product.prodname_emus %}](/enterprise-cloud@latest/admin/authentication/managing-your-enterprise-users-with-your-identity-provider/about-enterprise-managed-users)." {% endif %} {% tip %} -**Sugerencia:**Para obtener más información acerca de administrar usuarios dentro de una organización que le pertenece a tu cuenta de empresa, consulta "[Administrar membresías de tu organización](/articles/managing-membership-in-your-organization)" y "[Administrar el acceso de personas a tu organización con roles](/articles/managing-peoples-access-to-your-organization-with-roles)." +**Tip:** For more information on managing users within an organization owned by your enterprise account, see "[Managing membership in your organization](/articles/managing-membership-in-your-organization)" and "[Managing people's access to your organization with roles](/articles/managing-peoples-access-to-your-organization-with-roles)." {% endtip %} -## {% ifversion ghec %}Invitar{% elsif ghes %}Agregar{% endif %} a un administrador empresarial a tu cuenta empresarial +## {% ifversion ghec %}Inviting{% elsif ghes %}Adding{% endif %} an enterprise administrator to your enterprise account -{% ifversion ghec %}Después de que invites a alguien para que se una a la cuenta empresarial, esta persona debe aceptar la invitación que le llegó por correo electrónico antes de que pueda acceder a la cuenta empresarial. Pending invitations will expire after 7 days.{% endif %} +{% ifversion ghec %}After you invite someone to join the enterprise account, they must accept the emailed invitation before they can access the enterprise account. Pending invitations will expire after 7 days.{% endif %} {% data reusables.enterprise-accounts.access-enterprise %} {% data reusables.enterprise-accounts.people-tab %} -1. En la barra lateral izquierda, haz clic en **Administrators** (Administradores). ![Pestaña Administrators (Administradores) en la barra lateral izquierda](/assets/images/help/business-accounts/administrators-tab.png) -1. Sobre la lista de administradores, haz clic en {% ifversion ghec %}**Invitar administrador**{% elsif ghes %}**Agregar propietario**{% endif %}. +1. In the left sidebar, click **Administrators**. + ![Administrators tab in the left sidebar](/assets/images/help/business-accounts/administrators-tab.png) +1. Above the list of administrators, click {% ifversion ghec %}**Invite admin**{% elsif ghes %}**Add owner**{% endif %}. {% ifversion ghec %} - ![botón de "invitar administrador" sobre la lista de propietarios empresariales](/assets/images/help/business-accounts/invite-admin-button.png) + !["Invite admin" button above the list of enterprise owners](/assets/images/help/business-accounts/invite-admin-button.png) {% elsif ghes %} - ![Botón de "Agregar propietario" sobre la lista de propietarios empresariales](/assets/images/help/business-accounts/add-owner-button.png) + !["Add owner" button above the list of enterprise owners](/assets/images/help/business-accounts/add-owner-button.png) {% endif %} -1. Escribe el nombre de usuario, el nombre completo o la dirección de correo electrónico de la persona a la que quieres invitar a que se convierta en administrador de empresa, luego selecciona la persona adecuada en los resultados. ![Modal box with field to type a person's username, full name, or email address, and Invite button](/assets/images/help/business-accounts/invite-admins-modal-button.png){% ifversion ghec %} -1. Selecciona **Owner** (Propietario) o **Billing Manager** (Gerente de facturación). ![Casilla modal con opciones de roles](/assets/images/help/business-accounts/invite-admins-roles.png) -1. Haz clic en **Send Invitation** (Enviar invitación). ![Send invitation button](/assets/images/help/business-accounts/invite-admins-send-invitation.png){% endif %}{% ifversion ghes %} -1. Da clic en **Agregar**. !["Add" button](/assets/images/help/business-accounts/add-administrator-add-button.png){% endif %} +1. Type the username, full name, or email address of the person you want to invite to become an enterprise administrator, then select the appropriate person from the results. + ![Modal box with field to type a person's username, full name, or email address, and Invite button](/assets/images/help/business-accounts/invite-admins-modal-button.png){% ifversion ghec %} +1. Select **Owner** or **Billing Manager**. + ![Modal box with role choices](/assets/images/help/business-accounts/invite-admins-roles.png) +1. Click **Send Invitation**. + ![Send invitation button](/assets/images/help/business-accounts/invite-admins-send-invitation.png){% endif %}{% ifversion ghes %} +1. Click **Add**. + !["Add" button](/assets/images/help/business-accounts/add-administrator-add-button.png){% endif %} -## Eliminar un administrador de empresa de tu cuenta de empresa +## Removing an enterprise administrator from your enterprise account -Solo los propietarios de empresa pueden eliminar a otros administradores de empresa de la cuenta de empresa. +Only enterprise owners can remove other enterprise administrators from the enterprise account. {% data reusables.enterprise-accounts.access-enterprise %} {% data reusables.enterprise-accounts.people-tab %} -1. Junto al nombre de usuario de la persona que te gustaría eliminar, haz clic en {% octicon "gear" aria-label="The Settings gear" %}, luego en **Eliminar propietario**{% ifversion ghec %} o **Eliminar gerente de facturación**{% endif %}. +1. Next to the username of the person you'd like to remove, click {% octicon "gear" aria-label="The Settings gear" %}, then click **Remove owner**{% ifversion ghec %} or **Remove billing manager**{% endif %}. {% ifversion ghec %} - ![Parámetros con opción del menú para eliminar un administrador de empresa](/assets/images/help/business-accounts/remove-admin.png) + ![Settings gear with menu option to remove an enterprise administrator](/assets/images/help/business-accounts/remove-admin.png) {% elsif ghes %} - ![Parámetros con opción del menú para eliminar un administrador de empresa](/assets/images/help/business-accounts/ghes-remove-owner.png) + ![Settings gear with menu option to remove an enterprise administrator](/assets/images/help/business-accounts/ghes-remove-owner.png) {% endif %} -1. Lee la confirmación y luego haz clic en **Eliminar propietario**{% ifversion ghec %} o **Eliminar gerente de facturación**{% endif %}. +1. Read the confirmation, then click **Remove owner**{% ifversion ghec %} or **Remove billing manager**{% endif %}. diff --git a/translations/es-ES/content/admin/user-management/managing-users-in-your-enterprise/managing-dormant-users.md b/translations/es-ES/content/admin/user-management/managing-users-in-your-enterprise/managing-dormant-users.md index d482da22bc..ce92ba1dc4 100644 --- a/translations/es-ES/content/admin/user-management/managing-users-in-your-enterprise/managing-dormant-users.md +++ b/translations/es-ES/content/admin/user-management/managing-users-in-your-enterprise/managing-dormant-users.md @@ -1,9 +1,9 @@ --- title: Managing dormant users redirect_from: - - /enterprise/admin/articles/dormant-users/ - - /enterprise/admin/articles/viewing-dormant-users/ - - /enterprise/admin/articles/determining-whether-a-user-account-is-dormant/ + - /enterprise/admin/articles/dormant-users + - /enterprise/admin/articles/viewing-dormant-users + - /enterprise/admin/articles/determining-whether-a-user-account-is-dormant - /enterprise/admin/user-management/managing-dormant-users - /admin/user-management/managing-dormant-users intro: '{% data reusables.enterprise-accounts.dormant-user-activity-threshold %}' diff --git a/translations/es-ES/content/admin/user-management/managing-users-in-your-enterprise/promoting-or-demoting-a-site-administrator.md b/translations/es-ES/content/admin/user-management/managing-users-in-your-enterprise/promoting-or-demoting-a-site-administrator.md index 780a4f4191..0227145d68 100644 --- a/translations/es-ES/content/admin/user-management/managing-users-in-your-enterprise/promoting-or-demoting-a-site-administrator.md +++ b/translations/es-ES/content/admin/user-management/managing-users-in-your-enterprise/promoting-or-demoting-a-site-administrator.md @@ -1,8 +1,8 @@ --- title: Promoting or demoting a site administrator redirect_from: - - /enterprise/admin/articles/promoting-a-site-administrator/ - - /enterprise/admin/articles/demoting-a-site-administrator/ + - /enterprise/admin/articles/promoting-a-site-administrator + - /enterprise/admin/articles/demoting-a-site-administrator - /enterprise/admin/user-management/promoting-or-demoting-a-site-administrator - /admin/user-management/promoting-or-demoting-a-site-administrator intro: 'Site administrators can promote any normal user account to a site administrator, as well as demote other site administrators to regular users.' diff --git a/translations/es-ES/content/admin/user-management/managing-users-in-your-enterprise/rebuilding-contributions-data.md b/translations/es-ES/content/admin/user-management/managing-users-in-your-enterprise/rebuilding-contributions-data.md index 28796458e4..fc57c1bf12 100644 --- a/translations/es-ES/content/admin/user-management/managing-users-in-your-enterprise/rebuilding-contributions-data.md +++ b/translations/es-ES/content/admin/user-management/managing-users-in-your-enterprise/rebuilding-contributions-data.md @@ -1,8 +1,8 @@ --- -title: Reconstruir datos de contribuciones -intro: Es posible que necesites reconstruir los datos de contribuciones para vincular las confirmaciones de cambios a una cuenta de usuario. +title: Rebuilding contributions data +intro: You may need to rebuild contributions data to link existing commits to a user account. redirect_from: - - /enterprise/admin/articles/rebuilding-contributions-data/ + - /enterprise/admin/articles/rebuilding-contributions-data - /enterprise/admin/user-management/rebuilding-contributions-data - /admin/user-management/rebuilding-contributions-data versions: @@ -12,15 +12,16 @@ topics: - Enterprise - Repositories - User account -shortTitle: Reconstruir las colaboraciones +shortTitle: Rebuild contributions --- +Whenever a commit is pushed to {% data variables.product.prodname_enterprise %}, it is linked to a user account if they are both associated with the same email address. However, existing commits are *not* retroactively linked when a user registers a new email address or creates a new account. -Siempre que se sube una confirmación de cambios a {% data variables.product.prodname_enterprise %}, se vincula a una cuenta de usuario, si ambas están asociadas con la misma dirección de correo electrónico. Sin embargo, las confirmaciones de cambio existentes *no* se vinculan de forma retroactiva cuando un usuario registra una dirección de correo electrónico nueva o crea una cuenta nueva. - -1. Visita la página de perfil de usuario. +1. Visit the user's profile page. {% data reusables.enterprise_site_admin_settings.access-settings %} -3. En el lado izquierdo de la página, haz clic en **Administrar**. ![Pestaña Administrar](/assets/images/enterprise/site-admin-settings/admin-tab.png) -4. En **Datos de contribuciones**, haz clic en **Reconstruir**. ![Botón Reconstruir](/assets/images/enterprise/site-admin-settings/rebuild-button.png) +3. On the left side of the page, click **Admin**. + ![Admin tab](/assets/images/enterprise/site-admin-settings/admin-tab.png) +4. Under **Contributions data**, click **Rebuild**. +![Rebuild button](/assets/images/enterprise/site-admin-settings/rebuild-button.png) -{% data variables.product.prodname_enterprise %} ahora comenzará jobs en segundo plano para volver a enlazar las confirmaciones con esa cuenta de usuario. - ![Trabajos de reconstrucción en cola](/assets/images/enterprise/site-admin-settings/rebuild-jobs.png) +{% data variables.product.prodname_enterprise %} will now start background jobs to re-link commits with that user's account. + ![Queued rebuild jobs](/assets/images/enterprise/site-admin-settings/rebuild-jobs.png) diff --git a/translations/es-ES/content/admin/user-management/managing-users-in-your-enterprise/roles-in-an-enterprise.md b/translations/es-ES/content/admin/user-management/managing-users-in-your-enterprise/roles-in-an-enterprise.md index 62a12b3bab..9fb394b311 100644 --- a/translations/es-ES/content/admin/user-management/managing-users-in-your-enterprise/roles-in-an-enterprise.md +++ b/translations/es-ES/content/admin/user-management/managing-users-in-your-enterprise/roles-in-an-enterprise.md @@ -5,7 +5,7 @@ product: '{% data reusables.gated-features.enterprise-accounts %}' redirect_from: - /github/setting-up-and-managing-your-enterprise/managing-users-in-your-enterprise/roles-in-an-enterprise - /github/setting-up-and-managing-your-enterprise-account/roles-for-an-enterprise-account - - /articles/permission-levels-for-a-business-account/ + - /articles/permission-levels-for-a-business-account - /articles/roles-for-an-enterprise-account - /github/setting-up-and-managing-your-enterprise/roles-in-an-enterprise versions: @@ -42,7 +42,7 @@ Enterprise owners have complete control over the enterprise and can take every a Enterprise owners cannot access organization settings or content unless they are made an organization owner or given direct access to an organization-owned repository. Similarly, owners of organizations in your enterprise do not have access to the enterprise itself unless you make them enterprise owners. -An enterprise owner will only consume a license if they are an owner or member of at least one organization within the enterprise. {% ifversion ghec %}Enterprise owners must have a personal account on {% data variables.product.prodname_dotcom %}.{% endif %} As a best practice, we recommend making only a few people in your company enterprise owners, to reduce the risk to your business. +An enterprise owner will only consume a license if they are an owner or member of at least one organization within the enterprise. Even if an enterprise owner has a role in multiple organizations, they will consume a single license. {% ifversion ghec %}Enterprise owners must have a personal account on {% data variables.product.prodname_dotcom %}.{% endif %} As a best practice, we recommend making only a few people in your company enterprise owners, to reduce the risk to your business. ## Enterprise members diff --git a/translations/es-ES/content/admin/user-management/managing-users-in-your-enterprise/suspending-and-unsuspending-users.md b/translations/es-ES/content/admin/user-management/managing-users-in-your-enterprise/suspending-and-unsuspending-users.md index 08148b0c9f..f64cdf6334 100644 --- a/translations/es-ES/content/admin/user-management/managing-users-in-your-enterprise/suspending-and-unsuspending-users.md +++ b/translations/es-ES/content/admin/user-management/managing-users-in-your-enterprise/suspending-and-unsuspending-users.md @@ -1,11 +1,11 @@ --- title: Suspending and unsuspending users redirect_from: - - /enterprise/admin/articles/suspending-a-user/ - - /enterprise/admin/articles/unsuspending-a-user/ - - /enterprise/admin/articles/viewing-suspended-users/ - - /enterprise/admin/articles/suspended-users/ - - /enterprise/admin/articles/suspending-and-unsuspending-users/ + - /enterprise/admin/articles/suspending-a-user + - /enterprise/admin/articles/unsuspending-a-user + - /enterprise/admin/articles/viewing-suspended-users + - /enterprise/admin/articles/suspended-users + - /enterprise/admin/articles/suspending-and-unsuspending-users - /enterprise/admin/user-management/suspending-and-unsuspending-users - /admin/user-management/suspending-and-unsuspending-users intro: 'If a user leaves or moves to a different part of the company, you should remove or modify their ability to access {% data variables.product.product_location %}.' diff --git a/translations/es-ES/content/admin/user-management/managing-users-in-your-enterprise/viewing-and-managing-a-users-saml-access-to-your-enterprise.md b/translations/es-ES/content/admin/user-management/managing-users-in-your-enterprise/viewing-and-managing-a-users-saml-access-to-your-enterprise.md index e2d9c2a772..d1577b8174 100644 --- a/translations/es-ES/content/admin/user-management/managing-users-in-your-enterprise/viewing-and-managing-a-users-saml-access-to-your-enterprise.md +++ b/translations/es-ES/content/admin/user-management/managing-users-in-your-enterprise/viewing-and-managing-a-users-saml-access-to-your-enterprise.md @@ -1,6 +1,6 @@ --- -title: Visualizar y administrar el acceso de SAML de un usuario a tu empresa -intro: 'Puedes ver y revocar la identidad vinculada de un miembro de la empresa, sesiones activas y credenciales autorizadas.' +title: Viewing and managing a user's SAML access to your enterprise +intro: 'You can view and revoke an enterprise member''s linked identity, active sessions, and authorized credentials.' permissions: Enterprise owners can view and manage a member's SAML access to an organization. product: '{% data reusables.gated-features.enterprise-accounts %}' redirect_from: @@ -12,20 +12,19 @@ versions: ghec: '*' topics: - Enterprise -shortTitle: Visualizar & administrar el acceso con SAML +shortTitle: View & manage SAML access --- - -## Acerca del acceso de SAML a tu cuenta empresarial +## About SAML access to your enterprise account When you enable SAML single sign-on for your enterprise account, each enterprise member can link their external identity on your identity provider (IdP) to their existing account on {% data variables.product.product_location %}. {% data reusables.saml.about-saml-access-enterprise-account %} -Si tu empresa utiliza {% data variables.product.prodname_emus %}, tus miembros utilizarán cuentas que se aprovisionen a través de tu IdP. {% data variables.product.prodname_managed_users_caps %} no utilizará su cuenta de usuario existente en {% data variables.product.product_name %}. Para obtener más información, consulta la sección "[Acerca de {% data variables.product.prodname_emus %}](/enterprise-cloud@latest/admin/authentication/managing-your-enterprise-users-with-your-identity-provider/about-enterprise-managed-users)". +If your enterprise is uses {% data variables.product.prodname_emus %}, your members will use accounts provisioned through your IdP. {% data variables.product.prodname_managed_users_caps %} will not use their existing user account on {% data variables.product.product_name %}. For more information, see "[About {% data variables.product.prodname_emus %}](/enterprise-cloud@latest/admin/authentication/managing-your-enterprise-users-with-your-identity-provider/about-enterprise-managed-users)." -## Visualizar y revocar una identidad vinculada +## Viewing and revoking a linked identity {% data reusables.saml.about-linked-identities %} -Si tu empresa utiliza {% data variables.product.prodname_emus %}, no podrás desaprovisionar o eliminar cuentas de usuario desde la empresa en {% data variables.product.product_name %}. Cualquier cambio que necesites hacer a los {% data variables.product.prodname_managed_users %} de tu empresa deberá realizarse mediante tu IdP. +If your enterprise uses {% data variables.product.prodname_emus %}, you will not be able to deprovision or remove user accounts from the enterprise on {% data variables.product.product_name %}. Any changes you need to make to your enterprise's {% data variables.product.prodname_managed_users %} should be made through your IdP. {% data reusables.identity-and-permissions.revoking-identity-team-sync %} @@ -37,7 +36,7 @@ Si tu empresa utiliza {% data variables.product.prodname_emus %}, no podrás des {% data reusables.saml.revoke-sso-identity %} {% data reusables.saml.confirm-revoke-identity %} -## Visualizar y revocar una sesión activa de SAML +## Viewing and revoking an active SAML session {% data reusables.enterprise-accounts.access-enterprise %} {% data reusables.enterprise-accounts.people-tab %} @@ -46,7 +45,7 @@ Si tu empresa utiliza {% data variables.product.prodname_emus %}, no podrás des {% data reusables.saml.view-saml-sessions %} {% data reusables.saml.revoke-saml-session %} -## Visualizar y revocar credenciales autorizadas +## Viewing and revoking authorized credentials {% data reusables.saml.about-authorized-credentials %} @@ -58,6 +57,6 @@ Si tu empresa utiliza {% data variables.product.prodname_emus %}, no podrás des {% data reusables.saml.revoke-authorized-credentials %} {% data reusables.saml.confirm-revoke-credentials %} -## Leer más +## Further reading -- "[Visualizar y administrar el acceso de SAML de un miembro a tu organización](/organizations/granting-access-to-your-organization-with-saml-single-sign-on/viewing-and-managing-a-members-saml-access-to-your-organization)" +- "[Viewing and managing a member's SAML access to your organization](/organizations/granting-access-to-your-organization-with-saml-single-sign-on/viewing-and-managing-a-members-saml-access-to-your-organization)" diff --git a/translations/es-ES/content/admin/user-management/migrating-data-to-and-from-your-enterprise/exporting-migration-data-from-your-enterprise.md b/translations/es-ES/content/admin/user-management/migrating-data-to-and-from-your-enterprise/exporting-migration-data-from-your-enterprise.md index 412479c516..f3d8b48da6 100644 --- a/translations/es-ES/content/admin/user-management/migrating-data-to-and-from-your-enterprise/exporting-migration-data-from-your-enterprise.md +++ b/translations/es-ES/content/admin/user-management/migrating-data-to-and-from-your-enterprise/exporting-migration-data-from-your-enterprise.md @@ -1,13 +1,13 @@ --- -title: Exportar los datos de migración de tu empresa -intro: 'Para cambiar las plataformas o migrarse de una instancia de pruebas a una productiva, puedes exportar los datos de migración de una instancia de {% data variables.product.prodname_ghe_server %} si preparas la instancia, bloqueas los repositorios, y generas un archivo de migración.' +title: Exporting migration data from your enterprise +intro: 'To change platforms or move from a trial instance to a production instance, you can export migration data from a {% data variables.product.prodname_ghe_server %} instance by preparing the instance, locking the repositories, and generating a migration archive.' redirect_from: - - /enterprise/admin/guides/migrations/exporting-migration-data-from-github-enterprise/ + - /enterprise/admin/guides/migrations/exporting-migration-data-from-github-enterprise - /enterprise/admin/migrations/exporting-migration-data-from-github-enterprise-server - /enterprise/admin/migrations/preparing-the-github-enterprise-server-source-instance - /enterprise/admin/migrations/exporting-the-github-enterprise-server-source-repositories - - /enterprise/admin/guides/migrations/preparing-the-github-enterprise-source-instance/ - - /enterprise/admin/guides/migrations/exporting-the-github-enterprise-source-repositories/ + - /enterprise/admin/guides/migrations/preparing-the-github-enterprise-source-instance + - /enterprise/admin/guides/migrations/exporting-the-github-enterprise-source-repositories - /enterprise/admin/user-management/exporting-migration-data-from-your-enterprise - /admin/user-management/exporting-migration-data-from-your-enterprise versions: @@ -17,42 +17,41 @@ topics: - API - Enterprise - Migration -shortTitle: Exportar desde tu empresa +shortTitle: Export from your enterprise --- +## Preparing the {% data variables.product.prodname_ghe_server %} source instance -## Preparar la instancia origen de {% data variables.product.prodname_ghe_server %} +1. Verify that you are a site administrator on the {% data variables.product.prodname_ghe_server %} source. The best way to do this is to verify that you can [SSH into the instance](/enterprise/admin/guides/installation/accessing-the-administrative-shell-ssh/). -1. Verifica que eres un administrador del sitio en el origen {% data variables.product.prodname_ghe_server %}. La mejor manera de hacerlo es verificar que puedes usar [SSH en la instancia](/enterprise/admin/guides/installation/accessing-the-administrative-shell-ssh/). - -2. {% data reusables.enterprise_migrations.token-generation %} en la instancia de origen {% data variables.product.prodname_ghe_server %}. +2. {% data reusables.enterprise_migrations.token-generation %} on the {% data variables.product.prodname_ghe_server %} source instance. {% data reusables.enterprise_migrations.make-a-list %} -## Exportar los repositorios origen de {% data variables.product.prodname_ghe_server %} +## Exporting the {% data variables.product.prodname_ghe_server %} source repositories {% data reusables.enterprise_migrations.locking-repositories %} {% data reusables.enterprise_installation.ssh-into-instance %} -2. Para preparar un repositorio para la exportación, usa el comando `ghe-migrator add` con la URL del repositorio: - * Si estás bloqueando el repositorio, agrega el comando `--lock`. Si estás efectuando una ejecución de prueba, el comando `--lock` no es necesario. +2. To prepare a repository for export, use the `ghe-migrator add` command with the repository's URL: + * If you're locking the repository, append the command with `--lock`. If you're performing a trial run, `--lock` is not needed. ```shell $ ghe-migrator add https://hostname/username/reponame --lock ``` - * Puedes excluir archivos adjuntos agregando ` --exclude_attachments ` al comando. {% data reusables.enterprise_migrations.exclude-file-attachments %} - * Para preparar varios repositorios al mismo tiempo para exportación, crea un archivo de texto que incluya las URL del repositorio en una línea separada, y ejecuta el comando `ghe-migrator add` con el indicador `-i` y la ruta a tu archivo de texto. + * You can exclude file attachments by appending `--exclude_attachments` to the command. {% data reusables.enterprise_migrations.exclude-file-attachments %} + * To prepare multiple repositories at once for export, create a text file listing each repository URL on a separate line, and run the `ghe-migrator add` command with the `-i` flag and the path to your text file. ```shell $ ghe-migrator add -i PATH/TO/YOUR/REPOSITORY_URLS.txt ``` -3. Cuando se te indique, ingresa tu nombre de usuario {% data variables.product.prodname_ghe_server %}: +3. When prompted, enter your {% data variables.product.prodname_ghe_server %} username: ```shell - Ingresa el nombre de usuario autorizado para la migración: admin + Enter username authorized for migration: admin ``` -4. Cuando se te pida un token de acceso personal, ingresa el token de acceso que creaste en"[Preparación de {% data variables.product.prodname_ghe_server %} la instancia de origen](#preparing-the-github-enterprise-server-source-instance)": +4. When prompted for a personal access token, enter the access token you created in "[Preparing the {% data variables.product.prodname_ghe_server %} source instance](#preparing-the-github-enterprise-server-source-instance)": ```shell - Ingresa el token de acceso personal: ************** + Enter personal access token: ************** ``` -5. Cuando `ghe-migrator add` haya terminado, imprimirá el "GUID de migración" único que generó para identificar esta exportación, así como una lista de los recursos que se agregaron a la exportación. Utilizarás el GUID de migración que generaste en los pasos posteriores `ghe-migrator add` y`ghe-migrator export` para indicar a `ghe-migrator` que continúe operando en la misma exportación. +5. When `ghe-migrator add` has finished it will print the unique "Migration GUID" that it generated to identify this export as well as a list of the resources that were added to the export. You will use the Migration GUID that it generated in subsequent `ghe-migrator add` and `ghe-migrator export` steps to tell `ghe-migrator` to continue operating on the same export. ```shell > 101 models added to export > Migration GUID: example-migration-guid @@ -74,32 +73,32 @@ shortTitle: Exportar desde tu empresa > attachments | 4 > projects | 2 ``` - Cada vez que agregues un repositorio nuevo con un GUID de migración existente, se actualizará la exportación existente. Si ejecutas `ghe-migrator add` nuevamente sin un GUID de migración, comenzará una nueva exportación y generará un nuevo GUID de migración. **No vuelvas a utilizar el GUID de migración generado durante una exportación cuando comiences a preparar tu migración para importar**. + Each time you add a new repository with an existing Migration GUID it will update the existing export. If you run `ghe-migrator add` again without a Migration GUID it will start a new export and generate a new Migration GUID. **Do not re-use the Migration GUID generated during an export when you start preparing your migration for import**. -3. Si bloqueaste el repositorio de origen, puedes usar el comando `ghe-migrator target_url` para configurar un mensaje de bloqueo personalizado en la página del repositorio que vincula con la nueva ubicación del repositorio. Pasa la URL del repositorio de origen, la URL del repositorio de destino y el GUID de migración del Paso 5: +3. If you locked the source repository, you can use the `ghe-migrator target_url` command to set a custom lock message on the repository page that links to the repository's new location. Pass the source repository URL, the target repository URL, and the Migration GUID from Step 5: ```shell $ ghe-migrator target_url https://hostname/username/reponame https://target_hostname/target_username/target_reponame -g MIGRATION_GUID ``` -6. Usa el comando `ghe-migrator add` con el indicador `-g` para agregar más repositorios a la misma exportación. Pasarás la nueva URL del repositorio y el GUID de migración del Paso 5: +6. To add more repositories to the same export, use the `ghe-migrator add` command with the `-g` flag. You'll pass in the new repository URL and the Migration GUID from Step 5: ```shell $ ghe-migrator add https://hostname/username/other_reponame -g MIGRATION_GUID --lock ``` -7. Cuando hayas terminado de agregar repositorios, genera el archivo de migración con el comando `ghe-migrator export` con el indicador `-g` y el GUID de migración del Paso 5: +7. When you've finished adding repositories, generate the migration archive using the `ghe-migrator export` command with the `-g` flag and the Migration GUID from Step 5: ```shell $ ghe-migrator export -g MIGRATION_GUID - > Archivo guardado en: /data/github/current/tmp/MIGRATION_GUID.tar.gz + > Archive saved to: /data/github/current/tmp/MIGRATION_GUID.tar.gz ``` * {% data reusables.enterprise_migrations.specify-staging-path %} -8. Cierra la conexión a {% data variables.product.product_location %}: +8. Close the connection to {% data variables.product.product_location %}: ```shell $ exit > logout > Connection to hostname closed. ``` -9. Copia el archivo de migración a tu computadora con el comando [`scp`](https://linuxacademy.com/blog/linux/ssh-and-scp-howto-tips-tricks#scp). Se te asignará al archivo de almacenamiento un nombre con el GUID de migración: +9. Copy the migration archive to your computer using the [`scp`](https://linuxacademy.com/blog/linux/ssh-and-scp-howto-tips-tricks#scp) command. The archive file will be named with the Migration GUID: ```shell $ scp -P 122 admin@hostname:/data/github/current/tmp/MIGRATION_GUID.tar.gz ~/Desktop ``` diff --git a/translations/es-ES/content/admin/user-management/migrating-data-to-and-from-your-enterprise/index.md b/translations/es-ES/content/admin/user-management/migrating-data-to-and-from-your-enterprise/index.md index 98056ccbf3..2b27547b72 100644 --- a/translations/es-ES/content/admin/user-management/migrating-data-to-and-from-your-enterprise/index.md +++ b/translations/es-ES/content/admin/user-management/migrating-data-to-and-from-your-enterprise/index.md @@ -1,9 +1,9 @@ --- -title: Migrar los datos desde y hacia tu empresa -intro: 'Puedes exportar datos de usuario, organización y repositorio desde {% data variables.product.prodname_ghe_server %} o {% data variables.product.prodname_dotcom_the_website %}, y posteriormente importar los datos en {% data variables.product.product_location %}.' +title: Migrating data to and from your enterprise +intro: 'You can export user, organization, and repository data from {% data variables.product.prodname_ghe_server %} or {% data variables.product.prodname_dotcom_the_website %}, then import that data into {% data variables.product.product_location %}.' redirect_from: - - /enterprise/admin/articles/moving-a-repository-from-github-com-to-github-enterprise/ - - /enterprise/admin/categories/migrations-and-upgrades/ + - /enterprise/admin/articles/moving-a-repository-from-github-com-to-github-enterprise + - /enterprise/admin/categories/migrations-and-upgrades - /enterprise/admin/migrations/overview - /enterprise/admin/user-management/migrating-data-to-and-from-your-enterprise versions: @@ -17,6 +17,6 @@ children: - /preparing-to-migrate-data-to-your-enterprise - /migrating-data-to-your-enterprise - /importing-data-from-third-party-version-control-systems -shortTitle: Migración para una empresa +shortTitle: Migration for an enterprise --- diff --git a/translations/es-ES/content/admin/user-management/migrating-data-to-and-from-your-enterprise/migrating-data-to-your-enterprise.md b/translations/es-ES/content/admin/user-management/migrating-data-to-and-from-your-enterprise/migrating-data-to-your-enterprise.md index 3737d0e572..e6eedafa28 100644 --- a/translations/es-ES/content/admin/user-management/migrating-data-to-and-from-your-enterprise/migrating-data-to-your-enterprise.md +++ b/translations/es-ES/content/admin/user-management/migrating-data-to-and-from-your-enterprise/migrating-data-to-your-enterprise.md @@ -2,14 +2,14 @@ title: Migrating data to your enterprise intro: 'After generating a migration archive, you can import the data to your target {% data variables.product.prodname_ghe_server %} instance. You''ll be able to review changes for potential conflicts before permanently applying the changes to your target instance.' redirect_from: - - /enterprise/admin/guides/migrations/importing-migration-data-to-github-enterprise/ + - /enterprise/admin/guides/migrations/importing-migration-data-to-github-enterprise - /enterprise/admin/migrations/applying-the-imported-data-on-github-enterprise-server - /enterprise/admin/migrations/reviewing-migration-data - /enterprise/admin/migrations/completing-the-import-on-github-enterprise-server - - /enterprise/admin/guides/migrations/applying-the-imported-data-on-github-enterprise/ - - /enterprise/admin/guides/migrations/reviewing-the-imported-data/ - - /enterprise/admin/guides/migrations/completing-the-import-on-github-enterprise/ - - /enterprise/admin/guides/migrations/importing-migration-data-to-github-enterprise-server/ + - /enterprise/admin/guides/migrations/applying-the-imported-data-on-github-enterprise + - /enterprise/admin/guides/migrations/reviewing-the-imported-data + - /enterprise/admin/guides/migrations/completing-the-import-on-github-enterprise + - /enterprise/admin/guides/migrations/importing-migration-data-to-github-enterprise-server - /enterprise/admin/user-management/migrating-data-to-your-enterprise - /admin/user-management/migrating-data-to-your-enterprise versions: diff --git a/translations/es-ES/content/admin/user-management/migrating-data-to-and-from-your-enterprise/preparing-to-migrate-data-to-your-enterprise.md b/translations/es-ES/content/admin/user-management/migrating-data-to-and-from-your-enterprise/preparing-to-migrate-data-to-your-enterprise.md index 164a3e1a88..12b0ae88e1 100644 --- a/translations/es-ES/content/admin/user-management/migrating-data-to-and-from-your-enterprise/preparing-to-migrate-data-to-your-enterprise.md +++ b/translations/es-ES/content/admin/user-management/migrating-data-to-and-from-your-enterprise/preparing-to-migrate-data-to-your-enterprise.md @@ -1,12 +1,12 @@ --- -title: Prepararse para migrar los datos a tu empresa -intro: 'Después de generar un archivo de migración, puedes importar los datos a tu instancia de destino del {% data variables.product.prodname_ghe_server %}. Podrás revisar los cambios para detectar posibles conflictos antes de aplicar de manera permanente los cambios a tu instancia de destino.' +title: Preparing to migrate data to your enterprise +intro: 'After generating a migration archive, you can import the data to your target {% data variables.product.prodname_ghe_server %} instance. You''ll be able to review changes for potential conflicts before permanently applying the changes to your target instance.' redirect_from: - /enterprise/admin/migrations/preparing-the-migrated-data-for-import-to-github-enterprise-server - /enterprise/admin/migrations/generating-a-list-of-migration-conflicts - /enterprise/admin/migrations/reviewing-migration-conflicts - /enterprise/admin/migrations/resolving-migration-conflicts-or-setting-up-custom-mappings - - /enterprise/admin/guides/migrations/preparing-the-migrated-data-for-import-to-github-enterprise/ + - /enterprise/admin/guides/migrations/preparing-the-migrated-data-for-import-to-github-enterprise - /enterprise/admin/user-management/preparing-to-migrate-data-to-your-enterprise - /admin/user-management/preparing-to-migrate-data-to-your-enterprise versions: @@ -15,12 +15,11 @@ type: how_to topics: - Enterprise - Migration -shortTitle: Prepararse para migrar los datos +shortTitle: Prepare to migrate data --- +## Preparing the migrated data for import to {% data variables.product.prodname_ghe_server %} -## Preparar los datos migrados para importarlos a {% data variables.product.prodname_ghe_server %} - -1. Con el comando [`scp`](https://linuxacademy.com/blog/linux/ssh-and-scp-howto-tips-tricks#scp), copia el archivo de migración generado desde tu instancia u organización de origen a tu {% data variables.product.prodname_ghe_server %} destino: +1. Using the [`scp`](https://linuxacademy.com/blog/linux/ssh-and-scp-howto-tips-tricks#scp) command, copy the migration archive generated from your source instance or organization to your {% data variables.product.prodname_ghe_server %} target: ```shell $ scp -P 122 /path/to/archive/MIGRATION_GUID.tar.gz admin@hostname:/home/admin/ @@ -28,122 +27,122 @@ shortTitle: Prepararse para migrar los datos {% data reusables.enterprise_installation.ssh-into-target-instance %} -3. Usa el comando `ghe-migrator prepare` para preparar el archivo para importar en la instancia de destino y generar un nuevo GUID de Migración para que uses en los pasos subsiguientes: +3. Use the `ghe-migrator prepare` command to prepare the archive for import on the target instance and generate a new Migration GUID for you to use in subsequent steps: ```shell ghe-migrator prepare /home/admin/MIGRATION_GUID.tar.gz ``` - * Para comenzar un nuevo intento de importación, ejecuta `ghe-migrator prepare` nuevamente y obtén un nuevo GUID de migración. + * To start a new import attempt, run `ghe-migrator prepare` again and get a new Migration GUID. * {% data reusables.enterprise_migrations.specify-staging-path %} -## Generar una lista de conflictos de migración +## Generating a list of migration conflicts -1. Con el comando `ghe-migrator conflicts` con el GUID de migración, genera un archivo *conflicts.csv*: +1. Using the `ghe-migrator conflicts` command with the Migration GUID, generate a *conflicts.csv* file: ```shell $ ghe-migrator conflicts -g MIGRATION_GUID > conflicts.csv ``` - - Si no se reporta conflicto alguno, puedes importar los datos de forma segura siguiendo los pasos en la sección "[Migrar datos a tu empresa](/enterprise/admin/guides/migrations/applying-the-imported-data-on-github-enterprise-server/)". -2. Si hay conflictos, con el comando [`scp`](https://linuxacademy.com/blog/linux/ssh-and-scp-howto-tips-tricks#scp), copia *conflicts.csv* a tu computadora local: + - If no conflicts are reported, you can safely import the data by following the steps in "[Migrating data to your enterprise](/enterprise/admin/guides/migrations/applying-the-imported-data-on-github-enterprise-server/)". +2. If there are conflicts, using the [`scp`](https://linuxacademy.com/blog/linux/ssh-and-scp-howto-tips-tricks#scp) command, copy *conflicts.csv* to your local computer: ```shell $ scp -P 122 admin@hostname:conflicts.csv ~/Desktop ``` -3. Continúa con "[Resolver conflictos de migración o crear asignaciones personalizadas](#resolving-migration-conflicts-or-setting-up-custom-mappings)". +3. Continue to "[Resolving migration conflicts or setting up custom mappings](#resolving-migration-conflicts-or-setting-up-custom-mappings)". -## Revisar conflictos de migración +## Reviewing migration conflicts -1. Con un editor de texto o [ un software de hoja de cálculo compatible con CSV](https://en.wikipedia.org/wiki/Comma-separated_values#Application_support), abre *conflicts.csv*. -2. Con la guía de los ejemplos y las tablas de referencia a continuación, revisa el archivo *conflicts.csv* para asegurarte de que se tomarán las medidas adecuadas al importar. +1. Using a text editor or [CSV-compatible spreadsheet software](https://en.wikipedia.org/wiki/Comma-separated_values#Application_support), open *conflicts.csv*. +2. With guidance from the examples and reference tables below, review the *conflicts.csv* file to ensure that the proper actions will be taken upon import. -El archivo *conflicts.csv* contiene un *mapa de migración* de conflictos y acciones recomendadas. Un mapa de migración enumera tanto los datos que se migran desde el origen como la forma en que los datos se aplicarán al destino. +The *conflicts.csv* file contains a *migration map* of conflicts and recommended actions. A migration map lists out both what data is being migrated from the source, and how the data will be applied to the target. -| `nombre_modelo` | `url_origen` | `url_destino` | `recommended_action` | -| --------------- | ------------------------------------------------------ | ------------------------------------------------------ | -------------------- | -| `usuario` | `https://example-gh.source/octocatc` | `https://example-gh.target/octocat` | `map` | -| `organization` | `https://example-gh.source/octo-org` | `https://example-gh.target/octo-org` | `map` | -| `repositorio` | `https://example-gh.source/octo-org/widgets` | `https://example-gh.target/octo-org/widgets` | `rename (renombrar)` | -| `equipo` | `https://example-gh.source/orgs/octo-org/teams/admins` | `https://example-gh.target/orgs/octo-org/teams/admins` | `fusionar` | +| `model_name` | `source_url` | `target_url` | `recommended_action` | +|--------------|--------------|------------|--------------------| +| `user` | `https://example-gh.source/octocat` | `https://example-gh.target/octocat` | `map` | +| `organization` | `https://example-gh.source/octo-org` | `https://example-gh.target/octo-org` | `map` | +| `repository` | `https://example-gh.source/octo-org/widgets` | `https://example-gh.target/octo-org/widgets` | `rename` | +| `team` | `https://example-gh.source/orgs/octo-org/teams/admins` | `https://example-gh.target/orgs/octo-org/teams/admins` | `merge` | -Cada fila de *conflicts.csv* proporciona la siguiente información: +Each row in *conflicts.csv* provides the following information: -| Nombre | Descripción | -| -------------------- | -------------------------------------------------------------------- | -| `nombre_modelo` | El tipo de datos que se están cambiando. | -| `url_origen` | La URL fuente de los datos. | -| `url_destino` | La URL de destino esperada de los datos. | -| `recommended_action` | La acción preferida que tomará `ghe-migrator` al importar los datos. | +| Name | Description | +|--------------|---------------| +| `model_name` | The type of data being changed. | +| `source_url` | The source URL of the data. | +| `target_url` | The expected target URL of the data. | +| `recommended_action` | The preferred action `ghe-migrator` will take when importing the data. | -### Asignaciones posibles para cada tipo de registro +### Possible mappings for each record type -Hay varias acciones de asignación diferentes que `ghe-migrator` puede realizar al transferir datos: +There are several different mapping actions that `ghe-migrator` can take when transferring data: -| `Acción` | Descripción | Modelos aplicables | -| --------------------- | -------------------------------------------------------------------------------------------- | -------------------------------------- | -| `importar` | (predeterminado) Los datos del origen se importan al destino. | Todos los tipos de registro | -| `map` | Los datos del origen se reemplazan por los datos existentes en el destino. | Usuarios, organizaciones, repositorios | -| `rename (renombrar)` | Los datos del origen se renombran y luego se copian en el destino. | Usuarios, organizaciones, repositorios | -| `asignar_o_renombrar` | Si el destino existe, asignar a ese destino. De lo contrario, renombrar el modelo importado. | Usuarios | -| `fusionar` | Los datos del origen se combinan con los datos existentes en el destino. | Equipos | +| `action` | Description | Applicable models | +|------------------------|-------------|-------------------| +| `import` | (default) Data from the source is imported to the target. | All record types +| `map` | Data from the source is replaced by existing data on the target. | Users, organizations, repositories +| `rename` | Data from the source is renamed, then copied over to the target. | Users, organizations, repositories +| `map_or_rename` | If the target exists, map to that target. Otherwise, rename the imported model. | Users +| `merge` | Data from the source is combined with existing data on the target. | Teams -**Te recomendamos ampliamente que revises el archivo *conflicts.csv* y que utilices [`ghe-migrator audit`](/enterprise/admin/guides/migrations/reviewing-migration-data) para garantizar que se estén tomando las acciones adecuadas.** Si todo se ve bien, puedes continuar con las acciones para "[Migrar los datos a tu empresa](/enterprise/admin/guides/migrations/applying-the-imported-data-on-github-enterprise-server)". +**We strongly suggest you review the *conflicts.csv* file and use [`ghe-migrator audit`](/enterprise/admin/guides/migrations/reviewing-migration-data) to ensure that the proper actions are being taken.** If everything looks good, you can continue to "[Migrating data to your enterprise](/enterprise/admin/guides/migrations/applying-the-imported-data-on-github-enterprise-server)". -## Resolver conflictos de migración o crear asignaciones personalizadas +## Resolving migration conflicts or setting up custom mappings -Si crees que `ghe-migrator` realizará un cambio incorrecto, puedes hacer correcciones cambiando los datos en *conflicts.csv*. Puedes hacer cambios en cualquiera de las filas en *conflicts.csv*. +If you believe that `ghe-migrator` will perform an incorrect change, you can make corrections by changing the data in *conflicts.csv*. You can make changes to any of the rows in *conflicts.csv*. -Por ejemplo, supongamos que observas que el usuario `octocat` del origen se está asignando a `octocat` en el destino: +For example, let's say you notice that the `octocat` user from the source is being mapped to `octocat` on the target: -| `nombre_modelo` | `url_origen` | `url_destino` | `recommended_action` | -| --------------- | ------------------------------------ | ----------------------------------- | -------------------- | -| `usuario` | `https://example-gh.source/octocatc` | `https://example-gh.target/octocat` | `map` | +| `model_name` | `source_url` | `target_url` | `recommended_action` | +|--------------|--------------|------------|--------------------| +| `user` | `https://example-gh.source/octocat` | `https://example-gh.target/octocat` | `map` -Puedes optar por asignar el usuario a un usuario diferente en el destino. Supongamos que sabes que `octocat` en realidad debe ser `monalisa` en el destino. Puedes cambiar la columna `target_url` en *conflicts.csv* a `monalisa`: +You can choose to map the user to a different user on the target. Suppose you know that `octocat` should actually be `monalisa` on the target. You can change the `target_url` column in *conflicts.csv* to refer to `monalisa`: -| `nombre_modelo` | `url_origen` | `url_destino` | `recommended_action` | -| --------------- | ------------------------------------ | ------------------------------------ | -------------------- | -| `usuario` | `https://example-gh.source/octocatc` | `https://example-gh.target/monalisa` | `map` | +| `model_name` | `source_url` | `target_url` | `recommended_action` | +|--------------|--------------|------------|--------------------| +| `user` | `https://example-gh.source/octocat` | `https://example-gh.target/monalisa` | `map` -Como otro ejemplo, si deseas cambiar el nombre del repositorio `octo-org/widgets` a `octo-org/amazing-widgets` en la instancia de destino, cambia la `target_url` a `octo-org/amazing-widgets` y la `recommended_action` a `rename`: +As another example, if you want to rename the `octo-org/widgets` repository to `octo-org/amazing-widgets` on the target instance, change the `target_url` to `octo-org/amazing-widgets` and the `recommend_action` to `rename`: -| `nombre_modelo` | `url_origen` | `url_destino` | `recommended_action` | -| --------------- | -------------------------------------------- | ---------------------------------------------------- | -------------------- | -| `repositorio` | `https://example-gh.source/octo-org/widgets` | `https://example-gh.target/octo-org/amazing-widgets` | `rename (renombrar)` | +| `model_name` | `source_url` | `target_url` | `recommended_action` | +|--------------|--------------|------------|--------------------| +| `repository` | `https://example-gh.source/octo-org/widgets` | `https://example-gh.target/octo-org/amazing-widgets` | `rename` | -### Agregar asignaciones personalizadas +### Adding custom mappings -Una situación común durante una migración es que los usuarios migrados tengan diferentes nombres de usuario en el destino que los que tienen en el origen. +A common scenario during a migration is for migrated users to have different usernames on the target than they have on the source. -Dada una lista de nombres de usuario en el origen y una lista de nombres de usuario en el destino, puedes crear un archivo CSV con asignaciones personalizadas y luego aplicarlo para garantizar que el nombre de usuario y el contenido de cada usuario se atribuyan correctamente al final de la migración. +Given a list of usernames from the source and a list of usernames on the target, you can build a CSV file with custom mappings and then apply it to ensure each user's username and content is correctly attributed to them at the end of a migration. -Puedes generar rápidamente un CSV de usuarios que se migran en el formato CSV necesario para aplicar asignaciones personalizadas mediante el comando [`ghe-migrator audit`](/enterprise/admin/guides/migrations/reviewing-migration-data): +You can quickly generate a CSV of users being migrated in the CSV format needed to apply custom mappings by using the [`ghe-migrator audit`](/enterprise/admin/guides/migrations/reviewing-migration-data) command: ```shell $ ghe-migrator audit -m user -g MIGRATION_GUID > users.csv ``` -Ahora, puedes editar ese CSV e ingresar la nueva URL para cada usuario que quieras asignar o renombrar, y luego actualizar la cuarta columna para `asignar` o `renombrar` según corresponda. +Now, you can edit that CSV and enter the new URL for each user you would like to map or rename, and then update the fourth column to have `map` or `rename` as appropriate. -Por ejemplo, para cambiar el nombre del usuario `octocat` a `monalisa` en el `https://example-gh.target` de destino, debes crear una fila con el siguiente contenido: +For example, to rename the user `octocat` to `monalisa` on the target `https://example-gh.target` you would create a row with the following content: -| `nombre_modelo` | `url_origen` | `url_destino` | `state` | -| --------------- | ------------------------------------ | ------------------------------------ | -------------------- | -| `usuario` | `https://example-gh.source/octocatc` | `https://example-gh.target/monalisa` | `rename (renombrar)` | +| `model_name` | `source_url` | `target_url` | `state` | +|--------------|--------------|------------|--------------------| +| `user` | `https://example-gh.source/octocat` | `https://example-gh.target/monalisa` | `rename` -Se puede usar el mismo proceso para crear asignaciones para cada registro que admita asignaciones personalizadas. Para obtener más información, consulta [nuestra tabla sobre las posibles asignaciones de registro](/enterprise/admin/guides/migrations/reviewing-migration-conflicts#possible-mappings-for-each-record-type). +The same process can be used to create mappings for each record that supports custom mappings. For more information, see [our table on the possible mappings for records](/enterprise/admin/guides/migrations/reviewing-migration-conflicts#possible-mappings-for-each-record-type). -### Aplicar datos de migración modificados +### Applying modified migration data -1. Después de hacer los cambios, utiliza el comando [`scp`](https://linuxacademy.com/blog/linux/ssh-and-scp-howto-tips-tricks#scp) para aplicar tu *conflicts.csv* modificado (o cualquier otro archivo de mapeo *.csv* en el formato correcto) a la instancia destino: +1. After making changes, use the [`scp`](https://linuxacademy.com/blog/linux/ssh-and-scp-howto-tips-tricks#scp) command to apply your modified *conflicts.csv* (or any other mapping *.csv* file in the correct format) to the target instance: ```shell $ scp -P 122 ~/Desktop/conflicts.csv admin@hostname:/home/admin/ ``` -2. Vuelve a mapear los datos de la migración utilizando el comando `ghe-migrator map`, pasando la ruta a tu archivo *.csv* modificado y a la GUID de la migración: +2. Re-map the migration data using the `ghe-migrator map` command, passing in the path to your modified *.csv* file and the Migration GUID: ```shell $ ghe-migrator map -i conflicts.csv -g MIGRATION_GUID ``` -3. Si el comando `ghe-migrator map -i conflicts.csv -g MIGRATION_GUID` informa que aún existen conflictos, ejecuta nuevamente el proceso de resolución de conflictos de migración. +3. If the `ghe-migrator map -i conflicts.csv -g MIGRATION_GUID` command reports that conflicts still exist, run through the migration conflict resolution process again. diff --git a/translations/es-ES/content/admin/user-management/monitoring-activity-in-your-enterprise/activity-dashboard.md b/translations/es-ES/content/admin/user-management/monitoring-activity-in-your-enterprise/activity-dashboard.md index 39d21a826b..edc50c6daa 100644 --- a/translations/es-ES/content/admin/user-management/monitoring-activity-in-your-enterprise/activity-dashboard.md +++ b/translations/es-ES/content/admin/user-management/monitoring-activity-in-your-enterprise/activity-dashboard.md @@ -1,8 +1,8 @@ --- -title: Tablero de actividades -intro: El tablero de actividades te proporciona un resumen de toda la actividad en tu empresa. +title: Activity dashboard +intro: The Activity dashboard gives you an overview of all the activity in your enterprise. redirect_from: - - /enterprise/admin/articles/activity-dashboard/ + - /enterprise/admin/articles/activity-dashboard - /enterprise/admin/installation/activity-dashboard - /enterprise/admin/user-management/activity-dashboard - /admin/user-management/activity-dashboard @@ -12,21 +12,22 @@ versions: topics: - Enterprise --- +The Activity dashboard provides weekly, monthly, and yearly graphs of the number of: +- New pull requests +- Merged pull requests +- New issues +- Closed issues +- New issue comments +- New repositories +- New user accounts +- New organizations +- New teams -El Tablero de actividades te proporciona gráficos semanales, mensuales y anuales de la cantidad de: -- Solicitudes de extracción nuevas -- Solicitudes de extracción fusionadas -- Problemas nuevos -- Problemas resueltos -- Comentarios de problemas nuevos -- Repositorios nuevos -- Cuentas de usuario nuevas -- Organizaciones nuevas -- Equipos nuevos +![Activity dashboard](/assets/images/enterprise/activity/activity-dashboard-yearly.png) -![Tablero de actividades](/assets/images/enterprise/activity/activity-dashboard-yearly.png) +## Accessing the Activity dashboard -## Acceder al Tablero de actividades - -1. En la parte superior de cualquier página, haz clic en **Explore** (Explorar). ![Explorar la etiqueta](/assets/images/enterprise/settings/ent-new-explore.png) -2. En el margen izquierdo superior, haz clic en **Activity** (Actividad). ![Botón de actividades](/assets/images/enterprise/activity/activity-button.png) +1. At the top of any page, click **Explore**. +![Explore tab](/assets/images/enterprise/settings/ent-new-explore.png) +2. In the upper-right corner, click **Activity**. +![Activity button](/assets/images/enterprise/activity/activity-button.png) diff --git a/translations/es-ES/content/admin/user-management/monitoring-activity-in-your-enterprise/audit-logging.md b/translations/es-ES/content/admin/user-management/monitoring-activity-in-your-enterprise/audit-logging.md index 88ddc8b77d..0b39b98872 100644 --- a/translations/es-ES/content/admin/user-management/monitoring-activity-in-your-enterprise/audit-logging.md +++ b/translations/es-ES/content/admin/user-management/monitoring-activity-in-your-enterprise/audit-logging.md @@ -1,8 +1,8 @@ --- -title: Registro de auditoría -intro: '{% data variables.product.product_name %} mantiene las bitácoras de los eventos auditados de{% ifversion ghes %} sistemas,{% endif %} usuarios, organizaciones, y repositorios. Los registros son útiles para la depuración y el cumplimiento interno y externo.' +title: Audit logging +intro: '{% data variables.product.product_name %} keeps logs of audited{% ifversion ghes %} system,{% endif %} user, organization, and repository events. Logs are useful for debugging and internal and external compliance.' redirect_from: - - /enterprise/admin/articles/audit-logging/ + - /enterprise/admin/articles/audit-logging - /enterprise/admin/installation/audit-logging - /enterprise/admin/user-management/audit-logging - /admin/user-management/audit-logging @@ -16,31 +16,30 @@ topics: - Logging - Security --- +For a full list, see "[Audited actions](/admin/user-management/audited-actions)." For more information on finding a particular action, see "[Searching the audit log](/admin/user-management/searching-the-audit-log)." -Para encontrar una lista completa, consulta "[Acciones auditadas](/admin/user-management/audited-actions)". Para obtener más información sobre cómo encontrar una acción en particular, consulta la sección "[Buscar la bitácora de auditoría](/admin/user-management/searching-the-audit-log)". +## Push logs -## Subir registros - -Se registra cada operación de inserción de Git. Para obtener más información, consulta la sección "[Ver las bitácoras de subida](/admin/user-management/viewing-push-logs)". +Every Git push operation is logged. For more information, see "[Viewing push logs](/admin/user-management/viewing-push-logs)." {% ifversion ghes %} -## Eventos del sistema +## System events -Todos los eventos del sistema auditados, incluidas las inserciones y las extracciones, se registran en `/var/log/github/audit.log`. Los registros se rotan automáticamente cada 24 horas y se mantienen durante siete días. +All audited system events, including all pushes and pulls, are logged to `/var/log/github/audit.log`. Logs are automatically rotated every 24 hours and are retained for seven days. -El paquete de soporte incluye registros del sistema. Para obtener más información, consulta la sección "[Proporcionar datos al soporte de {% data variables.product.prodname_dotcom %}](/admin/enterprise-support/providing-data-to-github-support)". +The support bundle includes system logs. For more information, see "[Providing data to {% data variables.product.prodname_dotcom %} Support](/admin/enterprise-support/providing-data-to-github-support)." -## Paquete de soporte +## Support bundles -Toda la información de auditoría se registra en el archivo `audit.log` del directorio de `github-logs` de cualquier paquete de soporte. Si está habilitado el redireccionamiento de registro, puedes transmitirle estos datos a un consumidor de flujo syslog externo como [Splunk](http://www.splunk.com/) o [Logstash](http://logstash.net/). Todas las entradas de este registro utilizan la palabra clave `github_audit` y se pueden filtrar con ella. Para obtener más información, consulta la sección "[Reenvío de bitácoras](/admin/user-management/log-forwarding)". +All audit information is logged to the `audit.log` file in the `github-logs` directory of any support bundle. If log forwarding is enabled, you can stream this data to an external syslog stream consumer such as [Splunk](http://www.splunk.com/) or [Logstash](http://logstash.net/). All entries from this log use and can be filtered with the `github_audit` keyword. For more information see "[Log forwarding](/admin/user-management/log-forwarding)." -Por ejemplo, esta entrada muestra que se creó un repositorio nuevo. +For example, this entry shows that a new repository was created. ``` Oct 26 01:42:08 github-ent github_audit: {:created_at=>1351215728326, :actor_ip=>"10.0.0.51", :data=>{}, :user=>"some-user", :repo=>"some-user/some-repository", :actor=>"some-user", :actor_id=>2, :user_id=>2, :action=>"repo.create", :repo_id=>1, :from=>"repositories#create"} ``` -Este ejemplo muestra que las confirmaciones se subieron a un repositorio. +This example shows that commits were pushed to a repository. ``` Oct 26 02:19:31 github-ent github_audit: { "pid":22860, "ppid":22859, "program":"receive-pack", "git_dir":"/data/repositories/some-user/some-repository.git", "hostname":"github-ent", "pusher":"some-user", "real_ip":"10.0.0.51", "user_agent":"git/1.7.10.4", "repo_id":1, "repo_name":"some-user/some-repository", "transaction_id":"b031b7dc7043c87323a75f7a92092ef1456e5fbaef995c68", "frontend_ppid":1, "repo_public":true, "user_name":"some-user", "user_login":"some-user", "frontend_pid":18238, "frontend":"github-ent", "user_email":"some-user@github.example.com", "user_id":2, "pgroup":"github-ent_22860", "status":"post_receive_hook", "features":" report-status side-band-64k", "received_objects":3, "receive_pack_size":243, "non_fast_forward":false, "current_ref":"refs/heads/main" } diff --git a/translations/es-ES/content/admin/user-management/monitoring-activity-in-your-enterprise/audited-actions.md b/translations/es-ES/content/admin/user-management/monitoring-activity-in-your-enterprise/audited-actions.md index 2c57090629..03fa96599c 100644 --- a/translations/es-ES/content/admin/user-management/monitoring-activity-in-your-enterprise/audited-actions.md +++ b/translations/es-ES/content/admin/user-management/monitoring-activity-in-your-enterprise/audited-actions.md @@ -3,7 +3,7 @@ title: Audited actions intro: You can search the audit log for a wide variety of actions. miniTocMaxHeadingLevel: 3 redirect_from: - - /enterprise/admin/articles/audited-actions/ + - /enterprise/admin/articles/audited-actions - /enterprise/admin/installation/audited-actions - /enterprise/admin/user-management/audited-actions - /admin/user-management/audited-actions @@ -129,7 +129,7 @@ Action | Description `protected_branch.update_require_code_owner_review ` | Enforcement of required code owner review is updated on a branch. `protected_branch.dismiss_stale_reviews ` | Enforcement of dismissing stale pull requests is updated on a branch. `protected_branch.update_signature_requirement_enforcement_level ` | Enforcement of required commit signing is updated on a branch. -`protected_branch.update_pull_request_reviews_enforcement_level ` | Enforcement of required pull request reviews is updated on a branch. +`protected_branch.update_pull_request_reviews_enforcement_level ` | Enforcement of required pull request reviews is updated on a branch. Can be one of `0`(deactivated), `1`(non-admins), `2`(everyone). `protected_branch.update_required_status_checks_enforcement_level ` | Enforcement of required status checks is updated on a branch. `protected_branch.rejected_ref_update ` | A branch update attempt is rejected. `protected_branch.policy_override ` | A branch protection requirement is overridden by a repository administrator. diff --git a/translations/es-ES/content/admin/user-management/monitoring-activity-in-your-enterprise/log-forwarding.md b/translations/es-ES/content/admin/user-management/monitoring-activity-in-your-enterprise/log-forwarding.md index cc9bf504b9..7f6e8c800e 100644 --- a/translations/es-ES/content/admin/user-management/monitoring-activity-in-your-enterprise/log-forwarding.md +++ b/translations/es-ES/content/admin/user-management/monitoring-activity-in-your-enterprise/log-forwarding.md @@ -2,7 +2,7 @@ title: Log forwarding intro: '{% data variables.product.product_name %} uses `syslog-ng` to forward {% ifversion ghes %}system{% elsif ghae %}Git{% endif %} and application logs to the server you specify.' redirect_from: - - /enterprise/admin/articles/log-forwarding/ + - /enterprise/admin/articles/log-forwarding - /enterprise/admin/installation/log-forwarding - /enterprise/admin/enterprise-management/log-forwarding - /admin/enterprise-management/log-forwarding diff --git a/translations/es-ES/content/admin/user-management/monitoring-activity-in-your-enterprise/managing-global-webhooks.md b/translations/es-ES/content/admin/user-management/monitoring-activity-in-your-enterprise/managing-global-webhooks.md index b0ca7ed1f5..589354bd37 100644 --- a/translations/es-ES/content/admin/user-management/monitoring-activity-in-your-enterprise/managing-global-webhooks.md +++ b/translations/es-ES/content/admin/user-management/monitoring-activity-in-your-enterprise/managing-global-webhooks.md @@ -1,5 +1,5 @@ --- -title: Administrar webhooks globales +title: Managing global webhooks shortTitle: Manage global webhooks intro: You can configure global webhooks to notify external web servers when events occur within your enterprise. permissions: Enterprise owners can manage global webhooks for an enterprise account. @@ -9,7 +9,7 @@ redirect_from: - /admin/user-management/managing-global-webhooks - /admin/user-management/managing-users-in-your-enterprise/managing-global-webhooks - /github/setting-up-and-managing-your-enterprise/managing-organizations-in-your-enterprise-account/configuring-webhooks-for-organization-events-in-your-enterprise-account - - /articles/configuring-webhooks-for-organization-events-in-your-business-account/ + - /articles/configuring-webhooks-for-organization-events-in-your-business-account - /articles/configuring-webhooks-for-organization-events-in-your-enterprise-account - /github/setting-up-and-managing-your-enterprise-account/configuring-webhooks-for-organization-events-in-your-enterprise-account - /github/setting-up-and-managing-your-enterprise/configuring-webhooks-for-organization-events-in-your-enterprise-account @@ -23,65 +23,77 @@ topics: - Webhooks --- -## Acerca de los webhooks locales +## About global webhooks -You can use global webhooks to notify an external web server when events occur within your enterprise. You can configure the server to receive the webhook's payload, then run an application or code that monitors, responds to, or enforces rules for user and organization management for your enterprise. Para obtener más información, consulta la sección "[webhooks](/developers/webhooks-and-events/webhooks)". +You can use global webhooks to notify an external web server when events occur within your enterprise. You can configure the server to receive the webhook's payload, then run an application or code that monitors, responds to, or enforces rules for user and organization management for your enterprise. For more information, see "[Webhooks](/developers/webhooks-and-events/webhooks)." For example, you can configure {% data variables.product.product_location %} to send a webhook when someone creates, deletes, or modifies a repository or organization within your enterprise. You can configure the server to automatically perform a task after receiving the webhook. -![Listado de webhooks globales](/assets/images/enterprise/site-admin-settings/list-of-global-webhooks.png) +![List of global webhooks](/assets/images/enterprise/site-admin-settings/list-of-global-webhooks.png) {% data reusables.enterprise_user_management.manage-global-webhooks-api %} -## Agregar un webhook local +## Adding a global webhook {% data reusables.enterprise-accounts.access-enterprise %} {% data reusables.enterprise-accounts.settings-tab %} {% data reusables.enterprise-accounts.hooks-tab %} -5. Haz clic en **Add webhook** (Agregar webhook). ![Botón Agregar webhook en la página webhooks en el centro de administración](/assets/images/enterprise/site-admin-settings/add-global-webhook-button.png) -6. Escribe la URL donde quisieras recibir las cargas. ![Campo para escribir una URL de carga](/assets/images/enterprise/site-admin-settings/add-global-webhook-payload-url.png) -7. Opcionalmente, usa el menú desplegable **Tipo de contenido** y haz clic en un formato de carga. ![Menú desplegable que detalla las opciones de tipo de contenido](/assets/images/enterprise/site-admin-settings/add-global-webhook-content-type-dropdown.png) -8. Opcionalmente, en el campo **Secreto**, escribe una cadena para usar como una clave `secret`. ![Campo para escribir una cadena para usar como clave secreta](/assets/images/enterprise/site-admin-settings/add-global-webhook-secret.png) -9. Optionally, if your payload URL is HTTPS and you would not like {% data variables.product.prodname_ghe_server %} to verify SSL certificates when delivering payloads, select **Disable SSL verification**. Lee la información sobre verificación SSL, luego haz clic en **Entiendo que mis webhooks pueden no ser seguros**. ![Checkbox for disabling SSL verification](/assets/images/enterprise/site-admin-settings/add-global-webhook-disable-ssl-button.png) +5. Click **Add webhook**. + ![Add webhook button on Webhooks page in Admin center](/assets/images/enterprise/site-admin-settings/add-global-webhook-button.png) +6. Type the URL where you'd like to receive payloads. + ![Field to type a payload URL](/assets/images/enterprise/site-admin-settings/add-global-webhook-payload-url.png) +7. Optionally, use the **Content type** drop-down menu, and click a payload format. + ![Drop-down menu listing content type options](/assets/images/enterprise/site-admin-settings/add-global-webhook-content-type-dropdown.png) +8. Optionally, in the **Secret** field, type a string to use as a `secret` key. + ![Field to type a string to use as a secret key](/assets/images/enterprise/site-admin-settings/add-global-webhook-secret.png) +9. Optionally, if your payload URL is HTTPS and you would not like {% data variables.product.prodname_ghe_server %} to verify SSL certificates when delivering payloads, select **Disable SSL verification**. Read the information about SSL verification, then click **I understand my webhooks may not be secure**. + ![Checkbox for disabling SSL verification](/assets/images/enterprise/site-admin-settings/add-global-webhook-disable-ssl-button.png) {% warning %} - **Advertencia:** La verificación SSL ayuda a garantizar que las cargas de enganche se entreguen de forma segura. No es recomendable desactivar la verificación SSL. + **Warning:** SSL verification helps ensure that hook payloads are delivered securely. We do not recommend disabling SSL verification. {% endwarning %} -10. Decide if you'd like this webhook to trigger for every event or for selected events. ![Botones de selección con opciones para recibir cargas para cada evento o eventos seleccionados](/assets/images/enterprise/site-admin-settings/add-global-webhook-select-events.png) - - Para cada evento, selecciona **Enviarme todo**. - - Para elegir eventos específicos, selecciona **Dejarme seleccionar eventos individuales**. +10. Decide if you'd like this webhook to trigger for every event or for selected events. + ![Radio buttons with options to receive payloads for every event or selected events](/assets/images/enterprise/site-admin-settings/add-global-webhook-select-events.png) + - For every event, select **Send me everything**. + - To choose specific events, select **Let me select individual events**. 11. If you chose to select individual events, select the events that will trigger the webhook. {% ifversion ghec %} ![Checkboxes for individual global webhook events](/assets/images/enterprise/site-admin-settings/add-global-webhook-select-individual-events.png) {% elsif ghes or ghae %} ![Checkboxes for individual global webhook events](/assets/images/enterprise/site-admin-settings/add-global-webhook-select-individual-events-ghes-and-ae.png) {% endif %} -12. Confirm that the **Active** checkbox is selected. ![Casilla de verificación Activo seleccionada](/assets/images/help/business-accounts/webhook-active.png) -13. Haz clic en **Add webhook** (Agregar webhook). +12. Confirm that the **Active** checkbox is selected. + ![Selected Active checkbox](/assets/images/help/business-accounts/webhook-active.png) +13. Click **Add webhook**. -## Editar un webhook global +## Editing a global webhook {% data reusables.enterprise-accounts.access-enterprise %} {% data reusables.enterprise-accounts.settings-tab %} {% data reusables.enterprise-accounts.hooks-tab %} -5. Al lado del webhook que quieres editar, haz clic en **Editar**. ![Botón Editar al lado de una webhook](/assets/images/enterprise/site-admin-settings/edit-global-webhook-button.png) -6. Actualiza los parámetros del webhook. -7. Haz clic en **Actualizar webhook**. +5. Next to the webhook you'd like to edit, click **Edit**. + ![Edit button next to a webhook](/assets/images/enterprise/site-admin-settings/edit-global-webhook-button.png) +6. Update the webhook's settings. +7. Click **Update webhook**. -## Eliminar un webhook global +## Deleting a global webhook {% data reusables.enterprise-accounts.access-enterprise %} {% data reusables.enterprise-accounts.settings-tab %} {% data reusables.enterprise-accounts.hooks-tab %} -5. Al lado del webhook que quieres eliminar, haz clic en **Eliminar**. ![Botón Eliminar al lado de una webhook](/assets/images/enterprise/site-admin-settings/delete-global-webhook-button.png) -6. Lee la información sobre cómo eliminar un webhook, luego haz clic en **Sí, eliminar webhook**. ![Casilla emergente con información de advertencia y botón para confirmar la eliminación del webhook](/assets/images/enterprise/site-admin-settings/confirm-delete-global-webhook.png) +5. Next to the webhook you'd like to delete, click **Delete**. + ![Delete button next to a webhook](/assets/images/enterprise/site-admin-settings/delete-global-webhook-button.png) +6. Read the information about deleting a webhook, then click **Yes, delete webhook**. + ![Pop-up box with warning information and button to confirm deleting the webhook](/assets/images/enterprise/site-admin-settings/confirm-delete-global-webhook.png) -## Visualizar respuestas y entregas recientes +## Viewing recent deliveries and responses {% data reusables.enterprise-accounts.access-enterprise %} {% data reusables.enterprise-accounts.settings-tab %} {% data reusables.enterprise-accounts.hooks-tab %} -5. En la lista de webhooks, haz clic en el webhook del que quieres ver las entregas. ![Lista de webhooks con los enlaces para visualizar cada webhook](/assets/images/enterprise/site-admin-settings/click-global-webhook.png) -6. En "Entregas recientes", haz clic en una entrega para ver los detalles. ![Lista de entregas recientes de webhooks con los enlaces para visualizar los detalles](/assets/images/enterprise/site-admin-settings/global-webhooks-recent-deliveries.png) +5. In the list of webhooks, click the webhook for which you'd like to see deliveries. + ![List of webhooks with links to view each webhook](/assets/images/enterprise/site-admin-settings/click-global-webhook.png) +6. Under "Recent deliveries", click a delivery to view details. + ![List of the webhook's recent deliveries with links to view details](/assets/images/enterprise/site-admin-settings/global-webhooks-recent-deliveries.png) diff --git a/translations/es-ES/content/admin/user-management/monitoring-activity-in-your-enterprise/searching-the-audit-log.md b/translations/es-ES/content/admin/user-management/monitoring-activity-in-your-enterprise/searching-the-audit-log.md index 1845837865..9fc020f88a 100644 --- a/translations/es-ES/content/admin/user-management/monitoring-activity-in-your-enterprise/searching-the-audit-log.md +++ b/translations/es-ES/content/admin/user-management/monitoring-activity-in-your-enterprise/searching-the-audit-log.md @@ -1,8 +1,8 @@ --- -title: Buscar el registro de auditoría -intro: Los administradores de sitio pueden buscar en una lista extensa de acciones auditadas en la empresa. +title: Searching the audit log +intro: Site administrators can search an extensive list of audited actions on the enterprise. redirect_from: - - /enterprise/admin/articles/searching-the-audit-log/ + - /enterprise/admin/articles/searching-the-audit-log - /enterprise/admin/installation/searching-the-audit-log - /enterprise/admin/user-management/searching-the-audit-log - /admin/user-management/searching-the-audit-log @@ -15,37 +15,37 @@ topics: - Enterprise - Logging --- +## Search query syntax -## Buscar sintaxis de consultas +Compose a search query from one or more key:value pairs separated by AND/OR logical operators. -Redacta una consulta de búsqueda de uno o más pares de clave-valor separados por operadores lógicos y/o. +Key | Value +--------------:| -------------------------------------------------------- +`actor_id` | ID of the user account that initiated the action +`actor` | Name of the user account that initiated the action +`oauth_app_id` | ID of the OAuth application associated with the action +`action` | Name of the audited action +`user_id` | ID of the user affected by the action +`user` | Name of the user affected by the action +`repo_id` | ID of the repository affected by the action (if applicable) +`repo` | Name of the repository affected by the action (if applicable) +`actor_ip` | IP address from which the action was initiated +`created_at` | Time at which the action occurred +`from` | View from which the action was initiated +`note` | Miscellaneous event-specific information (in either plain text or JSON format) +`org` | Name of the organization affected by the action (if applicable) +`org_id` | ID of the organization affected by the action (if applicable) -| Clave | Valor | -| ------------------------:| ---------------------------------------------------------------------------- | -| `actor_id` | ID de la cuenta de usuario que inició la acción | -| `actor (actor)` | Nombre de la cuenta de usuario que inició la acción | -| `oauth_app_id` | ID de la aplicación OAuth asociada con la acción | -| `Acción` | Nombre de la acción auditada | -| `user_id` | ID del usuario afectado por la acción | -| `usuario` | Nombre del usuario afectado por la acción | -| `repo_id` | ID del repositorio afectado por la acción (si corresponde) | -| `repo` | Nombre del repositorio afectado por la acción (si corresponde) | -| `actor_ip` | Dirección IP desde donde se inició la acción | -| `created_at (creado en)` | Momento en el cual ocurrió la acción | -| `from` | Vista desde donde se inició la acción | -| `note` | Información variada de evento específico (en texto simple o en formato JSON) | -| `org` | Nombre de la organización afectada por la acción (si corresponde) | -| `org_id` | ID de la organización afectada por la acción (si corresponde) | - -Por ejemplo, para ver todas las acciones que afectaron el repositorio `octocat/Spoon-Knife` desde el inicio de 2017: +For example, to see all actions that have affected the repository `octocat/Spoon-Knife` since the beginning of 2017: `repo:"octocat/Spoon-Knife" AND created_at:[2017-01-01 TO *]` -Para encontrar una lista completa de acciones, consulta la sección "[Acciones auditadas](/admin/user-management/audited-actions)". +For a full list of actions, see "[Audited actions](/admin/user-management/audited-actions)." -## Buscar el registro de auditoría +## Searching the audit log {% data reusables.enterprise-accounts.access-enterprise %} {% data reusables.enterprise-accounts.settings-tab %} {% data reusables.enterprise-accounts.audit-log-tab %} -4. Escribe una consulta de búsqueda. ![Consulta de búsqueda](/assets/images/enterprise/site-admin-settings/search-query.png) +4. Type a search query. +![Search query](/assets/images/enterprise/site-admin-settings/search-query.png) diff --git a/translations/es-ES/content/admin/user-management/monitoring-activity-in-your-enterprise/viewing-push-logs.md b/translations/es-ES/content/admin/user-management/monitoring-activity-in-your-enterprise/viewing-push-logs.md index 1de673b456..5f6e5fb089 100644 --- a/translations/es-ES/content/admin/user-management/monitoring-activity-in-your-enterprise/viewing-push-logs.md +++ b/translations/es-ES/content/admin/user-management/monitoring-activity-in-your-enterprise/viewing-push-logs.md @@ -1,8 +1,8 @@ --- -title: Ver registros de subidas -intro: Los administradores de sitio pueden ver una lista de operaciones de subida de git para cualquier repositorio en la empresa. +title: Viewing push logs +intro: Site administrators can view a list of Git push operations for any repository on the enterprise. redirect_from: - - /enterprise/admin/articles/viewing-push-logs/ + - /enterprise/admin/articles/viewing-push-logs - /enterprise/admin/installation/viewing-push-logs - /enterprise/admin/user-management/viewing-push-logs - /admin/user-management/viewing-push-logs @@ -16,30 +16,31 @@ topics: - Git - Logging --- +Push log entries show: -Las entradas de registro de subida muestran: +- Who initiated the push +- Whether it was a force push or not +- The branch someone pushed to +- The protocol used to push +- The originating IP address +- The Git client used to push +- The SHA hashes from before and after the operation -- Quién inició la subida -- Si fue un empuje forzado o no -- La rama a la que alguien subió -- El protocolo utilizado para subir -- La dirección IP inicial -- El cliente Git utilizado para subir -- Los hashes SHA de antes y después de la operación +## Viewing a repository's push logs -## Ver registros de subida de un repositorio - -1. Inicia sesión en {% data variables.product.prodname_ghe_server %} como administrador de sitio. -1. Navegar a un repositorio. -1. En la esquina superior derecha de la página del repositorio, haz clic en {% octicon "rocket" aria-label="The rocket ship" %}. ![Ícono de cohete para acceder a las configuraciones de administrador del sitio](/assets/images/enterprise/site-admin-settings/access-new-settings.png) +1. Sign into {% data variables.product.prodname_ghe_server %} as a site administrator. +1. Navigate to a repository. +1. In the upper-right corner of the repository's page, click {% octicon "rocket" aria-label="The rocket ship" %}. + ![Rocketship icon for accessing site admin settings](/assets/images/enterprise/site-admin-settings/access-new-settings.png) {% data reusables.enterprise_site_admin_settings.security-tab %} -4. En la barra lateral izquierda, haz clic en **Push Log (Registro de subida)**. ![Pestaña de registro de subida](/assets/images/enterprise/site-admin-settings/push-log-tab.png) +4. In the left sidebar, click **Push Log**. +![Push log tab](/assets/images/enterprise/site-admin-settings/push-log-tab.png) {% ifversion ghes %} -## Ver registros de subida de un repositorio en la línea de comando +## Viewing a repository's push logs on the command-line {% data reusables.enterprise_installation.ssh-into-instance %} -1. En el repositorio Git adecuado, abre el archivo de registro de auditoría: +1. In the appropriate Git repository, open the audit log file: ```shell ghe-repo owner/repository -c "less audit_log" ``` diff --git a/translations/es-ES/content/authentication/connecting-to-github-with-ssh/testing-your-ssh-connection.md b/translations/es-ES/content/authentication/connecting-to-github-with-ssh/testing-your-ssh-connection.md index d9c035e95a..2c357bec13 100644 --- a/translations/es-ES/content/authentication/connecting-to-github-with-ssh/testing-your-ssh-connection.md +++ b/translations/es-ES/content/authentication/connecting-to-github-with-ssh/testing-your-ssh-connection.md @@ -1,5 +1,5 @@ --- -title: Probar tu conexión SSH +title: Testing your SSH connection intro: 'After you''ve set up your SSH key and added it to your account on {% ifversion ghae %}{% data variables.product.product_name %}{% else %}{% data variables.product.product_location %}{% endif %}, you can test your connection.' redirect_from: - /articles/testing-your-ssh-connection @@ -12,32 +12,31 @@ versions: ghec: '*' topics: - SSH -shortTitle: Probar tu conexión SSH +shortTitle: Test your SSH connection --- +Before testing your SSH connection, you should have: +- [Checked for existing SSH keys](/articles/checking-for-existing-ssh-keys) +- [Generated a new SSH key](/articles/generating-a-new-ssh-key-and-adding-it-to-the-ssh-agent) +- [Added a new SSH key to your GitHub account](/articles/adding-a-new-ssh-key-to-your-github-account) -Antes de probar tu conexión SSH, debes haber hecho lo siguiente: -- [Comprobado tus claves SSH existentes](/articles/checking-for-existing-ssh-keys) -- [Generado una clave SSH nueva](/articles/generating-a-new-ssh-key-and-adding-it-to-the-ssh-agent) -- [Agregado una clave SSH nueva a tu cuenta de GitHub](/articles/adding-a-new-ssh-key-to-your-github-account) - -Cuando pruebes tu conexión, tendrás que autenticar esta acción utilizando tu contraseña, que es la contraseña de clave SSH que ya creaste. Para obtener más información acerca de trabajar con contraseñas de clave SSH, consulta ["Trabajar con contraseñas de clave SSH"](/articles/working-with-ssh-key-passphrases). +When you test your connection, you'll need to authenticate this action using your password, which is the SSH key passphrase you created earlier. For more information on working with SSH key passphrases, see ["Working with SSH key passphrases"](/articles/working-with-ssh-key-passphrases). {% data reusables.command_line.open_the_multi_os_terminal %} -2. Ingresa lo siguiente: +2. Enter the following: ```shell $ ssh -T git@{% data variables.command_line.codeblock %} # Attempts to ssh to {% data variables.product.product_name %} ``` - Puedes ver una advertencia como la siguiente: + You may see a warning like this: ```shell - > La autenticidad del host '{% data variables.command_line.codeblock %} (DIRECCIÓN IP)' no se puede establecer. - > La clave de huella digital RSA es SHA256:nThbg6kXUpJWGl7E1IGOCspRomTxdCARLviKw6E5SY8. - > ¿Estás seguro de que quieres continuar conectado (sí/no)? + > The authenticity of host '{% data variables.command_line.codeblock %} (IP ADDRESS)' can't be established. + > RSA key fingerprint is SHA256:nThbg6kXUpJWGl7E1IGOCspRomTxdCARLviKw6E5SY8. + > Are you sure you want to continue connecting (yes/no)? ``` -3. Verifica que la huella digital en el mensaje que ves empate con {% ifversion fpt or ghec %}[la huella digital de la llave pública de RSA de {% data variables.product.prodname_dotcom %}](/github/authenticating-to-github/githubs-ssh-key-fingerprints){% else %}la huella digital de la llave pública de tu empresa{% endif %}. Si lo hace, entonces teclea `yes`: +3. Verify that the fingerprint in the message you see matches {% ifversion fpt or ghec %}[{% data variables.product.prodname_dotcom %}'s RSA public key fingerprint](/github/authenticating-to-github/githubs-ssh-key-fingerprints){% else %} your enterprise's public key fingerprint{% endif %}. If it does, then type `yes`: ```shell > Hi username! You've successfully authenticated, but GitHub does not > provide shell access. @@ -45,16 +44,16 @@ Cuando pruebes tu conexión, tendrás que autenticar esta acción utilizando tu {% linux %} - Puede que veas el siguiente mensaje de error: + You may see this error message: ```shell ... - El agente admitió una falla para registrarse utilizando la clave. - debug1: No hay más métodos de autenticación para probar. - Permiso denegado (publickey). + Agent admitted failure to sign using the key. + debug1: No more authentication methods to try. + Permission denied (publickey). ``` - Se trata de un problema conocido con determinadas distribuciones de Linux. Para obtener más información, consulta ["Error: El agente admitió una falla para registrarse"](/articles/error-agent-admitted-failure-to-sign). + This is a known problem with certain Linux distributions. For more information, see ["Error: Agent admitted failure to sign"](/articles/error-agent-admitted-failure-to-sign). {% endlinux %} -4. Comprueba que el mensaje resultante contenga tu nombre de usuario. Si recibes un mensaje de "permiso denegado", consulta ["Error: Permiso denegado (publickey)"](/articles/error-permission-denied-publickey). +4. Verify that the resulting message contains your username. If you receive a "permission denied" message, see ["Error: Permission denied (publickey)"](/articles/error-permission-denied-publickey). diff --git a/translations/es-ES/content/authentication/keeping-your-account-and-data-secure/authorizing-oauth-apps.md b/translations/es-ES/content/authentication/keeping-your-account-and-data-secure/authorizing-oauth-apps.md index 1dba6b3c8f..496a5c8683 100644 --- a/translations/es-ES/content/authentication/keeping-your-account-and-data-secure/authorizing-oauth-apps.md +++ b/translations/es-ES/content/authentication/keeping-your-account-and-data-secure/authorizing-oauth-apps.md @@ -1,6 +1,6 @@ --- -title: Autorizar aplicaciones OAuth -intro: 'Puedes conectar tu identidad {% data variables.product.product_name %} con aplicaciones de terceros mediante OAuth. Al autorizar un {% data variables.product.prodname_oauth_app %}, deberías asegurarte de que confías en la aplicación, revisar quién la desarrolló y revisar los tipos de información a la que desea acceder la aplicación.' +title: Authorizing OAuth Apps +intro: 'You can connect your {% data variables.product.product_name %} identity to third-party applications using OAuth. When authorizing an {% data variables.product.prodname_oauth_app %}, you should ensure you trust the application, review who it''s developed by, and review the kinds of information the application wants to access.' redirect_from: - /articles/authorizing-oauth-apps - /github/authenticating-to-github/authorizing-oauth-apps @@ -14,88 +14,87 @@ topics: - Identity - Access management --- - When an {% data variables.product.prodname_oauth_app %} wants to identify you by your account on {% ifversion ghae %}{% data variables.product.product_name %}{% else %}{% data variables.product.product_location %}{% endif %}, you'll see a page with the app's developer contact information and a list of the specific data that's being requested. {% ifversion fpt or ghec %} {% tip %} -**Sugerencia:** Debes [verificar tu dirección de correo electrónico](/articles/verifying-your-email-address) antes de que puedas autorizar una {% data variables.product.prodname_oauth_app %}. +**Tip:** You must [verify your email address](/articles/verifying-your-email-address) before you can authorize an {% data variables.product.prodname_oauth_app %}. {% endtip %} {% endif %} -## Acceso a {% data variables.product.prodname_oauth_app %} +## {% data variables.product.prodname_oauth_app %} access -Las {% data variables.product.prodname_oauth_apps %} pueden tener acceso de *lectura* o *escritura* en tus datos de {% data variables.product.product_name %}. +{% data variables.product.prodname_oauth_apps %} can have *read* or *write* access to your {% data variables.product.product_name %} data. -- El **acceso de lectura** solo permite que una app *mire* tus datos. -- El **acceso de escritura** permite que una app *cambie* tus datos. +- **Read access** only allows an app to *look at* your data. +- **Write access** allows an app to *change* your data. {% tip %} -**Sugerencia:** {% data reusables.user_settings.review_oauth_tokens_tip %} +**Tip:** {% data reusables.user_settings.review_oauth_tokens_tip %} {% endtip %} -### Acerca de los alcances de OAuth +### About OAuth scopes -Los *alcances* son los grupos de permiso denominados que una {% data variables.product.prodname_oauth_app %} puede solicitar para acceder a datos públicos y no públicos. +*Scopes* are named groups of permissions that an {% data variables.product.prodname_oauth_app %} can request to access both public and non-public data. -Cuando quieres usar una {% data variables.product.prodname_oauth_app %} que se integra con {% data variables.product.product_name %}, la app te permite conocer qué tipo de acceso a tus datos serán necesarios. Si otorgas acceso a la app, la app podrá realizar acciones en tu nombre, como leer o modificar datos. Por ejemplo, si quieres usar una app que solicita el alcance `usuario:correo electrónico`, la app solo tendrá acceso de lectura a tus direcciones de correo electrónico privado. Para obtener más información, consulta la sección "[Acerca de los alcances para {% data variables.product.prodname_oauth_apps %}](/apps/building-integrations/setting-up-and-registering-oauth-apps/about-scopes-for-oauth-apps)". +When you want to use an {% data variables.product.prodname_oauth_app %} that integrates with {% data variables.product.product_name %}, that app lets you know what type of access to your data will be required. If you grant access to the app, then the app will be able to perform actions on your behalf, such as reading or modifying data. For example, if you want to use an app that requests `user:email` scope, the app will have read-only access to your private email addresses. For more information, see "[About scopes for {% data variables.product.prodname_oauth_apps %}](/apps/building-integrations/setting-up-and-registering-oauth-apps/about-scopes-for-oauth-apps)." {% tip %} -**Nota:** Actualmente, no puedes demarcar el acceso al código fuente a solo lectura. +**Note:** Currently, you can't scope source code access to read-only. {% endtip %} {% data reusables.apps.oauth-token-limit %} -### Tipos de datos solicitados +### Types of requested data -Las {% data variables.product.prodname_oauth_apps %} pueden solicitar diferentes tipos de datos. +{% data variables.product.prodname_oauth_apps %} can request several types of data. -| Tipos de datos | Descripción | -| ---------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| Estado de confirmación | Puedes otorgar acceso para una app para que informe tu estado de confirmación. El acceso al estado de confirmación permite que las apps determinen si una construcción es exitosa frente a una confirmación específica. Las apps no tendrán acceso a tu código, pero podrán leer y escribir el estado de la información frente a una confirmación específica. | -| Implementaciones | El estado de implementación permite que las apps determinen si una implementación es exitosa frente a una confirmación específica para repositorios públicos y privados. Las apps no tendrán acceso a tu código. | -| Gists | El acceso a [Gist](https://gist.github.com) permite que las apps lean o escriban en tus Gists públicos y secretos. | -| Ganchos | El acceso a [webhooks](/webhooks) permite que las apps lean o escriban configuraciones de gancho en los repositorios que administras. | -| Notificaciones | El acceso a las notificaciones permite que las apps lean tus notificaciones de {% data variables.product.product_name %}, como comentarios sobre propuestas y solicitudes de extracción. Sin embargo, las apps permanecen inhabilitadas para acceder a tus repositorios. | -| Organizaciones y equipos | El acceso a organizaciones y equipos permite que las apps accedan y administren la membresía de la organización y del equipo. | -| Datos personales del usuario | Entre los datos del usuario se incluye información que se encuentra en tu perfil de usuario, como tu nombre, dirección de correo electrónico y ubicación. | -| Repositorios | La información del repositorio incluye los nombres de los colaboradores, las ramas que creaste y los archivos actuales dentro de tu repositorio. Las apps pueden solicitar acceso a repositorios públicos o privados a nivel del usuario. | -| Eliminación de repositorio | Las apps pueden solicitar la eliminación de los repositorios que administras,, pero no tendrán acceso a tu código. | +| Type of data | Description | +| --- | --- | +| Commit status | You can grant access for an app to report your commit status. Commit status access allows apps to determine if a build is a successful against a specific commit. Apps won't have access to your code, but they can read and write status information against a specific commit. | +| Deployments | Deployment status access allows apps to determine if a deployment is successful against a specific commit for public and private repositories. Apps won't have access to your code. | +| Gists | [Gist](https://gist.github.com) access allows apps to read or write to both your public and secret Gists. | +| Hooks | [Webhooks](/webhooks) access allows apps to read or write hook configurations on repositories you manage. | +| Notifications | Notification access allows apps to read your {% data variables.product.product_name %} notifications, such as comments on issues and pull requests. However, apps remain unable to access anything in your repositories. | +| Organizations and teams | Organization and teams access allows apps to access and manage organization and team membership. | +| Personal user data | User data includes information found in your user profile, like your name, e-mail address, and location. | +| Repositories | Repository information includes the names of contributors, the branches you've created, and the actual files within your repository. Apps can request access for either public or private repositories on a user-wide level. | +| Repository delete | Apps can request to delete repositories that you administer, but they won't have access to your code. | -## Solicitar permisos actualizados +## Requesting updated permissions -Cuando las {% data variables.product.prodname_oauth_apps %} solicitan permisos de acceso nuevos, te notificarán sobre las diferencias entre los permisos actuales y los permisos nuevos. +When {% data variables.product.prodname_oauth_apps %} request new access permissions, they will notify you of the differences between their current permissions and the new permissions. {% ifversion fpt or ghec %} -## {% data variables.product.prodname_oauth_apps %} y organizaciones +## {% data variables.product.prodname_oauth_apps %} and organizations -Cuando autorizas una {% data variables.product.prodname_oauth_app %} para tu cuenta de usuario personal, verás cómo la autorización afectará a cada organización de la que eres miembro. +When you authorize an {% data variables.product.prodname_oauth_app %} for your personal user account, you'll also see how the authorization will affect each organization you're a member of. -- **Para organizaciones *con restricciones de acceso a * {% data variables.product.prodname_oauth_app %}, puedes solicitar que los administradores de la organización aprueben la aplicación para usar en esa organización.** Si la organización no aprueba la aplicación, la aplicación solo podrá acceder a los recursos públicos de la organización. Si eres administrador de una organización, puedes [aprobar la aplicación](/articles/approving-oauth-apps-for-your-organization) por tu cuenta. +- **For organizations *with* {% data variables.product.prodname_oauth_app %} access restrictions, you can request that organization admins approve the application for use in that organization.** If the organization does not approve the application, then the application will only be able to access the organization's public resources. If you're an organization admin, you can [approve the application](/articles/approving-oauth-apps-for-your-organization) yourself. -- **En el caso de las organizaciones *sin* restricciones de aceso a {% data variables.product.prodname_oauth_app %}, la aplicación se autorizará automáticamente para el acceso alos recursos de dicha organización.** Es por esto que debes tener cuidado con qué {% data variables.product.prodname_oauth_apps %} apruebas para que tengan acceso a los recursos de tu cuenta personal, así como para cualquier recurso de la organización. +- **For organizations *without* {% data variables.product.prodname_oauth_app %} access restrictions, the application will automatically be authorized for access to that organization's resources.** For this reason, you should be careful about which {% data variables.product.prodname_oauth_apps %} you approve for access to your personal account resources as well as any organization resources. -Si perteneces a cualquier organizacion que imponga el inicio de sesión único de SAML, debes tener una sesión activa de SAML para cada organización cada vez que autorices un {% data variables.product.prodname_oauth_app %}. +If you belong to any organizations that enforce SAML single sign-on, you must have an active SAML session for each organization each time you authorize an {% data variables.product.prodname_oauth_app %}. {% note %} -**Nota:** Si te encuentras errores al autenticarte en una organización que requiera el inicio de sesión único de SAML, podrías necesitar revocar la OAuth App de tu [página de ajustes de cuenta](https://github.com/settings/applications) y repetir el flujo de autenticación para volver a autorizar a la app. +**Note:** If you are encountering errors authenticating to an organization that enforces SAML single sign-on, you may need to revoke the OAuth App from your [account settings page](https://github.com/settings/applications) and repeat the authentication flow to reauthorize the app. {% endnote %} -## Leer más +## Further reading -- "[Acerca de las restricciones de acceso a {% data variables.product.prodname_oauth_app %}](/articles/about-oauth-app-access-restrictions)" -- "[Autorizar las GitHub Apps](/github/authenticating-to-github/keeping-your-account-and-data-secure/authorizing-github-apps)" -- "[Soporte técnico de {% data variables.product.prodname_marketplace %}](/articles/github-marketplace-support)" +- "[About {% data variables.product.prodname_oauth_app %} access restrictions](/articles/about-oauth-app-access-restrictions)" +- "[Authorizing GitHub Apps](/github/authenticating-to-github/keeping-your-account-and-data-secure/authorizing-github-apps)" +- "[{% data variables.product.prodname_marketplace %} support](/articles/github-marketplace-support)" {% endif %} diff --git a/translations/es-ES/content/authentication/keeping-your-account-and-data-secure/token-expiration-and-revocation.md b/translations/es-ES/content/authentication/keeping-your-account-and-data-secure/token-expiration-and-revocation.md index e1a65ff65a..d2ac91676c 100644 --- a/translations/es-ES/content/authentication/keeping-your-account-and-data-secure/token-expiration-and-revocation.md +++ b/translations/es-ES/content/authentication/keeping-your-account-and-data-secure/token-expiration-and-revocation.md @@ -1,6 +1,6 @@ --- -title: Vencimiento y revocación de token -intro: 'Tus tokens pueden vencer y también los puedes revocar tú, las aplicaciones que hayas autorizado y el mismo {% data variables.product.product_name %}.' +title: Token expiration and revocation +intro: 'Your tokens can expire and can also be revoked by you, applications you have authorized, and {% data variables.product.product_name %} itself.' versions: fpt: '*' ghes: '*' @@ -9,55 +9,55 @@ versions: topics: - Identity - Access management -shortTitle: Vencimiento de token +shortTitle: Token expiration redirect_from: - /github/authenticating-to-github/keeping-your-account-and-data-secure/token-expiration-and-revocation --- -Cuando un token {% ifversion fpt or ghae-issue-4374 or ghes > 3.2 or ghec %}venció o {% endif %}se revocó, ya no puede utilizarse para autenticar solicitudes de Git y de las API. No es posible restablecer un token revocado o vencido, ya seas tú o la aplicación necesitarán crear un token nuevo. +When a token {% ifversion fpt or ghae-issue-4374 or ghes > 3.2 or ghec %}has expired or {% endif %} has been revoked, it can no longer be used to authenticate Git and API requests. It is not possible to restore an expired or revoked token, you or the application will need to create a new token. -Este artículo te explica las posibles razones por las cuales tu token de {% data variables.product.product_name %} podría revocarse o vencer. +This article explains the possible reasons your {% data variables.product.product_name %} token might be revoked or expire. {% note %} -**Nota:** Cuando un token de acceso personal o token de OAuth vence o se revoca, podrías ver una acción de `oauth_authorization.destroy` en tu bitácora de seguridad. Para obtener más información, consulta "[Revisar tu registro de seguridad](/github/authenticating-to-github/keeping-your-account-and-data-secure/reviewing-your-security-log)". +**Note:** When a personal access token or OAuth token expires or is revoked, you may see an `oauth_authorization.destroy` action in your security log. For more information, see "[Reviewing your security log](/github/authenticating-to-github/keeping-your-account-and-data-secure/reviewing-your-security-log)." {% endnote %} {% ifversion fpt or ghae-issue-4374 or ghes > 3.2 or ghec %} -## El token se revocó después de llegar a su fecha de vencimiento +## Token revoked after reaching its expiration date -Cuando creas un token de acceso personal, te recomendamos que configures una fecha de vencimiento para este. Al alcanzar la fecha de vencimiento de tu token, este se revocará automáticamente. Para obtener más información, consulta la sección "[Crear un token de acceso personal](/github/authenticating-to-github/keeping-your-account-and-data-secure/creating-a-personal-access-token)". +When you create a personal access token, we recommend that you set an expiration for your token. Upon reaching your token's expiration date, the token is automatically revoked. For more information, see "[Creating a personal access token](/github/authenticating-to-github/keeping-your-account-and-data-secure/creating-a-personal-access-token)." {% endif %} {% ifversion fpt or ghec %} -## El token se revocó cuando se subió a un repositorio o gist público +## Token revoked when pushed to a public repository or public gist -Si un token OAuth válido, token de {% data variables.product.prodname_github_app %} o de acceso personal se sube a un repositorio o gist público, este se revocará automáticamente. +If a valid OAuth token, {% data variables.product.prodname_github_app %} token, or personal access token is pushed to a public repository or public gist, the token will be automatically revoked. -Los tokens de OAuth y los de acceso personal que se suben a los repositorios y gists públicos solo se revocarán si el token tiene alcances. +OAuth tokens and personal access tokens pushed to public repositories and public gists will only be revoked if the token has scopes. {% endif %} {% ifversion fpt or ghec %} -## El token venció debido a la falta de uso +## Token expired due to lack of use -{% data variables.product.product_name %} revocará el token de OAuth o de acceso personal automáticamente cuando no se haya utilizado en un año. +{% data variables.product.product_name %} will automatically revoke an OAuth token or personal access token when the token hasn't been used in one year. {% endif %} -## El usuario revocó el token +## Token revoked by the user -Puedes revocar tu autorización de una {% data variables.product.prodname_github_app %} o {% data variables.product.prodname_oauth_app %} desde tus ajustes de cuenta, lo cual revocará cualquier token asociado con la app. Para obtener más información, consulta las secciones "[Revisar tus integraciones autorizadas](/github/authenticating-to-github/keeping-your-account-and-data-secure/reviewing-your-authorized-integrations)" y "[Revisar tus aplicaciones autorizadas (OAuth)](/github/authenticating-to-github/keeping-your-account-and-data-secure/reviewing-your-authorized-applications-oauth)". +You can revoke your authorization of a {% data variables.product.prodname_github_app %} or {% data variables.product.prodname_oauth_app %} from your account settings which will revoke any tokens associated with the app. For more information, see "[Reviewing your authorized integrations](/github/authenticating-to-github/keeping-your-account-and-data-secure/reviewing-your-authorized-integrations)" and "[Reviewing your authorized applications (OAuth)](/github/authenticating-to-github/keeping-your-account-and-data-secure/reviewing-your-authorized-applications-oauth)." -Una vez que se revoca una autorización, cualquier token asociado con la autorización también se revocará. To re-authorize an application, follow the instructions from the third-party application or website to connect your account on {% ifversion ghae %}{% data variables.product.product_name %}{% else %}{% data variables.product.product_location %}{% endif %} again. +Once an authorization is revoked, any tokens associated with the authorization will be revoked as well. To re-authorize an application, follow the instructions from the third-party application or website to connect your account on {% ifversion ghae %}{% data variables.product.product_name %}{% else %}{% data variables.product.product_location %}{% endif %} again. -## La {% data variables.product.prodname_oauth_app %} revocó el token +## Token revoked by the {% data variables.product.prodname_oauth_app %} -El propietario de una {% data variables.product.prodname_oauth_app %} puede revocar una autorización de su app en una cuenta, esto también revocará cualquier token asociado con esa autorización. Para obtener más información sobre cómo revocar las autorizaciones de tu app de OAuth, consulta la sección "[Borrar una autorización de una app](/rest/reference/apps#delete-an-app-authorization)". +The owner of an {% data variables.product.prodname_oauth_app %} can revoke an account's authorization of their app, this will also revoke any tokens associated with the authorization. For more information about revoking authorizations of your OAuth app, see "[Delete an app authorization](/rest/reference/apps#delete-an-app-authorization)." -## El token se revocó debido a un exceso de tokens para una {% data variables.product.prodname_oauth_app %} con el mismo alcance +## Token revoked due to excess of tokens for an {% data variables.product.prodname_oauth_app %} with the same scope {% data reusables.apps.oauth-token-limit %} -## El token de usuario se revocó debido a la configuración de la {% data variables.product.prodname_github_app %} +## User token revoked due to {% data variables.product.prodname_github_app %} configuration -Los tokens de usuario a servidor que creó una {% data variables.product.prodname_github_app %} vencerán después de ocho horas, predeterminadamente. Los propietarios de las {% data variables.product.prodname_github_apps %} pueden configurar sus apps para que los tokens de usuario a servidor no venzan. Para obtener más información sobre cómo cambiar la forma en que se compartan los tokens de usuario a servidor de tus Apps de {% data variables.product.prodname_dotcom %}, consulta la sección "[Activar las características opcionales para las apps](/developers/apps/getting-started-with-apps/activating-optional-features-for-apps)". +User-to-server tokens created by a {% data variables.product.prodname_github_app %} will expire after eight hours by default. Owners of {% data variables.product.prodname_github_apps %} can configure their apps so that user-to-server tokens do not expire. For more information about changing how your {% data variables.product.prodname_dotcom %} App's user-to-server tokens behave, see "[Activating optional features for apps](/developers/apps/getting-started-with-apps/activating-optional-features-for-apps)." diff --git a/translations/es-ES/content/authentication/managing-commit-signature-verification/adding-a-new-gpg-key-to-your-github-account.md b/translations/es-ES/content/authentication/managing-commit-signature-verification/adding-a-new-gpg-key-to-your-github-account.md index 47e4e86fe8..f737d129f9 100644 --- a/translations/es-ES/content/authentication/managing-commit-signature-verification/adding-a-new-gpg-key-to-your-github-account.md +++ b/translations/es-ES/content/authentication/managing-commit-signature-verification/adding-a-new-gpg-key-to-your-github-account.md @@ -1,5 +1,5 @@ --- -title: Agregar una llave GPG nueva a tu cuenta de GitHub +title: Adding a new GPG key to your GitHub account intro: 'To configure your account on {% ifversion ghae %}{% data variables.product.product_name %}{% else %}{% data variables.product.product_location %}{% endif %} to use your new (or existing) GPG key, you''ll also need the key to your account.' redirect_from: - /articles/adding-a-new-gpg-key-to-your-github-account @@ -13,30 +13,32 @@ versions: topics: - Identity - Access management -shortTitle: Agrega una llave GPG +shortTitle: Add a new GPG key --- - Before adding a new GPG key to your account on {% ifversion ghae %}{% data variables.product.product_name %}{% else %}{% data variables.product.product_location %}{% endif %}, you should have: -- [Comprobado tus llaves GPG existentes](/articles/checking-for-existing-gpg-keys) -- [Generado y copiado una nueva llave GPG](/articles/generating-a-new-gpg-key) +- [Checked for existing GPG keys](/articles/checking-for-existing-gpg-keys) +- [Generated and copied a new GPG key](/articles/generating-a-new-gpg-key) {% data reusables.gpg.supported-gpg-key-algorithms %} -Al verificar una firma, extraemos la firma e intentamos analizar sus id de llave. Complementamos los id de llave con las llaves cargadas a {% data variables.product.product_name %}. Hasta que cargues tu llave de GPG a {% data variables.product.product_name %}, no podemos verificar tus firmas. +When verifying a signature, we extract the signature and attempt to parse its key-id. We match the key-id with keys uploaded to {% data variables.product.product_name %}. Until you upload your GPG key to {% data variables.product.product_name %}, we cannot verify your signatures. -## Agregar una llave GPG +## Adding a GPG key {% data reusables.user_settings.access_settings %} {% data reusables.user_settings.ssh %} -3. Haz clic en **New GPG key** (Nueva llave GPG). ![Botón de llave GPG](/assets/images/help/settings/gpg-add-gpg-key.png) -4. En el campo "Clave", pega la llave GPG que copiaste cuando [generó tu llave GPG](/articles/generating-a-new-gpg-key). ![Campo de llave](/assets/images/help/settings/gpg-key-paste.png) -5. Haz clic en **Add GPG key** (Agregar llave GPG). ![Botón Add key (Agregar llave)](/assets/images/help/settings/gpg-add-key.png) -6. Para confirmar la acción, escribe tu contraseña de {% data variables.product.product_name %}. +3. Click **New GPG key**. + ![GPG Key button](/assets/images/help/settings/gpg-add-gpg-key.png) +4. In the "Key" field, paste the GPG key you copied when you [generated your GPG key](/articles/generating-a-new-gpg-key). + ![The key field](/assets/images/help/settings/gpg-key-paste.png) +5. Click **Add GPG key**. + ![The Add key button](/assets/images/help/settings/gpg-add-key.png) +6. To confirm the action, enter your {% data variables.product.product_name %} password. -## Leer más +## Further reading -* "[Comprobar llaves GPG existentes](/articles/checking-for-existing-gpg-keys)" -* "[Generar una llave GPG nueva](/articles/generating-a-new-gpg-key)" -* "[Informar a Git sobre tu llave de firma](/articles/telling-git-about-your-signing-key)" -* "[Asociar un correo electrónico con tu llave GPG](/articles/associating-an-email-with-your-gpg-key)" -* "[Firmar confirmaciones y etiquetas mediante llaves GPG](/articles/signing-commits-and-tags-using-gpg)" +* "[Checking for existing GPG keys](/articles/checking-for-existing-gpg-keys)" +* "[Generating a new GPG key](/articles/generating-a-new-gpg-key)" +* "[Telling Git about your signing key](/articles/telling-git-about-your-signing-key)" +* "[Associating an email with your GPG key](/articles/associating-an-email-with-your-gpg-key)" +* "[Signing commits and tags using GPG keys](/articles/signing-commits-and-tags-using-gpg)" diff --git a/translations/es-ES/content/authentication/managing-commit-signature-verification/associating-an-email-with-your-gpg-key.md b/translations/es-ES/content/authentication/managing-commit-signature-verification/associating-an-email-with-your-gpg-key.md index 28079b39d8..53019bf434 100644 --- a/translations/es-ES/content/authentication/managing-commit-signature-verification/associating-an-email-with-your-gpg-key.md +++ b/translations/es-ES/content/authentication/managing-commit-signature-verification/associating-an-email-with-your-gpg-key.md @@ -1,6 +1,6 @@ --- -title: Asociar un correo electrónico con tu llave GPG -intro: 'Tu llave GPG debe estar asociada con un correo electrónico verificado de {% data variables.product.product_name %} que coincida con tu identidad de persona que confirma el cambio.' +title: Associating an email with your GPG key +intro: 'Your GPG key must be associated with a {% data variables.product.product_name %} verified email that matches your committer identity.' redirect_from: - /articles/associating-an-email-with-your-gpg-key - /github/authenticating-to-github/associating-an-email-with-your-gpg-key @@ -13,9 +13,8 @@ versions: topics: - Identity - Access management -shortTitle: Asociar el correo electrónico con una llave GPG +shortTitle: Associate email with GPG key --- - {% note %} If you're using a GPG key that matches your committer identity and your verified email address associated with your account on {% ifversion ghae %}{% data variables.product.product_name %}{% else %}{% data variables.product.product_location %}{% endif %}, then you can begin signing commits and signing tags. @@ -25,39 +24,39 @@ If you're using a GPG key that matches your committer identity and your verified {% data reusables.command_line.open_the_multi_os_terminal %} {% data reusables.gpg.list-keys-with-note %} {% data reusables.gpg.copy-gpg-key-id %} -4. Escribe `gpg --edit-key GPG key ID`, sustituyendo la ID de la llave GPG que te gustaría usar. En el siguiente ejemplo, el ID de llave GPG es `3AA5C34371567BD2`: +4. Enter `gpg --edit-key GPG key ID`, substituting in the GPG key ID you'd like to use. In the following example, the GPG key ID is `3AA5C34371567BD2`: ```shell $ gpg --edit-key 3AA5C34371567BD2 ``` -5. Escribe `gpg> adduid` para agregar los detalles de ID de usuario. +5. Enter `gpg> adduid` to add the user ID details. ```shell $ gpg> adduid ``` -6. Sigue las indicaciones para suminsitrar tu nombre real, dirección de correo electrónica o cualquier comentario. Puedes modificar tus entradas al elegir `N`, `C` o `E`. {% data reusables.gpg.private-email %} {% ifversion fpt or ghec %} Para obtener más información, consulta "[Configurar la confirmación de tu dirección de correo electrónico](/articles/setting-your-commit-email-address)."{% endif %} +6. Follow the prompts to supply your real name, email address, and any comments. You can modify your entries by choosing `N`, `C`, or `E`. {% data reusables.gpg.private-email %} {% ifversion fpt or ghec %} For more information, see "[Setting your commit email address](/articles/setting-your-commit-email-address)."{% endif %} ```shell Real Name: Octocat Email address: octocat@github.com Comment: GitHub key Change (N)ame, (C)omment, (E)mail or (O)kay/(Q)uit? ``` -7. Escribe`O` para confirmar tus selecciones. -8. Escribe la contraseña de tu llave. -9. Escribe `gpg> save` para guardar los cambios +7. Enter `O` to confirm your selections. +8. Enter your key's passphrase. +9. Enter `gpg> save` to save the changes ```shell $ gpg> save ``` -10. Escribe `gpg --armor --export GPG key ID`, sustituyendo la ID de la llave GPG que te gustaría usar. En el siguiente ejemplo, el ID de llave GPG es `3AA5C34371567BD2`: +10. Enter `gpg --armor --export GPG key ID`, substituting in the GPG key ID you'd like to use. In the following example, the GPG key ID is `3AA5C34371567BD2`: ```shell $ gpg --armor --export 3AA5C34371567BD2 # Prints the GPG key, in ASCII armor format ``` -11. Carga la llave GPG al [agregarla a tu cuenta GitHub](/articles/adding-a-new-gpg-key-to-your-github-account). +11. Upload the GPG key by [adding it to your GitHub account](/articles/adding-a-new-gpg-key-to-your-github-account). -## Leer más +## Further reading -- "[Comprobar llaves GPG existentes](/articles/checking-for-existing-gpg-keys)" -- "[Generar una llave GPG nueva](/articles/generating-a-new-gpg-key)" -- "[Utilizar una dirección de correo electrónico verificada en tu llave GPG](/articles/using-a-verified-email-address-in-your-gpg-key)" -- "[Agregar una nueva llave GPG a tu cuenta de GitHub](/articles/adding-a-new-gpg-key-to-your-github-account)" -- "[Firmar confirmaciones](/articles/signing-commits)" -- "[Firmar etiquetas](/articles/signing-tags)" +- "[Checking for existing GPG keys](/articles/checking-for-existing-gpg-keys)" +- "[Generating a new GPG key](/articles/generating-a-new-gpg-key)" +- "[Using a verified email address in your GPG key](/articles/using-a-verified-email-address-in-your-gpg-key)" +- "[Adding a new GPG key to your GitHub account](/articles/adding-a-new-gpg-key-to-your-github-account)" +- "[Signing commits](/articles/signing-commits)" +- "[Signing tags](/articles/signing-tags)" diff --git a/translations/es-ES/content/authentication/troubleshooting-ssh/error-key-already-in-use.md b/translations/es-ES/content/authentication/troubleshooting-ssh/error-key-already-in-use.md index c2a38e3e99..90df343c3c 100644 --- a/translations/es-ES/content/authentication/troubleshooting-ssh/error-key-already-in-use.md +++ b/translations/es-ES/content/authentication/troubleshooting-ssh/error-key-already-in-use.md @@ -1,6 +1,6 @@ --- -title: 'Error: La clave ya está en uso' -intro: 'Este error se produce cuando intentas [agregar una clave](/articles/adding-a-new-ssh-key-to-your-github-account) que ya ha sido agregada a otra cuenta o repositorio.' +title: 'Error: Key already in use' +intro: 'This error occurs when you try to [add a key](/articles/adding-a-new-ssh-key-to-your-github-account) that''s already been added to another account or repository.' redirect_from: - /articles/error-key-already-in-use - /github/authenticating-to-github/error-key-already-in-use @@ -13,10 +13,9 @@ versions: topics: - SSH --- +## Finding where the key has been used -## Determinar dónde se ha usado la clave - -Para determinar dónde se ha usado la clave, abre una terminal y escribe el comando `ssh`. Usa la marca `-i` para obtener la ruta a la clave que deseas verificar: +To determine where the key has already been used, open a terminal and type the `ssh` command. Use the `-i` flag to provide the path to the key you want to check: ```shell $ ssh -T -ai ~/.ssh/id_rsa git@{% data variables.command_line.codeblock %} @@ -25,21 +24,21 @@ $ ssh -T -ai ~/.ssh/id_rsa git@{% data variables.command_line.codeblock > provide shell access. ``` -The *username* in the response is the account on {% ifversion ghae %}{% data variables.product.product_name %}{% else %}{% data variables.product.product_location %}{% endif %} that the key is currently attached to. Si la respuesta se parece a "username/repo", la llave se ha vinculado a un repositorio como [*llave de implementación*](/guides/managing-deploy-keys#deploy-keys). +The *username* in the response is the account on {% ifversion ghae %}{% data variables.product.product_name %}{% else %}{% data variables.product.product_location %}{% endif %} that the key is currently attached to. If the response looks something like "username/repo", the key has been attached to a repository as a [*deploy key*](/guides/managing-deploy-keys#deploy-keys). -Para forzar a SSH a que utilice solo la clave que se proporcionó en la línea de comandos, utiliza `-o` para agregar la opción `IdentitiesOnly=yes`: +To force SSH to use only the key provided on the command line, use `-o` to add the `IdentitiesOnly=yes` option: ```shell $ ssh -v -o "IdentitiesOnly=yes" -i ~/.ssh/id_rsa git@{% data variables.command_line.codeblock %} ``` -## Resolver el problema +## Fixing the issue -Para resolver el problema, primero elimina la clave de la otra cuenta o repositorio y luego [agrégala a tu cuenta](/articles/adding-a-new-ssh-key-to-your-github-account). +To resolve the issue, first remove the key from the other account or repository and then [add it to your account](/articles/adding-a-new-ssh-key-to-your-github-account). -Si no tienes permisos para transferir la clave y no puedes comunicarte con un usuario que los tenga, elimina el par de claves y [genera uno nuevo](/articles/generating-a-new-ssh-key-and-adding-it-to-the-ssh-agent). +If you don't have permissions to transfer the key, and can't contact a user who does, remove the keypair and [generate a brand new one](/articles/generating-a-new-ssh-key-and-adding-it-to-the-ssh-agent). -## Llaves de implementación +## Deploy keys -Una vez que una clave se ha vinculado a un repositorio como llave de implementación, no se la puede usar en otro repositorio. Si se te muestra este error mientras configuras las llaves de despliegue, consulta la sección "[Administrar las llaves de despliegue](/guides/managing-deploy-keys)". +Once a key has been attached to one repository as a deploy key, it cannot be used on another repository. If you're running into this error while setting up deploy keys, see "[Managing deploy keys](/guides/managing-deploy-keys)." diff --git a/translations/es-ES/content/billing/managing-billing-for-git-large-file-storage/downgrading-git-large-file-storage.md b/translations/es-ES/content/billing/managing-billing-for-git-large-file-storage/downgrading-git-large-file-storage.md index dd82183961..3fd9e67aef 100644 --- a/translations/es-ES/content/billing/managing-billing-for-git-large-file-storage/downgrading-git-large-file-storage.md +++ b/translations/es-ES/content/billing/managing-billing-for-git-large-file-storage/downgrading-git-large-file-storage.md @@ -1,10 +1,10 @@ --- -title: Bajar de categoría Large File Storage de Git -intro: 'Puedes bajar de categoría y modificar el ancho de banda para {% data variables.large_files.product_name_short %} aplicando incrementos de 50 GB por mes.' +title: Downgrading Git Large File Storage +intro: 'You can downgrade storage and bandwidth for {% data variables.large_files.product_name_short %} by increments of 50 GB per month.' redirect_from: - /github/setting-up-and-managing-billing-and-payments-on-github/downgrading-git-large-file-storage - - /articles/downgrading-storage-and-bandwidth-for-a-personal-account/ - - /articles/downgrading-storage-and-bandwidth-for-an-organization/ + - /articles/downgrading-storage-and-bandwidth-for-a-personal-account + - /articles/downgrading-storage-and-bandwidth-for-an-organization - /articles/downgrading-git-large-file-storage - /github/setting-up-and-managing-billing-and-payments-on-github/managing-billing-for-git-large-file-storage/downgrading-git-large-file-storage versions: @@ -16,42 +16,21 @@ topics: - LFS - Organizations - User account -shortTitle: Bajar de categoría el almacenamiento de LFS de Git +shortTitle: Downgrade Git LFS storage --- +When you downgrade your number of data packs, your change takes effect on your next billing date. For more information, see "[About billing for {% data variables.large_files.product_name_long %}](/articles/about-billing-for-git-large-file-storage)." -Si bajas de categoría tu cantidad de paquetes de datos, tu cambio entrará en vigencia en tu próxima fecha de facturación. Para obtener más información, consulta " -[Acerca de la facturación para {% data variables.large_files.product_name_long %}](/articles/about-billing-for-git-large-file-storage)".

- - - -## Bajar de categoría y reducir el ancho de banda para una cuenta personal +## Downgrading storage and bandwidth for a personal account {% data reusables.user_settings.access_settings %} - - - {% data reusables.user_settings.billing_plans %} - - - {% data reusables.dotcom_billing.lfs-remove-data %} - - - {% data reusables.large_files.downgrade_data_packs %} - - -## Bajar de categoría y reducir el ancho de banda para una organización +## Downgrading storage and bandwidth for an organization {% data reusables.dotcom_billing.org-billing-perms %} {% data reusables.organizations.billing-settings %} - - - {% data reusables.dotcom_billing.lfs-remove-data %} - - - {% data reusables.large_files.downgrade_data_packs %} diff --git a/translations/es-ES/content/billing/managing-billing-for-git-large-file-storage/index.md b/translations/es-ES/content/billing/managing-billing-for-git-large-file-storage/index.md index 45ddfc3dbf..1705e89890 100644 --- a/translations/es-ES/content/billing/managing-billing-for-git-large-file-storage/index.md +++ b/translations/es-ES/content/billing/managing-billing-for-git-large-file-storage/index.md @@ -1,12 +1,12 @@ --- -title: Administrar la facturación para Large File Storage de Git -shortTitle: Almacenamiento de archivos de gran tamaño Git -intro: 'Puedes ver el uso, la actualización y el cambio a una versión anterior{% data variables.large_files.product_name_long %}.' +title: Managing billing for Git Large File Storage +shortTitle: Git Large File Storage +intro: 'You can view usage for, upgrade, and downgrade {% data variables.large_files.product_name_long %}.' redirect_from: - /github/setting-up-and-managing-billing-and-payments-on-github/managing-billing-for-git-large-file-storage - - /articles/managing-large-file-storage-and-bandwidth-for-your-personal-account/ - - /articles/managing-large-file-storage-and-bandwidth-for-your-organization/ - - /articles/managing-storage-and-bandwidth-usage/ + - /articles/managing-large-file-storage-and-bandwidth-for-your-personal-account + - /articles/managing-large-file-storage-and-bandwidth-for-your-organization + - /articles/managing-storage-and-bandwidth-usage - /articles/managing-billing-for-git-large-file-storage versions: fpt: '*' diff --git a/translations/es-ES/content/billing/managing-billing-for-git-large-file-storage/upgrading-git-large-file-storage.md b/translations/es-ES/content/billing/managing-billing-for-git-large-file-storage/upgrading-git-large-file-storage.md index 5ac4fdc7d6..524d077114 100644 --- a/translations/es-ES/content/billing/managing-billing-for-git-large-file-storage/upgrading-git-large-file-storage.md +++ b/translations/es-ES/content/billing/managing-billing-for-git-large-file-storage/upgrading-git-large-file-storage.md @@ -1,10 +1,10 @@ --- -title: Subir de categoría Git Large File Storage -intro: 'Puedes comprar más paquetes de datos para aumentar tu cuota de banda ancha mensual y la capacidad de almacenamiento total para {% data variables.large_files.product_name_short %}.' +title: Upgrading Git Large File Storage +intro: 'You can purchase additional data packs to increase your monthly bandwidth quota and total storage capacity for {% data variables.large_files.product_name_short %}.' redirect_from: - /github/setting-up-and-managing-billing-and-payments-on-github/upgrading-git-large-file-storage - - /articles/purchasing-additional-storage-and-bandwidth-for-a-personal-account/ - - /articles/purchasing-additional-storage-and-bandwidth-for-an-organization/ + - /articles/purchasing-additional-storage-and-bandwidth-for-a-personal-account + - /articles/purchasing-additional-storage-and-bandwidth-for-an-organization - /articles/upgrading-git-large-file-storage - /github/setting-up-and-managing-billing-and-payments-on-github/managing-billing-for-git-large-file-storage/upgrading-git-large-file-storage versions: @@ -16,10 +16,9 @@ topics: - Organizations - Upgrades - User account -shortTitle: Mejorar el almacenamiento de LFS de Git +shortTitle: Upgrade Git LFS storage --- - -## Comprar más almacenamiento y ancho de banda para una cuenta personal +## Purchasing additional storage and bandwidth for a personal account {% data reusables.user_settings.access_settings %} {% data reusables.user_settings.billing_plans %} @@ -27,7 +26,7 @@ shortTitle: Mejorar el almacenamiento de LFS de Git {% data reusables.large_files.pack_selection %} {% data reusables.large_files.pack_confirm %} -## Comprar más almacenamiento y ancho de banda para una organización +## Purchasing additional storage and bandwidth for an organization {% data reusables.dotcom_billing.org-billing-perms %} @@ -36,9 +35,9 @@ shortTitle: Mejorar el almacenamiento de LFS de Git {% data reusables.large_files.pack_selection %} {% data reusables.large_files.pack_confirm %} -## Leer más +## Further reading -- "[Acerca de la facturación para {% data variables.large_files.product_name_long %}](/articles/about-billing-for-git-large-file-storage)" -- "[Acerca del uso de banda ancha y del almacenamiento](/articles/about-storage-and-bandwidth-usage)" -- "[Ver tu uso de {% data variables.large_files.product_name_long %}](/articles/viewing-your-git-large-file-storage-usage)" -- "[Control de versiones de archivos grandes](/articles/versioning-large-files)" +- "[About billing for {% data variables.large_files.product_name_long %}](/articles/about-billing-for-git-large-file-storage)" +- "[About storage and bandwidth usage](/articles/about-storage-and-bandwidth-usage)" +- "[Viewing your {% data variables.large_files.product_name_long %} usage](/articles/viewing-your-git-large-file-storage-usage)" +- "[Versioning large files](/articles/versioning-large-files)" diff --git a/translations/es-ES/content/billing/managing-billing-for-git-large-file-storage/viewing-your-git-large-file-storage-usage.md b/translations/es-ES/content/billing/managing-billing-for-git-large-file-storage/viewing-your-git-large-file-storage-usage.md index 52116152de..3cdfaa78d0 100644 --- a/translations/es-ES/content/billing/managing-billing-for-git-large-file-storage/viewing-your-git-large-file-storage-usage.md +++ b/translations/es-ES/content/billing/managing-billing-for-git-large-file-storage/viewing-your-git-large-file-storage-usage.md @@ -1,10 +1,10 @@ --- -title: Ver tu uso de Git Large File Storage -intro: 'Puedes auditar la cuota de ancho de banda mensual de cuenta y el almacenamiento restante para {% data variables.large_files.product_name_short %}.' +title: Viewing your Git Large File Storage usage +intro: 'You can audit your account''s monthly bandwidth quota and remaining storage for {% data variables.large_files.product_name_short %}.' redirect_from: - /github/setting-up-and-managing-billing-and-payments-on-github/viewing-your-git-large-file-storage-usage - - /articles/viewing-storage-and-bandwidth-usage-for-a-personal-account/ - - /articles/viewing-storage-and-bandwidth-usage-for-an-organization/ + - /articles/viewing-storage-and-bandwidth-usage-for-a-personal-account + - /articles/viewing-storage-and-bandwidth-usage-for-an-organization - /articles/viewing-your-git-large-file-storage-usage - /github/setting-up-and-managing-billing-and-payments-on-github/managing-billing-for-git-large-file-storage/viewing-your-git-large-file-storage-usage versions: @@ -15,25 +15,24 @@ topics: - LFS - Organizations - User account -shortTitle: Visualizar el uso de LFS de Git +shortTitle: View Git LFS usage --- - {% data reusables.large_files.owner_quota_only %} {% data reusables.large_files.does_not_carry %} -## Ver el uso del almacenamiento y del ancho de banda para una cuenta personal +## Viewing storage and bandwidth usage for a personal account {% data reusables.user_settings.access_settings %} {% data reusables.user_settings.billing_plans %} {% data reusables.dotcom_billing.lfs-data %} -## Ver el uso del almacenamiento y del ancho de banda para una organización +## Viewing storage and bandwidth usage for an organization {% data reusables.dotcom_billing.org-billing-perms %} {% data reusables.organizations.billing-settings %} {% data reusables.dotcom_billing.lfs-data %} -## Leer más +## Further reading -- "[Acerca del uso de banda ancha y del almacenamiento](/articles/about-storage-and-bandwidth-usage)" -- "[Actualizar {% data variables.large_files.product_name_long %}](/articles/upgrading-git-large-file-storage/)" +- "[About storage and bandwidth usage](/articles/about-storage-and-bandwidth-usage)" +- "[Upgrading {% data variables.large_files.product_name_long %}](/articles/upgrading-git-large-file-storage/)" diff --git a/translations/es-ES/content/billing/managing-billing-for-github-codespaces/about-billing-for-codespaces.md b/translations/es-ES/content/billing/managing-billing-for-github-codespaces/about-billing-for-codespaces.md index a2767a2c33..a9cde308d3 100644 --- a/translations/es-ES/content/billing/managing-billing-for-github-codespaces/about-billing-for-codespaces.md +++ b/translations/es-ES/content/billing/managing-billing-for-github-codespaces/about-billing-for-codespaces.md @@ -1,7 +1,7 @@ --- -title: Acerca de la facturación para Codespaces -shortTitle: Acerca de la facturación -intro: 'Ver los precios y cómo administrar la facturación de {% data variables.product.prodname_codespaces %} para tu organización.' +title: About billing for Codespaces +shortTitle: About billing +intro: 'View pricing and see how to manage {% data variables.product.prodname_codespaces %} billing for your organization.' permissions: 'To manage billing for Codespaces for an organization, you must be an organization owner or a billing manager.' versions: fpt: '*' @@ -13,51 +13,51 @@ topics: - Billing --- -## Precios de {% data variables.product.prodname_codespaces %} +## {% data variables.product.prodname_codespaces %} pricing -El uso de {% data variables.product.prodname_codespaces %} se factura para todas las cuentas en los planes de equipo y empresa y no incluye ningún derecho. El uso de {% data variables.product.prodname_codespaces %} no se cobra actualmente para las cuentas individuales. +{% data variables.product.prodname_codespaces %} usage is billed for all accounts on the Team and Enterprise plans, and does not include any entitlements. Individual accounts are not currently billed for {% data variables.product.prodname_codespaces %} usage. -El uso de {% data variables.product.prodname_codespaces %} se cobra de acuerdo con las unidades de medida en la siguiente tabla: +{% data variables.product.prodname_codespaces %} usage is billed according to the units of measure in the following table: -| Producto | SKU | Unit of measure | Price | -| ------------------ | -------------- | --------------- | ----- | -| Codespaces Compute | 2 núcleos | 1 hour | $0.18 | -| | 4 núcleos | 1 hour | $0.36 | -| | 8 núcleos | 1 hour | $0.72 | -| | 16 núcleos | 1 hour | $1.44 | -| | 32 núcleos | 1 hour | $2.88 | -| Codespaces Storage | Almacenamiento | 1 GB-month | $0.07 | +| Product | SKU | Unit of measure | Price | +| ------------------- | -------- | --------------- | ----- | +| Codespaces Compute | 2 core | 1 hour | $0.18 | +| | 4 core | 1 hour | $0.36 | +| | 8 core | 1 hour | $0.72 | +| | 16 core | 1 hour | $1.44 | +| | 32 core | 1 hour | $2.88 | +| Codespaces Storage | Storage | 1 GB-month | $0.07 | -## Acerca de la facturación para {% data variables.product.prodname_codespaces %} +## About billing for {% data variables.product.prodname_codespaces %} {% data reusables.codespaces.codespaces-billing %} -Tu uso de {% data variables.product.prodname_codespaces %} comparte la fecha de facturación, método de pago y recibo existente en tu cuenta. {% data reusables.dotcom_billing.view-all-subscriptions %} +Your {% data variables.product.prodname_codespaces %} usage shares your account's existing billing date, payment method, and receipt. {% data reusables.dotcom_billing.view-all-subscriptions %} {% ifversion ghec %} -Si compraste {% data variables.product.prodname_enterprise %} mediante un Acuerdo de Microsoft Enterprise, puedes conectar tu ID de Suscripción de Azure a tu cuenta empresarial para habilitar y pagar por el uso de {% data variables.product.prodname_codespaces %}. Para obtener más información, consulta la sección "[Conectar una suscripción de Azure a tu empresa](/billing/managing-billing-for-your-github-account/connecting-an-azure-subscription-to-your-enterprise)". +If you purchased {% data variables.product.prodname_enterprise %} through a Microsoft Enterprise Agreement, you can connect your Azure Subscription ID to your enterprise account to enable and pay for {% data variables.product.prodname_codespaces %} usage. For more information, see "[Connecting an Azure subscription to your enterprise](/billing/managing-billing-for-your-github-account/connecting-an-azure-subscription-to-your-enterprise)." {% endif %} {% data reusables.dotcom_billing.pricing_cal %} -## Configurar un límite de gastos +## Setting a spending limit -{% data reusables.codespaces.codespaces-spending-limit-requirement %} +{% data reusables.codespaces.codespaces-spending-limit-requirement %} -Para obtener más información sobre cómo administrar y cambiar el límite de gastos de tu organización, consulta la sección "[Administrar tu límite de gastos para {% data variables.product.prodname_codespaces %}](/billing/managing-billing-for-github-codespaces/managing-spending-limits-for-codespaces)". +For information on managing and changing your account's spending limit, see "[Managing your spending limit for {% data variables.product.prodname_codespaces %}](/billing/managing-billing-for-github-codespaces/managing-spending-limits-for-codespaces)." {% data reusables.codespaces.exporting-changes %} -## Cómo se maneja la facturación para los repositorios bifurcados +## How billing is handled for forked repositories -Los {% data variables.product.prodname_codespaces %} solo pueden utilizarse en las organizaciones donde se haya definido un propietario al que se le pueda facturar. Para incurrir en cargos a la organización, el usuario debe ser un miembro o colaborador, de lo contrario, no podrán crear un codespace. +{% data variables.product.prodname_codespaces %} can only be used in organizations where a billable owner has been defined. To incur charges to the organization, the user must be a member or collaborator, otherwise they cannot create a codespace. -Por ejemplo, un usuario en una organización privada puede bifurcar un repositorio dentro de dicha organización y puede utilizar subsecuentemente un codespace que se facture a la organización; esto es porque la organización es la propietaria del repositorio padre, la cual puede eliminar el acceso del usuario, el repositorio bifurcado y el codespace. +For example, a user in a private organization can fork a repository within that organization, and can subsequently use a codespace billed to the organization; this is because the organization is the owner of the parent repository, which can remove the user's access, the forked repository, and the codespace. + +## How billing is handled when a repository is transferred -## Cómo se maneja la facturación cuando se transfiere un repositorio +Usage is billed and reported on every hour. As such, you pay for any usage when a repository is within your organization. When a repository is transferred out of your organization, any codespaces in that repository are removed as part of the transfer process. -El uso se cobra y reporta por hora. Como tal, pagas por cualquier uso cuando un repositorio se encuentra dentro de tu organización. Cuando un repositorio se transfiere fuera de tu organización, cualquier codespace en este repositorio se elimina como parte del proceso de transferencia. +## What happens when users are removed -## Lo que sucede cuando se eliminan usuarios - -Si un usuario se elimina de una organización o repositorio, su codespace se borra automáticamente. +If a user is removed from an organization or repository, their codespaces are automatically deleted. diff --git a/translations/es-ES/content/billing/managing-billing-for-github-codespaces/viewing-your-codespaces-usage.md b/translations/es-ES/content/billing/managing-billing-for-github-codespaces/viewing-your-codespaces-usage.md index 536a43e89f..fefb537a33 100644 --- a/translations/es-ES/content/billing/managing-billing-for-github-codespaces/viewing-your-codespaces-usage.md +++ b/translations/es-ES/content/billing/managing-billing-for-github-codespaces/viewing-your-codespaces-usage.md @@ -1,7 +1,7 @@ --- -title: Ver el uso de tus Codespaces -shortTitle: Ver tu uso -intro: 'Puedes ver los minutos de cálculo y almacenamiento que utilizan los {% data variables.product.prodname_codespaces %}.' +title: Viewing your Codespaces usage +shortTitle: Viewing your usage +intro: 'You can view the compute minutes and storage used by {% data variables.product.prodname_codespaces %}.' permissions: 'To manage billing for Codespaces for an organization, you must be an organization owner or a billing manager.' product: '{% data reusables.gated-features.codespaces %}' versions: @@ -13,18 +13,19 @@ topics: - Billing --- -## Visualizar el uso de {% data variables.product.prodname_codespaces %} para tu organización +## Viewing {% data variables.product.prodname_codespaces %} usage for your organization -Los propietarios de la organización y gerentes de facturación pueden ver el uso de {% data variables.product.prodname_codespaces %} para una organización. Para las organizaciones que administra una cuenta empresarial, los propietarios de estas pueden ver el uso de los {% data variables.product.prodname_codespaces %} en la página de facturación de la misma y los administradores empresariales pueden ver el uso de toda la empresa. +Organization owners and billing managers can view {% data variables.product.prodname_codespaces %} usage for an organization. For organizations managed by an enterprise account, the organization owners can view {% data variables.product.prodname_codespaces %} usage in the organization billing page, and enterprise admins can view the usage for the entire enterprise. {% data reusables.organizations.billing-settings %} {% data reusables.dotcom_billing.codespaces-minutes %} +{% data reusables.dotcom_billing.codespaces-report-download %} -## Visualizar el uso de {% data variables.product.prodname_codespaces %} para tu cuenta empresarial +## Viewing {% data variables.product.prodname_codespaces %} usage for your enterprise account -Los propietarios de empresa y gerentes de facturación pueden ver el uso de {% data variables.product.prodname_codespaces %} para una cuenta empresarial. +Enterprise owners and billing managers can view {% data variables.product.prodname_codespaces %} usage for an enterprise account. {% data reusables.enterprise-accounts.access-enterprise %} {% data reusables.enterprise-accounts.settings-tab %} {% data reusables.enterprise-accounts.billing-tab %} -1. Debajo de "{% data variables.product.prodname_codespaces %}", ve los detalles de uso de cada organización en tu cuenta empresarial. +1. Under "{% data variables.product.prodname_codespaces %}", view the usage details of each organization in your enterprise account. \ No newline at end of file diff --git a/translations/es-ES/content/billing/managing-billing-for-github-marketplace-apps/canceling-a-github-marketplace-app.md b/translations/es-ES/content/billing/managing-billing-for-github-marketplace-apps/canceling-a-github-marketplace-app.md index ca063949d5..6d6d6bba9d 100644 --- a/translations/es-ES/content/billing/managing-billing-for-github-marketplace-apps/canceling-a-github-marketplace-app.md +++ b/translations/es-ES/content/billing/managing-billing-for-github-marketplace-apps/canceling-a-github-marketplace-app.md @@ -1,10 +1,10 @@ --- -title: Cancelar una app Mercado GitHub -intro: 'Puedes cancelar y eliminar una app {% data variables.product.prodname_marketplace %} desde tu cuenta en cualquier momento.' +title: Canceling a GitHub Marketplace app +intro: 'You can cancel and remove a {% data variables.product.prodname_marketplace %} app from your account at any time.' redirect_from: - /github/setting-up-and-managing-billing-and-payments-on-github/canceling-a-github-marketplace-app - - /articles/canceling-an-app-for-your-personal-account/ - - /articles/canceling-an-app-for-your-organization/ + - /articles/canceling-an-app-for-your-personal-account + - /articles/canceling-an-app-for-your-organization - /articles/canceling-a-github-marketplace-app - /github/setting-up-and-managing-billing-and-payments-on-github/managing-billing-for-github-marketplace-apps/canceling-a-github-marketplace-app versions: @@ -17,30 +17,29 @@ topics: - Organizations - Trials - User account -shortTitle: Cancelar una app de Marketplace +shortTitle: Cancel a Marketplace app --- +When you cancel an app, your subscription remains active until the end of your current billing cycle. The cancellation takes effect on your next billing date. For more information, see "[About billing for {% data variables.product.prodname_marketplace %}](/articles/about-billing-for-github-marketplace)." -Al cancelar una app, tu suscripción se mantiene activa hasta el final de tu ciclo de facturación actual. La cancelación entra en vigencia en tu siguiente fecha de facturación. Para obtener más información, consulta "[Acerca de la facturación para {% data variables.product.prodname_marketplace %}](/articles/about-billing-for-github-marketplace)". - -Cuando cancelas una prueba gratis de un plan pago, tu suscripción se cancela inmediatamente y perderás acceso a la app. Si no cancelas tu prueba gratis dentro del período de pago, el método de pago en el registro de tu cuenta se cargará para el plan que elegiste al final del período de prueba. Para obtener más información, consulta "[Acerca de la facturación para {% data variables.product.prodname_marketplace %}](/articles/about-billing-for-github-marketplace)". +When you cancel a free trial on a paid plan, your subscription is immediately canceled and you will lose access to the app. If you don't cancel your free trial within the trial period, the payment method on file for your account will be charged for the plan you chose at the end of the trial period. For more information, see "[About billing for {% data variables.product.prodname_marketplace %}](/articles/about-billing-for-github-marketplace)." {% data reusables.marketplace.downgrade-marketplace-only %} -## Cancelar una app en tu cuenta personal +## Canceling an app for your personal account {% data reusables.user_settings.access_settings %} {% data reusables.user_settings.billing_plans %} {% data reusables.marketplace.cancel-app-billing-settings %} {% data reusables.marketplace.cancel-app %} -## Cancelar una prueba gratis para una app en tu cuenta personal +## Canceling a free trial for an app for your personal account {% data reusables.user_settings.access_settings %} {% data reusables.user_settings.billing_plans %} {% data reusables.marketplace.cancel-free-trial-billing-settings %} {% data reusables.marketplace.cancel-app %} -## Cancelar una app para tu organización +## Canceling an app for your organization {% data reusables.marketplace.marketplace-org-perms %} @@ -51,7 +50,7 @@ Cuando cancelas una prueba gratis de un plan pago, tu suscripción se cancela in {% data reusables.marketplace.cancel-app-billing-settings %} {% data reusables.marketplace.cancel-app %} -## Cancelar una prueba gratis para una app en tu organización +## Canceling a free trial for an app for your organization {% data reusables.marketplace.marketplace-org-perms %} diff --git a/translations/es-ES/content/billing/managing-billing-for-github-marketplace-apps/downgrading-the-billing-plan-for-a-github-marketplace-app.md b/translations/es-ES/content/billing/managing-billing-for-github-marketplace-apps/downgrading-the-billing-plan-for-a-github-marketplace-app.md index 7fd6b91fb8..8a8f94379f 100644 --- a/translations/es-ES/content/billing/managing-billing-for-github-marketplace-apps/downgrading-the-billing-plan-for-a-github-marketplace-app.md +++ b/translations/es-ES/content/billing/managing-billing-for-github-marketplace-apps/downgrading-the-billing-plan-for-a-github-marketplace-app.md @@ -1,10 +1,10 @@ --- -title: Bajar de categoría el plan de facturación para la app Mercado GitHub -intro: 'Si deseas usar un plan de facturación diferente, puedes bajar de categoría tu app {% data variables.product.prodname_marketplace %} en cualquier momento.' +title: Downgrading the billing plan for a GitHub Marketplace app +intro: 'If you''d like to use a different billing plan, you can downgrade your {% data variables.product.prodname_marketplace %} app at any time.' redirect_from: - /github/setting-up-and-managing-billing-and-payments-on-github/downgrading-the-billing-plan-for-a-github-marketplace-app - - /articles/downgrading-an-app-for-your-personal-account/ - - /articles/downgrading-an-app-for-your-organization/ + - /articles/downgrading-an-app-for-your-personal-account + - /articles/downgrading-an-app-for-your-organization - /articles/downgrading-the-billing-plan-for-a-github-marketplace-app - /github/setting-up-and-managing-billing-and-payments-on-github/managing-billing-for-github-marketplace-apps/downgrading-the-billing-plan-for-a-github-marketplace-app versions: @@ -16,14 +16,13 @@ topics: - Marketplace - Organizations - User account -shortTitle: Bajar de categoría el plan de facturación +shortTitle: Downgrade billing plan --- - -Cuando bajas de categoría una app, tu suscripción permanece activa hasta el final de tu ciclo de facturación actual. El cambio entra en vigencia en tu próxima fecha de facturación. Para obtener más información, consulta "[Acerca de la facturación para {% data variables.product.prodname_marketplace %}](/articles/about-billing-for-github-marketplace)". +When you downgrade an app, your subscription remains active until the end of your current billing cycle. The downgrade takes effect on your next billing date. For more information, see "[About billing for {% data variables.product.prodname_marketplace %}](/articles/about-billing-for-github-marketplace)." {% data reusables.marketplace.downgrade-marketplace-only %} -## Bajar de categoría una app para tu cuenta personal +## Downgrading an app for your personal account {% data reusables.user_settings.access_settings %} {% data reusables.user_settings.billing_plans %} @@ -32,7 +31,7 @@ Cuando bajas de categoría una app, tu suscripción permanece activa hasta el fi {% data reusables.marketplace.choose-new-quantity %} {% data reusables.marketplace.issue-plan-changes %} -## Bajar de categoría una app para tu organización +## Downgrading an app for your organization {% data reusables.marketplace.marketplace-org-perms %} @@ -44,6 +43,6 @@ Cuando bajas de categoría una app, tu suscripción permanece activa hasta el fi {% data reusables.marketplace.choose-new-quantity %} {% data reusables.marketplace.issue-plan-changes %} -## Leer más +## Further reading -- "[Cancelar una app {% data variables.product.prodname_marketplace %}](/articles/canceling-a-github-marketplace-app/)" +- "[Canceling a {% data variables.product.prodname_marketplace %} app](/articles/canceling-a-github-marketplace-app/)" diff --git a/translations/es-ES/content/billing/managing-billing-for-github-marketplace-apps/index.md b/translations/es-ES/content/billing/managing-billing-for-github-marketplace-apps/index.md index 04e0a865ee..3b0caf19f6 100644 --- a/translations/es-ES/content/billing/managing-billing-for-github-marketplace-apps/index.md +++ b/translations/es-ES/content/billing/managing-billing-for-github-marketplace-apps/index.md @@ -1,11 +1,11 @@ --- -title: Administrar la facturación por las aplicaciones de Mercado GitHub -shortTitle: Apps de GitHub Marketplace -intro: 'Puedes actualizar, bajar de categoría, o cancelar aplicaciones {% data variables.product.prodname_marketplace %} en cualquier momento.' +title: Managing billing for GitHub Marketplace apps +shortTitle: GitHub Marketplace apps +intro: 'You can upgrade, downgrade, or cancel {% data variables.product.prodname_marketplace %} apps at any time.' redirect_from: - /github/setting-up-and-managing-billing-and-payments-on-github/managing-billing-for-github-marketplace-apps - - /articles/managing-your-personal-account-s-apps/ - - /articles/managing-your-organization-s-apps/ + - /articles/managing-your-personal-account-s-apps + - /articles/managing-your-organization-s-apps - /articles/managing-billing-for-github-marketplace-apps versions: fpt: '*' diff --git a/translations/es-ES/content/billing/managing-billing-for-github-marketplace-apps/upgrading-the-billing-plan-for-a-github-marketplace-app.md b/translations/es-ES/content/billing/managing-billing-for-github-marketplace-apps/upgrading-the-billing-plan-for-a-github-marketplace-app.md index 5cc0a513b0..d381202232 100644 --- a/translations/es-ES/content/billing/managing-billing-for-github-marketplace-apps/upgrading-the-billing-plan-for-a-github-marketplace-app.md +++ b/translations/es-ES/content/billing/managing-billing-for-github-marketplace-apps/upgrading-the-billing-plan-for-a-github-marketplace-app.md @@ -1,10 +1,10 @@ --- -title: Subir de categoría el plan de facturación de una app del Mercado GitHub -intro: 'Puedes subir de categoría tu {% data variables.product.prodname_marketplace %} app a un plan diferente en cualquier momento.' +title: Upgrading the billing plan for a GitHub Marketplace app +intro: 'You can upgrade your {% data variables.product.prodname_marketplace %} app to a different plan at any time.' redirect_from: - /github/setting-up-and-managing-billing-and-payments-on-github/upgrading-the-billing-plan-for-a-github-marketplace-app - - /articles/upgrading-an-app-for-your-personal-account/ - - /articles/upgrading-an-app-for-your-organization/ + - /articles/upgrading-an-app-for-your-personal-account + - /articles/upgrading-an-app-for-your-organization - /articles/upgrading-the-billing-plan-for-a-github-marketplace-app - /github/setting-up-and-managing-billing-and-payments-on-github/managing-billing-for-github-marketplace-apps/upgrading-the-billing-plan-for-a-github-marketplace-app versions: @@ -16,12 +16,11 @@ topics: - Organizations - Upgrades - User account -shortTitle: Mejorar un plan de facturación +shortTitle: Upgrade billing plan --- +When you upgrade an app, your payment method is charged a prorated amount based on the time remaining until your next billing date. For more information, see "[About billing for {% data variables.product.prodname_marketplace %}](/articles/about-billing-for-github-marketplace)." -Cuando subes de categoría una app, a tu método de pago se le cobra un monto prorrateado en función del tiempo restante hasta tu próxima fecha de facturación. Para obtener más información, consulta "[Acerca de la facturación para {% data variables.product.prodname_marketplace %}](/articles/about-billing-for-github-marketplace)". - -## Subir de categoría una app para tu cuenta personal +## Upgrading an app for your personal account {% data reusables.user_settings.access_settings %} {% data reusables.user_settings.billing_plans %} @@ -30,7 +29,7 @@ Cuando subes de categoría una app, a tu método de pago se le cobra un monto pr {% data reusables.marketplace.choose-new-quantity %} {% data reusables.marketplace.issue-plan-changes %} -## Subir de categoría una app para tu organización +## Upgrading an app for your organization {% data reusables.marketplace.marketplace-org-perms %} diff --git a/translations/es-ES/content/billing/managing-billing-for-your-github-account/about-billing-for-github-accounts.md b/translations/es-ES/content/billing/managing-billing-for-your-github-account/about-billing-for-github-accounts.md index 0a10a1db9f..30be96c9c4 100644 --- a/translations/es-ES/content/billing/managing-billing-for-your-github-account/about-billing-for-github-accounts.md +++ b/translations/es-ES/content/billing/managing-billing-for-your-github-account/about-billing-for-github-accounts.md @@ -1,14 +1,14 @@ --- -title: Acerca de la facturación para las cuentas de GitHub -intro: '{% data variables.product.company_short %} ofrece productos gratuitos y pagos para cada programador o equipo.' +title: About billing for GitHub accounts +intro: '{% data variables.product.company_short %} offers free and paid products for every developer or team.' redirect_from: - /github/setting-up-and-managing-billing-and-payments-on-github/about-billing-for-github-accounts - - /articles/what-is-the-total-cost-of-using-an-organization-account/ - - /articles/what-are-the-costs-of-using-an-organization-account/ - - /articles/what-plan-should-i-choose/ - - /articles/do-you-have-custom-plans/ - - /articles/user-account-billing-plans/ - - /articles/organization-billing-plans/ + - /articles/what-is-the-total-cost-of-using-an-organization-account + - /articles/what-are-the-costs-of-using-an-organization-account + - /articles/what-plan-should-i-choose + - /articles/do-you-have-custom-plans + - /articles/user-account-billing-plans + - /articles/organization-billing-plans - /articles/github-s-billing-plans - /articles/about-billing-for-github-accounts - /github/setting-up-and-managing-billing-and-payments-on-github/managing-billing-for-your-github-account/about-billing-for-github-accounts @@ -21,20 +21,22 @@ topics: - Discounts - Fundamentals - Upgrades -shortTitle: Acerca de la facturación +shortTitle: About billing --- -Para obtener más información sobre los productos disponibles para tu cuenta, consulta los productos de"[{% data variables.product.prodname_dotcom %}](/articles/github-s-products)". Puedes ver los precios y una lista completa de las funciones de cada producto en <{% data variables.product.pricing_url %}>. {% data variables.product.product_name %} no ofrece productos personalizados ni suscripciones. +For more information about the products available for your account, see "[{% data variables.product.prodname_dotcom %}'s products](/articles/github-s-products)." You can see pricing and a full list of features for each product at <{% data variables.product.pricing_url %}>. {% data variables.product.product_name %} does not offer custom products or subscriptions. -Puedes elegir una facturación mensual o anual y puedes actualizar o bajar de categoría tu suscripción en cualquier momento. Para obtener más información, consulta "[Administrar la facturación para tu cuenta de {% data variables.product.prodname_dotcom %}](/articles/managing-billing-for-your-github-account)". +You can choose monthly or yearly billing, and you can upgrade or downgrade your subscription at any time. For more information, see "[Managing billing for your {% data variables.product.prodname_dotcom %} account](/articles/managing-billing-for-your-github-account)." -Puedes comprar otras características o productos con tu información de pago de {% data variables.product.product_name %} existente. Para obtener más información, consulta "[Acerca de la facturación en {% data variables.product.prodname_dotcom %}](/articles/about-billing-on-github)". +You can purchase other features and products with your existing {% data variables.product.product_name %} payment information. For more information, see "[About billing on {% data variables.product.prodname_dotcom %}](/articles/about-billing-on-github)." + +{% data reusables.accounts.accounts-billed-separately %} {% data reusables.user_settings.context_switcher %} {% tip %} -**Sugerencia:** {% data variables.product.prodname_dotcom %} tiene programas para estudiantes validados y académicos, que incluyen descuentos académicos. Para obtener más información, visita [{% data variables.product.prodname_education %}](https://education.github.com/). +**Tip:** {% data variables.product.prodname_dotcom %} has programs for verified students and academic faculty, which include academic discounts. For more information, visit [{% data variables.product.prodname_education %}](https://education.github.com/). {% endtip %} diff --git a/translations/es-ES/content/billing/managing-billing-for-your-github-account/discounted-subscriptions-for-github-accounts.md b/translations/es-ES/content/billing/managing-billing-for-your-github-account/discounted-subscriptions-for-github-accounts.md index 0dc25db5cf..6209f8ad3b 100644 --- a/translations/es-ES/content/billing/managing-billing-for-your-github-account/discounted-subscriptions-for-github-accounts.md +++ b/translations/es-ES/content/billing/managing-billing-for-your-github-account/discounted-subscriptions-for-github-accounts.md @@ -3,9 +3,9 @@ title: Discounted subscriptions for GitHub accounts intro: '{% data variables.product.product_name %} provides discounts to students, educators, educational institutions, nonprofits, and libraries.' redirect_from: - /github/setting-up-and-managing-billing-and-payments-on-github/discounted-subscriptions-for-github-accounts - - /articles/discounted-personal-accounts/ - - /articles/discounted-organization-accounts/ - - /articles/discounted-billing-plans/ + - /articles/discounted-personal-accounts + - /articles/discounted-organization-accounts + - /articles/discounted-billing-plans - /articles/discounted-subscriptions-for-github-accounts - /github/setting-up-and-managing-billing-and-payments-on-github/managing-billing-for-your-github-account/discounted-subscriptions-for-github-accounts versions: diff --git a/translations/es-ES/content/billing/managing-billing-for-your-github-account/downgrading-your-github-subscription.md b/translations/es-ES/content/billing/managing-billing-for-your-github-account/downgrading-your-github-subscription.md index ae33f9c7f4..cdaa744340 100644 --- a/translations/es-ES/content/billing/managing-billing-for-your-github-account/downgrading-your-github-subscription.md +++ b/translations/es-ES/content/billing/managing-billing-for-your-github-account/downgrading-your-github-subscription.md @@ -3,18 +3,18 @@ title: Downgrading your GitHub subscription intro: 'You can downgrade the subscription for any type of account on {% data variables.product.product_location %} at any time.' redirect_from: - /github/setting-up-and-managing-billing-and-payments-on-github/downgrading-your-github-subscription - - /articles/downgrading-your-personal-account-s-billing-plan/ - - /articles/how-do-i-cancel-my-account/ - - /articles/downgrading-a-user-account-to-free/ - - /articles/removing-paid-seats-from-your-organization/ - - /articles/downgrading-your-organization-s-paid-seats/ - - /articles/downgrading-your-organization-s-billing-plan/ - - /articles/downgrading-an-organization-with-per-seat-pricing-to-free/ - - /articles/downgrading-an-organization-with-per-repository-pricing-to-free/ - - /articles/downgrading-your-organization-to-free/ - - /articles/downgrading-your-organization-from-the-business-plan-to-the-team-plan/ - - /articles/downgrading-your-organization-from-github-business-cloud-to-the-team-plan/ - - /articles/downgrading-your-github-billing-plan/ + - /articles/downgrading-your-personal-account-s-billing-plan + - /articles/how-do-i-cancel-my-account + - /articles/downgrading-a-user-account-to-free + - /articles/removing-paid-seats-from-your-organization + - /articles/downgrading-your-organization-s-paid-seats + - /articles/downgrading-your-organization-s-billing-plan + - /articles/downgrading-an-organization-with-per-seat-pricing-to-free + - /articles/downgrading-an-organization-with-per-repository-pricing-to-free + - /articles/downgrading-your-organization-to-free + - /articles/downgrading-your-organization-from-the-business-plan-to-the-team-plan + - /articles/downgrading-your-organization-from-github-business-cloud-to-the-team-plan + - /articles/downgrading-your-github-billing-plan - /articles/downgrading-your-github-subscription - /github/setting-up-and-managing-billing-and-payments-on-github/managing-billing-for-your-github-account/downgrading-your-github-subscription versions: diff --git a/translations/es-ES/content/billing/managing-billing-for-your-github-account/index.md b/translations/es-ES/content/billing/managing-billing-for-your-github-account/index.md index 85bbd80700..7801363423 100644 --- a/translations/es-ES/content/billing/managing-billing-for-your-github-account/index.md +++ b/translations/es-ES/content/billing/managing-billing-for-your-github-account/index.md @@ -1,17 +1,17 @@ --- -title: Administrar la facturación para tu cuenta de GitHub -shortTitle: Tu cuenta de GitHub -intro: '{% ifversion fpt %}{% data variables.product.product_name %} ofrece productos gratuitos y de pago para todas las cuentas. Puedes mejorar, bajar de nivel y ver los cambios pendientes a la suscripción de tu cuenta en cualquier momento.{% elsif ghec or ghes or ghae %}Puedes administrar la configuración de {% data variables.product.product_name %}{% ifversion ghae %}.{% elsif ghec or ghes %} desde tu cuenta empresarial en {% data variables.product.prodname_dotcom_the_website %}.{% endif %}{% endif %}' +title: Managing billing for your GitHub account +shortTitle: Your GitHub account +intro: '{% ifversion fpt %}{% data variables.product.product_name %} offers free and paid products for every account. You can upgrade, downgrade, and view pending changes to your account''s subscription at any time.{% elsif ghec or ghes or ghae %}You can manage billing for {% data variables.product.product_name %}{% ifversion ghae %}.{% elsif ghec or ghes %} from your enterprise account on {% data variables.product.prodname_dotcom_the_website %}.{% endif %}{% endif %}' redirect_from: - /github/setting-up-and-managing-billing-and-payments-on-github/managing-billing-for-your-github-account - - /categories/97/articles/ - - /categories/paying-for-user-accounts/ - - /articles/paying-for-your-github-user-account/ - - /articles/managing-billing-on-github/ - - /articles/changing-your-personal-account-s-billing-plan/ - - /categories/billing/ - - /categories/3/articles/ - - /articles/managing-your-organization-s-paid-seats/ + - /categories/97/articles + - /categories/paying-for-user-accounts + - /articles/paying-for-your-github-user-account + - /articles/managing-billing-on-github + - /articles/changing-your-personal-account-s-billing-plan + - /categories/billing + - /categories/3/articles + - /articles/managing-your-organization-s-paid-seats - /articles/managing-billing-for-your-github-account versions: fpt: '*' diff --git a/translations/es-ES/content/billing/managing-billing-for-your-github-account/upgrading-your-github-subscription.md b/translations/es-ES/content/billing/managing-billing-for-your-github-account/upgrading-your-github-subscription.md index 82e5a8e8b3..fee3631236 100644 --- a/translations/es-ES/content/billing/managing-billing-for-your-github-account/upgrading-your-github-subscription.md +++ b/translations/es-ES/content/billing/managing-billing-for-your-github-account/upgrading-your-github-subscription.md @@ -1,22 +1,23 @@ --- title: Upgrading your GitHub subscription intro: 'You can upgrade the subscription for any type of account on {% data variables.product.product_location %} at any time.' +miniTocMaxHeadingLevel: 3 redirect_from: - /github/setting-up-and-managing-billing-and-payments-on-github/upgrading-your-github-subscription - - /articles/upgrading-your-personal-account-s-billing-plan/ - - /articles/upgrading-your-personal-account/ - - /articles/upgrading-your-personal-account-from-free-to-a-paid-account/ - - /articles/upgrading-your-personal-account-from-free-to-paid-with-a-credit-card/ - - /articles/upgrading-your-personal-account-from-free-to-paid-with-paypal/ - - /articles/500-error-while-upgrading/ - - /articles/upgrading-your-organization-s-billing-plan/ - - /articles/changing-your-organization-billing-plan/ - - /articles/upgrading-your-organization-account-from-free-to-paid-with-a-credit-card/ - - /articles/upgrading-your-organization-account-from-free-to-paid-with-paypal/ - - /articles/upgrading-your-organization-account/ - - /articles/switching-from-per-repository-to-per-user-pricing/ - - /articles/adding-seats-to-your-organization/ - - /articles/upgrading-your-github-billing-plan/ + - /articles/upgrading-your-personal-account-s-billing-plan + - /articles/upgrading-your-personal-account + - /articles/upgrading-your-personal-account-from-free-to-a-paid-account + - /articles/upgrading-your-personal-account-from-free-to-paid-with-a-credit-card + - /articles/upgrading-your-personal-account-from-free-to-paid-with-paypal + - /articles/500-error-while-upgrading + - /articles/upgrading-your-organization-s-billing-plan + - /articles/changing-your-organization-billing-plan + - /articles/upgrading-your-organization-account-from-free-to-paid-with-a-credit-card + - /articles/upgrading-your-organization-account-from-free-to-paid-with-paypal + - /articles/upgrading-your-organization-account + - /articles/switching-from-per-repository-to-per-user-pricing + - /articles/adding-seats-to-your-organization + - /articles/upgrading-your-github-billing-plan - /articles/upgrading-your-github-subscription - /github/setting-up-and-managing-billing-and-payments-on-github/managing-billing-for-your-github-account/upgrading-your-github-subscription versions: @@ -30,9 +31,16 @@ topics: - User account shortTitle: Upgrade your subscription --- + +## About subscription upgrades + +{% data reusables.accounts.accounts-billed-separately %} + +When you upgrade the subscription for an account, the upgrade changes the paid features available for that account only, and not any other accounts you use. + ## Upgrading your personal account's subscription -You can upgrade your personal account from {% data variables.product.prodname_free_user %} to {% data variables.product.prodname_pro %} to get advanced code review tools on private repositories. {% data reusables.gated-features.more-info %} +You can upgrade your personal account from {% data variables.product.prodname_free_user %} to {% data variables.product.prodname_pro %} to get advanced code review tools on private repositories owned by your user account. Upgrading your personal account does not affect any organizations you may manage or repositories owned by those organizations. {% data reusables.gated-features.more-info %} {% data reusables.user_settings.access_settings %} {% data reusables.user_settings.billing_plans %} @@ -45,9 +53,13 @@ You can upgrade your personal account from {% data variables.product.prodname_fr {% data reusables.dotcom_billing.enter-payment-info %} {% data reusables.dotcom_billing.finish_upgrade %} -## Upgrading your organization's subscription +## Managing your organization's subscription -You can upgrade your organization from {% data variables.product.prodname_free_team %} for an organization to {% data variables.product.prodname_team %} to access advanced collaboration and management tools for teams, or upgrade your organization to {% data variables.product.prodname_ghe_cloud %} for additional security, compliance, and deployment controls. {% data reusables.gated-features.more-info-org-products %} +You can upgrade your organization's subscription to a different product, add seats to your existing product, or switch from per-repository to per-user pricing. + +### Upgrading your organization's subscription + +You can upgrade your organization from {% data variables.product.prodname_free_team %} for an organization to {% data variables.product.prodname_team %} to access advanced collaboration and management tools for teams, or upgrade your organization to {% data variables.product.prodname_ghe_cloud %} for additional security, compliance, and deployment controls. Upgrading an organization does not affect your personal account or repositories owned by your personal account. {% data reusables.gated-features.more-info-org-products %} {% data reusables.dotcom_billing.org-billing-perms %} @@ -66,7 +78,7 @@ If you upgraded your organization to {% data variables.product.prodname_ghe_clou If you'd like to use an enterprise account with {% data variables.product.prodname_ghe_cloud %}, contact {% data variables.contact.contact_enterprise_sales %}. For more information, see "[About enterprise accounts](/enterprise-cloud@latest/admin/overview/about-enterprise-accounts){% ifversion fpt %}" in the {% data variables.product.prodname_ghe_cloud %} documentation.{% else %}."{% endif %} -## Adding seats to your organization +### Adding seats to your organization If you'd like additional users to have access to your {% data variables.product.prodname_team %} organization's private repositories, you can purchase more seats anytime. @@ -75,7 +87,7 @@ If you'd like additional users to have access to your {% data variables.product. {% data reusables.dotcom_billing.number-of-seats %} {% data reusables.dotcom_billing.confirm-add-seats %} -## Switching your organization from per-repository to per-user pricing +### Switching your organization from per-repository to per-user pricing {% data reusables.dotcom_billing.switch-legacy-billing %} For more information, see "[About per-user pricing](/articles/about-per-user-pricing)." diff --git a/translations/es-ES/content/billing/managing-billing-for-your-github-account/viewing-and-managing-pending-changes-to-your-subscription.md b/translations/es-ES/content/billing/managing-billing-for-your-github-account/viewing-and-managing-pending-changes-to-your-subscription.md index 62ba574ceb..6b946551a5 100644 --- a/translations/es-ES/content/billing/managing-billing-for-your-github-account/viewing-and-managing-pending-changes-to-your-subscription.md +++ b/translations/es-ES/content/billing/managing-billing-for-your-github-account/viewing-and-managing-pending-changes-to-your-subscription.md @@ -1,11 +1,11 @@ --- -title: Ver y administrar cambios pendientes en tu suscripción -intro: Puedes ver y cancelar cambios pendientes en tus suscripciones antes de que se hagan efectivas en la próxima fecha de facturación. +title: Viewing and managing pending changes to your subscription +intro: You can view and cancel pending changes to your subscriptions before they take effect on your next billing date. redirect_from: - /github/setting-up-and-managing-billing-and-payments-on-github/viewing-and-managing-pending-changes-to-your-subscription - - /articles/viewing-and-managing-pending-changes-to-your-personal-account-s-billing-plan/ - - /articles/viewing-and-managing-pending-changes-to-your-organization-s-billing-plan/ - - /articles/viewing-and-managing-pending-changes-to-your-billing-plan/ + - /articles/viewing-and-managing-pending-changes-to-your-personal-account-s-billing-plan + - /articles/viewing-and-managing-pending-changes-to-your-organization-s-billing-plan + - /articles/viewing-and-managing-pending-changes-to-your-billing-plan - /articles/viewing-and-managing-pending-changes-to-your-subscription - /github/setting-up-and-managing-billing-and-payments-on-github/managing-billing-for-your-github-account/viewing-and-managing-pending-changes-to-your-subscription versions: @@ -15,14 +15,13 @@ type: how_to topics: - Organizations - User account -shortTitle: Cambios de suscripción pendientes +shortTitle: Pending subscription changes --- +You can cancel pending changes to your account's subscription as well as pending changes to your subscriptions to other paid features and products. -Puedes cancelar cambios pendientes en la suscripción de tu cuenta y cambios pendientes en tus suscripciones a otras funciones y productos pagos. +When you cancel a pending change, your subscription will not change on your next billing date (unless you make a subsequent change to your subscription before your next billing date). -Cuando cancelas un cambio pendiente, tu suscripción no cambiará en tu próxima fecha de facturación (a menos que hagas un cambio posterior en tu suscripción antes de la próxima fecha de facturación). - -## Ver y administrar cambios pendientes en tu suscripción de cuenta personal +## Viewing and managing pending changes to your personal account's subscription {% data reusables.user_settings.access_settings %} {% data reusables.user_settings.billing_plans %} @@ -30,13 +29,13 @@ Cuando cancelas un cambio pendiente, tu suscripción no cambiará en tu próxima {% data reusables.dotcom_billing.cancel-pending-changes %} {% data reusables.dotcom_billing.confirm-cancel-pending-changes %} -## Ver y administrar cambios pendientes en tu suscripción de organización +## Viewing and managing pending changes to your organization's subscription {% data reusables.organizations.billing-settings %} {% data reusables.dotcom_billing.review-pending-changes %} {% data reusables.dotcom_billing.cancel-pending-changes %} {% data reusables.dotcom_billing.confirm-cancel-pending-changes %} -## Leer más +## Further reading -- "Productos de [{% data variables.product.prodname_dotcom %}](/articles/github-s-products)" +- "[{% data variables.product.prodname_dotcom %}'s products](/articles/github-s-products)" diff --git a/translations/es-ES/content/billing/managing-your-github-billing-settings/adding-information-to-your-receipts.md b/translations/es-ES/content/billing/managing-your-github-billing-settings/adding-information-to-your-receipts.md index 11618544c9..0454458409 100644 --- a/translations/es-ES/content/billing/managing-your-github-billing-settings/adding-information-to-your-receipts.md +++ b/translations/es-ES/content/billing/managing-your-github-billing-settings/adding-information-to-your-receipts.md @@ -1,16 +1,16 @@ --- -title: Agregar información a tus recibos -intro: 'Puedes agregar información adicional a tus recibos de {% data variables.product.product_name %}, como información fiscal o contable solicitada por tu empresa o país.' +title: Adding information to your receipts +intro: 'You can add extra information to your {% data variables.product.product_name %} receipts, such as tax or accounting information required by your company or country.' redirect_from: - /github/setting-up-and-managing-billing-and-payments-on-github/adding-information-to-your-receipts - - /articles/can-i-add-my-credit-card-number-to-my-receipts/ - - /articles/can-i-add-extra-information-to-my-receipts--2/ - - /articles/how-can-i-add-extra-information-to-my-receipts/ - - /articles/could-you-add-my-card-number-to-my-receipts/ - - /articles/how-can-i-add-extra-information-to-my-personal-account-s-receipts/ - - /articles/adding-information-to-your-personal-account-s-receipts/ - - /articles/how-can-i-add-extra-information-to-my-organization-s-receipts/ - - /articles/adding-information-to-your-organization-s-receipts/ + - /articles/can-i-add-my-credit-card-number-to-my-receipts + - /articles/can-i-add-extra-information-to-my-receipts--2 + - /articles/how-can-i-add-extra-information-to-my-receipts + - /articles/could-you-add-my-card-number-to-my-receipts + - /articles/how-can-i-add-extra-information-to-my-personal-account-s-receipts + - /articles/adding-information-to-your-personal-account-s-receipts + - /articles/how-can-i-add-extra-information-to-my-organization-s-receipts + - /articles/adding-information-to-your-organization-s-receipts - /articles/adding-information-to-your-receipts - /github/setting-up-and-managing-billing-and-payments-on-github/managing-your-github-billing-settings/adding-information-to-your-receipts versions: @@ -21,29 +21,28 @@ topics: - Organizations - Receipts - User account -shortTitle: Agregar a tus recibos +shortTitle: Add to your receipts --- - -Tus recibos incluyen tu suscripción de {% data variables.product.prodname_dotcom %} así como otras suscripciones para [otras funciones y productos remunerados](/articles/about-billing-on-github). +Your receipts include your {% data variables.product.prodname_dotcom %} subscription as well as any subscriptions for [other paid features and products](/articles/about-billing-on-github). {% warning %} -**Advertencia**: Por motivos de seguridad, recomendamos enfáticamente no incluir información confidencial o financiera (como número de tarjeta de crédito) en tus recibos. +**Warning**: For security reasons, we strongly recommend against including any confidential or financial information (such as credit card numbers) on your receipts. {% endwarning %} -## Agregar información a tus recibos de cuenta personal +## Adding information to your personal account's receipts {% data reusables.user_settings.access_settings %} {% data reusables.user_settings.billing_plans %} {% data reusables.user_settings.payment-info-link %} {% data reusables.dotcom_billing.extra_info_receipt %} -## Agregar información a los recibos de tu organización +## Adding information to your organization's receipts {% note %} -**Nota**: {% data reusables.dotcom_billing.org-billing-perms %} +**Note**: {% data reusables.dotcom_billing.org-billing-perms %} {% endnote %} diff --git a/translations/es-ES/content/billing/managing-your-github-billing-settings/adding-or-editing-a-payment-method.md b/translations/es-ES/content/billing/managing-your-github-billing-settings/adding-or-editing-a-payment-method.md index 3ff1313f1d..bb9fc0e76c 100644 --- a/translations/es-ES/content/billing/managing-your-github-billing-settings/adding-or-editing-a-payment-method.md +++ b/translations/es-ES/content/billing/managing-your-github-billing-settings/adding-or-editing-a-payment-method.md @@ -1,20 +1,20 @@ --- -title: Agregar o eliminar un método de pago -intro: Puedes agregar un método de pago a tu cuenta o actualizar el método de pago existente de tu cuenta en cualquier momento. +title: Adding or editing a payment method +intro: You can add a payment method to your account or update your account's existing payment method at any time. redirect_from: - /github/setting-up-and-managing-billing-and-payments-on-github/adding-or-editing-a-payment-method - - /articles/updating-your-personal-account-s-payment-method/ - - /articles/how-do-i-update-my-credit-card/ - - /articles/updating-your-account-s-credit-card/ - - /articles/updating-your-personal-account-s-credit-card/ - - /articles/updating-your-personal-account-s-paypal-information/ - - /articles/does-github-provide-invoicing/ - - /articles/switching-payment-methods-for-your-personal-account/ - - /articles/paying-for-your-github-organization-account/ - - /articles/updating-your-organization-s-credit-card/ - - /articles/updating-your-organization-s-paypal-information/ - - /articles/updating-your-organization-s-payment-method/ - - /articles/switching-payment-methods-for-your-organization/ + - /articles/updating-your-personal-account-s-payment-method + - /articles/how-do-i-update-my-credit-card + - /articles/updating-your-account-s-credit-card + - /articles/updating-your-personal-account-s-credit-card + - /articles/updating-your-personal-account-s-paypal-information + - /articles/does-github-provide-invoicing + - /articles/switching-payment-methods-for-your-personal-account + - /articles/paying-for-your-github-organization-account + - /articles/updating-your-organization-s-credit-card + - /articles/updating-your-organization-s-paypal-information + - /articles/updating-your-organization-s-payment-method + - /articles/switching-payment-methods-for-your-organization - /articles/adding-or-editing-a-payment-method - /github/setting-up-and-managing-billing-and-payments-on-github/managing-your-github-billing-settings/adding-or-editing-a-payment-method versions: @@ -24,29 +24,31 @@ type: how_to topics: - Organizations - User account -shortTitle: Administrar un método de pago +shortTitle: Manage a payment method --- - {% data reusables.dotcom_billing.payment-methods %} {% data reusables.dotcom_billing.same-payment-method %} -No entregamos facturas u órdenes de compra de respaldo a cuentas personales. Enviamos recibos por correo electrónico mensual o anualmente a la fecha de facturación de tu cuenta. Si tu empresa, país o contador necesita que tus recibos sean más detallados, también puedes [agregar información adicional](/articles/adding-information-to-your-personal-account-s-receipts) a tus recibos. +We don't provide invoicing or support purchase orders for personal accounts. We email receipts monthly or yearly on your account's billing date. If your company, country, or accountant requires your receipts to provide more detail, you can also [add extra information](/articles/adding-information-to-your-personal-account-s-receipts) to your receipts. -## Actualizar el método de pago de tu cuenta personal +## Updating your personal account's payment method {% data reusables.user_settings.billing_plans %} {% data reusables.dotcom_billing.update_payment_method %} -1. Si tu cuenta tiene información de facturación existente que quieras actualizar, haz clic en **Editar**. ![Botón de facturar con tarjeta nueva](/assets/images/help/billing/billing-information-edit-button.png) +1. If your account has existing billing information that you want to update, click **Edit**. +![Billing New Card button](/assets/images/help/billing/billing-information-edit-button.png) {% data reusables.dotcom_billing.enter-billing-info %} -1. Si tu cuenta tiene un método de pago existente que quieras actualizar, haz clic en **Editar**. ![Botón de facturar con tarjeta nueva](/assets/images/help/billing/billing-payment-method-edit-button.png) +1. If your account has an existing payment method that you want to update, click **Edit**. +![Billing New Card button](/assets/images/help/billing/billing-payment-method-edit-button.png) {% data reusables.dotcom_billing.enter-payment-info %} -## Actualizar el método de pago de tu organización +## Updating your organization's payment method {% data reusables.dotcom_billing.org-billing-perms %} -Si tu organización está fuera de los EE. UU. o si estás usando una cuenta corriente corporativa para pagar {% data variables.product.product_name %}, PayPal puede ser un método de pago útil. +If your organization is outside of the US or if you're using a corporate checking account to pay for {% data variables.product.product_name %}, PayPal could be a helpful method of payment. {% data reusables.organizations.billing-settings %} {% data reusables.dotcom_billing.update_payment_method %} -1. Si tu cuenta tiene una tarjeta de crédito existente, la cual quieres actualizar, haz clic en **Tarjeta nueva**. ![Botón de facturar con tarjeta nueva](/assets/images/help/billing/billing-new-card-button.png) +1. If your account has an existing credit card that you want to update, click **New Card**. +![Billing New Card button](/assets/images/help/billing/billing-new-card-button.png) {% data reusables.dotcom_billing.enter-payment-info %} diff --git a/translations/es-ES/content/billing/managing-your-github-billing-settings/changing-the-duration-of-your-billing-cycle.md b/translations/es-ES/content/billing/managing-your-github-billing-settings/changing-the-duration-of-your-billing-cycle.md index 13d904d39e..539ae1e931 100644 --- a/translations/es-ES/content/billing/managing-your-github-billing-settings/changing-the-duration-of-your-billing-cycle.md +++ b/translations/es-ES/content/billing/managing-your-github-billing-settings/changing-the-duration-of-your-billing-cycle.md @@ -1,11 +1,11 @@ --- -title: Cambiar la duración de tu ciclo de facturación -intro: Puedes pagar la suscripción de tu cuenta y otras características y productos remunerados en un ciclo de facturación mensual o anual. +title: Changing the duration of your billing cycle +intro: You can pay for your account's subscription and other paid features and products on a monthly or yearly billing cycle. redirect_from: - /github/setting-up-and-managing-billing-and-payments-on-github/changing-the-duration-of-your-billing-cycle - - /articles/monthly-and-yearly-billing/ - - /articles/switching-between-monthly-and-yearly-billing-for-your-personal-account/ - - /articles/switching-between-monthly-and-yearly-billing-for-your-organization/ + - /articles/monthly-and-yearly-billing + - /articles/switching-between-monthly-and-yearly-billing-for-your-personal-account + - /articles/switching-between-monthly-and-yearly-billing-for-your-organization - /articles/changing-the-duration-of-your-billing-cycle - /github/setting-up-and-managing-billing-and-payments-on-github/managing-your-github-billing-settings/changing-the-duration-of-your-billing-cycle versions: @@ -16,30 +16,31 @@ topics: - Organizations - Repositories - User account -shortTitle: Ciclo de facturación +shortTitle: Billing cycle --- +When you change your billing cycle's duration, your {% data variables.product.prodname_dotcom %} subscription, along with any other paid features and products, will be moved to your new billing cycle on your next billing date. -Al cambiar la duración de tu ciclo de facturación, tu suscripción a {% data variables.product.prodname_dotcom %}, junto con otras características y productos remunerados, se moverán al nuevo ciclo de facturación en tu próxima fecha de facturación. - -## Cambiar la duración del ciclo de facturación de tu cuenta personal +## Changing the duration of your personal account's billing cycle {% data reusables.user_settings.access_settings %} {% data reusables.user_settings.billing_plans %} {% data reusables.dotcom_billing.change_plan_duration %} {% data reusables.dotcom_billing.confirm_duration_change %} -## Cambiar la duración del ciclo de facturación de tu organización +## Changing the duration of your organization's billing cycle {% data reusables.dotcom_billing.org-billing-perms %} -### Cambiar la duración de una suscripción por usuario +### Changing the duration of a per-user subscription {% data reusables.organizations.billing-settings %} {% data reusables.dotcom_billing.change_plan_duration %} {% data reusables.dotcom_billing.confirm_duration_change %} -### Cambiar la duración de un plan heredado por repositorio +### Changing the duration of a legacy per-repository plan {% data reusables.organizations.billing-settings %} -4. En "Billing overview" (Resumen de facturación), haz clic en **Change plan** (Cambiar plan). ![Botón para cambiar el plan del resumen de facturación](/assets/images/help/billing/billing_overview_change_plan.png) -5. En el ángulo superior derecho, haz clic en **Switch to monthly billing** (Cambiar a facturación mensual) o **Switch to yearly billing** (Cambiar a facturación mensual). ![Sección de información de facturación](/assets/images/help/billing/settings_billing_organization_plans_switch_to_yearly.png) +4. Under "Billing overview", click **Change plan**. + ![Billing overview change plan button](/assets/images/help/billing/billing_overview_change_plan.png) +5. At the top right corner, click **Switch to monthly billing** or **Switch to yearly billing**. + ![Billing information section](/assets/images/help/billing/settings_billing_organization_plans_switch_to_yearly.png) diff --git a/translations/es-ES/content/billing/managing-your-github-billing-settings/index.md b/translations/es-ES/content/billing/managing-your-github-billing-settings/index.md index d47e8d914e..c8d94f174f 100644 --- a/translations/es-ES/content/billing/managing-your-github-billing-settings/index.md +++ b/translations/es-ES/content/billing/managing-your-github-billing-settings/index.md @@ -1,15 +1,15 @@ --- -title: Administrar tus configuraciones de facturación de GitHub -shortTitle: Configuración de facturación -intro: 'Las configuraciones de facturación de tu cuenta se aplican a cada característica paga o producto que agregas a la cuenta. Puedes administrar configuraciones como tu método de pago, el ciclo de facturación y el correo electrónico de facturación. También puedes visualizar la información de facturación como tu suscripción, la fecha de facturación, el historial de pagos y los recibos pasados.' +title: Managing your GitHub billing settings +shortTitle: Billing settings +intro: 'Your account''s billing settings apply to every paid feature or product you add to the account. You can manage settings like your payment method, billing cycle, and billing email. You can also view billing information such as your subscription, billing date, payment history, and past receipts.' redirect_from: - /github/setting-up-and-managing-billing-and-payments-on-github/managing-your-github-billing-settings - - /articles/viewing-and-managing-your-personal-account-s-billing-information/ - - /articles/paying-for-user-accounts/ - - /articles/viewing-and-managing-your-organization-s-billing-information/ - - /articles/paying-for-organization-accounts/ - - /categories/paying-for-organization-accounts/articles/ - - /categories/99/articles/ + - /articles/viewing-and-managing-your-personal-account-s-billing-information + - /articles/paying-for-user-accounts + - /articles/viewing-and-managing-your-organization-s-billing-information + - /articles/paying-for-organization-accounts + - /categories/paying-for-organization-accounts/articles + - /categories/99/articles - /articles/managing-your-github-billing-settings versions: fpt: '*' diff --git a/translations/es-ES/content/billing/managing-your-github-billing-settings/redeeming-a-coupon.md b/translations/es-ES/content/billing/managing-your-github-billing-settings/redeeming-a-coupon.md index 0aee52d7c1..2a416cdc8f 100644 --- a/translations/es-ES/content/billing/managing-your-github-billing-settings/redeeming-a-coupon.md +++ b/translations/es-ES/content/billing/managing-your-github-billing-settings/redeeming-a-coupon.md @@ -1,11 +1,11 @@ --- -title: Canjear un cupón -intro: 'Si tienes un cupón, puedes canjearlo por una suscripción {% data variables.product.prodname_dotcom %} paga.' +title: Redeeming a coupon +intro: 'If you have a coupon, you can redeem it towards a paid {% data variables.product.prodname_dotcom %} subscription.' redirect_from: - /github/setting-up-and-managing-billing-and-payments-on-github/redeeming-a-coupon - - /articles/where-do-i-add-a-coupon-code/ - - /articles/redeeming-a-coupon-for-your-personal-account/ - - /articles/redeeming-a-coupon-for-organizations/ + - /articles/where-do-i-add-a-coupon-code + - /articles/redeeming-a-coupon-for-your-personal-account + - /articles/redeeming-a-coupon-for-organizations - /articles/redeeming-a-coupon - /github/setting-up-and-managing-billing-and-payments-on-github/managing-your-github-billing-settings/redeeming-a-coupon versions: @@ -18,23 +18,24 @@ topics: - Organizations - User account --- - -{% data variables.product.product_name %} no puede emitir un reembolso si pagas una cuenta antes de aplicar un cupón. Tampoco podemos transferir un cupón canjeado o entregarte un cupón nuevo si lo aplicas a la cuenta equivocada. Confirma que estás aplicando el cupón a la cuenta correcta antes de canjear un cupón. +{% data variables.product.product_name %} can't issue a refund if you pay for an account before applying a coupon. We also can't transfer a redeemed coupon or give you a new coupon if you apply it to the wrong account. Confirm that you're applying the coupon to the correct account before you redeem a coupon. {% data reusables.dotcom_billing.coupon-expires %} -No puedes aplicar cupones a planes pagos de {% data variables.product.prodname_marketplace %} apps. +You cannot apply coupons to paid plans for {% data variables.product.prodname_marketplace %} apps. -## Canjear un cupón para tu cuenta personal +## Redeeming a coupon for your personal account {% data reusables.dotcom_billing.enter_coupon_code_on_redeem_page %} -4. En "Redeem your coupon" (Canjear tu cupón), haz clic en **Choose** (Elegir) al lado del nombre de usuario de tu cuenta *personal*. ![Botón Choose (Elegir)](/assets/images/help/settings/redeem-coupon-choose-button-for-personal-accounts.png) +4. Under "Redeem your coupon", click **Choose** next to your *personal* account's username. + ![Choose button](/assets/images/help/settings/redeem-coupon-choose-button-for-personal-accounts.png) {% data reusables.dotcom_billing.redeem_coupon %} -## Canjear un cupón para tu organización +## Redeeming a coupon for your organization {% data reusables.dotcom_billing.org-billing-perms %} {% data reusables.dotcom_billing.enter_coupon_code_on_redeem_page %} -4. En "Redeem your coupon" (Canjear tu cupón), haz clic en **Choose** (Elegir) al lado de la *organización* a la que quieras aplicarle el cupón. Si le quieres aplicar el cupón a una organización nueva que aún no existe, haz clic en **Create a new organization** (Crear una organización nueva). ![Botón Choose (Elegir)](/assets/images/help/settings/redeem-coupon-choose-button.png) +4. Under "Redeem your coupon", click **Choose** next to the *organization* you want to apply the coupon to. If you'd like to apply your coupon to a new organization that doesn't exist yet, click **Create a new organization**. + ![Choose button](/assets/images/help/settings/redeem-coupon-choose-button.png) {% data reusables.dotcom_billing.redeem_coupon %} diff --git a/translations/es-ES/content/billing/managing-your-github-billing-settings/removing-a-payment-method.md b/translations/es-ES/content/billing/managing-your-github-billing-settings/removing-a-payment-method.md index 62a8c4ba69..8e7fe2ed0b 100644 --- a/translations/es-ES/content/billing/managing-your-github-billing-settings/removing-a-payment-method.md +++ b/translations/es-ES/content/billing/managing-your-github-billing-settings/removing-a-payment-method.md @@ -1,12 +1,12 @@ --- -title: Eliminar un método de pago -intro: 'Si no estás usando tu método de pago para ninguna suscripción paga en {% data variables.product.prodname_dotcom %}, puedes eliminar el método de pago para que no siga almacenado en tu cuenta.' +title: Removing a payment method +intro: 'If you aren''t using your payment method for any paid subscriptions on {% data variables.product.prodname_dotcom %}, you can remove the payment method so it''s no longer stored in your account.' redirect_from: - /github/setting-up-and-managing-billing-and-payments-on-github/removing-a-payment-method - - /articles/removing-a-credit-card-associated-with-your-user-account/ - - /articles/removing-a-payment-method-associated-with-your-user-account/ - - /articles/removing-a-credit-card-associated-with-your-organization/ - - /articles/removing-a-payment-method-associated-with-your-organization/ + - /articles/removing-a-credit-card-associated-with-your-user-account + - /articles/removing-a-payment-method-associated-with-your-user-account + - /articles/removing-a-credit-card-associated-with-your-organization + - /articles/removing-a-payment-method-associated-with-your-organization - /articles/removing-a-payment-method - /github/setting-up-and-managing-billing-and-payments-on-github/managing-your-github-billing-settings/removing-a-payment-method versions: @@ -17,18 +17,17 @@ topics: - Organizations - User account --- - -Si vas a pagar tu {% data variables.product.product_name %} suscripción con un cupón y no vas a usar tu método de pago para ninguna [otra función o producto pago](/articles/about-billing-on-github) en {% data variables.product.product_name %}, puedes eliminar tu información de tarjeta de crédito o de PayPal. +If you're paying for your {% data variables.product.product_name %} subscription with a coupon, and you aren't using your payment method for any [other paid features or products](/articles/about-billing-on-github) on {% data variables.product.product_name %}, you can remove your credit card or PayPal information. {% data reusables.dotcom_billing.coupon-expires %} {% tip %} -**Sugerencia:** Si [bajas la categoría de tu cuenta a producto gratuito](/articles/downgrading-your-github-subscription) y no tienes suscripciones a ninguna otra función o producto pago, eliminaremos automáticamente tu información de pago. +**Tip:** If you [downgrade your account to a free product](/articles/downgrading-your-github-subscription) and you don't have subscriptions for any other paid features or products, we'll automatically remove your payment information. {% endtip %} -## Eliminar el método de pago de tu cuenta personal +## Removing your personal account's payment method {% data reusables.user_settings.access_settings %} {% data reusables.user_settings.billing_plans %} @@ -36,7 +35,7 @@ Si vas a pagar tu {% data variables.product.product_name %} suscripción con un {% data reusables.dotcom_billing.remove-payment-method %} {% data reusables.dotcom_billing.remove_payment_info %} -## Eliminar el método de pago de tu organización +## Removing your organization's payment method {% data reusables.dotcom_billing.org-billing-perms %} diff --git a/translations/es-ES/content/billing/managing-your-github-billing-settings/setting-your-billing-email.md b/translations/es-ES/content/billing/managing-your-github-billing-settings/setting-your-billing-email.md index 63dc7cdacc..66805ec15f 100644 --- a/translations/es-ES/content/billing/managing-your-github-billing-settings/setting-your-billing-email.md +++ b/translations/es-ES/content/billing/managing-your-github-billing-settings/setting-your-billing-email.md @@ -1,12 +1,12 @@ --- -title: Configurar tu correo electrónico de facturación -intro: 'El correo electrónico de facturación de tu cuenta es donde {% data variables.product.product_name %} envía los recibos y otras comunicaciones relacionadas con la facturación.' +title: Setting your billing email +intro: 'Your account''s billing email is where {% data variables.product.product_name %} sends receipts and other billing-related communication.' redirect_from: - /github/setting-up-and-managing-billing-and-payments-on-github/setting-your-billing-email - - /articles/setting-your-personal-account-s-billing-email/ - - /articles/can-i-change-what-email-address-received-my-github-receipt/ - - '/articles/how-do-i-change-the-billing-email,setting-your-billing-email/' - - /articles/setting-your-organization-s-billing-email/ + - /articles/setting-your-personal-account-s-billing-email + - /articles/can-i-change-what-email-address-received-my-github-receipt + - '/articles/how-do-i-change-the-billing-email,setting-your-billing-email' + - /articles/setting-your-organization-s-billing-email - /articles/setting-your-billing-email - /github/setting-up-and-managing-billing-and-payments-on-github/managing-your-github-billing-settings/setting-your-billing-email versions: @@ -16,51 +16,58 @@ type: how_to topics: - Organizations - User account -shortTitle: Correo electrónico de facturación +shortTitle: Billing email --- +## Setting your personal account's billing email -## Configurar el correo electrónico de facturación de tu cuenta personal +Your personal account's primary email is where {% data variables.product.product_name %} sends receipts and other billing-related communication. -El correo electrónico principal de tu cuenta personal es donde {% data variables.product.product_name %} envía los recibos y otras comunicaciones relacionadas con la facturación. +Your primary email address is the first email listed in your account email settings. +We also use your primary email address as our billing email address. -Tu dirección principal de correo electrónico es el primer correo electrónico enumerado en las configuraciones de correo electrónico de tu cuenta. También utilizamos tu dirección principal de correo electrónico como nuestra dirección de correo electrónico de facturación. +If you'd like to change your billing email, see "[Changing your primary email address](/articles/changing-your-primary-email-address)." -Si deseas cambiar tu correo electrónico de facturación, consulta "[Cambiar tu dirección principal de correo electrónico](/articles/changing-your-primary-email-address)." +## Setting your organization's billing email -## Configurar el correo electrónico de facturación de tu organización - -El correo electrónico de facturación de tu organización es donde {% data variables.product.product_name %} envía los recibos y otras comunicaciones relacionadas con la facturación. La dirección de correo electrónico no necesariamente debe ser única para la cuenta de la organización. +Your organization's billing email is where {% data variables.product.product_name %} sends receipts and other billing-related communication. The email address does not need to be unique to the organization account. {% data reusables.dotcom_billing.org-billing-perms %} {% data reusables.organizations.billing-settings %} -1. Debabjo de "Administración de facturación", a la derecha de la dirección de correo electrónico para facturación, haz clic en **Editar**. ![Correos electrónicos de facturación actuales](/assets/images/help/billing/billing-change-email.png) -2. Teclea una dirección de correo electrónico válida y luego haz clic en **Actualizar**. ![Cambiar el modo de la dirección de correo electrónico para facturación](/assets/images/help/billing/billing-change-email-modal.png) +1. Under "Billing management", to the right of the billing email address, click **Edit**. + ![Current billing emails](/assets/images/help/billing/billing-change-email.png) +2. Type a valid email address, then click **Update**. + ![Change billing email address modal](/assets/images/help/billing/billing-change-email-modal.png) -## Administrar los destinatarios adicionales para tu correo electrónico de facturación de la organización +## Managing additional recipients for your organization's billing email -Si tienes usuarios que quieran recibir reportes de facturación, puedes agregar sus direcciones de correo electrónico como destinatarios del correo de facturación. Esta característica se encuentra únicamente disponible para las organizaciones que no gestione una empresa. +If you have users that want to receive billing reports, you can add their email addresses as billing email recipients. This feature is only available to organizations that are not managed by an enterprise. {% data reusables.dotcom_billing.org-billing-perms %} -### Agregar un destinatario para las notificaciones de facturación +### Adding a recipient for billing notifications {% data reusables.organizations.billing-settings %} -1. Debajo de "Administración de facturación", a la derecha de "Destinatarios de correo electrónico", da clic en **Agregar**. ![Agregar destinatario](/assets/images/help/billing/billing-add-email-recipient.png) -1. Teclea la dirección de correo electrónico del destinatario y luego da clic en **Agregar**. ![Agregar modal de destinatario](/assets/images/help/billing/billing-add-email-recipient-modal.png) +1. Under "Billing management", to the right of "Email recipients", click **Add**. + ![Add recipient](/assets/images/help/billing/billing-add-email-recipient.png) +1. Type the email address of the recipient, then click **Add**. + ![Add recipient modal](/assets/images/help/billing/billing-add-email-recipient-modal.png) -### Cambiar el destinatario principal de las notificaciones de facturación +### Changing the primary recipient for billing notifications -Siempre debe existir una dirección designada como el destinatario principal. La dirección con esta designación no puede eliminarse hasta que se seleccione un destinatario primario. +One address must always be designated as the primary recipient. The address with this designation can't be removed until a new primary recipient is selected. {% data reusables.organizations.billing-settings %} -1. Debajo de "Administración de facturación", encuentra la dirección de correo electrónico que quieras configurar como el destinatario principal. -1. A la derecha de la dirección de correo electrónico, utiliza el menú desplegable de "Editar", y da clic en **Marcar como principal**. ![Marcar destinatario principal](/assets/images/help/billing/billing-change-primary-email-recipient.png) +1. Under "Billing management", find the email address you want to set as the primary recipient. +1. To the right of the email address, use the "Edit" drop-down menu, and click **Mark as primary**. + ![Mark primary recipient](/assets/images/help/billing/billing-change-primary-email-recipient.png) -### Eliminar un destinatario de las notificaciones de facturación +### Removing a recipient from billing notifications {% data reusables.organizations.billing-settings %} -1. Debajo de "Destinatarios de correo electrónico", encuentra la dirección de correo electrónico que quieres eliminar. -1. Para la entrada del usuario en la lista, da clic en **Editar**. ![Editar destinatario](/assets/images/help/billing/billing-edit-email-recipient.png) -1. A la derecha de la dirección de correo electrónico, utiliza el menú desplegable "Editar" y haz clic en **Eliminar**. ![Eliminar destinatario](/assets/images/help/billing/billing-remove-email-recipient.png) -1. Revisa el mensaje de confirmación y luego da clic en **Eliminar**. +1. Under "Email recipients", find the email address you want to remove. +1. For the user's entry in the list, click **Edit**. + ![Edit recipient](/assets/images/help/billing/billing-edit-email-recipient.png) +1. To the right of the email address, use the "Edit" drop-down menu, and click **Remove**. + ![Remove recipient](/assets/images/help/billing/billing-remove-email-recipient.png) +1. Review the confirmation prompt, then click **Remove**. diff --git a/translations/es-ES/content/billing/managing-your-github-billing-settings/troubleshooting-a-declined-credit-card-charge.md b/translations/es-ES/content/billing/managing-your-github-billing-settings/troubleshooting-a-declined-credit-card-charge.md index d205de2ac8..efa7701ca9 100644 --- a/translations/es-ES/content/billing/managing-your-github-billing-settings/troubleshooting-a-declined-credit-card-charge.md +++ b/translations/es-ES/content/billing/managing-your-github-billing-settings/troubleshooting-a-declined-credit-card-charge.md @@ -1,9 +1,9 @@ --- -title: Solucionar problemas de un pago de tarjeta de crédito rechazado -intro: 'Si se rechaza la tarjeta de crédito que utilizas para pagar {% data variables.product.product_name %}, puedes tomar varias medidas para asegurarte de que tus pagos se concreten y de no estar bloqueado de tu cuenta.' +title: Troubleshooting a declined credit card charge +intro: 'If the credit card you use to pay for {% data variables.product.product_name %} is declined, you can take several steps to ensure that your payments go through and that you are not locked out of your account.' redirect_from: - /github/setting-up-and-managing-billing-and-payments-on-github/troubleshooting-a-declined-credit-card-charge - - /articles/what-do-i-do-if-my-card-is-declined/ + - /articles/what-do-i-do-if-my-card-is-declined - /articles/troubleshooting-a-declined-credit-card-charge - /github/setting-up-and-managing-billing-and-payments-on-github/managing-your-github-billing-settings/troubleshooting-a-declined-credit-card-charge versions: @@ -12,27 +12,26 @@ versions: type: how_to topics: - Troubleshooting -shortTitle: Cargo por tarjeta de crédito rechazada +shortTitle: Declined credit card charge --- +If your card is declined, we'll send you an email about why the payment was declined. You'll have a few days to resolve the problem before we try charging you again. -Si se rechaza tu tarjeta, te enviaremos un correo electrónico acerca del motivo por el que se rechazó el pago. Tendrás algunos días para resolver el problema antes de que tratemos de volver a cobrarte. +## Check your card's expiration date -## Verifica la fecha de vencimiento de tu tarjeta +If your card has expired, you'll need to update your account's payment information. For more information, see "[Adding or editing a payment method](/articles/adding-or-editing-a-payment-method)." -Si tu tarjeta está vencida, tendrás que actualizar la información de pago de tu cuenta. Para obtener más información, consulta "[Agregar o editar un método de pago](/articles/adding-or-editing-a-payment-method)". +## Verify your bank's policy on card restrictions -## Revisa la política de tu banco sobre restricciones de tarjetas +Some international banks place restrictions on international, e-commerce, and automatically recurring transactions. If you're having trouble making a payment with your international credit card, call your bank to see if there are any restrictions on your card. -Algunos bancos internacionales colocan restricciones en las transacciones internacionales, de comercio electrónico o automáticamente recurrentes. Si tienes problemas para hacer un pago con tu tarjeta de crédito internacional, llama a tu banco para ver si hay alguna restricción sobre tu tarjeta. +We also support payments through PayPal. For more information, see "[Adding or editing a payment method](/articles/adding-or-editing-a-payment-method)." -También admitimos pagos por PayPal. Para obtener más información, consulta "[Agregar o editar un método de pago](/articles/adding-or-editing-a-payment-method)". +## Contact your bank for details about the transaction -## Contáctate con tu banco para obtener detalles acerca de la transacción +Your bank can provide additional information about declined payments if you specifically ask about the attempted transaction. If there are restrictions on your card and you need to call your bank, provide this information to your bank: -Tu banco puede proporcionar más información acerca de los pagos rechazados si, específicamente, preguntas por la transacción que se intentó realizar. Si existen restricciones sobre tu tarjeta, y debes llamar al banco, proporciona la siguiente información: - -- **El monto que se te cobra.** El monto de tu suscripción aparece en tus recibos de cuenta. Para obtener más información, consulta "[Ver tu historial de pagos y tus recibos](/articles/viewing-your-payment-history-and-receipts)". -- **La fecha en que {% data variables.product.product_name %} te factura.** La fecha de facturación de tu cuenta aparece en tus recibos. -- **El número de Id. de tu transacción.** El Id. de transacción de tu cuenta aparece en tus recibos. -- **El nombre del vendedor.** El nombre del vendedor es {% data variables.product.prodname_dotcom %}. -- **El mensaje de error que te envió el banco con el pago rechazado.** Puedes encontrar el mensaje de error del banco en el correo electrónico que te enviamos cuando se rechaza un pago. +- **The amount you're being charged.** The amount for your subscription appears on your account's receipts. For more information, see "[Viewing your payment history and receipts](/articles/viewing-your-payment-history-and-receipts)." +- **The date when {% data variables.product.product_name %} bills you.** Your account's billing date appears on your receipts. +- **The transaction ID number.** Your account's transaction ID appears on your receipts. +- **The merchant name.** The merchant name is {% data variables.product.prodname_dotcom %}. +- **The error message your bank sent with the declined charge.** You can find your bank's error message on the email we send you when a charge is declined. diff --git a/translations/es-ES/content/billing/managing-your-github-billing-settings/unlocking-a-locked-account.md b/translations/es-ES/content/billing/managing-your-github-billing-settings/unlocking-a-locked-account.md index 3b0152b824..b59da1c080 100644 --- a/translations/es-ES/content/billing/managing-your-github-billing-settings/unlocking-a-locked-account.md +++ b/translations/es-ES/content/billing/managing-your-github-billing-settings/unlocking-a-locked-account.md @@ -1,14 +1,14 @@ --- -title: Desbloquear una cuenta bloqueada -intro: Las características pagadas de tu organización se bloquearán si tu pago no se recibe a tiempo debido a problemas de facturación. +title: Unlocking a locked account +intro: Your organization's paid features are locked if your payment is past due because of billing problems. redirect_from: - /github/setting-up-and-managing-billing-and-payments-on-github/unlocking-a-locked-account - - /articles/what-happens-if-my-account-is-locked/ - - /articles/if-my-account-is-locked-and-i-upgrade-it-do-i-owe-anything-for-previous-time/ - - /articles/if-my-account-is-locked-and-i-upgrade-it-do-i-pay-backcharges/ - - /articles/what-happens-if-my-repository-is-locked/ - - /articles/unlocking-a-locked-personal-account/ - - /articles/unlocking-a-locked-organization-account/ + - /articles/what-happens-if-my-account-is-locked + - /articles/if-my-account-is-locked-and-i-upgrade-it-do-i-owe-anything-for-previous-time + - /articles/if-my-account-is-locked-and-i-upgrade-it-do-i-pay-backcharges + - /articles/what-happens-if-my-repository-is-locked + - /articles/unlocking-a-locked-personal-account + - /articles/unlocking-a-locked-organization-account - /articles/unlocking-a-locked-account - /github/setting-up-and-managing-billing-and-payments-on-github/managing-your-github-billing-settings/unlocking-a-locked-account versions: @@ -20,15 +20,14 @@ topics: - Downgrades - Organizations - User account -shortTitle: Cuenta bloqueada +shortTitle: Locked account --- +You can unlock and access your account by updating your organization's payment method and resuming paid status. We do not ask you to pay for the time elapsed in locked mode. -Puedes desbloquear y acceder a tu cuenta si actualizas el método de pago de tu organización y el estado final del pago. No te pediremos que pagues el tiempo transcurrido en modo bloqueado. +You can downgrade your organization to {% data variables.product.prodname_free_team %} to continue with the same advanced features in public repositories. For more information, see "[Downgrading your {% data variables.product.product_name %} subscription](/billing/managing-billing-for-your-github-account/downgrading-your-github-subscription)." -Puedes bajar a tu organización de nivel a {% data variables.product.prodname_free_team %} para continuar con las mismas características avanzadas en los repositorios públicos. Para obtener más información, consulta la sección "[Bajar de nivel tu suscripción de {% data variables.product.product_name %}](/billing/managing-billing-for-your-github-account/downgrading-your-github-subscription)". +## Unlocking an organization's features due to a declined payment -## Desbloquear las características de una organización debido a un pago rechazado +If your organization's advanced features are locked due to a declined payment, you'll need to update your billing information to trigger a newly authorized charge. For more information, see "[Adding or editing a payment method](/articles/adding-or-editing-a-payment-method)." -Si las características avanzadas de tu organización se bloquearon debido a un pago rechazado, necesitarás actualizar tu información de facturación para activar un cargo recién autorizado. Para obtener más información, consulta "[Agregar o editar un método de pago](/articles/adding-or-editing-a-payment-method)". - -Si se aprueba la información de facturación nueva, te cobraremos de inmediato el producto pago que elegiste. La organización se desbloqueará automáticamente cuando se haya realizado un pago exitoso. +If the new billing information is approved, we will immediately charge you for the paid product you chose. The organization will automatically unlock when a successful payment has been made. diff --git a/translations/es-ES/content/billing/managing-your-github-billing-settings/viewing-your-payment-history-and-receipts.md b/translations/es-ES/content/billing/managing-your-github-billing-settings/viewing-your-payment-history-and-receipts.md index b2cbcecb87..c643ca0c2c 100644 --- a/translations/es-ES/content/billing/managing-your-github-billing-settings/viewing-your-payment-history-and-receipts.md +++ b/translations/es-ES/content/billing/managing-your-github-billing-settings/viewing-your-payment-history-and-receipts.md @@ -1,11 +1,11 @@ --- -title: Ver tu historial de pagos y recibos -intro: Puedes ver el historial de pagos de tu cuenta y descargar los últimos recibos en cualquier momento. +title: Viewing your payment history and receipts +intro: You can view your account's payment history and download past receipts at any time. redirect_from: - /github/setting-up-and-managing-billing-and-payments-on-github/viewing-your-payment-history-and-receipts - - /articles/downloading-receipts/ - - /articles/downloading-receipts-for-personal-accounts/ - - /articles/downloading-receipts-for-organizations/ + - /articles/downloading-receipts + - /articles/downloading-receipts-for-personal-accounts + - /articles/downloading-receipts-for-organizations - /articles/viewing-your-payment-history-and-receipts - /github/setting-up-and-managing-billing-and-payments-on-github/managing-your-github-billing-settings/viewing-your-payment-history-and-receipts versions: @@ -17,17 +17,16 @@ topics: - Organizations - Receipts - User account -shortTitle: Visualizar el historial & los recibos +shortTitle: View history & receipts --- - -## Ver los recibos de tu cuenta personal +## Viewing receipts for your personal account {% data reusables.user_settings.access_settings %} {% data reusables.user_settings.billing_plans %} {% data reusables.dotcom_billing.view-payment-history %} {% data reusables.dotcom_billing.download_receipt %} -## Ver los recibos de tu organización +## Viewing receipts for your organization {% data reusables.dotcom_billing.org-billing-perms %} diff --git a/translations/es-ES/content/billing/managing-your-github-billing-settings/viewing-your-subscriptions-and-billing-date.md b/translations/es-ES/content/billing/managing-your-github-billing-settings/viewing-your-subscriptions-and-billing-date.md index a2e88fd86a..b62ebd0208 100644 --- a/translations/es-ES/content/billing/managing-your-github-billing-settings/viewing-your-subscriptions-and-billing-date.md +++ b/translations/es-ES/content/billing/managing-your-github-billing-settings/viewing-your-subscriptions-and-billing-date.md @@ -1,13 +1,13 @@ --- -title: Ver tus suscripción y fecha de facturación -intro: 'Puedes ver la suscripción de tu cuenta, tu otras características y productos de pago y tu próxima fecha de facturación en las configuraciones de facturación de tu cuenta.' +title: Viewing your subscriptions and billing date +intro: 'You can view your account''s subscription, your other paid features and products, and your next billing date in your account''s billing settings.' redirect_from: - /github/setting-up-and-managing-billing-and-payments-on-github/managing-your-github-billing-settings/viewing-your-subscriptions-and-billing-date - /github/setting-up-and-managing-billing-and-payments-on-github/viewing-your-subscriptions-and-billing-date - - /articles/finding-your-next-billing-date/ - - /articles/finding-your-personal-account-s-next-billing-date/ - - /articles/finding-your-organization-s-next-billing-date/ - - /articles/viewing-your-plans-and-billing-date/ + - /articles/finding-your-next-billing-date + - /articles/finding-your-personal-account-s-next-billing-date + - /articles/finding-your-organization-s-next-billing-date + - /articles/viewing-your-plans-and-billing-date - /articles/viewing-your-subscriptions-and-billing-date versions: fpt: '*' @@ -17,22 +17,21 @@ topics: - Accounts - Organizations - User account -shortTitle: Suscripciones & fecha de facturación +shortTitle: Subscriptions & billing date --- - -## Encontrar la próxima fecha de facturación de tu cuenta personal +## Finding your personal account's next billing date {% data reusables.user_settings.access_settings %} {% data reusables.user_settings.billing_plans %} {% data reusables.dotcom_billing.next_billing_date %} -## Encontrar la próxima fecha de facturación de tu organización +## Finding your organization's next billing date {% data reusables.dotcom_billing.org-billing-perms %} {% data reusables.organizations.billing-settings %} {% data reusables.dotcom_billing.next_billing_date %} -## Leer más +## Further reading -- "[Acerca de la facturación para las cuentas de {% data variables.product.prodname_dotcom %}](/articles/about-billing-for-github-accounts)" +- "[About billing for {% data variables.product.prodname_dotcom %} accounts](/articles/about-billing-for-github-accounts)" diff --git a/translations/es-ES/content/billing/managing-your-license-for-github-enterprise/index.md b/translations/es-ES/content/billing/managing-your-license-for-github-enterprise/index.md index 617e5c273f..9f270733c2 100644 --- a/translations/es-ES/content/billing/managing-your-license-for-github-enterprise/index.md +++ b/translations/es-ES/content/billing/managing-your-license-for-github-enterprise/index.md @@ -5,13 +5,13 @@ intro: '{% data variables.product.prodname_enterprise %} includes both cloud and redirect_from: - /free-pro-team@latest/billing/managing-your-license-for-github-enterprise - /enterprise/admin/installation/managing-your-github-enterprise-license - - /enterprise/admin/categories/licenses/ - - /enterprise/admin/articles/license-files/ - - /enterprise/admin/installation/about-license-files/ - - /enterprise/admin/articles/downloading-your-license/ - - /enterprise/admin/installation/downloading-your-license/ - - /enterprise/admin/articles/upgrading-your-license/ - - /enterprise/admin/installation/updating-your-license/ + - /enterprise/admin/categories/licenses + - /enterprise/admin/articles/license-files + - /enterprise/admin/installation/about-license-files + - /enterprise/admin/articles/downloading-your-license + - /enterprise/admin/installation/downloading-your-license + - /enterprise/admin/articles/upgrading-your-license + - /enterprise/admin/installation/updating-your-license - /enterprise/admin/installation/managing-your-github-enterprise-server-license - /enterprise/admin/overview/managing-your-github-enterprise-license versions: diff --git a/translations/es-ES/content/billing/managing-your-license-for-github-enterprise/uploading-a-new-license-to-github-enterprise-server.md b/translations/es-ES/content/billing/managing-your-license-for-github-enterprise/uploading-a-new-license-to-github-enterprise-server.md index 6f14ec511a..4edf184f57 100644 --- a/translations/es-ES/content/billing/managing-your-license-for-github-enterprise/uploading-a-new-license-to-github-enterprise-server.md +++ b/translations/es-ES/content/billing/managing-your-license-for-github-enterprise/uploading-a-new-license-to-github-enterprise-server.md @@ -1,22 +1,22 @@ --- -title: Cargar una licencia nueva a GitHub Enterprise Server -intro: 'Puedes cargar tu archivo de licencia para {% data variables.product.prodname_enterprise %} a {% data variables.product.product_location_enterprise %} para validar tu aplicación.' +title: Uploading a new license to GitHub Enterprise Server +intro: 'You can upload your license file for {% data variables.product.prodname_enterprise %} to {% data variables.product.product_location_enterprise %} to validate your application.' versions: ghes: '*' type: how_to topics: - Enterprise - Licensing -shortTitle: Cargar una licencia nueva +shortTitle: Upload a new license --- -## Acerca de los archivos de licencia para {% data variables.product.prodname_enterprise %} +## About license files for {% data variables.product.prodname_enterprise %} -Después de que compras o mejoras una licencia de {% data variables.product.prodname_enterprise %} desde {% data variables.contact.contact_enterprise_sales %}, debes subir el nuevo archivo de licencia a {% data variables.product.product_location_enterprise %} para desbloquear tus licencias de usuario nuevas. Para obtener más información sobre las licencias para {% data variables.product.product_name %}, consulta las secciones "[Acerca de las licencias de {% data variables.product.prodname_enterprise %}](/billing/managing-your-license-for-github-enterprise/about-licenses-for-github-enterprise)" y "[Descargar tu licencia de {% data variables.product.prodname_enterprise %}](/billing/managing-your-license-for-github-enterprise/downloading-your-license-for-github-enterprise)". +After you purchase or upgrade a license for {% data variables.product.prodname_enterprise %} from {% data variables.contact.contact_enterprise_sales %}, you must upload the new license file to {% data variables.product.product_location_enterprise %} to unlock your new user licenses. For more information about licenses for {% data variables.product.product_name %}, see "[About licenses for {% data variables.product.prodname_enterprise %}](/billing/managing-your-license-for-github-enterprise/about-licenses-for-github-enterprise)" and "[Downloading your license for {% data variables.product.prodname_enterprise %}](/billing/managing-your-license-for-github-enterprise/downloading-your-license-for-github-enterprise)." {% data reusables.enterprise-licensing.contact-sales-for-renewals-or-seats %} -## Cargar tu licencia en {% data variables.product.product_location_enterprise %} +## Uploading your license to {% data variables.product.product_location_enterprise %} {% warning %} @@ -24,11 +24,14 @@ Después de que compras o mejoras una licencia de {% data variables.product.prod {% endwarning %} -1. Inicia sesión en {% data variables.product.product_location_enterprise %} como administrador de sitio. +1. Sign into {% data variables.product.product_location_enterprise %} as a site administrator. {% data reusables.enterprise-accounts.access-enterprise %} {% data reusables.enterprise-accounts.settings-tab %} {% data reusables.enterprise-accounts.license-tab %} -1. Dentro de "Quick links (Vínculos rápidos)", haz clic en **Update license (Actualizar licencia)**. ![Actualizar enlace de la licencia](/assets/images/enterprise/business-accounts/update-license-link.png) -1. Para seleccionar tu licencia, da clic en **Archivo de licencia**, o arrastra tu archivo de licencia a **Archivo de licencia**. ![Sube el archivo de licencia](/assets/images/enterprise/management-console/upload-license.png) -1. Da clic en **Cargar**. ![Comenzar carga](/assets/images/enterprise/management-console/begin-upload.png) +1. Under "Quick links", click **Update license**. + ![Update license link](/assets/images/enterprise/business-accounts/update-license-link.png) +1. To select your license, click **License file**, or drag your license file onto **License file**. + ![Upload license file](/assets/images/enterprise/management-console/upload-license.png) +1. Click **Upload**. + ![Begin upload](/assets/images/enterprise/management-console/begin-upload.png) diff --git a/translations/es-ES/content/billing/setting-up-paid-organizations-for-procurement-companies/about-organizations-for-procurement-companies.md b/translations/es-ES/content/billing/setting-up-paid-organizations-for-procurement-companies/about-organizations-for-procurement-companies.md index cac473fd9f..b74ec44276 100644 --- a/translations/es-ES/content/billing/setting-up-paid-organizations-for-procurement-companies/about-organizations-for-procurement-companies.md +++ b/translations/es-ES/content/billing/setting-up-paid-organizations-for-procurement-companies/about-organizations-for-procurement-companies.md @@ -1,9 +1,9 @@ --- -title: Acerca de las organizaciones para empresas de contratación -intro: 'Las empresas usan las organizaciones para colaborar en proyectos compartidos con varios propietarios y administradores. Puedes crear una organización para tu cliente, realizar un pago en su nombre, y entonces transferir la propiedad de la organización a tu cliente.' +title: About organizations for procurement companies +intro: 'Businesses use organizations to collaborate on shared projects with multiple owners and administrators. You can create an organization for your client, make a payment on their behalf, then pass ownership of the organization to your client.' redirect_from: - /github/setting-up-and-managing-billing-and-payments-on-github/about-organizations-for-procurement-companies - - /articles/about-organizations-for-resellers/ + - /articles/about-organizations-for-resellers - /articles/about-organizations-for-procurement-companies - /github/setting-up-and-managing-billing-and-payments-on-github/setting-up-paid-organizations-for-procurement-companies/about-organizations-for-procurement-companies versions: @@ -12,28 +12,27 @@ versions: type: overview topics: - Organizations -shortTitle: Acerca de las organizaciones +shortTitle: About organizations --- +To access an organization, each member must sign into their own personal user account. -Para acceder a una organización, cada miembro debe iniciar sesión en su cuenta de usuario personal. +Organization members can have different roles, such as *owner* or *billing manager*: -Los miembros de la organización pueden tener diferentes roles, como *propietario* o *gerente de facturación*: +- **Owners** have complete administrative access to an organization and its contents. +- **Billing managers** can manage billing settings, and cannot access organization contents. Billing managers are not shown in the list of organization members. -- Los **Propietarios** tienen acceso administrativo completo a una organización y sus contenidos. -- Los **Gerentes de facturación** pueden administrar los parámetros de facturación y no pueden acceder a los contenidos de la organización. Los gerentes de facturación no se muestran en la lista de miembros de la organización. +## Payments and pricing for organizations -## Pagos y precios para las organizaciones +We don't provide quotes for organization pricing. You can see our published pricing for [organizations](https://github.com/pricing) and [Git Large File Storage](/articles/about-storage-and-bandwidth-usage/). We do not provide discounts for procurement companies or for renewal orders. -No proporcionamos cotizaciones para los precios de las organizaciones. Puedes ver nuestros precios publicados para [organizaciones](https://github.com/pricing) y [Large File Storage de Git](/articles/about-storage-and-bandwidth-usage/). No ofrecemos descuentos para empresas de contratación ni para pedidos de renovación. +We accept payment in US dollars, although end users may be located anywhere in the world. -Aceptamos pagos en dólares estadounidenses, aunque los usuarios finales pueden estar en cualquier parte del mundo. +We accept payment by credit card and PayPal. We don't accept payment by purchase order or invoice. -Aceptamos pagos mediante tarjeta de crédito y PayPal. No aceptamos pagos mediante factura ni orden de compra. +For easier and more efficient purchasing, we recommend that procurement companies set up yearly billing for their clients' organizations. -Para una compra más fácil y más eficaz, recomendamos que las empresas de contratación configuren una facturación anual para las organizaciones de sus clientes. +## Further reading -## Leer más - -- "[Crear una organización y pagar por ella en nombre de un cliente](/articles/creating-and-paying-for-an-organization-on-behalf-of-a-client)" -- "[Actualizar o bajar de categoría la organización paga de tu cliente](/articles/upgrading-or-downgrading-your-client-s-paid-organization)" -- "[Renovar la organización paga de tu cliente](/articles/renewing-your-client-s-paid-organization)" +- "[Creating and paying for an organization on behalf of a client](/articles/creating-and-paying-for-an-organization-on-behalf-of-a-client)" +- "[Upgrading or downgrading your client's paid organization](/articles/upgrading-or-downgrading-your-client-s-paid-organization)" +- "[Renewing your client's paid organization](/articles/renewing-your-client-s-paid-organization)" diff --git a/translations/es-ES/content/billing/setting-up-paid-organizations-for-procurement-companies/index.md b/translations/es-ES/content/billing/setting-up-paid-organizations-for-procurement-companies/index.md index d1932dd2ce..0b9fc6ffef 100644 --- a/translations/es-ES/content/billing/setting-up-paid-organizations-for-procurement-companies/index.md +++ b/translations/es-ES/content/billing/setting-up-paid-organizations-for-procurement-companies/index.md @@ -1,11 +1,11 @@ --- -title: Configurar organizaciones remuneradas para empresas de contratación -shortTitle: Organizaciones pagadas para compañías de contratación -intro: 'Si pagas por {% data variables.product.product_name %} en nombre de un cliente, puedes configurar sus parámetros de organización y pago para optimizar la conveniencia y la seguridad.' +title: Setting up paid organizations for procurement companies +shortTitle: Paid organizations for procurement companies +intro: 'If you pay for {% data variables.product.product_name %} on behalf of a client, you can configure their organization and payment settings to optimize convenience and security.' redirect_from: - /github/setting-up-and-managing-billing-and-payments-on-github/setting-up-paid-organizations-for-procurement-companies - - /articles/setting-up-and-paying-for-organizations-for-resellers/ - - /articles/setting-up-and-paying-for-organizations-for-procurement-companies/ + - /articles/setting-up-and-paying-for-organizations-for-resellers + - /articles/setting-up-and-paying-for-organizations-for-procurement-companies - /articles/setting-up-paid-organizations-for-procurement-companies versions: fpt: '*' diff --git a/translations/es-ES/content/code-security/code-scanning/automatically-scanning-your-code-for-vulnerabilities-and-errors/configuring-code-scanning.md b/translations/es-ES/content/code-security/code-scanning/automatically-scanning-your-code-for-vulnerabilities-and-errors/configuring-code-scanning.md index 88ca60761c..2122636727 100644 --- a/translations/es-ES/content/code-security/code-scanning/automatically-scanning-your-code-for-vulnerabilities-and-errors/configuring-code-scanning.md +++ b/translations/es-ES/content/code-security/code-scanning/automatically-scanning-your-code-for-vulnerabilities-and-errors/configuring-code-scanning.md @@ -161,6 +161,13 @@ This workflow scans: If your code requires a specific operating system to compile, you can configure the operating system in your {% data variables.product.prodname_codeql_workflow %}. Edit the value of `jobs.analyze.runs-on` to specify the operating system for the machine that runs your {% data variables.product.prodname_code_scanning %} actions. {% ifversion ghes %}You specify the operating system by using an appropriate label as the second element in a two-element array, after `self-hosted`.{% else %} +``` yaml +jobs: + analyze: + name: Analyze + runs-on: [ubuntu-latest] +``` + If you choose to use a self-hosted runner for code scanning, you can specify an operating system by using an appropriate label as the second element in a two-element array, after `self-hosted`.{% endif %} ``` yaml @@ -170,12 +177,14 @@ jobs: runs-on: [self-hosted, ubuntu-latest] ``` -{% ifversion fpt or ghec %}For more information, see "[About self-hosted runners](/actions/hosting-your-own-runners/about-self-hosted-runners)" and "[Adding self-hosted runners](/actions/hosting-your-own-runners/adding-self-hosted-runners)."{% endif %} - {% data variables.product.prodname_codeql %} {% data variables.product.prodname_code_scanning %} supports the latest versions of Ubuntu, Windows, and macOS. Typical values for this setting are therefore: `ubuntu-latest`, `windows-latest`, and `macos-latest`. For more information, see {% ifversion ghes %}"[Workflow syntax for GitHub Actions](/actions/reference/workflow-syntax-for-github-actions#self-hosted-runners)" and "[Using labels with self-hosted runners](/actions/hosting-your-own-runners/using-labels-with-self-hosted-runners){% else %}"[Workflow syntax for GitHub Actions](/actions/reference/workflow-syntax-for-github-actions#jobsjob_idruns-on){% endif %}." {% ifversion ghes %}You must ensure that Git is in the PATH variable on your self-hosted runners.{% else %}If you use a self-hosted runner, you must ensure that Git is in the PATH variable.{% endif %} +For more information, see "[About self-hosted runners](/actions/hosting-your-own-runners/about-self-hosted-runners)" and "[Adding self-hosted runners](/actions/hosting-your-own-runners/adding-self-hosted-runners)." + +For recommended specifications (RAM, CPU cores, and disk) for running {% data variables.product.prodname_codeql %} analysis{% ifversion not ghes %} on self-hosted machines{% endif %}, see "[Recommended hardware resources for running {% data variables.product.prodname_codeql %}](/code-security/code-scanning/automatically-scanning-your-code-for-vulnerabilities-and-errors/recommended-hardware-resources-for-running-codeql)." + {% ifversion fpt or ghes > 3.1 or ghae or ghec %} ## Specifying the location for {% data variables.product.prodname_codeql %} databases diff --git a/translations/es-ES/content/code-security/code-scanning/automatically-scanning-your-code-for-vulnerabilities-and-errors/index.md b/translations/es-ES/content/code-security/code-scanning/automatically-scanning-your-code-for-vulnerabilities-and-errors/index.md index 4f9478f221..622a6eb37f 100644 --- a/translations/es-ES/content/code-security/code-scanning/automatically-scanning-your-code-for-vulnerabilities-and-errors/index.md +++ b/translations/es-ES/content/code-security/code-scanning/automatically-scanning-your-code-for-vulnerabilities-and-errors/index.md @@ -22,6 +22,7 @@ children: - /tracking-code-scanning-alerts-in-issues-using-task-lists - /configuring-code-scanning - /about-code-scanning-with-codeql + - /recommended-hardware-resources-for-running-codeql - /configuring-the-codeql-workflow-for-compiled-languages - /troubleshooting-the-codeql-workflow - /running-codeql-code-scanning-in-a-container diff --git a/translations/es-ES/content/code-security/code-scanning/automatically-scanning-your-code-for-vulnerabilities-and-errors/recommended-hardware-resources-for-running-codeql.md b/translations/es-ES/content/code-security/code-scanning/automatically-scanning-your-code-for-vulnerabilities-and-errors/recommended-hardware-resources-for-running-codeql.md new file mode 100644 index 0000000000..4ea514673d --- /dev/null +++ b/translations/es-ES/content/code-security/code-scanning/automatically-scanning-your-code-for-vulnerabilities-and-errors/recommended-hardware-resources-for-running-codeql.md @@ -0,0 +1,32 @@ +--- +title: Recommended hardware resources for running CodeQL +shortTitle: Hardware resources for CodeQL +intro: 'Recommended specifications (RAM, CPU cores, and disk) for running {% data variables.product.prodname_codeql %} analysis on self-hosted machines, based on the size of your codebase.' +product: '{% data reusables.gated-features.code-scanning %}' +versions: + fpt: '*' + ghes: '*' + ghae: '*' + ghec: '*' +topics: + - Advanced Security + - Code scanning + - CodeQL + - Repositories + - Integration + - CI + +--- +You can set up {% data variables.product.prodname_codeql %} on {% data variables.product.prodname_actions %} or on an external CI system. {% data variables.product.prodname_codeql %} is fully compatible with {% data variables.product.prodname_dotcom %}-hosted runners on {% data variables.product.prodname_actions %}. + +If you're using an external CI system, or self-hosted runners on {% data variables.product.prodname_actions %} for private repositories, you're responsible for configuring your own hardware. The optimal hardware configuration for running {% data variables.product.prodname_codeql %} may vary based on the size and complexity of your codebase, the programming languages and build systems being used, and your CI workflow setup. + +The table below provides recommended hardware specifications for running {% data variables.product.prodname_codeql %} analysis, based on the size of your codebase. Use these as a starting point for determining your choice of hardware or virtual machine. A machine with greater resources may improve analysis performance, but may also be more expensive to maintain. + +| Codebase size | RAM | CPU | +|--------|--------|--------| +| Small (<100 K lines of code) | 8 GB or higher | 2 cores | +| Medium (100 K to 1 M lines of code) | 16 GB or higher | 4 or 8 cores | +| Large (>1 M lines of code) | 64 GB or higher | 8 cores | + +For all codebase sizes, we recommend using an SSD with 14 GB or more of disk space. There must be enough disk space to check out and build your code, plus additional space for data produced by {% data variables.product.prodname_codeql %}. diff --git a/translations/es-ES/content/code-security/code-scanning/automatically-scanning-your-code-for-vulnerabilities-and-errors/troubleshooting-the-codeql-workflow.md b/translations/es-ES/content/code-security/code-scanning/automatically-scanning-your-code-for-vulnerabilities-and-errors/troubleshooting-the-codeql-workflow.md index bf886eac2f..322a5f346e 100644 --- a/translations/es-ES/content/code-security/code-scanning/automatically-scanning-your-code-for-vulnerabilities-and-errors/troubleshooting-the-codeql-workflow.md +++ b/translations/es-ES/content/code-security/code-scanning/automatically-scanning-your-code-for-vulnerabilities-and-errors/troubleshooting-the-codeql-workflow.md @@ -110,13 +110,13 @@ If your workflow fails with an error `No source code was seen during the build` * Building using a distributed build system external to GitHub Actions, using a daemon process. * {% data variables.product.prodname_codeql %} isn't aware of the specific compiler you are using. - For .NET Framework projects, and for C# projects using either `dotnet build` or `msbuild` that target .NET Core 2, you should specify `/p:UseSharedCompilation=false` in your workflow's `run` step, when you build your code. The `UseSharedCompilation` flag isn't necessary for .NET Core 3.0 and later. + For .NET Framework projects, and for C# projects using either `dotnet build` or `msbuild`, you should specify `/p:UseSharedCompilation=false` in your workflow's `run` step, when you build your code. For example, the following configuration for C# will pass the flag during the first build step. ``` yaml - run: | - dotnet build /p:UseSharedCompilation=false + dotnet build /p:UseSharedCompilation=false ``` If you encounter another problem with your specific compiler or configuration, contact {% data variables.contact.contact_support %}. diff --git a/translations/es-ES/content/code-security/code-scanning/using-codeql-code-scanning-with-your-existing-ci-system/installing-codeql-cli-in-your-ci-system.md b/translations/es-ES/content/code-security/code-scanning/using-codeql-code-scanning-with-your-existing-ci-system/installing-codeql-cli-in-your-ci-system.md index 1099495b71..8528c045c6 100644 --- a/translations/es-ES/content/code-security/code-scanning/using-codeql-code-scanning-with-your-existing-ci-system/installing-codeql-cli-in-your-ci-system.md +++ b/translations/es-ES/content/code-security/code-scanning/using-codeql-code-scanning-with-your-existing-ci-system/installing-codeql-cli-in-your-ci-system.md @@ -28,7 +28,7 @@ redirect_from: ## About using the {% data variables.product.prodname_codeql_cli %} for {% data variables.product.prodname_code_scanning %} -You can use the {% data variables.product.prodname_codeql_cli %} to run {% data variables.product.prodname_code_scanning %} on code that you're processing in a third-party continuous integration (CI) system. {% data reusables.code-scanning.about-code-scanning %} For information, see "[About {% data variables.product.prodname_code_scanning %} with {% data variables.product.prodname_codeql %}](/code-security/secure-coding/automatically-scanning-your-code-for-vulnerabilities-and-errors/about-code-scanning-with-codeql)." +You can use the {% data variables.product.prodname_codeql_cli %} to run {% data variables.product.prodname_code_scanning %} on code that you're processing in a third-party continuous integration (CI) system. {% data reusables.code-scanning.about-code-scanning %} For information, see "[About {% data variables.product.prodname_code_scanning %} with {% data variables.product.prodname_codeql %}](/code-security/secure-coding/automatically-scanning-your-code-for-vulnerabilities-and-errors/about-code-scanning-with-codeql)." For recommended specifications (RAM, CPU cores, and disk) for running {% data variables.product.prodname_codeql %} analysis, see "[Recommended hardware resources for running {% data variables.product.prodname_codeql %}](/code-security/code-scanning/automatically-scanning-your-code-for-vulnerabilities-and-errors/recommended-hardware-resources-for-running-codeql)." {% data reusables.code-scanning.what-is-codeql-cli %} diff --git a/translations/es-ES/content/code-security/code-scanning/using-codeql-code-scanning-with-your-existing-ci-system/migrating-from-the-codeql-runner-to-codeql-cli.md b/translations/es-ES/content/code-security/code-scanning/using-codeql-code-scanning-with-your-existing-ci-system/migrating-from-the-codeql-runner-to-codeql-cli.md index f6f88a8066..c2c3020329 100644 --- a/translations/es-ES/content/code-security/code-scanning/using-codeql-code-scanning-with-your-existing-ci-system/migrating-from-the-codeql-runner-to-codeql-cli.md +++ b/translations/es-ES/content/code-security/code-scanning/using-codeql-code-scanning-with-your-existing-ci-system/migrating-from-the-codeql-runner-to-codeql-cli.md @@ -39,6 +39,8 @@ A typical workflow that uses the {% data variables.product.prodname_codeql_cli % - `codeql database analyze` to run queries to analyze each {% data variables.product.prodname_codeql %} database and summarize the results in a SARIF file. This command must be run once for each language or database. - `codeql github upload-results` to upload the resulting SARIF files to {% data variables.product.prodname_dotcom %}, to be displayed as code scanning alerts. This command must be run once for each language or SARIF file. +The {% data variables.product.prodname_codeql_runner %} is multithreaded by default. The {% data variables.product.prodname_codeql_cli %} only uses a single thread by default, but allows you to specify the amount of threads you want it to use. If you want to replicate the behavior of the {% data variables.product.prodname_codeql_runner %} to use all threads available on the machine when using the {% data variables.product.prodname_codeql_cli %}, you can pass `--threads 0` to `codeql database analyze`. + For more information, see "[Configuring {% data variables.product.prodname_codeql_cli %} in your CI system](/code-security/code-scanning/using-codeql-code-scanning-with-your-existing-ci-system/configuring-codeql-cli-in-your-ci-system)." ## Examples of common uses for the {% data variables.product.prodname_codeql_cli %} diff --git a/translations/es-ES/content/code-security/getting-started/github-security-features.md b/translations/es-ES/content/code-security/getting-started/github-security-features.md index 174275d178..646ed3ccd5 100644 --- a/translations/es-ES/content/code-security/getting-started/github-security-features.md +++ b/translations/es-ES/content/code-security/getting-started/github-security-features.md @@ -16,7 +16,7 @@ topics: ## About {% data variables.product.prodname_dotcom %}'s security features -{% data variables.product.prodname_dotcom %} has security features that help keep code and secrets secure in repositories and across organizations. Some features are available for all repositories and others are only available {% ifversion fpt or ghec %}for public repositories and for repositories {% endif %}with a {% data variables.product.prodname_GH_advanced_security %} license. +{% data variables.product.prodname_dotcom %} has security features that help keep code and secrets secure in repositories and across organizations. {% data reusables.advanced-security.security-feature-availability %} The {% data variables.product.prodname_advisory_database %} contains a curated list of security vulnerabilities that you can view, search, and filter. {% data reusables.security-advisory.link-browsing-advisory-db %} @@ -64,19 +64,19 @@ The dependency graph allows you to explore the ecosystems and packages that your You can find the dependency graph on the **Insights** tab for your repository. For more information, see "[About the dependency graph](/github/visualizing-repository-data-with-graphs/about-the-dependency-graph)." {% endif %} -## Available {% ifversion fpt or ghec %}for public repositories and for repositories {% endif %}with {% data variables.product.prodname_advanced_security %} +## Available with {% data variables.product.prodname_GH_advanced_security %} -{% ifversion fpt or ghes or ghec %} -These features are available {% ifversion fpt or ghec %}for all public repositories, and for private repositories owned by organizations with {% else %}if you have {% endif %}an {% data variables.product.prodname_advanced_security %} license. {% data reusables.advanced-security.more-info-ghas %} -{% endif %} +{% data reusables.advanced-security.ghas-availability %} -### {% data variables.product.prodname_code_scanning_capc %} alerts +### {% data variables.product.prodname_code_scanning_capc %} Automatically detect security vulnerabilities and coding errors in new or modified code. Potential problems are highlighted, with detailed information, allowing you to fix the code before it's merged into your default branch. For more information, see "[About code scanning](/github/finding-security-vulnerabilities-and-errors-in-your-code/about-code-scanning)." -### {% data variables.product.prodname_secret_scanning_caps %} alerts +### {% data variables.product.prodname_secret_scanning_caps %} -{% ifversion fpt or ghec %}For private repositories, view {% else %}View {% endif %}any secrets that {% data variables.product.prodname_dotcom %} has found in your code. You should treat tokens or credentials that have been checked into the repository as compromised. For more information, see "[About secret scanning](/github/administering-a-repository/about-secret-scanning)." +Automatically detect tokens or credentials that have been checked into a repository. {% ifversion fpt or ghec %}For secrets identified in public repositories, the service is informed that the secret may be compromised.{% endif %} +{%- ifversion ghec or ghes or ghae %} +{% ifversion ghec %}For private repositories, you can view {% elsif ghes or ghae %}View {% endif %}any secrets that {% data variables.product.company_short %} has found in your code. You should treat tokens or credentials that have been checked into the repository as compromised.{% endif %} For more information, see "[About secret scanning](/github/administering-a-repository/about-secret-scanning)." {% ifversion fpt or ghes > 3.1 or ghae-issue-4864 or ghec %} ### Dependency review diff --git a/translations/es-ES/content/code-security/getting-started/securing-your-organization.md b/translations/es-ES/content/code-security/getting-started/securing-your-organization.md index f88ddfd505..92361d61a2 100644 --- a/translations/es-ES/content/code-security/getting-started/securing-your-organization.md +++ b/translations/es-ES/content/code-security/getting-started/securing-your-organization.md @@ -19,7 +19,7 @@ shortTitle: Secure your organization ## Introduction This guide shows you how to configure security features for an organization. Your organization's security needs are unique and you may not need to enable every security feature. For more information, see "[{% data variables.product.prodname_dotcom %} security features](/code-security/getting-started/github-security-features)." -Some security features are only available {% ifversion fpt or ghec %}for public repositories, and for private repositories owned by organizations with {% else %}if you have {% endif %}an {% data variables.product.prodname_advanced_security %} license. {% data reusables.advanced-security.more-info-ghas %} +{% data reusables.advanced-security.security-feature-availability %} ## Managing access to your organization @@ -55,10 +55,10 @@ For more information, see "[About alerts for vulnerable dependencies](/code-secu ## Managing dependency review -Dependency review lets you visualize dependency changes in pull requests before they are merged into your repositories. -{% ifversion fpt or ghec %}Dependency review is available in all public repositories. For private and internal repositories you require a license for {% data variables.product.prodname_advanced_security %}. To enable dependency review for an organization, enable the dependency graph and enable {% data variables.product.prodname_advanced_security %}. +Dependency review is an {% data variables.product.prodname_advanced_security %} feature that lets you visualize dependency changes in pull requests before they are merged into your repositories. For more information, see "[About dependency review](/code-security/supply-chain-security/understanding-your-software-supply-chain/about-dependency-review)." + +{% ifversion fpt or ghec %}Dependency review is already enabled for all public repositories. {% ifversion fpt %}Organizations that use {% data variables.product.prodname_ghe_cloud %} with {% data variables.product.prodname_advanced_security %} can additionally enable dependency review for private and internal repositories. For more information, see the [{% data variables.product.prodname_ghe_cloud %} documentation](/enterprise-cloud@latest/code-security/getting-started/securing-your-organization#managing-dependency-review). {% endif %}{% endif %}{% ifversion ghec %}For private and internal repositories that are owned by an organization, you can enable dependency review by enabling the dependency graph and enabling {% data variables.product.prodname_advanced_security %} (see below). {% elsif ghes or ghae %}Dependency review is available when dependency graph is enabled for {% data variables.product.product_location %} and you enable {% data variables.product.prodname_advanced_security %} for the organization (see below).{% endif %} -For more information, see "[About dependency review](/code-security/supply-chain-security/understanding-your-software-supply-chain/about-dependency-review)." {% endif %} @@ -83,11 +83,11 @@ To enable {% data variables.product.prodname_dependabot_version_updates %}, you {% endif %} -{% ifversion fpt or ghes > 2.22 or ghae or ghec %} +{% ifversion ghes > 2.22 or ghae or ghec %} ## Managing {% data variables.product.prodname_GH_advanced_security %} -{% ifversion fpt or ghes > 2.22 or ghec %} -If your organization has an {% data variables.product.prodname_advanced_security %} license, you can enable or disable {% data variables.product.prodname_advanced_security %} features. +{% ifversion ghes > 2.22 or ghec %} +If your {% ifversion ghec %}organization is owned by an enterprise that{% else %}enterprise{% endif %} has an {% data variables.product.prodname_advanced_security %} license, you can enable or disable {% data variables.product.prodname_advanced_security %} features. {% elsif ghae %} You can enable or disable {% data variables.product.prodname_advanced_security %} features. {% endif %} @@ -99,10 +99,18 @@ You can enable or disable {% data variables.product.prodname_advanced_security % 5. Optionally, select **Automatically enable for new private repositories**. For more information, see "[About {% data variables.product.prodname_GH_advanced_security %}](/github/getting-started-with-github/about-github-advanced-security)" and "[Managing security and analysis settings for your organization](/organizations/keeping-your-organization-secure/managing-security-and-analysis-settings-for-your-organization)." +{% endif %} +{% ifversion fpt or ghes > 2.22 or ghae or ghec %} ## Configuring {% data variables.product.prodname_secret_scanning %} -{% data variables.product.prodname_secret_scanning_caps %} is available {% ifversion fpt or ghec %}for all public repositories, and for private repositories owned by organizations with {% else %}if you have {% endif %}an {% data variables.product.prodname_advanced_security %} license. +{% data variables.product.prodname_secret_scanning_caps %} is an {% data variables.product.prodname_advanced_security %} feature that scans repositories for secrets that are insecurely stored. + +{% ifversion fpt or ghec %}{% data variables.product.prodname_secret_scanning_caps %} is already enabled for all public repositories. Organizations that use {% data variables.product.prodname_ghe_cloud %} with {% data variables.product.prodname_advanced_security %} can additionally enable {% data variables.product.prodname_secret_scanning %} for private and internal repositories.{% endif %} {% ifversion fpt %}For more information, see the [{% data variables.product.prodname_ghe_cloud %} documentation](/enterprise-cloud@latest/code-security/getting-started/securing-your-organization#configuring-secret-scanning). {% endif %} + +{% ifversion ghes or ghae %}{% data variables.product.prodname_secret_scanning_caps %} is available if your enterprise uses {% data variables.product.prodname_advanced_security %}.{% endif %} + +{% ifversion not fpt %} You can enable or disable {% data variables.product.prodname_secret_scanning %} for all repositories across your organization that have {% data variables.product.prodname_advanced_security %} enabled. 1. Click your profile photo, then click **Organizations**. @@ -112,9 +120,18 @@ You can enable or disable {% data variables.product.prodname_secret_scanning %} 5. Optionally, select **Automatically enable for private repositories added to {% data variables.product.prodname_advanced_security %}**. For more information, see "[Managing security and analysis settings for your organization](/organizations/keeping-your-organization-secure/managing-security-and-analysis-settings-for-your-organization)." +{% endif %} {% endif %} +## Configuring {% data variables.product.prodname_code_scanning %} + +{% data variables.product.prodname_code_scanning_capc %} is an {% data variables.product.prodname_advanced_security %} feature that scans code for security vulnerabilities and errors + +{% ifversion fpt or ghec %}{% data variables.product.prodname_code_scanning_capc %} is available for all public repositories. Organizations that use {% data variables.product.prodname_ghe_cloud %} with {% data variables.product.prodname_advanced_security %} can additionally use {% data variables.product.prodname_code_scanning %} for private and internal repositories.{% else %}{% data variables.product.prodname_code_scanning_capc %} is available if your enterprise uses {% data variables.product.prodname_advanced_security %}.{% endif %} + +{% data variables.product.prodname_code_scanning_capc %} is configured at the repository level. For more information, see "[Setting up {% data variables.product.prodname_code_scanning %} for a repository](/code-security/secure-coding/setting-up-code-scanning-for-a-repository)." + ## Next steps {% ifversion fpt or ghes > 3.1 or ghec %}You can view, filter, and sort security alerts for repositories owned by your organization in the security overview. For more information, see "[About the security overview](/code-security/security-overview/about-the-security-overview)."{% endif %} diff --git a/translations/es-ES/content/code-security/getting-started/securing-your-repository.md b/translations/es-ES/content/code-security/getting-started/securing-your-repository.md index 7cbdb8a96f..eb7b4888b2 100644 --- a/translations/es-ES/content/code-security/getting-started/securing-your-repository.md +++ b/translations/es-ES/content/code-security/getting-started/securing-your-repository.md @@ -24,7 +24,7 @@ This guide shows you how to configure security features for a repository. You mu Your security needs are unique to your repository, so you may not need to enable every feature for your repository. For more information, see "[{% data variables.product.prodname_dotcom %} security features](/code-security/getting-started/github-security-features)." -Some security features are only available {% ifversion fpt or ghec %}for public repositories, and for private repositories owned by organizations with {% else %}if you have {% endif %}an {% data variables.product.prodname_advanced_security %} license. {% data reusables.advanced-security.more-info-ghas %} +{% data reusables.advanced-security.security-feature-availability %} ## Managing access to your repository @@ -51,7 +51,7 @@ For more information, see "[Adding a security policy to your repository](/code-s ## Managing the dependency graph {% ifversion fpt or ghec %} -Once you have [enabled the dependency graph](/code-security/supply-chain-security/understanding-your-software-supply-chain/about-the-dependency-graph#enabling-the-dependency-graph), it is automatically generated for all public repositories, and you can choose to enable it for private repositories. +The dependency graph is automatically generated for all public repositories, and you can choose to enable it for private repositories. It interprets manifest and lock files in a repository to identify dependencies. 1. From the main page of your repository, click **{% octicon "gear" aria-label="The Settings gear" %} Settings**. 2. Click **Security & analysis**. @@ -67,8 +67,9 @@ For more information, see "[Exploring the dependencies of a repository](/code-se {% ifversion fpt or ghes or ghae-issue-4864 or ghec %} ## Managing {% data variables.product.prodname_dependabot_alerts %} -{% ifversion fpt or ghec %}By default, {% data variables.product.prodname_dotcom %} detects vulnerabilities in public repositories and generates {% data variables.product.prodname_dependabot_alerts %}. {% data variables.product.prodname_dependabot_alerts %} can also be enabled for private repositories. +{% data variables.product.prodname_dependabot_alerts %} are generated when {% data variables.product.prodname_dotcom %} identifies a dependency in the dependency graph with a vulnerability. {% ifversion fpt or ghec %}You can enable {% data variables.product.prodname_dependabot_alerts %} for any repository.{% endif %} +{% ifversion fpt or ghec %} 1. Click your profile photo, then click **Settings**. 2. Click **Security & analysis**. 3. Click **Enable all** next to {% data variables.product.prodname_dependabot_alerts %}. @@ -84,10 +85,16 @@ For more information, see "[About alerts for vulnerable dependencies](/code-secu {% ifversion fpt or ghes > 3.1 or ghae-issue-4864 or ghec %} ## Managing dependency review -Dependency review lets you visualize dependency changes in pull requests before they are merged into your repositories. -{%- ifversion fpt %}Dependency review is available in all public repositories. For private and internal repositories you require a license for {% data variables.product.prodname_advanced_security %}. To enable dependency review for a repository, enable the dependency graph and enable {% data variables.product.prodname_advanced_security %}. -{%- elsif ghes or ghae %}Dependency review is available when dependency graph is enabled for {% data variables.product.product_location %} and you enable {% data variables.product.prodname_advanced_security %} for the repository (see below).{% endif %} -For more information, see "[About dependency review](/code-security/supply-chain-security/understanding-your-software-supply-chain/about-dependency-review)." +Dependency review lets you visualize dependency changes in pull requests before they are merged into your repositories. For more information, see "[About dependency review](/code-security/supply-chain-security/understanding-your-software-supply-chain/about-dependency-review)." + +Dependency review is a {% data variables.product.prodname_GH_advanced_security %} feature. {% ifversion fpt or ghec %}Dependency review is already enabled for all public repositories. {% ifversion fpt %}Organizations that use {% data variables.product.prodname_ghe_cloud %} with {% data variables.product.prodname_advanced_security %} can additionally enable dependency review for private and internal repositories. For more information, see the [{% data variables.product.prodname_ghe_cloud %} documentation](/enterprise-cloud@latest/code-security/getting-started/securing-your-repository#managing-dependency-review). {% endif %}{% endif %}{% ifversion ghec or ghes or ghae %}To enable dependency review for a {% ifversion ghec %}private or internal {% endif %}repository, ensure that the dependency graph is enabled and enable {% data variables.product.prodname_GH_advanced_security %}. + +1. From the main page of your repository, click **{% octicon "gear" aria-label="The Settings gear" %}Settings**. +2. Click **Security & analysis**. +3. {% ifversion ghec %}If dependency graph is not already enabled, click **Enable**.{% elsif ghes or ghae %}Check that dependency graph is configured for your enterprise.{% endif %} +4. If {% data variables.product.prodname_GH_advanced_security %} is not already enabled, click **Enable**. + +{% endif %} {% endif %} @@ -113,19 +120,19 @@ To enable {% data variables.product.prodname_dependabot_version_updates %}, you ## Configuring {% data variables.product.prodname_code_scanning %} -{% data variables.product.prodname_code_scanning_capc %} is available {% ifversion fpt or ghec %}for all public repositories, and for private repositories owned by organizations with {% else %} for organization-owned repositories if you have {% endif %}an {% data variables.product.prodname_advanced_security %} license. - You can set up {% data variables.product.prodname_code_scanning %} to automatically identify vulnerabilities and errors in the code stored in your repository by using a {% data variables.product.prodname_codeql_workflow %} or third-party tool. For more information, see "[Setting up {% data variables.product.prodname_code_scanning %} for a repository](/code-security/secure-coding/setting-up-code-scanning-for-a-repository)." -## Configuring {% data variables.product.prodname_secret_scanning %} -{% data variables.product.prodname_secret_scanning_caps %} is available {% ifversion fpt or ghec %}for all public repositories, and for private repositories owned by organizations with {% else %} for organization-owned repositories if you have {% endif %}an {% data variables.product.prodname_advanced_security %} license. +{% data variables.product.prodname_code_scanning_capc %} is available {% ifversion fpt or ghec %}for all public repositories, and for private repositories owned by organizations that are part of an enterprise with a license for {% else %}for organization-owned repositories if your enterprise uses {% endif %}{% data variables.product.prodname_GH_advanced_security %}. -{% data variables.product.prodname_secret_scanning_caps %} may be enabled for your repository by default depending upon your organization's settings. +## Configuring {% data variables.product.prodname_secret_scanning %} + +{% data variables.product.prodname_secret_scanning_caps %} is {% ifversion fpt or ghec %}enabled for all public repositories and is available for private repositories owned by organizations that are part of an enterprise with a license for {% else %}available for organization-owned repositories if your enterprise uses {% endif %}{% data variables.product.prodname_GH_advanced_security %}. {% ifversion fpt %}For more information, see the [{% data variables.product.prodname_ghe_cloud %} documentation](/enterprise-cloud@latest/code-security/getting-started/securing-your-repository#configuring-secret-scanning).{% else %}{% data variables.product.prodname_secret_scanning_caps %} may already be enabled for your repository, depending upon your organization's settings. 1. From the main page of your repository, click **{% octicon "gear" aria-label="The Settings gear" %}Settings**. 2. Click **Security & analysis**. 3. If {% data variables.product.prodname_GH_advanced_security %} is not already enabled, click **Enable**. 4. Next to {% data variables.product.prodname_secret_scanning_caps %}, click **Enable**. +{% endif %} ## Next steps You can view and manage alerts from security features to address dependencies and vulnerabilities in your code. For more information, see {% ifversion fpt or ghes or ghec %} "[Viewing and updating vulnerable dependencies in your repository](/code-security/supply-chain-security/viewing-and-updating-vulnerable-dependencies-in-your-repository),"{% endif %} {% ifversion fpt or ghec or ghes > 3.2 %}"[Managing pull requests for dependency updates](/code-security/supply-chain-security/managing-pull-requests-for-dependency-updates)," {% endif %}"[Managing {% data variables.product.prodname_code_scanning %} for your repository](/code-security/secure-coding/managing-code-scanning-alerts-for-your-repository)," and "[Managing alerts from {% data variables.product.prodname_secret_scanning %}](/code-security/secret-security/managing-alerts-from-secret-scanning)." diff --git a/translations/es-ES/content/code-security/supply-chain-security/managing-vulnerabilities-in-your-projects-dependencies/about-alerts-for-vulnerable-dependencies.md b/translations/es-ES/content/code-security/supply-chain-security/managing-vulnerabilities-in-your-projects-dependencies/about-alerts-for-vulnerable-dependencies.md index 4a20954bbf..1312ef64f1 100644 --- a/translations/es-ES/content/code-security/supply-chain-security/managing-vulnerabilities-in-your-projects-dependencies/about-alerts-for-vulnerable-dependencies.md +++ b/translations/es-ES/content/code-security/supply-chain-security/managing-vulnerabilities-in-your-projects-dependencies/about-alerts-for-vulnerable-dependencies.md @@ -35,8 +35,13 @@ When your code depends on a package that has a security vulnerability, this vuln {% data variables.product.prodname_dependabot %} detects vulnerable dependencies and sends {% data variables.product.prodname_dependabot_alerts %} when: {% ifversion fpt or ghec %} -- A new vulnerability is added to the {% data variables.product.prodname_advisory_database %}. For more information, see "[Browsing security vulnerabilities in the {% data variables.product.prodname_advisory_database %}](/github/managing-security-vulnerabilities/browsing-security-vulnerabilities-in-the-github-advisory-database)" and "[About {% data variables.product.prodname_security_advisories %}](/code-security/security-advisories/about-github-security-advisories)."{% else %} +- A new vulnerability is added to the {% data variables.product.prodname_advisory_database %}. For more information, see "[Browsing security vulnerabilities in the {% data variables.product.prodname_advisory_database %}](/code-security/supply-chain-security/managing-vulnerabilities-in-your-projects-dependencies/browsing-security-vulnerabilities-in-the-github-advisory-database)" and "[About {% data variables.product.prodname_security_advisories %}](/code-security/security-advisories/about-github-security-advisories)."{% else %} - New advisory data is synchronized to {% data variables.product.product_location %} each hour from {% data variables.product.prodname_dotcom_the_website %}. {% data reusables.security-advisory.link-browsing-advisory-db %}{% endif %} + {% note %} + + **Note:** Only advisories that have been reviewed by {% data variables.product.company_short %} will trigger {% data variables.product.prodname_dependabot_alerts %}. + + {% endnote %} - The dependency graph for a repository changes. For example, when a contributor pushes a commit to change the packages or versions it depends on{% ifversion fpt or ghec %}, or when the code of one of the dependencies changes{% endif %}. For more information, see "[About the dependency graph](/code-security/supply-chain-security/about-the-dependency-graph)." {% data reusables.repositories.dependency-review %} diff --git a/translations/es-ES/content/code-security/supply-chain-security/managing-vulnerabilities-in-your-projects-dependencies/browsing-security-vulnerabilities-in-the-github-advisory-database.md b/translations/es-ES/content/code-security/supply-chain-security/managing-vulnerabilities-in-your-projects-dependencies/browsing-security-vulnerabilities-in-the-github-advisory-database.md index 7fd77729d1..34a478356c 100644 --- a/translations/es-ES/content/code-security/supply-chain-security/managing-vulnerabilities-in-your-projects-dependencies/browsing-security-vulnerabilities-in-the-github-advisory-database.md +++ b/translations/es-ES/content/code-security/supply-chain-security/managing-vulnerabilities-in-your-projects-dependencies/browsing-security-vulnerabilities-in-the-github-advisory-database.md @@ -2,6 +2,7 @@ title: Browsing security vulnerabilities in the GitHub Advisory Database intro: 'The {% data variables.product.prodname_advisory_database %} allows you to browse or search for vulnerabilities that affect open source projects on {% data variables.product.company_short %}.' shortTitle: Browse Advisory Database +miniTocMaxHeadingLevel: 3 redirect_from: - /github/managing-security-vulnerabilities/browsing-security-vulnerabilities-in-the-github-advisory-database - /code-security/supply-chain-security/browsing-security-vulnerabilities-in-the-github-advisory-database @@ -22,13 +23,29 @@ topics: {% data reusables.repositories.a-vulnerability-is %} -{% data variables.product.product_name %} will send you {% data variables.product.prodname_dependabot_alerts %} if we detect that any of the vulnerabilities from the {% data variables.product.prodname_advisory_database %} affect the packages that your repository depends on. For more information, see "[About alerts for vulnerable dependencies](/code-security/supply-chain-security/about-alerts-for-vulnerable-dependencies)." - ## About the {% data variables.product.prodname_advisory_database %} -The {% data variables.product.prodname_advisory_database %} contains a curated list of security vulnerabilities that have been mapped to packages tracked by the {% data variables.product.company_short %} dependency graph. {% data reusables.repositories.tracks-vulnerabilities %} +The {% data variables.product.prodname_advisory_database %} contains a list of known security vulnerabilities, grouped in two categories: {% data variables.product.company_short %}-reviewed advisories and unreviewed advisories. -Each security advisory contains information about the vulnerability, including the description, severity, affected package, package ecosystem, affected versions and patched versions, impact, and optional information such as references, workarounds, and credits. In addition, advisories from the National Vulnerability Database list contain a link to the CVE record, where you can read more details about the vulnerability, its CVSS scores, and its qualitative severity level. For more information, see the "[National Vulnerability Database](https://nvd.nist.gov/)" from the National Institute of Standards and Technology. +{% data reusables.repositories.tracks-vulnerabilities %} + +### About {% data variables.product.company_short %}-reviewed advisories + +{% data variables.product.company_short %}-reviewed advisories are security vulnerabilities that have been mapped to packages tracked by the {% data variables.product.company_short %} dependency graph. + +We carefully review each advisory for validity. Each {% data variables.product.company_short %}-reviewed advisory has a full description, and contains both ecosystem and package information. + +If you enable {% data variables.product.prodname_dependabot_alerts %} for your repositories, you are automatically notified when a new {% data variables.product.company_short %}-reviewed advisory affects packages you depend on. For more information, see "[About alerts for vulnerable dependencies](/code-security/supply-chain-security/about-alerts-for-vulnerable-dependencies)." + +### About unreviewed advisories + +Unreviewed advisories are security vulnerabilites that we publish automatically into the {% data variables.product.prodname_advisory_database %}, directly from the National Vulnerability Database feed. + +{% data variables.product.prodname_dependabot %} doesn't create {% data variables.product.prodname_dependabot_alerts %} for unreviewed advisories as this type of advisory isn't checked for validity or completion. + +## About security advisories + +Each security advisory contains information about the vulnerability, which may include the description, severity, affected package, package ecosystem, affected versions and patched versions, impact, and optional information such as references, workarounds, and credits. In addition, advisories from the National Vulnerability Database list contain a link to the CVE record, where you can read more details about the vulnerability, its CVSS scores, and its qualitative severity level. For more information, see the "[National Vulnerability Database](https://nvd.nist.gov/)" from the National Institute of Standards and Technology. The severity level is one of four possible levels defined in the "[Common Vulnerability Scoring System (CVSS), Section 5](https://www.first.org/cvss/specification-document)." - Low @@ -45,6 +62,11 @@ The {% data variables.product.prodname_advisory_database %} uses the CVSS levels 1. Navigate to https://github.com/advisories. 2. Optionally, to filter the list, use any of the drop-down menus. ![Dropdown filters](/assets/images/help/security/advisory-database-dropdown-filters.png) + {% tip %} + + **Tip:** You can use the sidebar on the left to explore {% data variables.product.company_short %}-reviewed and unreviewed advisories separately. + + {% endtip %} 3. Click on any advisory to view details. {% note %} @@ -63,6 +85,8 @@ You can search the database, and use qualifiers to narrow your search. For examp | Qualifier | Example | | ------------- | ------------- | +| `type:reviewed`| [**type:reviewed**](https://github.com/advisories?query=type%3Areviewed) will show {% data variables.product.company_short %}-reviewed advisories. | +| `type:unreviewed`| [**type:unreviewed**](https://github.com/advisories?query=type%3Aunreviewed) will show unreviewed advisories. | | `GHSA-ID`| [**GHSA-49wp-qq6x-g2rf**](https://github.com/advisories?query=GHSA-49wp-qq6x-g2rf) will show the advisory with this {% data variables.product.prodname_advisory_database %} ID. | | `CVE-ID`| [**CVE-2020-28482**](https://github.com/advisories?query=CVE-2020-28482) will show the advisory with this CVE ID number. | | `ecosystem:ECOSYSTEM`| [**ecosystem:npm**](https://github.com/advisories?utf8=%E2%9C%93&query=ecosystem%3Anpm) will show only advisories affecting NPM packages. | @@ -80,7 +104,7 @@ You can search the database, and use qualifiers to narrow your search. For examp ## Viewing your vulnerable repositories -For any vulnerability in the {% data variables.product.prodname_advisory_database %}, you can see which of your repositories have a {% data variables.product.prodname_dependabot %} alert for that vulnerability. To see a vulnerable repository, you must have access to {% data variables.product.prodname_dependabot_alerts %} for that repository. For more information, see "[About alerts for vulnerable dependencies](/code-security/supply-chain-security/about-alerts-for-vulnerable-dependencies#access-to-dependabot-alerts)." +For any {% data variables.product.company_short %}-reviewed advisory in the {% data variables.product.prodname_advisory_database %}, you can see which of your repositories are affected by that security vulnerability. To see a vulnerable repository, you must have access to {% data variables.product.prodname_dependabot_alerts %} for that repository. For more information, see "[About alerts for vulnerable dependencies](/code-security/supply-chain-security/about-alerts-for-vulnerable-dependencies#access-to-dependabot-alerts)." 1. Navigate to https://github.com/advisories. 2. Click an advisory. diff --git a/translations/es-ES/content/code-security/supply-chain-security/managing-vulnerabilities-in-your-projects-dependencies/index.md b/translations/es-ES/content/code-security/supply-chain-security/managing-vulnerabilities-in-your-projects-dependencies/index.md index d629122ab7..067cab1c4a 100644 --- a/translations/es-ES/content/code-security/supply-chain-security/managing-vulnerabilities-in-your-projects-dependencies/index.md +++ b/translations/es-ES/content/code-security/supply-chain-security/managing-vulnerabilities-in-your-projects-dependencies/index.md @@ -2,9 +2,9 @@ title: Managing vulnerabilities in your project's dependencies intro: 'You can track your repository''s dependencies and receive {% data variables.product.prodname_dependabot_alerts %} when {% data variables.product.product_name %} detects vulnerable dependencies.' redirect_from: - - /articles/updating-your-project-s-dependencies/ - - /articles/updating-your-projects-dependencies/ - - /articles/managing-security-vulnerabilities-in-your-projects-dependencies/ + - /articles/updating-your-project-s-dependencies + - /articles/updating-your-projects-dependencies + - /articles/managing-security-vulnerabilities-in-your-projects-dependencies - /articles/managing-vulnerabilities-in-your-projects-dependencies - /github/managing-security-vulnerabilities/managing-vulnerabilities-in-your-projects-dependencies versions: diff --git a/translations/es-ES/content/codespaces/codespaces-reference/allowing-your-codespace-to-access-a-private-image-registry.md b/translations/es-ES/content/codespaces/codespaces-reference/allowing-your-codespace-to-access-a-private-image-registry.md index b65234f96f..7130649af7 100644 --- a/translations/es-ES/content/codespaces/codespaces-reference/allowing-your-codespace-to-access-a-private-image-registry.md +++ b/translations/es-ES/content/codespaces/codespaces-reference/allowing-your-codespace-to-access-a-private-image-registry.md @@ -74,12 +74,38 @@ ACR_CONTAINER_REGISTRY_USER = acr-user-here ACR_CONTAINER_REGISTRY_PASSWORD = ``` -For information on common image registries, see "[Common image registry servers](#common-image-registry-servers)." +For information on common image registries, see "[Common image registry servers](#common-image-registry-servers)." Note that accessing AWS Elastic Container Registry (ECR) is different. ![Image registry secret example](/assets/images/help/settings/codespaces-image-registry-secret-example.png) Once you've added the secrets, you may need to stop and then start the codespace you are in for the new environment variables to be passed into the container. For more information, see "[Suspending or stopping a codespace](/codespaces/codespaces-reference/using-the-command-palette-in-codespaces#suspending-or-stopping-a-codespace)." +#### Accessing AWS Elastic Container Registry + +To access AWS Elastic Container Registry (ECR), you can provide an AWS access key ID and secret key, and {% data variables.product.prodname_dotcom %} can retrieve an access token for you and log in on your behalf. + +``` +*_CONTAINER_REGISTRY_SERVER = +*_CONTAINER_REGISTRY_USER = +*_container_REGISTRY_PASSWORD = +``` + +You must also ensure you have the appropriate AWS IAM permissions to perform the credential swap (e.g. `sts:GetServiceBearerToken`) as well as the ECR read operation (either `AmazonEC2ContainerRegistryFullAccess` or `ReadOnlyAccess`). + +Alternatively, if you don't want GitHub to perform the credential swap on your behalf, you can provide an authorization token fetched via AWS's APIs or CLI. + +``` +*_CONTAINER_REGISTRY_SERVER = +*_CONTAINER_REGISTRY_USER = AWS +*_container_REGISTRY_PASSWORD = +``` + +Since these tokens are short lived and need to be refreshed periodically, we recommend providing an access key ID and secret. + +While these secrets can have any name, so long as the `*_CONTAINER_REGISTRY_SERVER` is an ECR URL, we recommend using `ECR_CONTAINER_REGISTRY_*` unless you are dealing with multiple ECR registries. + +For more information, see AWS ECR's "[Private registry authentication documentation](https://docs.aws.amazon.com/AmazonECR/latest/userguide/registry_auth.html)." + ### Common image registry servers Some of the common image registry servers are listed below: @@ -90,6 +116,6 @@ Some of the common image registry servers are listed below: - [AWS Elastic Container Registry](https://docs.aws.amazon.com/AmazonECR/latest/userguide/Registries.html) - `.dkr.ecr..amazonaws.com` - [Google Cloud Container Registry](https://cloud.google.com/container-registry/docs/overview#registries) - `gcr.io` (US), `eu.gcr.io` (EU), `asia.gcr.io` (Asia) -#### Accessing AWS Elastic Container Registry +## Debugging private image registry access -If you want to access AWS Elastic Container Registry (ECR), you must provide an AWS authorization token in the `ECR_CONTAINER_REGISTRY_PASSWORD`. This authorization token is not the same as your secret key. You can obtain an AWS authorization token by using AWS's APIs or CLI. These tokens are short lived and will need to be refreshed periodically. For more information, see AWS ECR's "[Private registry authentication documentation](https://docs.aws.amazon.com/AmazonECR/latest/userguide/registry_auth.html)." +If you are having trouble pulling an image from a private image registry, make sure you are able to run `docker login -u -p `, using the values of the secrets defined above. If login fails, ensure that the login credentials are valid and that you have the apprioriate permissions on the server to fetch a container image. If login succeeds, make sure that these values are copied appropriately into the right {% data variables.product.prodname_codespaces %} secrets, either at the user, repository, or organization level and try again. \ No newline at end of file diff --git a/translations/es-ES/content/codespaces/codespaces-reference/security-in-codespaces.md b/translations/es-ES/content/codespaces/codespaces-reference/security-in-codespaces.md index 7f41a25ffd..8836b428f8 100644 --- a/translations/es-ES/content/codespaces/codespaces-reference/security-in-codespaces.md +++ b/translations/es-ES/content/codespaces/codespaces-reference/security-in-codespaces.md @@ -1,6 +1,6 @@ --- -title: La seguridad den los Codespaces -intro: 'Resumen de la arquitectura de seguridad de {% data variables.product.prodname_codespaces %}, con lineamientos para ayudarte a mantener la seguridad y minimizar el riesgo de un ataque.' +title: Security in Codespaces +intro: 'Overview of the {% data variables.product.prodname_codespaces %} security architecture, with guidelines to help you maintain security and minimize the risk of attack.' miniTocMaxHeadingLevel: 3 versions: fpt: '*' @@ -9,100 +9,100 @@ topics: - Codespaces - Security type: reference -shortTitle: Seguridad en los Codespaces +shortTitle: Security in Codespaces --- -## Resumen de la seguridad de un codespace +## Overview of codespace security -{% data variables.product.prodname_codespaces %} se diseñó para que, predeterminadamente, tuviera seguridad reforzada. Como consecuencia, necesitarás garantizar que tus prácticas de desarrollo de software no arriesguen el reducir la postura de seguridad de tu codespace. +{% data variables.product.prodname_codespaces %} is designed to be security hardened by default. Consequently, you will need to ensure that your software development practices do not risk reducing the security posture of your codespace. -Esta guía describe la forma en la que Codespaces mantiene seguro tu ambiente de desarrollo y proporciona algunas de las buenas prácticas que ayudarán a mantener tu seguridad conforme trabajas. Como con cualquier herramienta de desarrollo, recuerda que solo debes intentar abrir y trabajar en repositorios que conoces y confías. +This guide describes the way Codespaces keeps your development environment secure and provides some of the good practices that will help maintain your security as you work. As with any development tool, remember that you should only open and work within repositories you know and trust. -### Aislamiento de ambiente +### Environment isolation -{% data variables.product.prodname_codespaces %} se diseñó para mantener tus codespaces separados entre sí, con cada uno utilizando su red y máquina virtual propias. +{% data variables.product.prodname_codespaces %} is designed to keep your codespaces separate from each other, with each using its own virtual machine and network. -#### Máquinas virtuales aisladas +#### Isolated virtual machines -Cada codespace se hospeda en su máquina virtual (MV) recién creada. Dos codespaces jamás podrán ubicase en la misma MV. +Each codespace is hosted on its own newly-built virtual machine (VM). Two codespaces are never co-located on the same VM. -Cada vez que reinicias un codespace, este se lanza en una MV nueva con las actualizaciones más recientes de seguridad disponibles. +Every time you restart a codespace, it's deployed to a new VM with the latest available security updates. -#### Conexiones aisladas +#### Isolated networking -Cada codespace tiene su propia red virtual aislada. Utilizamos cortafuegos para bloquear las conexiones entrantes de la internet y para prevenir que los codespaces se comuniquen entre sí en redes internas. Predeterminadamente, se permite que los codespaces hagan conexiones salientes a la internet. +Each codespace has its own isolated virtual network. We use firewalls to block incoming connections from the internet and to prevent codespaces from communicating with each other on internal networks. By default, codespaces are allowed to make outbound connections to the internet. -### Autenticación +### Authentication -Puedes conectarte a un codespace utilizando un buscador web o desde Visual Studio Code. Si te conectas desde Visual Studio Code, se te pedirá autenticarte con {% data variables.product.product_name %}. +You can connect to a codespace using a web browser or from Visual Studio Code. If you connect from Visual Studio Code, you are prompted to authenticate with {% data variables.product.product_name %}. -Cada vez que se cree o reinicie un codespace, se le asignará un token de {% data variables.product.company_short %} nuevo con un periodo de vencimiento automático. Este periodo te permite trabajar en el codespace sin necesitar volver a autenticarte durante un día de trabajo habitual, pero reduce la oportunidad de que dejes la conexión abierta cuando dejas de utilizar el codespace. +Every time a codespace is created or restarted, it's assigned a new {% data variables.product.company_short %} token with an automatic expiry period. This period allows you to work in the codespace without needing to reauthenticate during a typical working day, but reduces the chance that you will leave a connection open when you stop using the codespace. -El alcance del token variará dependiendo del tipo de acceso que tengas en el repositorio en donde se creó el codespace: +The token's scope will vary depending on the access you have to the repository where the codespace was created: -- **Si tienes acceso de escritura en el repositorio**: Se dará al token un alcance de acceso de lectura/escritura a este. -- **So solo tienes acceso de lectura al repositorio**: El token solo permitirá que el código se clone desde el repositorio origen. Si intentas subir información a un repositorio privado en donde solo tengas acceso de lectura, {% data variables.product.prodname_codespaces %} te pedirá crear una bifurcación personal de este. El token entonces se actualizará para tener acceso de lectura/escritura a la bifurcación personal nueva. -- **Si habilitaste tu codespace para que acceda a otros repositorios**: Cuando se le otorga [acceso a otros repositorios](/codespaces/managing-codespaces-for-your-organization/managing-access-and-security-for-your-organizations-codespaces) a un codespace, cualquiera de ellos que se cree desde ese repositorio tendrá tokens de lectura/escritura con alcance del repositorio origen. Adicionalmente, los tokens también recibirán acceso de lectura para otros repositorios que indique el usuario u organización. +- **If you have write access to the repository**: The token will be scoped for read/write access to the repository. +- **If you only have read access to the repository**: The token will only allow the code to be cloned from the source repository. If you attempt to push to a private repo where you only have read access, {% data variables.product.prodname_codespaces %} will prompt you to create a personal fork of the repository. The token will then be updated to have read/write access to the new personal fork. +- **If you've enabled your codespace to access other repositories**: When a codespace has been granted [access to other repositories](/codespaces/managing-codespaces-for-your-organization/managing-access-and-security-for-your-organizations-codespaces), any codespace created from that repository will have read/write tokens scoped to the source repository. In addition, the tokens will also receive read access to other repositories indicated by the user or organization. -Los administradores de una organización especifican qué repositorios deberían considerarse como confiables. Un administrador puede [elegir confiar en](/codespaces/managing-codespaces-for-your-organization/managing-access-and-security-for-your-organizations-codespaces) todos, ninguno o algunos de los repositorios de la organización. Un codespace no puede tener permisos de acceso a los recursos si son mayores que los de la persona que lo creó, incluso si el administrador de la organización otorgó acceso a todos los usuarios y a todos los repositorios. +An organization's administrators specify which repositories should be considered trusted. An admin can [choose to trust](/codespaces/managing-codespaces-for-your-organization/managing-access-and-security-for-your-organizations-codespaces) none, all, or some of the organization's repositories. A codespace can't have greater permissions to access resources than the person who created it, even if the organization administrator has granted access to all users and all repositories. -### Conexiones de los codespaces +### Codespace connections -Puedes conectar tu codespace utilizando el túnel cifrado de TLS que proporciona el servicio de {% data variables.product.prodname_codespaces %}. Solo el creador de un codespace puede conectarse a este. Las conexiones se autentican con {% data variables.product.product_name %}. +You can connect to your codespace using the TLS encrypted tunnel provided by the {% data variables.product.prodname_codespaces %} service. Only the creator of a codespace can connect to a codespace. Connections are authenticated with {% data variables.product.product_name %}. -Si necesitas permitir el acceso externo a los servicios que se ejecutan en un codespace, puedes habilitar el reenvío de puertos para acceso público o privado. +If you need to allow external access to services running on a codespace, you can enable port forwarding for private or public access. -### Reenvío de puertos +### Port forwarding -Si necesitas conectarte a un servicio (tal como un servidor web de desarrollo) que se ejecute en tu codespace, puedes configurar el reenvío de puertos para hacer que el servicio esté disponible en la internet. +If you need to connect to a service (such as a development web server) running within your codespace, you can configure port forwarding to make the service available on the internet. -**Puertos reenviados de forma privada**: Son accesibles mediante el internet, pero solo el creador del codespace puede acceder a ellos después de autenticarse en {% data variables.product.product_name %}. +**Privately forwarded ports**: Are accessible on the internet, but only the codespace creator can access them, after authenticating to {% data variables.product.product_name %}. **Publicly forwarded ports within your organization**: Are accessible on the internet, but only to members of the same organization as the codespace, after authenticating to {% data variables.product.product_name %}. -**Puertos reenviados de forma pública**: Se puede acceder a ellos desde internet y todos pueden acceder a ellos. No se necesita autenticación para acceder a los puertos públicos reenviados. +**Publicly forwarded ports**: Are accessible on the internet, and anyone on the internet can access them. No authentication is needed to access public forwarded ports. -Todos los puertos reenviados son privados predeterminadamente, lo cual significa que necesitarás autenticarte antes de poder acceder al puerto. El acceso a los puertos privados reenviados de un codespace se controla mediante cookies de autenticación con un periodo de vencimiento de 3 horas. Cuando la cookie venza, necesitarás volver a autenticarte. +All forwarded ports are private by default, which means that you will need to authenticate before you can access the port. Access to a codespace's private forwarded ports is controlled by authentication cookies with a 3-hour expiry period. When the cookie expires, you will need to reauthenticate. -Un puerto público renviado se revertirá automáticamente a privado cuando elimines y vuelvas a agregar dicho puerto o si reinicias el codespace. +A public forwarded port will automatically revert back to private when you remove and re-add the port, or if you restart the codespace. -Puedes utilizar el panel de "Puertos" para configurar uno de ellos para su acceso público o privado y puedes detener el reenvío de puertos cuando ya no sea necesario. Para obtener más información, consulta la sección "[Reenviar puertos en tu codespace](/codespaces/developing-in-codespaces/forwarding-ports-in-your-codespace)". +You can use the "Ports" panel to configure a port for public or private access, and can stop port forwarding when it's no longer required. For more information, see "[Forwarding ports in your codespace](/codespaces/developing-in-codespaces/forwarding-ports-in-your-codespace)." -## Buenas prácticas de seguridad para tus codespaces +## Good security practices for your codespaces -Los codespaces se diseñan para estar fortalecidos en seguridad predeterminadamente. Para ayudar a mantener esta postura, te recomendamos que sigas las buenas prácticas de seguridad durante tus procedimientos de desarrollo: +Codespaces are designed to be security hardened by default. To help maintain this posture, we recommend that you follow good security practices during your development procedures: -- Como con cualquier herramienta de desarrollo, recuerda que solo debes intentar abrir y trabajar en repositorios que conoces y confías. -- Antes de agregar cualquier dependencia nueva al codespace, revisa si se mantienen bien y si lanzan actualizaciones para arreglar cualquier vulnerabilidad de seguridad que se encuentre en su código. +- As with any development tool, remember that you should only open and work within repositories you know and trust. +- Before you add new dependencies to the codespace, check whether they are well-maintained, and if they release updates to fix any security vulnerabilities found in their code. -### Utilizar secretos para acceder a la información sensible +### Using secrets to access sensitive information -Utiliza siempre secretos cifrados cuando quieras utilizar información sensible (tal como tokens de acceso) en un codespace. Puedes acceder a tus secretos como variables de ambiente en el codespace, incluso desde la terminal. Por ejemplo, puedes lanzar una terminal dentro de tu codespace y utilizar `echo $SECRET_NAME` para ver el valor del secreto. +Always use encrypted secrets when you want to use sensitive information (such as access tokens) in a codespace. You can access your secrets as environment variables in the codespace, including from the terminal. For example, you can launch a terminal within your codespace and use `echo $SECRET_NAME ` to see the value of a secret. -Los valores del secreto se copian a las variables de ambiente cada que el codespace se reanuda o se crea, así que, si actualizas un valor secreto mientras el codespace se ejecuta, necesitarás suspender y reanudar para para tomar el valor actualziado. +The secret values are copied to environment variables whenever the codespace is resumed or created, so if you update a secret value while the codespace is running, you’ll need to suspend and resume to pick up the updated value. -Para obtener más información sobre los secretos, consulta: -- "[Administrar los secretos cifrados para tus codespaces](/codespaces/managing-your-codespaces/managing-encrypted-secrets-for-your-codespaces)" -- "[Administrar los secretos cifrados para tu repositorio y organización para los Codespaces](/codespaces/managing-codespaces-for-your-organization/managing-encrypted-secrets-for-your-repository-and-organization-for-codespaces)" +For more information on secrets, see: +- "[Managing encrypted secrets for your codespaces](/codespaces/managing-your-codespaces/managing-encrypted-secrets-for-your-codespaces)" +- "[Managing encrypted secrets for your repository and organization for Codespaces](/codespaces/managing-codespaces-for-your-organization/managing-encrypted-secrets-for-your-repository-and-organization-for-codespaces)" -### Trabajar con las contribuciones y repositorios de otros +### Working with other people's contributions and repositories -Cuando creas un codespace desde una rama de solicitud de cambios desde una bifurcación, el token en el codespace variará dependiendo de si el repositorio es público o privado: -- En el caso de un repositorio privado, el codespace obtiene acceso tanto a la bifurcación como al padre. -- En el caso de un repositorio público, el codespace solo tendrá acceso a la bifurcación y a abrir solicitudes de cambios en el padre. +When you create a codespace from a PR branch from a fork, the token in the codespace will vary depending on whether the repository is public or private: +- For a private repository, the codespace is granted access to both the fork and parent. +- For a public repository, the codespace will only have access to the fork and opening PRs on the parent. -### Buenas prácticas adicionales +### Additional good practices -Existen algunas buenas prácticas adicionales y riesgos de los cuales debes estar consciente cuando utilices los {% data variables.product.prodname_codespaces %}. +There are some additional good practices and risks that you should be aware of when using {% data variables.product.prodname_codespaces %}. -#### Entender el archivo de devcontainer.json de un repositorio +#### Understanding a repository's devcontainer.json file -Cuando creas un codespace, el [devcontainer.json](https://code.visualstudio.com/docs/remote/devcontainerjson-reference) se interpreta y aplica desde el repositorio fuente, en caso de que exista. El devcontainer contiene características poderosas, tales como instalar extensiones de terceros y ejecutar código arbitrario a través de un `postCreateCommand` suministrado. +When creating a codespace, the [devcontainer.json](https://code.visualstudio.com/docs/remote/devcontainerjson-reference) is parsed and applied from the source repo, if one exists. The devcontainer contains powerful features, such as installing third-party extensions and running arbitrary code through a supplied `postCreateCommand`. -#### Otorgar acceso a través de características +#### Granting access through features -Ciertas características de desarrollo pueden agregar riesgos a tu ambiente potencialmente. Por ejemplo, el firmar confirmaciones, inyectar secretos en las variables de ambiente, tener acceso autenticado al registro y acceder a los paquetes pueden representar problemas potenciales de seguridad. Te recomendamos que solo otorgues acceso a aquellos que lo necesiten y que adoptes una política de ser tan restrictivo como sea posible. +Certain development features can potentially add risk to your environment. For example, commit signing, secrets injected into environment variables, authenticated registry access, and packages access can all present potential security issues. We recommend that you only grant access to those who need it and adopt a policy of being as restrictive as possible. -#### Utilizar extensiones +#### Using extensions -Cualquier extensión adicional de {% data variables.product.prodname_vscode %} que hayas instalado puede introducir más riesgos potencialmente. Para ayudar a mitigar este riesgo, asegúrate de que solo instales extensiones confiables y de que siempre se mantengan actualizadas. +Any additional {% data variables.product.prodname_vscode %} extensions that you've installed can potentially introduce more risk. To help mitigate this risk, ensure that the you only install trusted extensions, and that they are always kept up to date. diff --git a/translations/es-ES/content/codespaces/customizing-your-codespace/setting-your-timeout-period-for-codespaces.md b/translations/es-ES/content/codespaces/customizing-your-codespace/setting-your-timeout-period-for-codespaces.md index 4ddd9466a3..6df3c42808 100644 --- a/translations/es-ES/content/codespaces/customizing-your-codespace/setting-your-timeout-period-for-codespaces.md +++ b/translations/es-ES/content/codespaces/customizing-your-codespace/setting-your-timeout-period-for-codespaces.md @@ -18,12 +18,12 @@ A codespace will stop running after a period of inactivity. You can specify the {% endwarning %} -## Setting your default timeout - {% include tool-switcher %} {% webui %} +## Setting your default timeout + {% data reusables.user_settings.access_settings %} {% data reusables.user_settings.codespaces-tab %} 1. Under "Default idle timeout", enter the time that you want, then click **Save**. The time must be between 5 minutes and 240 minutes (4 hours). @@ -33,14 +33,16 @@ A codespace will stop running after a period of inactivity. You can specify the {% cli %} +## Setting your timeout period + {% data reusables.cli.cli-learn-more %} -To set the timeout period, use the `idle-timeout` argument with the `codespace create` subcommand. Specify the time in minutes, followed by `m`. The time must be between 5 minutes and 240 minutes (5 hours). +To set the timeout period when you create a codespace, use the `idle-timeout` argument with the `codespace create` subcommand. Specify the time in minutes, followed by `m`. The time must be between 5 minutes and 240 minutes (4 hours). ```shell gh codespace create --idle-timeout 90m ``` -If you do not specify a timeout period when creating a codespace, then your default timeout period will be used. You cannot currently specify a default timeout period for all future codespaces through {% data variables.product.prodname_cli %}. +If you don't specify a timeout period when you create a codespace, then the default timeout period will be used. For information about setting a default timeout period, click the "Web browser" tab on this page. You can't currently specify a default timeout period through {% data variables.product.prodname_cli %}. {% endcli %} diff --git a/translations/es-ES/content/codespaces/developing-in-codespaces/default-environment-variables-for-your-codespace.md b/translations/es-ES/content/codespaces/developing-in-codespaces/default-environment-variables-for-your-codespace.md new file mode 100644 index 0000000000..1eb32e030f --- /dev/null +++ b/translations/es-ES/content/codespaces/developing-in-codespaces/default-environment-variables-for-your-codespace.md @@ -0,0 +1,40 @@ +--- +title: Default environment variables for your codespace +shortTitle: Default environment variables +product: '{% data reusables.gated-features.codespaces %}' +permissions: '{% data reusables.codespaces.availability %}' +intro: '{% data variables.product.prodname_dotcom %} sets default environment variables for each codespace.' +versions: + fpt: '*' + ghec: '*' +type: overview +topics: + - Codespaces + - Fundamentals + - Developer +--- + +## About default environment variables + +{% data variables.product.prodname_dotcom %} sets default environment variables for every codespace. Commands run in codespaces can create, read, and modify environment variables. + +{% note %} + +**Note**: Environment variables are case-sensitive. + +{% endnote %} + +## List of default environment variables + +| Environment variable | Description | +| ---------------------|------------ | +| `CODESPACE_NAME` | The name of the codespace For example, `monalisa-github-hello-world-2f2fsdf2e` | +| `CODESPACES` | Always `true` while in a codespace | +| `GIT_COMMITTER_EMAIL` | The email for the "author" field of future `git` commits. | +| `GIT_COMMITTER_NAME` | The name for the "committer" field of future `git` commits. | +| `GITHUB_API_URL` | Returns the API URL. For example, `{% data variables.product.api_url_code %}`. | +| `GITHUB_GRAPHQL_URL` | Returns the GraphQL API URL. For example, `{% data variables.product.graphql_url_code %}`. | +| `GITHUB_REPOSITORY` | The owner and repository name. For example, `octocat/Hello-World`. | +| `GITHUB_SERVER_URL`| Returns the URL of the {% data variables.product.product_name %} server. For example, `https://{% data variables.product.product_url %}`. | +| `GITHUB_TOKEN` | A signed auth token representing the user in the codespace. You can use this to make authenticated calls to the GitHub API. For more information, see "[Authentication](/codespaces/codespaces-reference/security-in-codespaces#authentication)." | +| `GITHUB_USER` | The name of the user that initiated the codespace. For example, `octocat`. | \ No newline at end of file diff --git a/translations/es-ES/content/codespaces/developing-in-codespaces/index.md b/translations/es-ES/content/codespaces/developing-in-codespaces/index.md index 0558dd88ff..64e671622b 100644 --- a/translations/es-ES/content/codespaces/developing-in-codespaces/index.md +++ b/translations/es-ES/content/codespaces/developing-in-codespaces/index.md @@ -15,6 +15,7 @@ children: - /using-codespaces-for-pull-requests - /deleting-a-codespace - /forwarding-ports-in-your-codespace + - /default-environment-variables-for-your-codespace - /connecting-to-a-private-network - /using-codespaces-in-visual-studio-code - /using-codespaces-with-github-cli diff --git a/translations/es-ES/content/codespaces/managing-codespaces-for-your-organization/enabling-codespaces-for-your-organization.md b/translations/es-ES/content/codespaces/managing-codespaces-for-your-organization/enabling-codespaces-for-your-organization.md index f534a02538..7e68cd8fd1 100644 --- a/translations/es-ES/content/codespaces/managing-codespaces-for-your-organization/enabling-codespaces-for-your-organization.md +++ b/translations/es-ES/content/codespaces/managing-codespaces-for-your-organization/enabling-codespaces-for-your-organization.md @@ -37,10 +37,19 @@ By default, a codespace can only access the repository from which it was created {% data reusables.organizations.click-codespaces %} 1. Under "User permissions", select one of the following options: - * **Allow for all users** to allow all your organization members to use {% data variables.product.prodname_codespaces %}. * **Selected users** to select specific organization members to use {% data variables.product.prodname_codespaces %}. + * **Allow for all members** to allow all your organization members to use {% data variables.product.prodname_codespaces %}. + * **Allow for all members and outside collaborators** to allow all your organization members as well as outside collaborators to use {% data variables.product.prodname_codespaces %}. - ![Radio buttons for "User permissions"](/assets/images/help/codespaces/organization-user-permission-settings.png) + ![Radio buttons for "User permissions"](/assets/images/help/codespaces/org-user-permission-settings-outside-collaborators.png) + + {% note %} + + **Note:** When you select **Allow for all members and outside collaborators**, all outside collaborators who have been added to specific repositories can create and use {% data variables.product.prodname_codespaces %}. Your organization will be billed for all usage incurred by outside collaborators. For more information on managing outside collaborators, see "[About outside collaborators](/organizations/managing-access-to-your-organizations-repositories/adding-outside-collaborators-to-repositories-in-your-organization#about-outside-collaborators)." + + {% endnote %} + +1. Click **Save**. ## Disabling {% data variables.product.prodname_codespaces %} for your organization diff --git a/translations/es-ES/content/codespaces/the-githubdev-web-based-editor.md b/translations/es-ES/content/codespaces/the-githubdev-web-based-editor.md index c41524a9b7..087e959b0e 100644 --- a/translations/es-ES/content/codespaces/the-githubdev-web-based-editor.md +++ b/translations/es-ES/content/codespaces/the-githubdev-web-based-editor.md @@ -1,6 +1,6 @@ --- -title: El editor basado en web de github.dev -intro: 'Utiliza el github.dev {% data variables.product.prodname_serverless %} desde tu repositorio o solicitud de cambios para crear y confirmar cambios.' +title: The github.dev web-based editor +intro: 'Use the github.dev {% data variables.product.prodname_serverless %} from your repository or pull request to create and commit changes.' versions: fpt: '*' ghec: '*' @@ -10,98 +10,99 @@ topics: - Codespaces - Visual Studio Code - Developer -shortTitle: Editor basado en la web +shortTitle: Web-based editor redirect_from: - /codespaces/developing-in-codespaces/web-based-editor --- {% note %} -**Nota:** el github.dev {% data variables.product.prodname_serverless %} se encuentra acutalmente en vista previa beta. Puedes proporcionar retroalimentación [En nuestros debates](https://github.co/browser-editor-feedback). +**Note:** The github.dev {% data variables.product.prodname_serverless %} is currently in beta preview. You can provide feedback [in our Discussions](https://github.co/browser-editor-feedback). {% endnote %} -## Acerca de {% data variables.product.prodname_serverless %} +## About the {% data variables.product.prodname_serverless %} -El {% data variables.product.prodname_serverless %} presenta una experiencia de edición ligera que se ejecuta completamente en tu buscador. Con el {% data variables.product.prodname_serverless %}, puedes navegar por los archivos y repositorios de código abierto desde {% data variables.product.prodname_dotcom %} y hacer y confirmar cambios de código. Puedes abrir cualquier repositorio, bifurcación o solicitud de cambios en el editor. +The {% data variables.product.prodname_serverless %} introduces a lightweight editing experience that runs entirely in your browser. With the {% data variables.product.prodname_serverless %}, you can navigate files and source code repositories from {% data variables.product.prodname_dotcom %}, and make and commit code changes. You can open any repository, fork, or pull request in the editor. -El {% data variables.product.prodname_serverless %} se encuentra disponible gratuitamente para todos en {% data variables.product.prodname_dotcom_the_website %}. +The {% data variables.product.prodname_serverless %} is available to everyone for free on {% data variables.product.prodname_dotcom_the_website %}. -El {% data variables.product.prodname_serverless %} proporciona muchos de los beneficios de {% data variables.product.prodname_vscode %}, tales como búsqueda, resaltado de sintaxis y vista de control de código fuente. También puedes utilizar la Sincronización de Ajustes para compartir tus propios ajustes de {% data variables.product.prodname_vscode %} con el editor. Para obtener más información, consulta la sección de "[Sincronización de ajustes](https://code.visualstudio.com/docs/editor/settings-sync)" en la documentación de {% data variables.product.prodname_vscode %}. +The {% data variables.product.prodname_serverless %} provides many of the benefits of {% data variables.product.prodname_vscode %}, such as search, syntax highlighting, and a source control view. You can also use Settings Sync to share your own {% data variables.product.prodname_vscode %} settings with the editor. For more information, see "[Settings Sync](https://code.visualstudio.com/docs/editor/settings-sync)" in the {% data variables.product.prodname_vscode %} documentation. -El {% data variables.product.prodname_serverless %} se ejecuta completamente en el área de pruebas de tu buscador. El editor no clona el repositorio, sino que utiliza la [extensión de repositorios de GitHub](https://code.visualstudio.com/docs/editor/github#_github-repositories-extension) para llevar a cabo la mayoría de la funcionalidad que utilizarás. Tu trabajo se guarda en el almacenamiento local de tu buscador hasta que lo confirmes. Debes confirmar tus cambios frecuentemente para asegurarte de que siempre sean accesibles. +The {% data variables.product.prodname_serverless %} runs entirely in your browser’s sandbox. The editor doesn’t clone the repository, but instead uses the [GitHub Repositories extension](https://code.visualstudio.com/docs/editor/github#_github-repositories-extension) to carry out most of the functionality that you will use. Your work is saved in the browser’s local storage until you commit it. You should commit your changes regularly to ensure that they're always accessible. -## Abrir el {% data variables.product.prodname_serverless %} +## Opening the {% data variables.product.prodname_serverless %} -Puedes abrir cualquier repositorio de {% data variables.product.prodname_dotcom %} en el {% data variables.product.prodname_serverless %} en cualquiera de las siguientes formas: +You can open any {% data variables.product.prodname_dotcom %} repository in the {% data variables.product.prodname_serverless %} in either of the following ways: -- Presiona `.` cuando estés buscando cualquier repositorio o solicitud de cambios en {% data variables.product.prodname_dotcom %}. -- Cambiando la URL de "github.com" a "github.dev". +- Press `.` while browsing any repository or pull request on {% data variables.product.prodname_dotcom %}. +- Change the URL from "github.com" to "github.dev". + +## {% data variables.product.prodname_codespaces %} and the {% data variables.product.prodname_serverless %} -## {% data variables.product.prodname_codespaces %} y el {% data variables.product.prodname_serverless %} +Both the {% data variables.product.prodname_serverless %} and {% data variables.product.prodname_codespaces %} allow you to edit your code straight from your repository. However, both have slightly different benefits, depending on your use case. -Tanto el {% data variables.product.prodname_serverless %} como los {% data variables.product.prodname_codespaces %} te permiten editar el código directamente desde tu repositorio. Sin embargo, ambos tienen beneficios ligeramente diferentes, dependiendo de tu caso de uso. +|| {% data variables.product.prodname_serverless %} | {% data variables.product.prodname_codespaces %}| +|-|----------------|---------| +| **Cost** | Free. | Costs for compute and storage. For information on pricing, see "[Codespaces pricing](/en/billing/managing-billing-for-github-codespaces/about-billing-for-codespaces#codespaces-pricing)."| +| **Availability** | Available to everyone on GitHub.com. | Available for organizations using GitHub Team or GitHub Enterprise Cloud. | +| **Start up** | The {% data variables.product.prodname_serverless %} opens instantly with a key-press and you can start using it right away, without having to wait for additional configuration or installation. | When you create or resume a codespace, the codespace is assigned a VM and the container is configured based on the contents of a `devcontainer.json` file. This set up may take a few minutes to create the environment. For more information, see "[Creating a Codespace](/codespaces/developing-in-codespaces/creating-a-codespace)." | +| **Compute** | There is no associated compute, so you won’t be able to build and run your code or use the integrated terminal. | With {% data variables.product.prodname_codespaces %}, you get the power of dedicated VM on which you can run and debug your application.| +| **Terminal access** | None. | {% data variables.product.prodname_codespaces %} provides a common set of tools by default, meaning that you can use the Terminal exactly as you would in your local environment.| +| **Extensions** | Only a subset of extensions that can run in the web will appear in the Extensions View and can be installed. For more information, see "[Using extensions](#using-extensions)."| With Codespaces, you can use most extensions from the Visual Studio Code Marketplace.| -| | {% data variables.product.prodname_serverless %} | {% data variables.product.prodname_codespaces %} -| ------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | -| **Costo** | Free. | Costos de cálculo y almacenamiento. Para obtener información sobre los precios, consulta "[Precios de los codespaces](/en/billing/managing-billing-for-github-codespaces/about-billing-for-codespaces#codespaces-pricing)". | -| **Disponibilidad** | Disponible para todos en GitHub.com. | Disponible para las organizaciones que utilizan GitHub Team o GitHub Enterprise Cloud. | -| **Inicio** | El {% data variables.product.prodname_serverless %} se abre instantáneamente al presionar una tecla y puedes comenzar a usarlo de inmediato sin tener que esperar por configuraciones o instalaciones adicionales. | Cuando creas o reanudas un codespace, a este se le asigna una MV y el contenedor se configura con base ene l contenido de un archivo de `devcontainer.json`. Esta configuración puede tomar algunos minutos para crear el ambiente. Para obtener más información, consulta la sección "[Crear un Codespace](/codespaces/developing-in-codespaces/creating-a-codespace)". | -| **Cálculo** | No hay cálculos asociados, así que no podrás compilar y ejecutar tu código ni utilizar la terminal integrada. | Con {% data variables.product.prodname_codespaces %}, obtienes el poder de la MV dedicada en ela que ejecutas y depuras tu aplicación. | -| **Acceso a la terminal** | Ninguno. | {% data variables.product.prodname_codespaces %} proporciona un conjunto común de herramientas predeterminadamente, lo que significa que puedes utilizar la terminal como lo harías en tu ambiente local. | -| **Extensiones** | Solo un subconjunto de extensiones que pueden ejecutarse en la web aparecerá en la Vista de Extensiones y podrá instalarse. Para obtener más información, consulta la sección "[Utilizar las extensiones](#using-extensions)". | Con los Codespaces, puedes utilizar más extensiones desde el Mercado de Visual Studio Code. | +### Continue working on {% data variables.product.prodname_codespaces %} -### Seguir trabajando en {% data variables.product.prodname_codespaces %} +You can start your workflow in the {% data variables.product.prodname_serverless %} and continue working on a codespace, provided you have [access to {% data variables.product.prodname_codespaces %}](/codespaces/developing-in-codespaces/creating-a-codespace#access-to-codespaces). If you try to access the Run and Debug View or the Terminal, you'll be notified that they are not available in the {% data variables.product.prodname_serverless %}. -Puedes iniciar tu flujo de trabajo en el {% data variables.product.prodname_serverless %} y seguir trabajando en un codespace, tomando en cuenta que tengas [acceso a {% data variables.product.prodname_codespaces %}](/codespaces/developing-in-codespaces/creating-a-codespace#access-to-codespaces). Si intentas acceder a la Vista de Ejecución y Depuración o a la Terminal, se ten notificará que no están disponibles en {% data variables.product.prodname_serverless %}. +To continue your work in a codespace, click **Continue Working on…** and select **Create New Codespace** to create a codespace on your current branch. Before you choose this option, you must commit any changes. -Para seguir trabajando en un codespace, haz clic en **Seguir trabajando en…** y selecciona **Crear codespace nuevo** para crear un codespace en tu rama actual. Antes de que elijas esta opción, debes confirmar cualquier cambio. +![A screenshot that shows the "Continue Working on" button in the UI](/assets/images/help/codespaces/codespaces-continue-working.png) -![Una captura de pantalla que muestra el botón "Seguir trabajando en" en la IU](/assets/images/help/codespaces/codespaces-continue-working.png) +## Using source control -## Utilizar el control de código fuente +When you use the {% data variables.product.prodname_serverless %}, all actions are managed through the Source Control View, which is located in the Activity Bar on the left hand side. For more information on the Source Control View, see "[Version Control](https://code.visualstudio.com/docs/editor/versioncontrol)" in the {% data variables.product.prodname_vscode %} documentation. -Cuando utilizas el {% data variables.product.prodname_serverless %}, todas las acciones se administran a través de la Vista de Control de Código Fuente, la cual se ubica en la barra de actividad en la parte izquierda. Para obtener más información sobre la Vista de Control de Código Fuente, consulta la sección "[Control de versiones](https://code.visualstudio.com/docs/editor/versioncontrol)" en la documentación de {% data variables.product.prodname_vscode %}. +Because the web-based editor uses the GitHub Repositories extension to power its functionality, you can switch branches without needing to stash changes. For more information, see "[GitHub Repositories](https://code.visualstudio.com/docs/editor/github#_github-repositories-extension)" in the {% data variables.product.prodname_vscode %} documentation. -Ya que el editor basado en web utiliza la extensión de repositorios de GitHub para alimentar su funcionalidad, puedes cambiar de rama sin necesidad de acumular cambios. Para obtener más información, consulta la sección "[Repositorios de GitHub](https://code.visualstudio.com/docs/editor/github#_github-repositories-extension)" en la documentación de {% data variables.product.prodname_vscode %}. - -### Crear una rama nueva +### Create a new branch {% data reusables.codespaces.create-or-switch-branch %} - Cualquier cambio sin confirmar que hayas hecho en tu rama antigua estará disponible en la nueva. + Any uncommitted changes you have made in your old branch will be available on your new branch. -### Confirmar tus cambios +### Commit your changes -{% data reusables.codespaces.source-control-commit-changes %} -5. Una vez que hayas confirmado tus cambios, estos se subirán automáticamente a tu rama de {% data variables.product.prodname_dotcom %}. -### Crear una solicitud de extracción +{% data reusables.codespaces.source-control-commit-changes %} +5. Once you have committed your changes, they will automatically be pushed to your branch on {% data variables.product.prodname_dotcom %}. +### Create a pull request {% data reusables.codespaces.source-control-pull-request %} -### Trabajar con una solicitud de cambios existente +### Working with an existing pull request -Puedes utilizar el {% data variables.product.prodname_serverless %} para trabajar con una solicitud de cambios existente. +You can use the {% data variables.product.prodname_serverless %} to work with an existing pull request. -1. Navega hasta la solicitud de cambios que te gustaría utilizar en el {% data variables.product.prodname_serverless %}. -2. Presiona `.` para abrir la solicitud de cambios en el {% data variables.product.prodname_serverless %}. -3. Una vez que hayas hecho cualquier cambio, confírmalo utilizando los pasos en [Confirmar tus cambios](#commit-your-changes). Tus cambios se confirmarán directamente en la rama, no es necesario subirlos. +1. Browse to the pull request you'd like to open in the {% data variables.product.prodname_serverless %}. +2. Press `.` to open the pull request in the {% data variables.product.prodname_serverless %}. +3. Once you have made any changes, commit them using the steps in [Commit your changes](#commit-your-changes). Your changes will be committed directly to the branch, it's not necessary to push the changes. -## Utilizar extensiones +## Using extensions -El {% data variables.product.prodname_serverless %} es compatible con las extensiones de {% data variables.product.prodname_vscode %} que se hayan creado o actualizado específicamente para ejecutarse en la web. A estas extensiones se les conoce como "extensiones web". Para aprender cómo puedes crear una extensión web o actualizar la existente para que funcione en la web, consulta la sección de "[Extensiones web](https://code.visualstudio.com/api/extension-guides/web-extensions)" en la documnetación de {% data variables.product.prodname_vscode %}. +The {% data variables.product.prodname_serverless %} supports {% data variables.product.prodname_vscode %} extensions that have been specifically created or updated to run in the web. These extensions are known as "web extensions". To learn how you can create a web extension or update your existing extension to work for the web, see "[Web extensions](https://code.visualstudio.com/api/extension-guides/web-extensions)" in the {% data variables.product.prodname_vscode %} documentation. -Las extensiones que puedan ejecutarse en {% data variables.product.prodname_serverless %} aparecerán en la Vista de Extensiones y podrán instalarse. Si utilizas la sincronización de ajustes, cualquier extensión compatible también se instala automáticamente. Para obtener más información, consulta la sección de "[Sincronización de ajustes](https://code.visualstudio.com/docs/editor/settings-sync)" en la documentación de {% data variables.product.prodname_vscode %}. +Extensions that can run in the {% data variables.product.prodname_serverless %} will appear in the Extensions View and can be installed. If you use Settings Sync, any compatible extensions are also installed automatically. For information, see "[Settings Sync](https://code.visualstudio.com/docs/editor/settings-sync)" in the {% data variables.product.prodname_vscode %} documentation. -## Solución de problemas +## Troubleshooting -Si tienes problemas para abrir el {% data variables.product.prodname_serverless %}, intenta lo siguiente: +If you have issues opening the {% data variables.product.prodname_serverless %}, try the following: -- Asegúrate de estar firmado en {% data variables.product.prodname_dotcom %}. -- Inhabilita cualquier bloqueador de anuncios. -- Utiliza una ventana de tu buscador que no esté en modo incógnito para abrir el {% data variables.product.prodname_serverless %}. +- Make sure you are signed in to {% data variables.product.prodname_dotcom %}. +- Disable any ad blockers. +- Use a non-incognito window in your browser to open the {% data variables.product.prodname_serverless %}. -### Limitaciones conocidas +### Known limitations -- El {% data variables.product.prodname_serverless %} es actualmente compatible en Chrome (y en varios otros buscadores basados en Chromium), Edge, Firefox y Safari. Te recomendamos que utilices las últimas versiones de estos buscadores. -- Es posible que algunos enlaces de teclas no funcionen, dependiendo del buscador que estás utilizando. Estas limitaciones de enlaces de teclas se documentan en la sección de "[limitaciones conocidas y adaptaciones](https://code.visualstudio.com/docs/remote/codespaces#_known-limitations-and-adaptations)" de la documentación de {% data variables.product.prodname_vscode %}. +- The {% data variables.product.prodname_serverless %} is currently supported in Chrome (and various other Chromium-based browsers), Edge, Firefox, and Safari. We recommend that you use the latest versions of these browsers. +- Some keybindings may not work, depending on the browser you are using. These keybinding limitations are documented in the "[Known limitations and adaptations](https://code.visualstudio.com/docs/remote/codespaces#_known-limitations-and-adaptations)" section of the {% data variables.product.prodname_vscode %} documentation. +- `.` may not work to open the {% data variables.product.prodname_serverless %} according to your local keyboard layout. In that case, you can open any {% data variables.product.prodname_dotcom %} repository in the {% data variables.product.prodname_serverless %} by changing the URL from `github.com` to `github.dev`. diff --git a/translations/es-ES/content/codespaces/troubleshooting/troubleshooting-codespaces-clients.md b/translations/es-ES/content/codespaces/troubleshooting/troubleshooting-codespaces-clients.md index 1c4288b4fa..e5460831a9 100644 --- a/translations/es-ES/content/codespaces/troubleshooting/troubleshooting-codespaces-clients.md +++ b/translations/es-ES/content/codespaces/troubleshooting/troubleshooting-codespaces-clients.md @@ -1,6 +1,6 @@ --- -title: Solucionar problemas de los clientes de Codespaces -intro: 'Puedes utilizar {% data variables.product.prodname_codespaces %} en tu buscador o a través de {% data variables.product.prodname_vscode %}. Este artículo proporciona pasos de solución de problemas para los problemas comunes de los clientes.' +title: Troubleshooting Codespaces clients +intro: 'You can use {% data variables.product.prodname_codespaces %} in your browser or through {% data variables.product.prodname_vscode %}. This article provides troubleshooting steps for common client issues.' product: '{% data reusables.gated-features.codespaces %}' versions: fpt: '*' @@ -8,19 +8,31 @@ versions: type: reference topics: - Codespaces -shortTitle: Clientes de codespaces +shortTitle: Codespaces clients --- -## Solución de problemas de {% data variables.product.prodname_vscode %} +## {% data variables.product.prodname_vscode %} troubleshooting -Cuando conectas a una versión de escritorio de {% data variables.product.prodname_vscode %} a un codespace, notarás algunas cuantas diferencias en comparación con trabajar en un espacio de trabajo normal, pero la experiencia será bastante similar. +When you connect a desktop version of {% data variables.product.prodname_vscode %} to a codespace, you will notice few differences compared with working in a normal workspace but the experience will be fairly similar. -Cuando abres un codespace en tu buscador utilizando {% data variables.product.prodname_vscode %} en la web, notarás más diferencias. Por ejemplo, algunas uniones de teclas serán diferentes o no estarán y algunas extensiones podrían comportarse de forma diferente. Para obtener un resumen, consulta la sección "[Adaptaciones y limitaciones conocidas](https://code.visualstudio.com/docs/remote/codespaces#_known-limitations-and-adaptations)" en los documentos de {% data variables.product.prodname_vscode %}. +When you open a codespace in your browser using {% data variables.product.prodname_vscode %} in the web, you will notice more differences. For example, some key bindings will be different or missing, and some extensions may behave differently. For a summary, see: "[Known limitations and adaptions](https://code.visualstudio.com/docs/remote/codespaces#_known-limitations-and-adaptations)" in the {% data variables.product.prodname_vscode %} docs. -Puedes revisar si hay problemas conocidos y registrar problemas nuevos con la experiencia de {% data variables.product.prodname_vscode %} en el repositorio [`microsoft/vscode`](https://github.com/microsoft/vscode/issues?q=is%3Aissue+is%3Aopen+codespaces). +You can check for known issues and log new issues with the {% data variables.product.prodname_vscode %} experience in the [`microsoft/vscode`](https://github.com/microsoft/vscode/issues?q=is%3Aissue+is%3Aopen+codespaces) repository. -## Solución de problemas del buscador +### {% data variables.product.prodname_vscode %} Insiders -Si encuentras problemas para utilizar los codespaces en un buscador que no esté basado en Chromium, intenta cambiar a uno que sí lo esté o revisa si hay problemas conocidos con tu buscador en el repositorio de `microsoft/vscode` buscando aquellos etiquetados con el nombre de dicho buscador, tal como [`firefox`](https://github.com/microsoft/vscode/issues?q=is%3Aissue+is%3Aopen+label%3Afirefox) o [`safari`](https://github.com/Microsoft/vscode/issues?q=is%3Aopen+is%3Aissue+label%3Asafari). +{% data variables.product.prodname_vscode %} Insiders is the most frequent release of {% data variables.product.prodname_vscode %}. It has all the latest features and bug fixes, but may also occasionally contain new issues that result in a broken build. -Si encuentras problemas al utilizar codespaces en un buscador basado en Chromium, puedes verificar si estás experimentando algún otro problema conocido de {% data variables.product.prodname_vscode %} en el repositorio [`microsoft/vscode`](https://github.com/microsoft/vscode/issues). +If you are using an Insiders build and notice broken behavior, we recommend switching to {% data variables.product.prodname_vscode %} Stable and trying again. + +On the desktop version of {% data variables.product.prodname_vscode %}, you can switch to Stable by closing the {% data variables.product.prodname_vscode %} Insiders application, opening the {% data variables.product.prodname_vscode %} Stable application, and re-opening your codespace. + +On the web version of {% data variables.product.prodname_vscode %}, you can click {% octicon "gear" aria-label="The manage icon" %} in the bottom left of the editor and select **Switch to Stable Version...**. If the web version doesn't load or the {% octicon "gear" aria-label="The manage icon" %} icon isn't available, you can force switching to {% data variables.product.prodname_vscode %} Stable by appending `?vscodeChannel=stable` to your codespace URL and loading the codespace at that URL. + +If the problem isn't fixed in {% data variables.product.prodname_vscode %} Stable, please follow the above troubleshooting instructions. + +## Browser troubleshooting + +If you encounter issues using codespaces in a browser that is not Chromium-based, try switching to a Chromium-based browser, or check for known issues with your browser in the `microsoft/vscode` repository by searching for issues labeled with the name of your browser, such as [`firefox`](https://github.com/microsoft/vscode/issues?q=is%3Aissue+is%3Aopen+label%3Afirefox) or [`safari`](https://github.com/Microsoft/vscode/issues?q=is%3Aopen+is%3Aissue+label%3Asafari). + +If you encounter issues using codespaces in a Chromium-based browser, you can check if you're experiencing another known issue with {% data variables.product.prodname_vscode %} in the [`microsoft/vscode`](https://github.com/microsoft/vscode/issues) repository. diff --git a/translations/es-ES/content/codespaces/troubleshooting/troubleshooting-creation-and-deletion-of-codespaces.md b/translations/es-ES/content/codespaces/troubleshooting/troubleshooting-creation-and-deletion-of-codespaces.md index 21a0495078..f827f8d11a 100644 --- a/translations/es-ES/content/codespaces/troubleshooting/troubleshooting-creation-and-deletion-of-codespaces.md +++ b/translations/es-ES/content/codespaces/troubleshooting/troubleshooting-creation-and-deletion-of-codespaces.md @@ -1,6 +1,6 @@ --- -title: Solucionar problemas de creación y borrado de Codespaces -intro: 'Este artículo te muestra los pasos para la solución de problemas comunes que podrías experimentar al crear o borrar un codespace, incluyendo los de almacenamiento y configuración.' +title: Troubleshooting creation and deletion of Codespaces +intro: 'This article provides troubleshooting steps for common issues you may experience when creating or deleting a codespace, including storage and configuration issues.' product: '{% data reusables.gated-features.codespaces %}' versions: fpt: '*' @@ -8,50 +8,50 @@ versions: type: reference topics: - Codespaces -shortTitle: Creación y borrado +shortTitle: Creation and deletion --- -## Crear codespaces +## Creating codespaces -### Sin acceso para crear un codespace -Los {% data variables.product.prodname_codespaces %} no están disponibles para todos los repositorios. If the "Open with Codespaces" button is missing, {% data variables.product.prodname_codespaces %} may not be available for that repository. Para obtener más información, consulta la sección "[Crear un codespace](/codespaces/developing-in-codespaces/creating-a-codespace#access-to-codespaces)". +### No access to create a codespace +{% data variables.product.prodname_codespaces %} are not available for all repositories. If the "Open with Codespaces" button is missing, {% data variables.product.prodname_codespaces %} may not be available for that repository. For more information, see "[Creating a codespace](/codespaces/developing-in-codespaces/creating-a-codespace#access-to-codespaces)." -Si crees que tu organización sí [habilitó los {% data variables.product.prodname_codespaces %}](/codespaces/managing-codespaces-for-your-organization/enabling-codespaces-for-your-organization#about-enabling-codespaces-for-your-organization), asegúrate de que un propietario de la organización o gerente de facturación haya configurado el límite de gastos para los {% data variables.product.prodname_codespaces %}. Para obtener más información, consulta la sección "[Administrar tu límite de gastos para {% data variables.product.prodname_codespaces %}](/billing/managing-billing-for-github-codespaces/managing-spending-limits-for-codespaces)". +If you believe your organization has [enabled {% data variables.product.prodname_codespaces %}](/codespaces/managing-codespaces-for-your-organization/enabling-codespaces-for-your-organization#about-enabling-codespaces-for-your-organization), make sure that an organization owner or billing manager has set the spending limit for {% data variables.product.prodname_codespaces %}. For more information, see "[Managing your spending limit for {% data variables.product.prodname_codespaces %}](/billing/managing-billing-for-github-codespaces/managing-spending-limits-for-codespaces)." -### El Codespace no abre cuando se crea +### Codespace does not open when created -Si creas un codespace y este no abre: +If you create a codespace and it does not open: -1. Intenta volver a cargar la página en caso de que hubiera un error de caché o problema reportado. -2. Dirígete a tu página de {% data variables.product.prodname_codespaces %}: https://github.com/codespaces y verifica si el codespace nuevo se listó ahí. El proceso podría haber creado el codespace con éxito pero falló en reportarlo de vuelta a tu buscador. Si el codespace nuevo se ve listado, puedes abrirlo directamente desde esta página. -3. Reintenta crear el codespace para que el repositorio descarte un fallo de comunicación transitorio. +1. Try reloading the page in case there was a caching or reporting problem. +2. Go to your {% data variables.product.prodname_codespaces %} page: https://github.com/codespaces and check whether the new codespace is listed there. The process may have successfully created the codespace but failed to report back to your browser. If the new codespace is listed, you can open it directly from that page. +3. Retry creating the codespace for the repository to rule out a transient communication failure. -Si aún no puedes crear un codespace para un repositorio en donde esté disponible {% data variables.product.prodname_codespaces %}, contacta a {% data reusables.codespaces.contact-support %}. +If you still cannot create a codespace for a repository where {% data variables.product.prodname_codespaces %} are available, {% data reusables.codespaces.contact-support %} -## Borrar codespaces +## Deleting codespaces -El propietario de un codespace tiene control total sobre este y solo él podrá borrarlo. No puedes borrar un codespace que otro usuario haya creado. +The owner of a codespace has full control over it and only they can delete their codespaces. You cannot delete a codespace created by another user. -## Almacenamiento de contenedores +## Container storage -Cuando creas un codespace, este tiene una cantidad de almacenamiento finita y, con el tiempo, podría que necesites liberar espacio. Intenta ejecutar cualquiera de los comandos siguientes en la terminal de {% data variables.product.prodname_codespaces %} para liberar espacio de almacenamiento. +When you create a codespace, it has a finite amount of storage and over time it may be necessary for you to free up space. Try running any of the following commands in the {% data variables.product.prodname_codespaces %} terminal to free up storage space. -- Elimina los paquetes que ya no se utilicen usando `sudo apt autoremove`. -- Limpia el caché de apt utilizando `sudo apt clean`. -- Consulta los 10 archivos más grandes en el codespace con `sudo find / -printf '%s %p\n'| sort -nr | head -10`. -- Borra los archivos innecesarios, tales como los artefactos y bitácoras de compilación. +- Remove packages that are no longer used by using `sudo apt autoremove`. +- Clean the apt cache by using `sudo apt clean`. +- See the top 10 largest files in the codespace with`sudo find / -printf '%s %p\n'| sort -nr | head -10`. +- Delete unneeded files, such as build artifacts and logs. -Algunas opciones más destructivas: +Some more destructive options: -- Elimina las imágenes de Docker, redes y contenedores sin utilizar con `docker system prune` (adjunta una `-a` si quieres eliminar todas las imágenes, y `--volumes` si quieres eliminar todos los volúmenes). -- Elimina los archivos no rastreados del árbol de trabajo: `git clean -i`. +- Remove unused Docker images, networks, and containers by using `docker system prune` (append `-a` if you want to remove all images, and `--volumes` if you want to remove all volumes). +- Remove untracked files from working tree: `git clean -i`. ## Configuration {% data reusables.codespaces.recovery-mode %} ``` -Este codespace se ejecuta acutalmente en modo de recuperación debido a un error del contenedor. +This codespace is currently running in recovery mode due to a container error. ``` -Review the creation logs, update the configuration as needed, and run **Codespaces: Rebuild Container** in the {% data variables.product.prodname_vscode_command_palette %} to retry. Para obtener más información, consulta las secciones "[Bitácoras de codespaces](/codespaces/troubleshooting/codespaces-logs)" y "[Configurar {% data variables.product.prodname_codespaces %} en tu proyecto](/github/developing-online-with-codespaces/configuring-codespaces-for-your-project#apply-changes-to-your-configuration)". +Review the creation logs, update the configuration as needed, and run **Codespaces: Rebuild Container** in the {% data variables.product.prodname_vscode_command_palette %} to retry. For more information, see " [Codespaces logs](/codespaces/troubleshooting/codespaces-logs)" and "[Configuring {% data variables.product.prodname_codespaces %} for your project](/github/developing-online-with-codespaces/configuring-codespaces-for-your-project#apply-changes-to-your-configuration)." diff --git a/translations/es-ES/content/communities/documenting-your-project-with-wikis/about-wikis.md b/translations/es-ES/content/communities/documenting-your-project-with-wikis/about-wikis.md index 9d6ac99ff3..a92278ed72 100644 --- a/translations/es-ES/content/communities/documenting-your-project-with-wikis/about-wikis.md +++ b/translations/es-ES/content/communities/documenting-your-project-with-wikis/about-wikis.md @@ -2,7 +2,7 @@ title: About wikis intro: 'You can host documentation for your repository in a wiki, so that others can use and contribute to your project.' redirect_from: - - /articles/about-github-wikis/ + - /articles/about-github-wikis - /articles/about-wikis - /github/building-a-strong-community/about-wikis product: '{% data reusables.gated-features.wikis %}' diff --git a/translations/es-ES/content/communities/documenting-your-project-with-wikis/adding-or-editing-wiki-pages.md b/translations/es-ES/content/communities/documenting-your-project-with-wikis/adding-or-editing-wiki-pages.md index 2de8a8a3b9..9051feb405 100644 --- a/translations/es-ES/content/communities/documenting-your-project-with-wikis/adding-or-editing-wiki-pages.md +++ b/translations/es-ES/content/communities/documenting-your-project-with-wikis/adding-or-editing-wiki-pages.md @@ -1,11 +1,11 @@ --- -title: Agregar o eliminar páginas wiki -intro: 'Puedes agregar y editar páginas wiki directamente en {% data variables.product.product_name %} o localmente usando la línea de comando.' +title: Adding or editing wiki pages +intro: 'You can add and edit wiki pages directly on {% data variables.product.product_name %} or locally using the command line.' redirect_from: - - /articles/adding-wiki-pages-via-the-online-interface/ - - /articles/editing-wiki-pages-via-the-online-interface/ - - /articles/adding-and-editing-wik-pages-locally/ - - /articles/adding-and-editing-wiki-pages-locally/ + - /articles/adding-wiki-pages-via-the-online-interface + - /articles/editing-wiki-pages-via-the-online-interface + - /articles/adding-and-editing-wik-pages-locally + - /articles/adding-and-editing-wiki-pages-locally - /articles/adding-or-editing-wiki-pages - /github/building-a-strong-community/adding-or-editing-wiki-pages product: '{% data reusables.gated-features.wikis %}' @@ -16,47 +16,55 @@ versions: ghec: '*' topics: - Community -shortTitle: Administrar las páginas de wiki +shortTitle: Manage wiki pages --- -## Agregar páginas wiki +## Adding wiki pages {% data reusables.repositories.navigate-to-repo %} {% data reusables.repositories.sidebar-wiki %} -3. En el ángulo superior derecho de la página, haz clic en **New Page** (Página nueva) ![Botón de la nueva página wiki](/assets/images/help/wiki/wiki_new_page_button.png) -4. Opcionalmente, para escribir en otro formato diferente a Markdown, usa el menú desplegable del modo Edit (Editar) y haz clic en un formato diferente.![Selección de markup de wiki](/assets/images/help/wiki/wiki_dropdown_markup.gif) -5. Usa el editor de texto para agregar el contenido de tu página. ![Wiki WYSIWYG](/assets/images/help/wiki/wiki_wysiwyg.png) -6. Escribe un mensaje de confirmación que describa el nuevo archivo que agregaste. ![Mensaje de confirmación de la wiki](/assets/images/help/wiki/wiki_commit_message.png) -7. Para confirmar tus cambios en la wiki, haz clic en **Guardar página**. +3. In the upper-right corner of the page, click **New Page**. + ![Wiki new page button](/assets/images/help/wiki/wiki_new_page_button.png) +4. Optionally, to write in a format other than Markdown, use the Edit mode drop-down menu, and click a different format. + ![Wiki markup selection](/assets/images/help/wiki/wiki_dropdown_markup.gif) +5. Use the text editor to add your page's content. + ![Wiki WYSIWYG](/assets/images/help/wiki/wiki_wysiwyg.png) +6. Type a commit message describing the new file you’re adding. + ![Wiki commit message](/assets/images/help/wiki/wiki_commit_message.png) +7. To commit your changes to the wiki, click **Save Page**. -## Editar páginas wiki +## Editing wiki pages {% data reusables.repositories.navigate-to-repo %} {% data reusables.repositories.sidebar-wiki %} -4. Desplázate hasta la página que deseas cambiar con la ayuda de la barra lateral wiki. En el ángulo superior derecho de la página, haz clic en **Edite** (Editar). ![Botón de la página para editar wikis](/assets/images/help/wiki/wiki_edit_page_button.png) -5. Usa el editor de texto para editar el contenido de la página. ![Wiki WYSIWYG](/assets/images/help/wiki/wiki_wysiwyg.png) -6. Escribe un mensaje de confirmación que describa tus cambios. ![Mensaje de confirmación de la wiki](/assets/images/help/wiki/wiki_commit_message.png) -7. Para confirmar tus cambios en la wiki, haz clic en **Guardar página**. +4. Using the wiki sidebar, navigate to the page you want to change. In the upper-right corner of the page, click **Edit**. + ![Wiki edit page button](/assets/images/help/wiki/wiki_edit_page_button.png) +5. Use the text editor edit the page's content. + ![Wiki WYSIWYG](/assets/images/help/wiki/wiki_wysiwyg.png) +6. Type a commit message describing your changes. + ![Wiki commit message](/assets/images/help/wiki/wiki_commit_message.png) +7. To commit your changes to the wiki, click **Save Page**. -## Agregar o editar páginas wiki localmente +## Adding or editing wiki pages locally -Las wikis son parte de los repositorios Gift, de manera que puedes hacer cambios localmente y subirlos a tu repositorio mediante un flujo de trabajo de Git. +Wikis are part of Git repositories, so you can make changes locally and push them to your repository using a Git workflow. -### Clonar wikis en tu computadora +### Cloning wikis to your computer -Cada wiki brinda una manera sencilla de clonar sus contenidos en tu computadora. Puedes clonar el repositorio a tu computadora con la URL proporcionada: +Every wiki provides an easy way to clone its contents down to your computer. +You can clone the repository to your computer with the provided URL: ```shell $ git clone https://github.com/YOUR_USERNAME/YOUR_REPOSITORY.wiki.git -# Clona la wiki localmente +# Clones the wiki locally ``` -Una vez que has clonado la wiki, puedes agregar archivos nuevos, editar los existentes y confirmar tus cambios. Tus colaboradores y tú pueden crear ramas cuando trabajen en wikis, pero solo los cambios que se suban a la rama predeterminada estarán productivos y disponibles para tus lectores. +Once you have cloned the wiki, you can add new files, edit existing ones, and commit your changes. You and your collaborators can create branches when working on wikis, but only changes pushed to the default branch will be made live and available to your readers. -## Acerca de los nombres de archivo wiki +## About wiki filenames -El nombre de archivo determina el título de tu página wiki, y la extensión del archivo determina cómo se presenta el contenido wiki. +The filename determines the title of your wiki page, and the file extension determines how your wiki content is rendered. -Las wikis usan [nuestra biblioteca Markup de código abierto](https://github.com/github/markup) para convertir el Markup, y este determina qué convertidor usar para una extensión de archivo. Por ejemplo, si denominas un archivo *foo.md* o *foo.markdown*, wiki usará el convertidor Markdown, mientras que un archivo denominado *foo.textile* usará el convertidor Textile. +Wikis use [our open-source Markup library](https://github.com/github/markup) to convert the markup, and it determines which converter to use by a file's extension. For example, if you name a file *foo.md* or *foo.markdown*, wiki will use the Markdown converter, while a file named *foo.textile* will use the Textile converter. -No uses los siguientes caracteres en los títulos de tu página wiki: `\ / : * ? " < > |`. Los usuarios en determinados sistemas operativos no podrán trabajar con nombres de archivos que contienen estos caracteres. Asegúrate de escribir tu contenido mediante un idioma de Markup que coincida con la extensión, o tu contenido no se presentará de manera adecuada. +Don't use the following characters in your wiki page's titles: `\ / : * ? " < > |`. Users on certain operating systems won't be able to work with filenames containing these characters. Be sure to write your content using a markup language that matches the extension, or your content won't render properly. diff --git a/translations/es-ES/content/communities/documenting-your-project-with-wikis/creating-a-footer-or-sidebar-for-your-wiki.md b/translations/es-ES/content/communities/documenting-your-project-with-wikis/creating-a-footer-or-sidebar-for-your-wiki.md index 36e4cf9862..06192a9266 100644 --- a/translations/es-ES/content/communities/documenting-your-project-with-wikis/creating-a-footer-or-sidebar-for-your-wiki.md +++ b/translations/es-ES/content/communities/documenting-your-project-with-wikis/creating-a-footer-or-sidebar-for-your-wiki.md @@ -1,9 +1,9 @@ --- -title: Crear un pie de página o barra lateral para tu wiki -intro: Puedes agregar una barra lateral o un pie de página personalizados a tu wiki para dar a los lectores más información contextual. +title: Creating a footer or sidebar for your wiki +intro: You can add a custom sidebar or footer to your wiki to provide readers with more contextual information. redirect_from: - - /articles/creating-a-footer/ - - /articles/creating-a-sidebar/ + - /articles/creating-a-footer + - /articles/creating-a-sidebar - /articles/creating-a-footer-or-sidebar-for-your-wiki - /github/building-a-strong-community/creating-a-footer-or-sidebar-for-your-wiki product: '{% data reusables.gated-features.wikis %}' @@ -14,27 +14,33 @@ versions: ghec: '*' topics: - Community -shortTitle: Crear una nota al pie o barra lateral +shortTitle: Create footer or sidebar --- -## Crear una carpeta +## Creating a footer {% data reusables.repositories.navigate-to-repo %} {% data reusables.repositories.sidebar-wiki %} -3. En la parte inferior de la página, haz clic en **Agregar un pie de página**. ![Sección para agregar el pie de página a la wiki](/assets/images/help/wiki/wiki_add_footer.png) -4. Usa el editor de texto para escribir el contenido que deseas que tenga tu pie de página. ![Wiki WYSIWYG](/assets/images/help/wiki/wiki-footer.png) -5. Ingresa un mensaje de confirmación que describa el pie de página que agregaste. ![Mensaje de confirmación de la wiki](/assets/images/help/wiki/wiki_commit_message.png) -6. Para confirmar tus cambios en la wiki, haz clic en **Guardar página**. +3. At the bottom of the page, click **Add a custom footer**. + ![Wiki add footer section](/assets/images/help/wiki/wiki_add_footer.png) +4. Use the text editor to type the content you want your footer to have. + ![Wiki WYSIWYG](/assets/images/help/wiki/wiki-footer.png) +5. Enter a commit message describing the footer you’re adding. + ![Wiki commit message](/assets/images/help/wiki/wiki_commit_message.png) +6. To commit your changes to the wiki, click **Save Page**. -## Crear una barra lateral +## Creating a sidebar {% data reusables.repositories.navigate-to-repo %} {% data reusables.repositories.sidebar-wiki %} -3. Haz clic en **Agregar una barra lateral personalizada**. ![Sección para agregar la barra lateral a la wiki](/assets/images/help/wiki/wiki_add_sidebar.png) -4. Usa el editor de texto para agregar el contenido de tu página. ![Wiki WYSIWYG](/assets/images/help/wiki/wiki-sidebar.png) -5. Ingresa un mensaje de confirmación que describa la barra lateral que agregaste. ![Mensaje de confirmación de la wiki](/assets/images/help/wiki/wiki_commit_message.png) -6. Para confirmar tus cambios en la wiki, haz clic en **Guardar página**. +3. Click **Add a custom sidebar**. + ![Wiki add sidebar section](/assets/images/help/wiki/wiki_add_sidebar.png) +4. Use the text editor to add your page's content. + ![Wiki WYSIWYG](/assets/images/help/wiki/wiki-sidebar.png) +5. Enter a commit message describing the sidebar you’re adding. + ![Wiki commit message](/assets/images/help/wiki/wiki_commit_message.png) +6. To commit your changes to the wiki, click **Save Page**. -## Crear un pie de página o barra lateral de manera local +## Creating a footer or sidebar locally -Si creas un archivo con el nombre `_Footer.` or `_Sidebar.`, los usaremos para completar el pie de página y la barra lateral de tu wiki, respectivamente. Al igual que cualquier otra página wiki, la extensión que elijas para estos archivos determina cómo los representaremos. +If you create a file named `_Footer.` or `_Sidebar.`, we'll use them to populate the footer and sidebar of your wiki, respectively. Like every other wiki page, the extension you choose for these files determines how we render them. diff --git a/translations/es-ES/content/communities/documenting-your-project-with-wikis/editing-wiki-content.md b/translations/es-ES/content/communities/documenting-your-project-with-wikis/editing-wiki-content.md index 2011935c42..c132ba8340 100644 --- a/translations/es-ES/content/communities/documenting-your-project-with-wikis/editing-wiki-content.md +++ b/translations/es-ES/content/communities/documenting-your-project-with-wikis/editing-wiki-content.md @@ -1,14 +1,14 @@ --- -title: Editar el contenido de una wiki -intro: Puedes agregar imágenes y enlaces al contenido de tu wiki y usar algunos de los formatos que admite MediaWiki. +title: Editing wiki content +intro: 'You can add images and links to content in your wiki, and use some supported MediaWiki formats.' redirect_from: - - /articles/adding-links-to-wikis/ - - /articles/how-do-i-add-links-to-my-wiki/ - - /articles/how-do-i-add-or-upload-images-to-the-wiki/ - - /articles/needs-writing-review-how-do-i-add-or-upload-images-to-the-wiki/ - - /articles/how-do-i-add-images-to-my-wiki/ - - /articles/adding-images-to-wikis/ - - /articles/supported-mediawiki-formats/ + - /articles/adding-links-to-wikis + - /articles/how-do-i-add-links-to-my-wiki + - /articles/how-do-i-add-or-upload-images-to-the-wiki + - /articles/needs-writing-review-how-do-i-add-or-upload-images-to-the-wiki + - /articles/how-do-i-add-images-to-my-wiki + - /articles/adding-images-to-wikis + - /articles/supported-mediawiki-formats - /articles/editing-wiki-content - /github/building-a-strong-community/editing-wiki-content product: '{% data reusables.gated-features.wikis %}' @@ -21,39 +21,40 @@ topics: - Community --- -## Agregar enlaces +## Adding links -Puedes crear enlaces en wikis usando el markup estándar admitido por tu página, o usando la sintaxis MediaWiki. Por ejemplo: +You can create links in wikis using the standard markup supported by your page, or using MediaWiki syntax. For example: -- Si tus páginas se presentan con Markdown, la sintaxis del enlace es `[Link Text](full-URL-of-wiki-page)`. -- Con la sintaxis MediaWiki, la sintaxis del enlace es `[[Link Text|nameofwikipage]]`. +- If your pages are rendered with Markdown, the link syntax is `[Link Text](full-URL-of-wiki-page)`. +- With MediaWiki syntax, the link syntax is `[[Link Text|nameofwikipage]]`. -## Agregar imágenes +## Adding images -Las wikis pueden presentar imágenes PNG, JPEG y GIF. +Wikis can display PNG, JPEG, and GIF images. {% data reusables.repositories.navigate-to-repo %} {% data reusables.repositories.sidebar-wiki %} -3. Usando la barra lateral de la wiki, dirígete a la página que deseas cambiar y luego haz clic en **Editar**. -4. En la barra de herramientas de la wiki, haz clic en **Imagen**. ![Botón de la wiki Agregar imagen](/assets/images/help/wiki/wiki_add_image.png) -5. En el cuadro de diálogo "Insertar imagen", escribe la URL de la imagen y el texto alternativo (el que usan los motores de búsqueda y los lectores de pantalla). -6. Haz clic en **OK** (aceptar). +3. Using the wiki sidebar, navigate to the page you want to change, and then click **Edit**. +4. On the wiki toolbar, click **Image**. + ![Wiki Add image button](/assets/images/help/wiki/wiki_add_image.png) +5. In the "Insert Image" dialog box, type the image URL and the alt text (which is used by search engines and screen readers). +6. Click **OK**. -### Establecer enlaces a las imágenes en un repositorio +### Linking to images in a repository -Puedes establecer un enlace a una imagen en un repositorio en {% data variables.product.product_name %} copiando la URL en tu navegador y usándola como la ruta que lleva a la imagen. Por ejemplo, cuando insertas una imagen en tu wiki usando Markdown, la imagen debe verse de la siguiente manera: +You can link to an image in a repository on {% data variables.product.product_name %} by copying the URL in your browser and using that as the path to the image. For example, embedding an image in your wiki using Markdown might look like this: [[https://github.com/USERNAME/REPOSITORY/blob/main/img/octocat.png|alt=octocat]] -## Formatos MediaWiki admitidos +## Supported MediaWiki formats -Independientemente del lenguaje markup en que esté escrita tu página, siempre tendrás una determinada sintaxis MediaWiki disponible. -- Enlaces ([excdepto AsciiDoc](https://github.com/gollum/gollum/commit/d1cf698b456cd6a35a54c6a8e7b41d3068acec3b)) -- Reglas horizontales mediante `---` -- Entidades simbólicas abreviadas (como `δ` o `€`) +No matter which markup language your wiki page is written in, certain MediaWiki syntax will always be available to you. +- Links ([except Asciidoc](https://github.com/gollum/gollum/commit/d1cf698b456cd6a35a54c6a8e7b41d3068acec3b)) +- Horizontal rules via `---` +- Shorthand symbol entities (such as `δ` or `€`) -Por razones de seguridad y rendimiento, algunas sintaxis no son compatibles. -- [Transclusión](https://www.mediawiki.org/wiki/Transclusion) -- Listas de definiciones -- Sangría -- Índice +For security and performance reasons, some syntaxes are unsupported. +- [Transclusion](https://www.mediawiki.org/wiki/Transclusion) +- Definition lists +- Indentation +- Table of contents diff --git a/translations/es-ES/content/communities/documenting-your-project-with-wikis/index.md b/translations/es-ES/content/communities/documenting-your-project-with-wikis/index.md index e36ee385f2..fbec09d8fc 100644 --- a/translations/es-ES/content/communities/documenting-your-project-with-wikis/index.md +++ b/translations/es-ES/content/communities/documenting-your-project-with-wikis/index.md @@ -1,10 +1,10 @@ --- -title: Documentar tu proyecto con wikis -shortTitle: Utilizar wikis -intro: Puedes usar una wiki para compartir información detallada en forma completa acerca de tu proyecto. +title: Documenting your project with wikis +shortTitle: Using wikis +intro: 'You can use a wiki to share detailed, long-form information about your project.' redirect_from: - - /categories/49/articles/ - - /categories/wiki/ + - /categories/49/articles + - /categories/wiki - /articles/documenting-your-project-with-wikis - /github/building-a-strong-community/documenting-your-project-with-wikis product: '{% data reusables.gated-features.wikis %}' diff --git a/translations/es-ES/content/communities/moderating-comments-and-conversations/limiting-interactions-in-your-repository.md b/translations/es-ES/content/communities/moderating-comments-and-conversations/limiting-interactions-in-your-repository.md index fd429115bd..d2c37ba9c1 100644 --- a/translations/es-ES/content/communities/moderating-comments-and-conversations/limiting-interactions-in-your-repository.md +++ b/translations/es-ES/content/communities/moderating-comments-and-conversations/limiting-interactions-in-your-repository.md @@ -2,7 +2,7 @@ title: Limiting interactions in your repository intro: You can temporarily enforce a period of limited activity for certain users on a public repository. redirect_from: - - /articles/limiting-interactions-with-your-repository/ + - /articles/limiting-interactions-with-your-repository - /articles/limiting-interactions-in-your-repository - /github/building-a-strong-community/limiting-interactions-in-your-repository versions: diff --git a/translations/es-ES/content/communities/moderating-comments-and-conversations/managing-disruptive-comments.md b/translations/es-ES/content/communities/moderating-comments-and-conversations/managing-disruptive-comments.md index d2e9948aeb..cd8481cdd1 100644 --- a/translations/es-ES/content/communities/moderating-comments-and-conversations/managing-disruptive-comments.md +++ b/translations/es-ES/content/communities/moderating-comments-and-conversations/managing-disruptive-comments.md @@ -1,9 +1,9 @@ --- -title: Administrar comentarios negativos -intro: 'Puedes {% ifversion fpt or ghec %}ocultar, editar,{% else %}editar{% endif %} o eliminar comentarios sobre reportes de problemas, solicitudes de extracción y confirmaciones.' +title: Managing disruptive comments +intro: 'You can {% ifversion fpt or ghec %}hide, edit,{% else %}edit{% endif %} or delete comments on issues, pull requests, and commits.' redirect_from: - - /articles/editing-a-comment/ - - /articles/deleting-a-comment/ + - /articles/editing-a-comment + - /articles/deleting-a-comment - /articles/managing-disruptive-comments - /github/building-a-strong-community/managing-disruptive-comments versions: @@ -13,72 +13,79 @@ versions: ghec: '*' topics: - Community -shortTitle: Administrar comentarios +shortTitle: Manage comments --- -## Ocultar un comentario +## Hiding a comment -Cualquiera con acceso de escritura a un repositorio puede ocultar comentarios en reportes de problemas, solicitudes de extracción y confirmaciones. +Anyone with write access to a repository can hide comments on issues, pull requests, and commits. -Si un comentario está fuera de tema, desactualizado o resuelto, es posible que desees ocultar un comentario para mantener la conversación enfocada o hacer que una solicitud de extracción sea más fácil de navegar o revisar. Los comentarios ocultos se minimizan pero las personas con acceso de lectura a un repositorio puede expandirlos. +If a comment is off-topic, outdated, or resolved, you may want to hide a comment to keep a discussion focused or make a pull request easier to navigate and review. Hidden comments are minimized but people with read access to the repository can expand them. -![Contenido minimizado](/assets/images/help/repository/hidden-comment.png) +![Minimized comment](/assets/images/help/repository/hidden-comment.png) -1. Navega hasta el comentario que deseas ocultar. -2. En la esquina superior derecha del comentario, haz clic en {% octicon "kebab-horizontal" aria-label="The horizontal kebab icon" %}, después haz clic en **Hide (Ocultar)**. ![El ícono de kebab horizontal y el menú de moderación de comentario que muestra las opciones Editar, Ocultar y Eliminar](/assets/images/help/repository/comment-menu.png) -3. Utilizando el menú desplegable "Choose a reason" (Elige una razón), haz clic en una razón para ocultar el comentario. Después haz clic en **Hide comment (Ocultar comentario)**. +1. Navigate to the comment you'd like to hide. +2. In the upper-right corner of the comment, click {% octicon "kebab-horizontal" aria-label="The horizontal kebab icon" %}, then click **Hide**. + ![The horizontal kebab icon and comment moderation menu showing the edit, hide, delete options](/assets/images/help/repository/comment-menu.png) +3. Using the "Choose a reason" drop-down menu, click a reason to hide the comment. Then click, **Hide comment**. {% ifversion fpt or ghec %} - ![Elija la razón para ocultar el menú desplegable de comentarios](/assets/images/help/repository/choose-reason-for-hiding-comment.png) + ![Choose reason for hiding comment drop-down menu](/assets/images/help/repository/choose-reason-for-hiding-comment.png) {% else %} - ![Elija la razón para ocultar el menú desplegable de comentarios](/assets/images/help/repository/choose-reason-for-hiding-comment-ghe.png) + ![Choose reason for hiding comment drop-down menu](/assets/images/help/repository/choose-reason-for-hiding-comment-ghe.png) {% endif %} -## Desocultar un comentario +## Unhiding a comment -Cualquiera con acceso de escritura a un repositorio puede volver a mostrar comentarios sobre reportes de problemas, solicitudes de extracción y confirmaciones. +Anyone with write access to a repository can unhide comments on issues, pull requests, and commits. -1. Navega hasta el comentario que deseas desocultar. -2. En la esquina superior derecha del comentario, haz clic en **{% octicon "fold" aria-label="The fold icon" %} Show comment (Mostrar comentario)**. ![Mostrar el texto del comentario](/assets/images/help/repository/hidden-comment-show.png) -3. En el lateral derecho del comentario expandido, haz clic en {% octicon "kebab-horizontal" aria-label="The horizontal kebab icon" %} (el ícono de kebab horizontal), después **Unhide (Desocultar)**. ![El ícono de kebab horizontal y el menú de moderación de comentario que muestra las opciones Editar, Desocultar y Eliminar](/assets/images/help/repository/comment-menu-hidden.png) +1. Navigate to the comment you'd like to unhide. +2. In the upper-right corner of the comment, click **{% octicon "fold" aria-label="The fold icon" %} Show comment**. + ![Show comment text](/assets/images/help/repository/hidden-comment-show.png) +3. On the right side of the expanded comment, click {% octicon "kebab-horizontal" aria-label="The horizontal kebab icon" %}, then **Unhide**. + ![The horizontal kebab icon and comment moderation menu showing the edit, unhide, delete options](/assets/images/help/repository/comment-menu-hidden.png) -## Editar un comentario +## Editing a comment -Cualquiera con acceso de escritura a un repositorio puede editar comentarios sobre reportes de problemas, solicitudes de extracción y confirmaciones. +Anyone with write access to a repository can edit comments on issues, pull requests, and commits. -Es adecuado editar un comentario y eliminar el contenido que no haga ninguna colaboración con la conversación y viole el código de conducta de tu comunidad{% ifversion fpt or ghec %} o los [Lineamientos comunitarios](/free-pro-team@latest/github/site-policy/github-community-guidelines) de GitHub{% endif %}. +It's appropriate to edit a comment and remove content that doesn't contribute to the conversation and violates your community's code of conduct{% ifversion fpt or ghec %} or GitHub's [Community Guidelines](/free-pro-team@latest/github/site-policy/github-community-guidelines){% endif %}. -Cuando editas un comentario, toma nota de la ubicación desde la que se ha eliminado el contenido y, de manera opcional, la razón por la que se lo eliminó. +When you edit a comment, note the location that the content was removed from and optionally, the reason for removing it. -Cualquier persona con acceso de lectura a un repositorio puede ver el historial de edición del comentario. El menú desplegable **editado** en la parte superior del comentario contiene un historial de las ediciones y muestra el usuario y el registro de horario de cada edición. +Anyone with read access to a repository can view a comment's edit history. The **edited** dropdown at the top of the comment contains a history of edits showing the user and timestamp for each edit. -![Comentario con nota adicional que el contenido fue redactado](/assets/images/help/repository/content-redacted-comment.png) +![Comment with added note that content was redacted](/assets/images/help/repository/content-redacted-comment.png) -Los autores de los comentarios y cualquiera con acceso de escritura a un repositorio puede también eliminar información sensible de un historial de edición de los comentarios. Para obtener más información, consulta "[Rastrear los cambios en un comentario](/communities/moderating-comments-and-conversations/tracking-changes-in-a-comment)." +Comment authors and anyone with write access to a repository can also delete sensitive information from a comment's edit history. For more information, see "[Tracking changes in a comment](/communities/moderating-comments-and-conversations/tracking-changes-in-a-comment)." -1. Navega hasta el comentario que deseas editar. -2. En la esquina superior derecha del comentario, haz clic en {% octicon "kebab-horizontal" aria-label="The horizontal kebab icon" %}, después haz clic en **Edit (Editar)**. ![El ícono de kebab horizontal y el menú de moderación de comentario que muestra las opciones Editar, Ocultar, Eliminar e Informar](/assets/images/help/repository/comment-menu.png) -3. En la ventana de comentario, elimina el contenido que deseas eliminar, después escribe `[REDACTED]` para reemplazarlo. ![Ventana de comentario con contenido redactado](/assets/images/help/issues/redacted-content-comment.png) -4. En la parte inferior del comentario, escribe una nota que indique que has editado el comentario, y de forma opcional, la razón por la que editaste el comentario. ![Ventana de comentario con nota adicional que indica que el contenido fue redactado](/assets/images/help/issues/note-content-redacted-comment.png) -5. Haz clic en **Update comment (Actualizar comentario)**. +1. Navigate to the comment you'd like to edit. +2. In the upper-right corner of the comment, click {% octicon "kebab-horizontal" aria-label="The horizontal kebab icon" %}, then click **Edit**. + ![The horizontal kebab icon and comment moderation menu showing the edit, hide, delete, and report options](/assets/images/help/repository/comment-menu.png) +3. In the comment window, delete the content you'd like to remove, then type `[REDACTED]` to replace it. + ![Comment window with redacted content](/assets/images/help/issues/redacted-content-comment.png) +4. At the bottom of the comment, type a note indicating that you have edited the comment, and optionally, why you edited the comment. + ![Comment window with added note that content was redacted](/assets/images/help/issues/note-content-redacted-comment.png) +5. Click **Update comment**. -## Eliminar un comentario +## Deleting a comment -Cualquiera con acceso de escritura a un repositorio puede borrar comentarios sobre reportes de problemas, solicitudes de extracción y confirmaciones. Los propietarios de organizaciones, mantenedores de equipos, y el autor del comentario también pueden borrarlo en la página del equipo. +Anyone with write access to a repository can delete comments on issues, pull requests, and commits. Organization owners, team maintainers, and the comment author can also delete a comment on a team page. -Eliminar un comentario es tu último recurso como moderador. Es correcto eliminar un comentario si todo este falla en añadir contenido constructivo a una conversación y viola el código de conducta de tu comunidad{% ifversion fpt or ghec %} o los [Lineamientos comunitarios](/free-pro-team@latest/github/site-policy/github-community-guidelines) de GitHub{% endif %}. +Deleting a comment is your last resort as a moderator. It's appropriate to delete a comment if the entire comment adds no constructive content to a conversation and violates your community's code of conduct{% ifversion fpt or ghec %} or GitHub's [Community Guidelines](/free-pro-team@latest/github/site-policy/github-community-guidelines){% endif %}. -Eliminar un comentario crea un evento cronológico que es visible para todos aquellos que tienen acceso de lectura al repositorio. Sin embargo, el nombre de usuario de la persona que eliminó el comentario solo es visible para personas con acceso de escritura al repositorio. Para cualquiera que no tenga acceso de escritura, el evento de cronología es anónimo. +Deleting a comment creates a timeline event that is visible to anyone with read access to the repository. However, the username of the person who deleted the comment is only visible to people with write access to the repository. For anyone without write access, the timeline event is anonymized. -![Evento cronológico anónimo para un comentario eliminado](/assets/images/help/issues/anonymized-timeline-entry-for-deleted-comment.png) +![Anonymized timeline event for a deleted comment](/assets/images/help/issues/anonymized-timeline-entry-for-deleted-comment.png) -Si un comentario contiene algún contenido constructivo que sume a la conversación en cuanto a la propuesta o a la solicitud de extracción, puedes editar el comentario. +If a comment contains some constructive content that adds to the conversation in the issue or pull request, you can edit the comment instead. {% note %} -**Nota:** el comentario inicial (o cuerpo) de una propuesta o solicitud de extracción no puede eliminarse. Por el contrario, pueden editar los cuerpos de la propuesta o de la solicitud de extracción para eliminar el contenido no deseado. +**Note:** The initial comment (or body) of an issue or pull request can't be deleted. Instead, you can edit issue and pull request bodies to remove unwanted content. {% endnote %} -1. Navega hasta el comentario que deseas eliminar. -2. En la esquina superior derecha del comentario, haz clic en {% octicon "kebab-horizontal" aria-label="The horizontal kebab icon" %}, después haz clic en **Delete (Eliminar)**. ![El ícono de kebab horizontal y el menú de moderación de comentario que muestra las opciones Editar, Ocultar, Eliminar e Informar](/assets/images/help/repository/comment-menu.png) -3. De forma opcional, escribe un comentario señalando que eliminaste un comentario y el porqué. +1. Navigate to the comment you'd like to delete. +2. In the upper-right corner of the comment, click {% octicon "kebab-horizontal" aria-label="The horizontal kebab icon" %}, then click **Delete**. + ![The horizontal kebab icon and comment moderation menu showing the edit, hide, delete, and report options](/assets/images/help/repository/comment-menu.png) +3. Optionally, write a comment noting that you deleted a comment and why. diff --git a/translations/es-ES/content/communities/setting-up-your-project-for-healthy-contributions/about-community-profiles-for-public-repositories.md b/translations/es-ES/content/communities/setting-up-your-project-for-healthy-contributions/about-community-profiles-for-public-repositories.md index 805895790b..e0cecf6b62 100644 --- a/translations/es-ES/content/communities/setting-up-your-project-for-healthy-contributions/about-community-profiles-for-public-repositories.md +++ b/translations/es-ES/content/communities/setting-up-your-project-for-healthy-contributions/about-community-profiles-for-public-repositories.md @@ -1,8 +1,8 @@ --- -title: Acerca de los perfiles de comunidad para los repositorios públicos -intro: Los mantenedores del repositorio pueden revisar el perfil de comunidad de sus repositorios públicos para saber cómo pueden ayudar a hacer crecer su comunidad y dar soporte a los colaboradores. Los colaboradores pueden ver el perfil de comunidad de un repositorio público para ver si quieren contribuir con el proyecto. +title: About community profiles for public repositories +intro: Repository maintainers can review their public repository's community profile to learn how they can help grow their community and support contributors. Contributors can view a public repository's community profile to see if they want to contribute to the project. redirect_from: - - /articles/viewing-your-community-profile/ + - /articles/viewing-your-community-profile - /articles/about-community-profiles-for-public-repositories - /github/building-a-strong-community/about-community-profiles-for-public-repositories versions: @@ -10,36 +10,36 @@ versions: ghec: '*' topics: - Community -shortTitle: Perfiles comunitarios +shortTitle: Community profiles --- -La lista de verificación del perfil de comunidad se comprueba para ver si un proyecto incluye un archivo de salud de comunidad recomendado, como README, CODE_OF_CONDUCT, LICENSE o CONTRIBUTING, en una ubicación admitida. Para obtener más información, consulta "[ una ubicación admitida](/articles/accessing-a-project-s-community-profile)". +The community profile checklist checks to see if a project includes recommended community health files, such as README, CODE_OF_CONDUCT, LICENSE, or CONTRIBUTING, in a supported location. For more information, see "[Accessing a project's community profile](/articles/accessing-a-project-s-community-profile)." -## Usar la lista de verificación del perfil de comunidad como mantenedor del repositorio +## Using the community profile checklist as a repository maintainer -Como mantenedor del repositorio, usa la lista de verificación del perfil de comunidad para ver si tu proyecto cumple con los estándares de comunidad recomendados para ayudar a las personas a usar y contribuir con tu proyecto. Para obtener más información, consulta "[Construir una comunidad](https://opensource.guide/building-community/)" en las Guías de código abierto. +As a repository maintainer, use the community profile checklist to see if your project meets the recommended community standards to help people use and contribute to your project. For more information, see "[Building community](https://opensource.guide/building-community/)" in the Open Source Guides. -Si un proyecto no tiene un archivo recomendado, puedes hacer clic en **Agregar** para redactar y enviar un archivo. +If a project doesn't have a recommended file, you can click **Add** to draft and submit a file. -{% data reusables.repositories.valid-community-issues %} Para obtener más información, consulta "[Acerca de las plantillas de propuestas y solicitudes de extracción](/articles/about-issue-and-pull-request-templates)". +{% data reusables.repositories.valid-community-issues %} For more information, see "[About issue and pull request templates](/articles/about-issue-and-pull-request-templates)." -![Lista de verificación del perfil de comunidad con estándares de comunidad recomendados para mantenedores](/assets/images/help/repository/add-button-community-profile.png) +![Community profile checklist with recommended community standards for maintainers](/assets/images/help/repository/add-button-community-profile.png) {% data reusables.repositories.security-guidelines %} -## Usar la lista de verificación del perfil de comunidad como colaborador o miembro de la comunidad +## Using the community profile checklist as a community member or collaborator -Como posible colaborador, usa la lista de verificación del perfil de comunidad para ver si tu proyecto cumple con los estándares de comunidad recomendados y decidir si quieres contribuir. Para obtener más información, consulta "[¿Cómo contribuir?](https://opensource.guide/how-to-contribute/#anatomy-of-an-open-source-project)" en las Guías de código abierto. +As a potential contributor, use the community profile checklist to see if a project meets the recommended community standards and decide if you'd like to contribute. For more information, see "[How to contribute](https://opensource.guide/how-to-contribute/#anatomy-of-an-open-source-project)" in the Open Source Guides. -Si un proyecto no tiene un archivo recomendado, puedes hacer clic en **Proponer** para redactar y enviar un archivo para que el mantenedor del repositorio lo apruebe. +If a project doesn't have a recommended file, you can click **Propose** to draft and submit a file to the repository maintainer for approval. -![Lista de verificación del perfil de comunidad con estándares de comunidad recomendados para colaboradores](/assets/images/help/repository/propose-button-community-profile.png) +![Community profile checklist with recommended community standards for contributors](/assets/images/help/repository/propose-button-community-profile.png) -## Leer más +## Further reading -- "[Agregar un código de conducta a tu proyecto](/articles/adding-a-code-of-conduct-to-your-project)" -- "[Configurar pautas para los colaboradores de repositorios](/articles/setting-guidelines-for-repository-contributors)" -- "[Agregar una licencia a un repositorio](/articles/adding-a-license-to-a-repository)" -- "[Acerca de las plantillas de propuestas y de solicitudes de extracción](/articles/about-issue-and-pull-request-templates)" -- "[Guías de código abierto](https://opensource.guide/)" +- "[Adding a code of conduct to your project](/articles/adding-a-code-of-conduct-to-your-project)" +- "[Setting guidelines for repository contributors](/articles/setting-guidelines-for-repository-contributors)" +- "[Adding a license to a repository](/articles/adding-a-license-to-a-repository)" +- "[About issue and pull request templates](/articles/about-issue-and-pull-request-templates)" +- "[Open Source Guides](https://opensource.guide/)" - [{% data variables.product.prodname_learning %}]({% data variables.product.prodname_learning_link %}) diff --git a/translations/es-ES/content/communities/setting-up-your-project-for-healthy-contributions/index.md b/translations/es-ES/content/communities/setting-up-your-project-for-healthy-contributions/index.md index 322cd6e149..f732f0c105 100644 --- a/translations/es-ES/content/communities/setting-up-your-project-for-healthy-contributions/index.md +++ b/translations/es-ES/content/communities/setting-up-your-project-for-healthy-contributions/index.md @@ -1,9 +1,9 @@ --- -title: Configurar tu proyecto para contribuciones saludables -shortTitle: Contribuciones saludables -intro: Los mantenedores del repositorio pueden configurar pautas de contribuciones para ayudar a los colaboradores a hacer contribuciones significativas y útiles a tu proyecto. +title: Setting up your project for healthy contributions +shortTitle: Healthy contributions +intro: 'Repository maintainers can set contributing guidelines to help collaborators make meaningful, useful contributions to a project.' redirect_from: - - /articles/helping-people-contribute-to-your-project/ + - /articles/helping-people-contribute-to-your-project - /articles/setting-up-your-project-for-healthy-contributions - /github/building-a-strong-community/setting-up-your-project-for-healthy-contributions versions: diff --git a/translations/es-ES/content/communities/setting-up-your-project-for-healthy-contributions/setting-guidelines-for-repository-contributors.md b/translations/es-ES/content/communities/setting-up-your-project-for-healthy-contributions/setting-guidelines-for-repository-contributors.md index 9f50395fcd..c5bb1df6a6 100644 --- a/translations/es-ES/content/communities/setting-up-your-project-for-healthy-contributions/setting-guidelines-for-repository-contributors.md +++ b/translations/es-ES/content/communities/setting-up-your-project-for-healthy-contributions/setting-guidelines-for-repository-contributors.md @@ -1,68 +1,68 @@ --- -title: Configurar pautas para los colaboradores de repositorios -intro: Puedes crear pautas para comunicar cómo pueden contribuir las personas a tu proyecto. +title: Setting guidelines for repository contributors +intro: You can create guidelines to communicate how people should contribute to your project. versions: fpt: '*' ghes: '*' ghae: '*' ghec: '*' redirect_from: - - /articles/how-do-i-set-up-guidelines-for-contributors/ + - /articles/how-do-i-set-up-guidelines-for-contributors - /articles/setting-guidelines-for-repository-contributors - /github/building-a-strong-community/setting-guidelines-for-repository-contributors topics: - Community -shortTitle: Lineamientos de contribuyente +shortTitle: Contributor guidelines --- - -## Acerca de los lineamientos de contribución -Para ayudar a los colaboradores de tu proyecto a realizar un buen trabajo, puedes agregar un archivo con las pautas de colaboración a la raíz del repositorio de tu proyecto, carpeta `docs`, o `.github`. Cuando alguien abre una solicitud de extracción o crea una propuesta, verán un enlace a ese archivo. El enlace a los lineamientos de contribución también aparece en la página de `contribute` de tu repositorio. Para encontrar un ejemplo de página de `contribute`, consulta [github/docs/contribute](https://github.com/github/docs/contribute). +## About contributing guidelines +To help your project contributors do good work, you can add a file with contribution guidelines to your project repository's root, `docs`, or `.github` folder. When someone opens a pull request or creates an issue, they will see a link to that file. The link to the contributing guidelines also appears on your repository's `contribute` page. For an example of a `contribute` page, see [github/docs/contribute](https://github.com/github/docs/contribute). ![contributing-guidelines](/assets/images/help/pull_requests/contributing-guidelines.png) -Para el propietario del repositorio, las pautas de contribución son una manera de comunicar cómo deben contribuir las personas. +For the repository owner, contribution guidelines are a way to communicate how people should contribute. -Para los colaboradores, las pautas los ayudan a verificar que están presentando solicitudes de extracción conformadas correctamente y abriendo propuestas útiles. +For contributors, the guidelines help them verify that they're submitting well-formed pull requests and opening useful issues. -Tanto para los propietarios como para los colaboradores, las pautas de contribución ahorran tiempo y evitan inconvenientes generados por solicitudes de extracción o propuestas creadas de manera incorrecta que deben ser rechazadas o se deben volver a presentar. +For both owners and contributors, contribution guidelines save time and hassle caused by improperly created pull requests or issues that have to be rejected and re-submitted. {% ifversion fpt or ghes or ghec %} -Puedes crear lineamientos de contribución predeterminados para tu organización{% ifversion fpt or ghes or ghec %} o cuenta de usuario{% endif %}. Para obtener más información, consulta "[Crear un archivo de salud predeterminado para la comunidad](//communities/setting-up-your-project-for-healthy-contributions/creating-a-default-community-health-file)." +You can create default contribution guidelines for your organization{% ifversion fpt or ghes or ghec %} or user account{% endif %}. For more information, see "[Creating a default community health file](//communities/setting-up-your-project-for-healthy-contributions/creating-a-default-community-health-file)." {% endif %} {% tip %} -**Sugerencia:** los mantenedores de repositorios pueden establecer pautas específicas para las propuestas al crear una plantilla de propuesta o de solicitud de extracción para el repositorio. Para obtener más información, consulta "[Acerca de las plantillas de propuestas y solicitudes de extracción](/articles/about-issue-and-pull-request-templates)". +**Tip:** Repository maintainers can set specific guidelines for issues by creating an issue or pull request template for the repository. For more information, see "[About issue and pull request templates](/articles/about-issue-and-pull-request-templates)." {% endtip %} -## Agregar un archivo *CONTRIBUTING* +## Adding a *CONTRIBUTING* file {% data reusables.repositories.navigate-to-repo %} {% data reusables.files.add-file %} -3. Decide si almacenar tus pautas de contribución en la raíz de tu repositorio, el directorio `docs`, o el directorio `.github`. Después, en el campo nombre de archivo, escribe el nombre y la extensión del archivo. Los nombres de archivo de los lineamientos de contribución no distinguen entre mayúsculas y minúsculas. Los archivos se interpretan en formato de texto rico si la extensión de archivo se encuentra en un formato compatible. Para obtener más información, consulta la sección "[Trabajar con archivos que no sean de código](/repositories/working-with-files/using-files/working-with-non-code-files#rendering-differences-in-prose-documents)". ![Nombre del nuevo archivo](/assets/images/help/repository/new-file-name.png) - - Para hacer visibles tus pautas de contribución en el directorio raíz del repositorio, escribe *CONTRIBUTING*. - - Para hacer visibles tus pautas de contribución en el directorio `docs` del repositorio, escribe *docs/* para crear el nuevo directorio, y luego *CONTRIBUTING*. - - Si un repositorio contiene más de un archivo de *CONTRIBUCIÓN*, entonces el archivo que se muestra en los enlaces se elige de las ubicaciones en el siguiente orden: el directorio `.github`, luego el directorio raíz del repositorio y finalmente el directorio `docs`. -4. En el nuevo archivo, agrega las pautas de contribución. Pueden incluir: - - Pasos para crear buenas propuestas o solicitudes de extracción. - - Enlaces a la documentación externa, listas de correos o un código de conducta. - - Expectativas de comportamiento y de la comunidad. +3. Decide whether to store your contributing guidelines in your repository's root, `docs`, or `.github` directory. Then, in the filename field, type the name and extension for the file. Contributing guidelines filenames are not case sensitive. Files are rendered in rich text format if the file extension is in a supported format. For more information, see "[Working with non-code files](/repositories/working-with-files/using-files/working-with-non-code-files#rendering-differences-in-prose-documents)." + ![New file name](/assets/images/help/repository/new-file-name.png) + - To make your contributing guidelines visible in the repository's root directory, type *CONTRIBUTING*. + - To make your contributing guidelines visible in the repository's `docs` directory, type *docs/* to create the new directory, then *CONTRIBUTING*. + - If a repository contains more than one *CONTRIBUTING* file, then the file shown in links is chosen from locations in the following order: the `.github` directory, then the repository's root directory, and finally the `docs` directory. +4. In the new file, add contribution guidelines. These could include: + - Steps for creating good issues or pull requests. + - Links to external documentation, mailing lists, or a code of conduct. + - Community and behavioral expectations. {% data reusables.files.write_commit_message %} {% data reusables.files.choose_commit_branch %} {% data reusables.files.propose_new_file %} -## Ejemplos de pautas de contribución +## Examples of contribution guidelines -Si estás confundido, aquí hay algunos buenos ejemplos de pautas de contribución: +If you're stumped, here are some good examples of contribution guidelines: -- Pautas de contribución del Editor Atom [](https://github.com/atom/atom/blob/master/CONTRIBUTING.md). -- Pautas de contribución de Ruby on Rails [](https://github.com/rails/rails/blob/master/CONTRIBUTING.md). -- Pautas de contribución de Open Government [](https://github.com/opengovernment/opengovernment/blob/master/CONTRIBUTING.md). +- The Atom editor [contribution guidelines](https://github.com/atom/atom/blob/master/CONTRIBUTING.md). +- The Ruby on Rails [contribution guidelines](https://github.com/rails/rails/blob/master/CONTRIBUTING.md). +- The Open Government [contribution guidelines](https://github.com/opengovernment/opengovernment/blob/master/CONTRIBUTING.md). -## Leer más -- La sección de la Guía de código abierto "[Iniciar un proyecto de código abierto](https://opensource.guide/starting-a-project/)"{% ifversion fpt or ghec %} +## Further reading +- The Open Source Guides' section "[Starting an Open Source Project](https://opensource.guide/starting-a-project/)"{% ifversion fpt or ghec %} - [{% data variables.product.prodname_learning %}]({% data variables.product.prodname_learning_link %}){% endif %}{% ifversion fpt or ghes or ghec %} -- "[Agregar una licencia a un repositorio](/articles/adding-a-license-to-a-repository)"{% endif %} +- "[Adding a license to a repository](/articles/adding-a-license-to-a-repository)"{% endif %} diff --git a/translations/es-ES/content/communities/using-templates-to-encourage-useful-issues-and-pull-requests/index.md b/translations/es-ES/content/communities/using-templates-to-encourage-useful-issues-and-pull-requests/index.md index 0f9a47c208..9974eff8e8 100644 --- a/translations/es-ES/content/communities/using-templates-to-encourage-useful-issues-and-pull-requests/index.md +++ b/translations/es-ES/content/communities/using-templates-to-encourage-useful-issues-and-pull-requests/index.md @@ -1,10 +1,10 @@ --- -title: Utilizar plantillas para promover informes de problemas y solicitudes de extracción útiles -shortTitle: Plantillas de propuestas & solicitudes de cambio -intro: Los mantenedores del repositorio pueden agregar plantillas en un repositorio para ayudar a los contribuyentes a crear propuestas y solicitudes de extracción de alta calidad. +title: Using templates to encourage useful issues and pull requests +shortTitle: Issue & PR templates +intro: Repository maintainers can add templates in a repository to help contributors create high-quality issues and pull requests. redirect_from: - /github/building-a-strong-community/using-issue-and-pull-request-templates - - /articles/using-templates-to-encourage-high-quality-issues-and-pull-requests-in-your-repository/ + - /articles/using-templates-to-encourage-high-quality-issues-and-pull-requests-in-your-repository - /articles/using-issue-and-pull-request-templates - /github/building-a-strong-community/using-templates-to-encourage-useful-issues-and-pull-requests versions: diff --git a/translations/es-ES/content/communities/using-templates-to-encourage-useful-issues-and-pull-requests/manually-creating-a-single-issue-template-for-your-repository.md b/translations/es-ES/content/communities/using-templates-to-encourage-useful-issues-and-pull-requests/manually-creating-a-single-issue-template-for-your-repository.md index fd1fb36d9e..cbf6716233 100644 --- a/translations/es-ES/content/communities/using-templates-to-encourage-useful-issues-and-pull-requests/manually-creating-a-single-issue-template-for-your-repository.md +++ b/translations/es-ES/content/communities/using-templates-to-encourage-useful-issues-and-pull-requests/manually-creating-a-single-issue-template-for-your-repository.md @@ -1,8 +1,8 @@ --- -title: Crear de forma manual una plantilla de propuesta única para tu repositorio -intro: 'Cuando agregas una plantilla de propuesta creada de forma manual a tu repositorio, los colaboradores del proyecto verán automáticamente los contenidos de la plantilla en el cuerpo de la propuesta.' +title: Manually creating a single issue template for your repository +intro: 'When you add a manually-created issue template to your repository, project contributors will automatically see the template''s contents in the issue body.' redirect_from: - - /articles/creating-an-issue-template-for-your-repository/ + - /articles/creating-an-issue-template-for-your-repository - /articles/manually-creating-a-single-issue-template-for-your-repository - /github/building-a-strong-community/manually-creating-a-single-issue-template-for-your-repository versions: @@ -12,29 +12,29 @@ versions: ghec: '*' topics: - Community -shortTitle: Crear una plantilla de propuesta +shortTitle: Create an issue template --- {% data reusables.repositories.legacy-issue-template-tip %} -Puedes crear un subdirectorio de *ISSUE_TEMPLATE/* (PLANTILLA DE PROPUESTA) en alguna de las carpetas admitidas para incluir múltiples plantillas de propuestas, y utilizar el parámetro de consulta `template` para especificar la plantilla que completará el cuerpo de la propuesta. Para obtener más información, consulta "[Acerca de la automatización para las propuestas y las solicitudes de extracción con parámetros de consulta ](/articles/about-automation-for-issues-and-pull-requests-with-query-parameters)" +You can create an *ISSUE_TEMPLATE/* subdirectory in any of the supported folders to contain multiple issue templates, and use the `template` query parameter to specify the template that will fill the issue body. For more information, see "[About automation for issues and pull requests with query parameters](/articles/about-automation-for-issues-and-pull-requests-with-query-parameters)." -Puede añadir texto preliminar de YAML a cada plantilla de reporte de problemas para pre-llenar el título del mismo, añadir etiquetas y personal asignado automáticamente, y asignar un nombre y descripción que se mostrará en el selector de la misma, el cual verán las personas cuando se cree un nuevo reporte de problemas en su repositorio. +You can add YAML frontmatter to each issue template to pre-fill the issue title, automatically add labels and assignees, and give the template a name and description that will be shown in the template chooser that people see when creating a new issue in your repository. -Aquí hay un ejemplo de texto preliminar de YAML. +Here is example YAML front matter. ```yaml --- -nombre: Problema de rastreo -acerca de: Utilice esta plantilla para rastrear nuevas características. -título: "[DATE]: [FEATURE NAME]" -etiquetas: problema de rastreo, necesita clasificación -asignados: octocat +name: Tracking issue +about: Use this template for tracking new features. +title: "[DATE]: [FEATURE NAME]" +labels: tracking issue, needs triage +assignees: octocat --- ``` {% note %} -**Nota:** Si un valor del texto preliminar incluye algún caracter reservado para YAML tal como `:`, deberás poner dicho valor entre comillas íntegramente. Por ejemplo, `":bug: Bug"` o `":new: triage needed, :bug: bug"`. +**Note:** If a front matter value includes a YAML-reserved character such as `:` , you must put the whole value in quotes. For example, `":bug: Bug"` or `":new: triage needed, :bug: bug"`. {% endnote %} @@ -50,27 +50,31 @@ asignados: octocat {% endif %} -## Agregar una plantilla de propuesta +## Adding an issue template {% data reusables.repositories.navigate-to-repo %} {% data reusables.files.add-file %} -3. En el campo para el nombre del archivo: - - Para que tu plantilla de propuesta sea visible en el directorio raíz del repositorio, escribe el nombre de tu *issue_template* (plantilla de propuesta). Por ejemplo, `issue_template.md`. ![Nuevo nombre de la plantilla de propuesta en un directorio raíz](/assets/images/help/repository/issue-template-file-name.png) - - Para que tu plantilla de propuesta sea visible en el directorio `docs` del repositorio, escribe *docs/* seguido del nombre de tu *issue_template*. Por ejemplo, `docs/issue_template.md`, ![Nueva plantilla de propuesta en el directorio docs](/assets/images/help/repository/issue-template-file-name-docs.png) - - Para almacenar tu archivo en un directorio escondido, escribe *.github/* seguido del nombre de tu *issue_template*. Por ejemplo, `.github/issue_template.md`. ![Nueva plantilla de propuesta en un directorio oculto](/assets/images/help/repository/issue-template-hidden-directory.png) - - Para crear múltiples plantillas de propuestas y utilizar el parámetro de consulta `template` para especificar una plantilla para que complete el cuerpo de la propuesta, escribe *.github/ISSUE_TEMPLATE/*, después el nombre de tu plantilla de propuesta. Por ejemplo, `.github/ISSUE_TEMPLATE/issue_template.md`. Puedes también almacenar múltiples plantillas de propuestas en un subdirectorio `ISSUE_TEMPLATE` dentro de la raíz o directorios `docs/`. Para obtener más información, consulta "[Acerca de la automatización para las propuestas y las solicitudes de extracción con parámetros de consulta ](/articles/about-automation-for-issues-and-pull-requests-with-query-parameters)" ![Nueva plantilla de propuesta múltiple en un directorio oculto](/assets/images/help/repository/issue-template-multiple-hidden-directory.png) -4. En el cuerpo del nuevo archivo, agrega tu plantilla de propuesta. Puede incluir: - - Texto preliminar de YAML - - Comportamiento esperado y comportamiento real - - Pasos para reproducir el problema - - Especificaciones como la versión del proyecto, sistema operativo o hardware +3. In the file name field: + - To make your issue template visible in the repository's root directory, type the name of your *issue_template*. For example, `issue_template.md`. + ![New issue template name in root directory](/assets/images/help/repository/issue-template-file-name.png) + - To make your issue template visible in the repository's `docs` directory, type *docs/* followed by the name of your *issue_template*. For example, `docs/issue_template.md`, + ![New issue template in docs directory](/assets/images/help/repository/issue-template-file-name-docs.png) + - To store your file in a hidden directory, type *.github/* followed by the name of your *issue_template*. For example, `.github/issue_template.md`. + ![New issue template in hidden directory](/assets/images/help/repository/issue-template-hidden-directory.png) + - To create multiple issue templates and use the `template` query parameter to specify a template to fill the issue body, type *.github/ISSUE_TEMPLATE/*, then the name of your issue template. For example, `.github/ISSUE_TEMPLATE/issue_template.md`. You can also store multiple issue templates in an `ISSUE_TEMPLATE` subdirectory within the root or `docs/` directories. For more information, see "[About automation for issues and pull requests with query parameters](/articles/about-automation-for-issues-and-pull-requests-with-query-parameters)." + ![New multiple issue template in hidden directory](/assets/images/help/repository/issue-template-multiple-hidden-directory.png) +4. In the body of the new file, add your issue template. This could include: + - YAML frontmatter + - Expected behavior and actual behavior + - Steps to reproduce the problem + - Specifications like the version of the project, operating system, or hardware {% data reusables.files.write_commit_message %} -{% data reusables.files.choose_commit_branch %} Las plantillas están disponibles para los colaboradores cuando están fusionadas dentro de la rama predeterminada del repositorio. +{% data reusables.files.choose_commit_branch %} Templates are available to collaborators when they are merged into the repository's default branch. {% data reusables.files.propose_new_file %} -## Leer más +## Further reading -- "[Acerca de las plantillas de propuestas y de solicitudes de extracción](/articles/about-issue-and-pull-request-templates)" -- "[Configurar las plantillas de reporte de problemas en su repositorio](/articles/configuring-issue-templates-for-your-repository)" -- "[Acerca de la automatización para las propuestas y las solicitudes de extracción con parámetros de consulta ](/articles/about-automation-for-issues-and-pull-requests-with-query-parameters)" -- "[Crear una propuesta](/articles/creating-an-issue)" +- "[About issue and pull request templates](/articles/about-issue-and-pull-request-templates)" +- "[Configuring issue templates for your repository](/articles/configuring-issue-templates-for-your-repository)" +- "[About automation for issues and pull requests with query parameters](/articles/about-automation-for-issues-and-pull-requests-with-query-parameters)" +- "[Creating an issue](/articles/creating-an-issue)" diff --git a/translations/es-ES/content/desktop/installing-and-configuring-github-desktop/overview/keyboard-shortcuts.md b/translations/es-ES/content/desktop/installing-and-configuring-github-desktop/overview/keyboard-shortcuts.md index 46267e7a98..cf34ff73d0 100644 --- a/translations/es-ES/content/desktop/installing-and-configuring-github-desktop/overview/keyboard-shortcuts.md +++ b/translations/es-ES/content/desktop/installing-and-configuring-github-desktop/overview/keyboard-shortcuts.md @@ -1,121 +1,120 @@ --- -title: Atajos del teclado -intro: 'Puedes usar los atajos de teclado en {% data variables.product.prodname_desktop %}.' +title: Keyboard shortcuts +intro: 'You can use keyboard shortcuts in {% data variables.product.prodname_desktop %}.' redirect_from: - - /desktop/getting-started-with-github-desktop/keyboard-shortcuts-in-github-desktop/ + - /desktop/getting-started-with-github-desktop/keyboard-shortcuts-in-github-desktop - /desktop/getting-started-with-github-desktop/keyboard-shortcuts - /desktop/installing-and-configuring-github-desktop/keyboard-shortcuts versions: fpt: '*' --- - {% mac %} -Atajos de teclado de GitHyb Desktop en macOS +GitHub Desktop keyboard shortcuts on macOS -## Atajos en todo el sitio +## Site wide shortcuts -| Atajo del teclado | Descripción | -| ------------------------------------ | ------------------------------------------------------------------- | -| , | Ir a Preferences (Preferencias) | -| H | Ocultar la aplicación {% data variables.product.prodname_desktop %} -| H | Ocultar todas las otras aplicaciones | -| Q | Dejar {% data variables.product.prodname_desktop %} -| F | Alternar vista de pantalla completa | -| 0 | Restablecer zoom al tamaño de texto predeterminado | -| = | Acercar para textos y gráficos más grandes | -| - | Alejar para textos y gráficos más pequeños | -| I | Alternar herramientas del desarrollador | +| Keyboard shortcut | Description +|-----------|------------ +|, | Go to Preferences +|H | Hide the {% data variables.product.prodname_desktop %} application +|H | Hide all other applications +|Q | Quit {% data variables.product.prodname_desktop %} +|F | Toggle full screen view +|0 | Reset zoom to default text size +|= | Zoom in for larger text and graphics +|- | Zoom out for smaller text and graphics +|I | Toggle Developer Tools -## Repositorios +## Repositories -| Atajo del teclado | Descripción | -| ------------------------------------ | ------------------------------------------------------------------------------- | -| N | Agregar un repositorio nuevo | -| O | Agregar un repositorio local | -| O | Clonar un repositorio desde {% data variables.product.prodname_dotcom %} -| T | Mostrar una lista de tus repositorios | -| P | Subir las últimas confirmaciones a {% data variables.product.prodname_dotcom %} -| P | Bajar los últimos cambios de {% data variables.product.prodname_dotcom %} -| | Eliminar un repositorio existente | -| G | Ver el repositorio en {% data variables.product.prodname_dotcom %} -| ` | Abrir el repositorio en tu herramienta de terminal preferida | -| F | Mostrar el repositorio en Finder | -| A | Abrir el repositorio en tu herramienta de editor preferida | -| I | Crear un informe de problemas en {% data variables.product.prodname_dotcom %} +| Keyboard shortcut | Description +|-----------|------------ +|N | Add a new repository +|O | Add a local repository +|O | Clone a repository from {% data variables.product.prodname_dotcom %} +|T | Show a list of your repositories +|P | Push the latest commits to {% data variables.product.prodname_dotcom %} +|P | Pull down the latest changes from {% data variables.product.prodname_dotcom %} +| | Remove an existing repository +|G | View the repository on {% data variables.product.prodname_dotcom %} +|` | Open repository in your preferred terminal tool +|F | Show the repository in Finder +|A | Open the repository in your preferred editor tool +|I | Create an issue on {% data variables.product.prodname_dotcom %} -## Ramas +## Branches -| Atajo del teclado | Descripción | -| ------------------------------------ | ----------------------------------------------------------------------------------------- | -| 1 | Mostrar todos los cambios antes de confirmar | -| 2 | Mostrar tu historial de confirmaciones | -| B | Mostrar todas tus ramas | -| G | Ir al campo de resumen de confirmaciones | -| Enter | Confirma los cambios cuando el campo de resumen o de descripción está activo | -| espacio | Selecciona o deselecciona todos los archivos resaltados | -| N | Crear una rama nueva | -| R | Renombrar la rama actual | -| D | Eliminar la rama actual | -| U | Actualizar desde la rama predeterminada | -| B | Comparar con una rama existente | -| M | Fusionar en una rama actual | -| H | Mostrar u ocultar cambios acumulados | -| C | Comparar ramas en {% data variables.product.prodname_dotcom %} -| R | Mostrar la solicitud de extracción actual en {% data variables.product.prodname_dotcom %} +| Keyboard shortcut | Description +|-----------|------------ +|1 | Show all your changes before committing +|2 | Show your commit history +|B | Show all your branches +|G | Go to the commit summary field +|Enter | Commit changes when summary or description field is active +|space| Select or deselect all highlighted files +|N | Create a new branch +|R | Rename the current branch +|D | Delete the current branch +|U | Update from default branch +|B | Compare to an existing branch +|M | Merge into current branch +|H | Show or hide stashed changes +|C | Compare branches on {% data variables.product.prodname_dotcom %} +|R | Show the current pull request on {% data variables.product.prodname_dotcom %} {% endmac %} {% windows %} -Atajos de teclado de GitHub Desktop en Windows +GitHub Desktop keyboard shortcuts on Windows -## Atajos en todo el sitio +## Site wide shortcuts -| Atajo del teclado | Descripción | -| ------------------------------------------- | -------------------------------------------------- | -| Ctrl, | Ir a Options (Opciones) | -| F11 | Alternar vista de pantalla completa | -| Ctrl0 | Restablecer zoom al tamaño de texto predeterminado | -| Ctrl= | Acercar para textos y gráficos más grandes | -| Ctrl- | Alejar para textos y gráficos más pequeños | -| CtrlShiftI | Alternar herramientas del desarrollador | +| Keyboard shortcut | Description +|-----------|------------ +|Ctrl, | Go to Options +|F11 | Toggle full screen view +|Ctrl0 | Reset zoom to default text size +|Ctrl= | Zoom in for larger text and graphics +|Ctrl- | Zoom out for smaller text and graphics +|CtrlShiftI | Toggle Developer Tools -## Repositorios +## Repositories -| Atajo del teclado | Descripción | -| ------------------------------------------- | ------------------------------------------------------------------------------- | -| CtrlN | Agregar un repositorio nuevo | -| CtrlO | Agregar un repositorio local | -| CtrlShiftO | Clonar un repositorio desde {% data variables.product.prodname_dotcom %} -| CtrlT | Mostrar una lista de tus repositorios | -| CtrlP | Subir las últimas confirmaciones a {% data variables.product.prodname_dotcom %} -| CtrlShiftP | Bajar los últimos cambios de {% data variables.product.prodname_dotcom %} -| CtrlDelete | Eliminar un repositorio existente | -| CtrlShiftG | Ver el repositorio en {% data variables.product.prodname_dotcom %} -| Ctrl` | Abrir el repositorio en tu herramienta de línea de comando preferida | -| CtrlShiftF | Mostrar el repositorio en Explorador | -| CtrlShiftA | Abrir el repositorio en tu herramienta de editor preferida | -| CtrlI | Crear un informe de problemas en {% data variables.product.prodname_dotcom %} +| Keyboard Shortcut | Description +|-----------|------------ +|CtrlN | Add a new repository +|CtrlO | Add a local repository +|CtrlShiftO | Clone a repository from {% data variables.product.prodname_dotcom %} +|CtrlT | Show a list of your repositories +|CtrlP | Push the latest commits to {% data variables.product.prodname_dotcom %} +|CtrlShiftP | Pull down the latest changes from {% data variables.product.prodname_dotcom %} +|CtrlDelete | Remove an existing repository +|CtrlShiftG | View the repository on {% data variables.product.prodname_dotcom %} +|Ctrl` | Open repository in your preferred command line tool +|CtrlShiftF | Show the repository in Explorer +|CtrlShiftA | Open the repository in your preferred editor tool +|CtrlI | Create an issue on {% data variables.product.prodname_dotcom %} -## Ramas +## Branches -| Atajo del teclado | Descripción | -| ------------------------------------------- | ----------------------------------------------------------------------------------------- | -| Ctrl1 | Mostrar todos los cambios antes de confirmar | -| Ctrl2 | Mostrar tu historial de confirmaciones | -| CtrlB | Mostrar todas tus ramas | -| CtrlG | Ir al campo de resumen de confirmaciones | -| CtrlEnter | Confirma los cambios cuando el campo de resumen o de descripción está activo | -| espacio | Selecciona o deselecciona todos los archivos resaltados | -| CtrlShiftN | Crear una rama nueva | -| CtrlShiftR | Renombrar la rama actual | -| CtrlShiftD | Eliminar la rama actual | -| CtrlShiftU | Actualizar desde la rama predeterminada | -| CtrlShiftB | Comparar con una rama existente | -| CtrlShiftM | Fusionar en una rama actual | -| CtrlH | Mostrar u ocultar cambios acumulados | -| CtrlShiftC | Comparar ramas en {% data variables.product.prodname_dotcom %} -| CtrlR | Mostrar la solicitud de extracción actual en {% data variables.product.prodname_dotcom %} +| Keyboard shortcut | Description +|-----------|------------ +|Ctrl1 | Show all your changes before committing +|Ctrl2 | Show your commit history +|CtrlB | Show all your branches +|CtrlG | Go to the commit summary field +|CtrlEnter | Commit changes when summary or description field is active +|space| Select or deselect all highlighted files +|CtrlShiftN | Create a new branch +|CtrlShiftR | Rename the current branch +|CtrlShiftD | Delete the current branch +|CtrlShiftU | Update from default branch +|CtrlShiftB | Compare to an existing branch +|CtrlShiftM | Merge into current branch +|CtrlH | Show or hide stashed changes +|CtrlShiftC | Compare branches on {% data variables.product.prodname_dotcom %} +|CtrlR | Show the current pull request on {% data variables.product.prodname_dotcom %} {% endwindows %} diff --git a/translations/es-ES/content/developers/apps/building-github-apps/authenticating-with-github-apps.md b/translations/es-ES/content/developers/apps/building-github-apps/authenticating-with-github-apps.md index 75409ef3ff..c876fc183c 100644 --- a/translations/es-ES/content/developers/apps/building-github-apps/authenticating-with-github-apps.md +++ b/translations/es-ES/content/developers/apps/building-github-apps/authenticating-with-github-apps.md @@ -2,8 +2,8 @@ title: Authenticating with GitHub Apps intro: '{% data reusables.shortdesc.authenticating_with_github_apps %}' redirect_from: - - /apps/building-integrations/setting-up-and-registering-github-apps/about-authentication-options-for-github-apps/ - - /apps/building-github-apps/authentication-options-for-github-apps/ + - /apps/building-integrations/setting-up-and-registering-github-apps/about-authentication-options-for-github-apps + - /apps/building-github-apps/authentication-options-for-github-apps - /apps/building-github-apps/authenticating-with-github-apps - /developers/apps/authenticating-with-github-apps versions: diff --git a/translations/es-ES/content/developers/apps/building-github-apps/creating-a-github-app.md b/translations/es-ES/content/developers/apps/building-github-apps/creating-a-github-app.md index 828884e0cb..93f56c8090 100644 --- a/translations/es-ES/content/developers/apps/building-github-apps/creating-a-github-app.md +++ b/translations/es-ES/content/developers/apps/building-github-apps/creating-a-github-app.md @@ -1,9 +1,9 @@ --- -title: Crear una GitHub App +title: Creating a GitHub App intro: '{% data reusables.shortdesc.creating_github_apps %}' redirect_from: - - /early-access/integrations/creating-an-integration/ - - /apps/building-integrations/setting-up-and-registering-github-apps/registering-github-apps/ + - /early-access/integrations/creating-an-integration + - /apps/building-integrations/setting-up-and-registering-github-apps/registering-github-apps - /apps/building-github-apps/creating-a-github-app - /developers/apps/creating-a-github-app versions: @@ -14,13 +14,12 @@ versions: topics: - GitHub Apps --- - -{% ifversion fpt or ghec %}Para aprender cómo utilizar los manifiestos de las GitHub Apps, lo cual permite a las personas crear GitHub Apps preconfiguradas, consulta la sección "[Crear GitHub Apps a partir de un manifiesto](/apps/building-github-apps/creating-github-apps-from-a-manifest/)".{% endif %} +{% ifversion fpt or ghec %}To learn how to use GitHub App Manifests, which allow people to create preconfigured GitHub Apps, see "[Creating GitHub Apps from a manifest](/apps/building-github-apps/creating-github-apps-from-a-manifest/)."{% endif %} {% ifversion fpt or ghec %} {% note %} - **Nota:** {% data reusables.apps.maximum-github-apps-allowed %} + **Note:** {% data reusables.apps.maximum-github-apps-allowed %} {% endnote %} {% endif %} @@ -28,44 +27,57 @@ topics: {% data reusables.apps.settings-step %} {% data reusables.user-settings.developer_settings %} {% data reusables.user-settings.github_apps %} -1. Da clic en **GitHub App Nueva**. ![Botón para crear una GitHub App nueva](/assets/images/github-apps/github_apps_new.png) -1. E "Nombre dela GitHub App", teclea el nombre de tu app. ![Campo para nombrar tu GitHub App](/assets/images/github-apps/github_apps_app_name.png) +1. Click **New GitHub App**. +![Button to create a new GitHub App](/assets/images/github-apps/github_apps_new.png) +1. In "GitHub App name", type the name of your app. +![Field for the name of your GitHub App](/assets/images/github-apps/github_apps_app_name.png) - Pónle un nombre claro y breve a tu app. Tu app no puede tener el mismo nombre que una cuenta existente de GitHub, a menos de que sea tu propio nombre de usuario u organización. Una versión simplificada del nombre de tu aplicación se mostrará en la interface de usuario cuando tu integración tome alguna acción. + Give your app a clear and succinct name. Your app cannot have the same name as an existing GitHub account, unless it is your own user or organization name. A slugged version of your app's name will be shown in the user interface when your integration takes an action. -1. Opcionalmente, en "Descripción", teclea la descripción de tu app que verán los usuarios. ![Campo para agregar una descripción de tu GitHub App](/assets/images/github-apps/github_apps_description.png) -1. En "URL de la página principal", teclea la URL completa del sitio web de tu app. ![Campo para la URL de la página de inicio de tu GitHub App](/assets/images/github-apps/github_apps_homepage_url.png) +1. Optionally, in "Description", type a description of your app that users will see. +![Field for a description of your GitHub App](/assets/images/github-apps/github_apps_description.png) +1. In "Homepage URL", type the full URL to your app's website. +![Field for the homepage URL of your GitHub App](/assets/images/github-apps/github_apps_homepage_url.png) {% ifversion fpt or ghes > 3.0 or ghec %} -1. En "URL de rellamado", teclea la URL completa a la cual se redirigirá a los usuarios después de que autoricen la instalación. Esta URL se utiliza si tu app necesita identificar y autorizar las solicitudes de usuario a servidor. +1. In "Callback URL", type the full URL to redirect to after a user authorizes the installation. This URL is used if your app needs to identify and authorize user-to-server requests. - Puedes utilizar la opción de **Agregar una URL de rellamado** para proporcionar las URL de rellamado adicionales, con un máximo de 10 de ellas. + You can use **Add callback URL** to provide additional callback URLs, up to a maximum of 10. - ![Botón para 'Agregar una URL de rellamado' y campo para ingresar la URL de rellamado](/assets/images/github-apps/github_apps_callback_url_multiple.png) + ![Button for 'Add callback URL' and field for callback URL](/assets/images/github-apps/github_apps_callback_url_multiple.png) {% else %} -1. En "URL de rellamado para la autorización del usuario", teclea la URL completa a la cual se redireccionará después de que un usuario autorice una instalación. Esta URL se utiliza si tu app necesita identificar y autorizar las solicitudes de usuario a servidor. ![Campo para la URL de rellamado para la autorización del usuario de tu GitHub App](/assets/images/github-apps/github_apps_user_authorization.png) +1. In "User authorization callback URL", type the full URL to redirect to after a user authorizes an installation. This URL is used if your app needs to identify and authorize user-to-server requests. +![Field for the user authorization callback URL of your GitHub App](/assets/images/github-apps/github_apps_user_authorization.png) {% endif %} -1. Predeterminadamente, para mejorar la seguridad de tu app, ésta utilizará un token de autorización de usuario con una vida útil limitada. Para elegir no utilizar estos tokens de usuario, debes deseleccionar la opción "Limitar la vida útil de los tokens de autorización de usuario". Para conocer más acerca de configurar un flujo de rehabilitación de tokens y acerca de los beeficios de que éstos tenga una vida útil limitada, consulta la sección "[Rehabilitar los tokens de acceso de usuario a servidor](/apps/building-github-apps/refreshing-user-to-server-access-tokens/)". ![Opción para unirse a los tokens de usuario con caducidad durante la configuración de las GitHub Apps](/assets/images/github-apps/expire-user-tokens-selection.png) -1. Si tu app autoriza a los usuarios que utilizan el flujo de OAuth, puedes seleccionar la opción **Solicitar la autorización del usuario (OAuth) durante la instalación** para permitir que las personas den autorización a la app cuando la instalen, lo cual te ahorra un paso. Si seleccionas esta opción, la "URL de configuración" dejará de estar disponible y se redirigirá a los usuarios a tu "URL de rellamado para autorización del usuario" después de que instalen la app. Consulta la sección "[Autorizar a los usuarios durante la instalación](/apps/installing-github-apps/#authorizing-users-during-installation)" para obtener más información. ![Solicitar una autorización de usuario durante la instalación](/assets/images/github-apps/github_apps_request_auth_upon_install.png) -1. Si se requiere hacer ajustes adicionales después de la instalación, agrega una "URL de configuración" para redireccionar a los usuarios después de que instalen tu app. ![Campo para configurar la URL de tu GitHub App ](/assets/images/github-apps/github_apps_setup_url.png) +1. By default, to improve your app's security, your app will use expiring user authorization tokens. To opt-out of using expiring user tokens, you must deselect "Expire user authorization tokens". To learn more about setting up a refresh token flow and the benefits of expiring user tokens, see "[Refreshing user-to-server access tokens](/apps/building-github-apps/refreshing-user-to-server-access-tokens/)." + ![Option to opt-in to expiring user tokens during GitHub Apps setup](/assets/images/github-apps/expire-user-tokens-selection.png) +1. If your app authorizes users using the OAuth flow, you can select **Request user authorization (OAuth) during installation** to allow people to authorize the app when they install it, saving a step. If you select this option, the "Setup URL" becomes unavailable and users will be redirected to your "User authorization callback URL" after installing the app. See "[Authorizing users during installation](/apps/installing-github-apps/#authorizing-users-during-installation)" for more information. +![Request user authorization during installation](/assets/images/github-apps/github_apps_request_auth_upon_install.png) +1. If additional setup is required after installation, add a "Setup URL" to redirect users to after they install your app. +![Field for the setup URL of your GitHub App ](/assets/images/github-apps/github_apps_setup_url.png) {% note %} - **Nota:** Cuando seleccionas **Solicitar la autorización del usuario (OAuth) durante la instalación** en el paso anterior, este campo dejará de estar disponible y se redirigirá a los usuarios a tu "URL de rellamado para autorización del usuario" después de que instalen la app. + **Note:** When you select **Request user authorization (OAuth) during installation** in the previous step, this field becomes unavailable and people will be redirected to the "User authorization callback URL" after installing the app. {% endnote %} -1. En "URL del Webhook", teclea la URL a la cual los eventos harán POST. Cada app recibe su propio webhook, el cual te notificará cada que se instale o modifique dicha app, así como sobre cualquier otor evento al cual se suscriba. ![Campo para la URL del webhook de tu GitHub App](/assets/images/github-apps/github_apps_webhook_url.png) +1. In "Webhook URL", type the URL that events will POST to. Each app receives its own webhook which will notify you every time the app is installed or modified, as well as any other events the app subscribes to. +![Field for the webhook URL of your GitHub App](/assets/images/github-apps/github_apps_webhook_url.png) -1. Opcionalmente, en "Secreto del Webhook", teclea un token secreto opcional que se utilizará para asegurar tus webhooks. ![Campo para agregar un token secreto para tu Webhook](/assets/images/github-apps/github_apps_webhook_secret.png) +1. Optionally, in "Webhook Secret", type an optional secret token used to secure your webhooks. +![Field to add a secret token for your webhook](/assets/images/github-apps/github_apps_webhook_secret.png) {% note %} - **Nota:** Te recomendamos ampliamente que configures un token secreto. Para obtener más información, consulta la sección "[Asegurar tus webhooks](/webhooks/securing/)". + **Note:** We highly recommend that you set a secret token. For more information, see "[Securing your webhooks](/webhooks/securing/)." {% endnote %} -1. En "Permisos", elige aquellos permisos que solicitará tu app. Para cada tipo de permiso, utiliza el menú desplegable, y da clic en **Solo lectura**, **Lectura& escritura**, o **Sin acceso**. ![Varios permisos para tu GitHub App](/assets/images/github-apps/github_apps_new_permissions_post2dot13.png) -1. En "Suscribirse a los eventos", elige aquellos que quieras que reciba tu app. -1. Para elegir si la app se podrá instalar, selecciona ya sea **Únicamente en esta cuenta** o **Cualquier cuenta**. Para obtener más información sobre las opciones de instalación, selecciona "[Convertir una GitHub App en pública o privada](/apps/managing-github-apps/making-a-github-app-public-or-private/)". ![Opciones de instalación para tu GitHub App](/assets/images/github-apps/github_apps_installation_options.png) -1. Da clic en **Crear GitHub App**. ![Botón para crear tu GitHub App](/assets/images/github-apps/github_apps_create_github_app.png) +1. In "Permissions", choose the permissions your app will request. For each type of permission, use the drop-down menu and click **Read-only**, **Read & write**, or **No access**. +![Various permissions for your GitHub App](/assets/images/github-apps/github_apps_new_permissions_post2dot13.png) +1. In "Subscribe to events", choose the events you want your app to receive. +1. To choose where the app can be installed, select either **Only on this account** or **Any account**. For more information on installation options, see "[Making a GitHub App public or private](/apps/managing-github-apps/making-a-github-app-public-or-private/)." +![Installation options for your GitHub App](/assets/images/github-apps/github_apps_installation_options.png) +1. Click **Create GitHub App**. +![Button to create your GitHub App](/assets/images/github-apps/github_apps_create_github_app.png) diff --git a/translations/es-ES/content/developers/apps/building-github-apps/identifying-and-authorizing-users-for-github-apps.md b/translations/es-ES/content/developers/apps/building-github-apps/identifying-and-authorizing-users-for-github-apps.md index cc15507cf3..f3dc98fd52 100644 --- a/translations/es-ES/content/developers/apps/building-github-apps/identifying-and-authorizing-users-for-github-apps.md +++ b/translations/es-ES/content/developers/apps/building-github-apps/identifying-and-authorizing-users-for-github-apps.md @@ -2,8 +2,8 @@ title: Identifying and authorizing users for GitHub Apps intro: '{% data reusables.shortdesc.identifying_and_authorizing_github_apps %}' redirect_from: - - /early-access/integrations/user-identification-authorization/ - - /apps/building-integrations/setting-up-and-registering-github-apps/identifying-users-for-github-apps/ + - /early-access/integrations/user-identification-authorization + - /apps/building-integrations/setting-up-and-registering-github-apps/identifying-users-for-github-apps - /apps/building-github-apps/identifying-and-authorizing-users-for-github-apps - /developers/apps/identifying-and-authorizing-users-for-github-apps versions: @@ -239,16 +239,16 @@ While most of your API interaction should occur using your server-to-server inst #### Deployment Statuses -* [List deployment statuses](/rest/reference/repos#list-deployment-statuses) -* [Create a deployment status](/rest/reference/repos#create-a-deployment-status) -* [Get a deployment status](/rest/reference/repos#get-a-deployment-status) +* [List deployment statuses](/rest/reference/deployments#list-deployment-statuses) +* [Create a deployment status](/rest/reference/deployments#create-a-deployment-status) +* [Get a deployment status](/rest/reference/deployments#get-a-deployment-status) #### Deployments -* [List deployments](/rest/reference/repos#list-deployments) -* [Create a deployment](/rest/reference/repos#create-a-deployment) -* [Get a deployment](/rest/reference/repos#get-a-deployment){% ifversion fpt or ghes or ghae or ghec %} -* [Delete a deployment](/rest/reference/repos#delete-a-deployment){% endif %} +* [List deployments](/rest/reference/deployments#list-deployments) +* [Create a deployment](/rest/reference/deployments#create-a-deployment) +* [Get a deployment](/rest/reference/deployments#get-a-deployment){% ifversion fpt or ghes or ghae or ghec %} +* [Delete a deployment](/rest/reference/deployments#delete-a-deployment){% endif %} #### Events @@ -609,7 +609,7 @@ While most of your API interaction should occur using your server-to-server inst * [Get a repository](/rest/reference/repos#get-a-repository) * [Update a repository](/rest/reference/repos#update-a-repository) * [Delete a repository](/rest/reference/repos#delete-a-repository) -* [Compare two commits](/rest/reference/repos#compare-two-commits) +* [Compare two commits](/rest/reference/commits#compare-two-commits) * [List repository contributors](/rest/reference/repos#list-repository-contributors) * [List forks](/rest/reference/repos#list-forks) * [Create a fork](/rest/reference/repos#create-a-fork) @@ -641,68 +641,68 @@ While most of your API interaction should occur using your server-to-server inst #### Repository Branches -* [List branches](/rest/reference/repos#list-branches) -* [Get a branch](/rest/reference/repos#get-a-branch) -* [Get branch protection](/rest/reference/repos#get-branch-protection) -* [Update branch protection](/rest/reference/repos#update-branch-protection) -* [Delete branch protection](/rest/reference/repos#delete-branch-protection) -* [Get admin branch protection](/rest/reference/repos#get-admin-branch-protection) -* [Set admin branch protection](/rest/reference/repos#set-admin-branch-protection) -* [Delete admin branch protection](/rest/reference/repos#delete-admin-branch-protection) -* [Get pull request review protection](/rest/reference/repos#get-pull-request-review-protection) -* [Update pull request review protection](/rest/reference/repos#update-pull-request-review-protection) -* [Delete pull request review protection](/rest/reference/repos#delete-pull-request-review-protection) -* [Get commit signature protection](/rest/reference/repos#get-commit-signature-protection) -* [Create commit signature protection](/rest/reference/repos#create-commit-signature-protection) -* [Delete commit signature protection](/rest/reference/repos#delete-commit-signature-protection) -* [Get status checks protection](/rest/reference/repos#get-status-checks-protection) -* [Update status check protection](/rest/reference/repos#update-status-check-protection) -* [Remove status check protection](/rest/reference/repos#remove-status-check-protection) -* [Get all status check contexts](/rest/reference/repos#get-all-status-check-contexts) -* [Add status check contexts](/rest/reference/repos#add-status-check-contexts) -* [Set status check contexts](/rest/reference/repos#set-status-check-contexts) -* [Remove status check contexts](/rest/reference/repos#remove-status-check-contexts) -* [Get access restrictions](/rest/reference/repos#get-access-restrictions) -* [Delete access restrictions](/rest/reference/repos#delete-access-restrictions) +* [List branches](/rest/reference/branches#list-branches) +* [Get a branch](/rest/reference/branches#get-a-branch) +* [Get branch protection](/rest/reference/branches#get-branch-protection) +* [Update branch protection](/rest/reference/branches#update-branch-protection) +* [Delete branch protection](/rest/reference/branches#delete-branch-protection) +* [Get admin branch protection](/rest/reference/branches#get-admin-branch-protection) +* [Set admin branch protection](/rest/reference/branches#set-admin-branch-protection) +* [Delete admin branch protection](/rest/reference/branches#delete-admin-branch-protection) +* [Get pull request review protection](/rest/reference/branches#get-pull-request-review-protection) +* [Update pull request review protection](/rest/reference/branches#update-pull-request-review-protection) +* [Delete pull request review protection](/rest/reference/branches#delete-pull-request-review-protection) +* [Get commit signature protection](/rest/reference/branches#get-commit-signature-protection) +* [Create commit signature protection](/rest/reference/branches#create-commit-signature-protection) +* [Delete commit signature protection](/rest/reference/branches#delete-commit-signature-protection) +* [Get status checks protection](/rest/reference/branches#get-status-checks-protection) +* [Update status check protection](/rest/reference/branches#update-status-check-protection) +* [Remove status check protection](/rest/reference/branches#remove-status-check-protection) +* [Get all status check contexts](/rest/reference/branches#get-all-status-check-contexts) +* [Add status check contexts](/rest/reference/branches#add-status-check-contexts) +* [Set status check contexts](/rest/reference/branches#set-status-check-contexts) +* [Remove status check contexts](/rest/reference/branches#remove-status-check-contexts) +* [Get access restrictions](/rest/reference/branches#get-access-restrictions) +* [Delete access restrictions](/rest/reference/branches#delete-access-restrictions) * [List teams with access to the protected branch](/rest/reference/repos#list-teams-with-access-to-the-protected-branch) -* [Add team access restrictions](/rest/reference/repos#add-team-access-restrictions) -* [Set team access restrictions](/rest/reference/repos#set-team-access-restrictions) -* [Remove team access restriction](/rest/reference/repos#remove-team-access-restrictions) +* [Add team access restrictions](/rest/reference/branches#add-team-access-restrictions) +* [Set team access restrictions](/rest/reference/branches#set-team-access-restrictions) +* [Remove team access restriction](/rest/reference/branches#remove-team-access-restrictions) * [List user restrictions of protected branch](/rest/reference/repos#list-users-with-access-to-the-protected-branch) -* [Add user access restrictions](/rest/reference/repos#add-user-access-restrictions) -* [Set user access restrictions](/rest/reference/repos#set-user-access-restrictions) -* [Remove user access restrictions](/rest/reference/repos#remove-user-access-restrictions) -* [Merge a branch](/rest/reference/repos#merge-a-branch) +* [Add user access restrictions](/rest/reference/branches#add-user-access-restrictions) +* [Set user access restrictions](/rest/reference/branches#set-user-access-restrictions) +* [Remove user access restrictions](/rest/reference/branches#remove-user-access-restrictions) +* [Merge a branch](/rest/reference/branches#merge-a-branch) #### Repository Collaborators -* [List repository collaborators](/rest/reference/repos#list-repository-collaborators) -* [Check if a user is a repository collaborator](/rest/reference/repos#check-if-a-user-is-a-repository-collaborator) -* [Add a repository collaborator](/rest/reference/repos#add-a-repository-collaborator) -* [Remove a repository collaborator](/rest/reference/repos#remove-a-repository-collaborator) -* [Get repository permissions for a user](/rest/reference/repos#get-repository-permissions-for-a-user) +* [List repository collaborators](/rest/reference/collaborators#list-repository-collaborators) +* [Check if a user is a repository collaborator](/rest/reference/collaborators#check-if-a-user-is-a-repository-collaborator) +* [Add a repository collaborator](/rest/reference/collaborators#add-a-repository-collaborator) +* [Remove a repository collaborator](/rest/reference/collaborators#remove-a-repository-collaborator) +* [Get repository permissions for a user](/rest/reference/collaborators#get-repository-permissions-for-a-user) #### Repository Commit Comments -* [List commit comments for a repository](/rest/reference/repos#list-commit-comments-for-a-repository) -* [Get a commit comment](/rest/reference/repos#get-a-commit-comment) -* [Update a commit comment](/rest/reference/repos#update-a-commit-comment) -* [Delete a commit comment](/rest/reference/repos#delete-a-commit-comment) -* [List commit comments](/rest/reference/repos#list-commit-comments) -* [Create a commit comment](/rest/reference/repos#create-a-commit-comment) +* [List commit comments for a repository](/rest/reference/commits#list-commit-comments-for-a-repository) +* [Get a commit comment](/rest/reference/commits#get-a-commit-comment) +* [Update a commit comment](/rest/reference/commits#update-a-commit-comment) +* [Delete a commit comment](/rest/reference/commits#delete-a-commit-comment) +* [List commit comments](/rest/reference/commits#list-commit-comments) +* [Create a commit comment](/rest/reference/commits#create-a-commit-comment) #### Repository Commits -* [List commits](/rest/reference/repos#list-commits) -* [Get a commit](/rest/reference/repos#get-a-commit) -* [List branches for head commit](/rest/reference/repos#list-branches-for-head-commit) +* [List commits](/rest/reference/commits#list-commits) +* [Get a commit](/rest/reference/commits#get-a-commit) +* [List branches for head commit](/rest/reference/commits#list-branches-for-head-commit) * [List pull requests associated with commit](/rest/reference/repos#list-pull-requests-associated-with-commit) #### Repository Community * [Get the code of conduct for a repository](/rest/reference/codes-of-conduct#get-the-code-of-conduct-for-a-repository) {% ifversion fpt or ghec %} -* [Get community profile metrics](/rest/reference/repos#get-community-profile-metrics) +* [Get community profile metrics](/rest/reference/repository-metrics#get-community-profile-metrics) {% endif %} #### Repository Contents @@ -722,40 +722,40 @@ While most of your API interaction should occur using your server-to-server inst #### Repository Hooks -* [List repository webhooks](/rest/reference/repos#list-repository-webhooks) -* [Create a repository webhook](/rest/reference/repos#create-a-repository-webhook) -* [Get a repository webhook](/rest/reference/repos#get-a-repository-webhook) -* [Update a repository webhook](/rest/reference/repos#update-a-repository-webhook) -* [Delete a repository webhook](/rest/reference/repos#delete-a-repository-webhook) -* [Ping a repository webhook](/rest/reference/repos#ping-a-repository-webhook) +* [List repository webhooks](/rest/reference/webhooks#list-repository-webhooks) +* [Create a repository webhook](/rest/reference/webhooks#create-a-repository-webhook) +* [Get a repository webhook](/rest/reference/webhooks#get-a-repository-webhook) +* [Update a repository webhook](/rest/reference/webhooks#update-a-repository-webhook) +* [Delete a repository webhook](/rest/reference/webhooks#delete-a-repository-webhook) +* [Ping a repository webhook](/rest/reference/webhooks#ping-a-repository-webhook) * [Test the push repository webhook](/rest/reference/repos#test-the-push-repository-webhook) #### Repository Invitations -* [List repository invitations](/rest/reference/repos#list-repository-invitations) -* [Update a repository invitation](/rest/reference/repos#update-a-repository-invitation) -* [Delete a repository invitation](/rest/reference/repos#delete-a-repository-invitation) -* [List repository invitations for the authenticated user](/rest/reference/repos#list-repository-invitations-for-the-authenticated-user) -* [Accept a repository invitation](/rest/reference/repos#accept-a-repository-invitation) -* [Decline a repository invitation](/rest/reference/repos#decline-a-repository-invitation) +* [List repository invitations](/rest/reference/collaborators#list-repository-invitations) +* [Update a repository invitation](/rest/reference/collaborators#update-a-repository-invitation) +* [Delete a repository invitation](/rest/reference/collaborators#delete-a-repository-invitation) +* [List repository invitations for the authenticated user](/rest/reference/collaborators#list-repository-invitations-for-the-authenticated-user) +* [Accept a repository invitation](/rest/reference/collaborators#accept-a-repository-invitation) +* [Decline a repository invitation](/rest/reference/collaborators#decline-a-repository-invitation) #### Repository Keys -* [List deploy keys](/rest/reference/repos#list-deploy-keys) -* [Create a deploy key](/rest/reference/repos#create-a-deploy-key) -* [Get a deploy key](/rest/reference/repos#get-a-deploy-key) -* [Delete a deploy key](/rest/reference/repos#delete-a-deploy-key) +* [List deploy keys](/rest/reference/deployments#list-deploy-keys) +* [Create a deploy key](/rest/reference/deployments#create-a-deploy-key) +* [Get a deploy key](/rest/reference/deployments#get-a-deploy-key) +* [Delete a deploy key](/rest/reference/deployments#delete-a-deploy-key) #### Repository Pages -* [Get a GitHub Pages site](/rest/reference/repos#get-a-github-pages-site) -* [Create a GitHub Pages site](/rest/reference/repos#create-a-github-pages-site) -* [Update information about a GitHub Pages site](/rest/reference/repos#update-information-about-a-github-pages-site) -* [Delete a GitHub Pages site](/rest/reference/repos#delete-a-github-pages-site) -* [List GitHub Pages builds](/rest/reference/repos#list-github-pages-builds) -* [Request a GitHub Pages build](/rest/reference/repos#request-a-github-pages-build) -* [Get GitHub Pages build](/rest/reference/repos#get-github-pages-build) -* [Get latest pages build](/rest/reference/repos#get-latest-pages-build) +* [Get a GitHub Pages site](/rest/reference/pages#get-a-github-pages-site) +* [Create a GitHub Pages site](/rest/reference/pages#create-a-github-pages-site) +* [Update information about a GitHub Pages site](/rest/reference/pages#update-information-about-a-github-pages-site) +* [Delete a GitHub Pages site](/rest/reference/pages#delete-a-github-pages-site) +* [List GitHub Pages builds](/rest/reference/pages#list-github-pages-builds) +* [Request a GitHub Pages build](/rest/reference/pages#request-a-github-pages-build) +* [Get GitHub Pages build](/rest/reference/pages#get-github-pages-build) +* [Get latest pages build](/rest/reference/pages#get-latest-pages-build) {% ifversion ghes %} #### Repository Pre Receive Hooks @@ -782,11 +782,11 @@ While most of your API interaction should occur using your server-to-server inst #### Repository Stats -* [Get the weekly commit activity](/rest/reference/repos#get-the-weekly-commit-activity) -* [Get the last year of commit activity](/rest/reference/repos#get-the-last-year-of-commit-activity) -* [Get all contributor commit activity](/rest/reference/repos#get-all-contributor-commit-activity) -* [Get the weekly commit count](/rest/reference/repos#get-the-weekly-commit-count) -* [Get the hourly commit count for each day](/rest/reference/repos#get-the-hourly-commit-count-for-each-day) +* [Get the weekly commit activity](/rest/reference/repository-metrics#get-the-weekly-commit-activity) +* [Get the last year of commit activity](/rest/reference/repository-metrics#get-the-last-year-of-commit-activity) +* [Get all contributor commit activity](/rest/reference/repository-metrics#get-all-contributor-commit-activity) +* [Get the weekly commit count](/rest/reference/repository-metrics#get-the-weekly-commit-count) +* [Get the hourly commit count for each day](/rest/reference/repository-metrics#get-the-hourly-commit-count-for-each-day) {% ifversion fpt or ghec %} #### Repository Vulnerability Alerts @@ -812,9 +812,9 @@ While most of your API interaction should occur using your server-to-server inst #### Statuses -* [Get the combined status for a specific reference](/rest/reference/repos#get-the-combined-status-for-a-specific-reference) -* [List commit statuses for a reference](/rest/reference/repos#list-commit-statuses-for-a-reference) -* [Create a commit status](/rest/reference/repos#create-a-commit-status) +* [Get the combined status for a specific reference](/rest/reference/commits#get-the-combined-status-for-a-specific-reference) +* [List commit statuses for a reference](/rest/reference/commits#list-commit-statuses-for-a-reference) +* [Create a commit status](/rest/reference/commits#create-a-commit-status) #### Team Discussions @@ -837,10 +837,10 @@ While most of your API interaction should occur using your server-to-server inst {% ifversion fpt or ghec %} #### Traffic -* [Get repository clones](/rest/reference/repos#get-repository-clones) -* [Get top referral paths](/rest/reference/repos#get-top-referral-paths) -* [Get top referral sources](/rest/reference/repos#get-top-referral-sources) -* [Get page views](/rest/reference/repos#get-page-views) +* [Get repository clones](/rest/reference/repository-metrics#get-repository-clones) +* [Get top referral paths](/rest/reference/repository-metrics#get-top-referral-paths) +* [Get top referral sources](/rest/reference/repository-metrics#get-top-referral-sources) +* [Get page views](/rest/reference/repository-metrics#get-page-views) {% endif %} {% ifversion fpt or ghec %} diff --git a/translations/es-ES/content/developers/apps/building-github-apps/index.md b/translations/es-ES/content/developers/apps/building-github-apps/index.md index 3f9cae12b3..20e2cd4b16 100644 --- a/translations/es-ES/content/developers/apps/building-github-apps/index.md +++ b/translations/es-ES/content/developers/apps/building-github-apps/index.md @@ -1,8 +1,8 @@ --- -title: Crear GitHub Apps -intro: Puedes crar GitHub Apps para ti mismo o para que los utilicen los demás. Aprende como registrar y configurar permisos y opciones de autenticación para GitHub Apps. +title: Building GitHub Apps +intro: You can build GitHub Apps for yourself or others to use. Learn how to register and set up permissions and authentication options for GitHub Apps. redirect_from: - - /apps/building-integrations/setting-up-and-registering-github-apps/ + - /apps/building-integrations/setting-up-and-registering-github-apps - /apps/building-github-apps versions: fpt: '*' diff --git a/translations/es-ES/content/developers/apps/building-github-apps/rate-limits-for-github-apps.md b/translations/es-ES/content/developers/apps/building-github-apps/rate-limits-for-github-apps.md index 69254e7f3d..6027f1bb2b 100644 --- a/translations/es-ES/content/developers/apps/building-github-apps/rate-limits-for-github-apps.md +++ b/translations/es-ES/content/developers/apps/building-github-apps/rate-limits-for-github-apps.md @@ -2,9 +2,9 @@ title: Rate limits for GitHub Apps intro: '{% data reusables.shortdesc.rate_limits_github_apps %}' redirect_from: - - /early-access/integrations/rate-limits/ - - /apps/building-integrations/setting-up-and-registering-github-apps/about-rate-limits-for-github-apps/ - - /apps/building-github-apps/rate-limits-for-github-apps/ + - /early-access/integrations/rate-limits + - /apps/building-integrations/setting-up-and-registering-github-apps/about-rate-limits-for-github-apps + - /apps/building-github-apps/rate-limits-for-github-apps - /apps/building-github-apps/understanding-rate-limits-for-github-apps - /developers/apps/rate-limits-for-github-apps versions: diff --git a/translations/es-ES/content/developers/apps/building-github-apps/setting-permissions-for-github-apps.md b/translations/es-ES/content/developers/apps/building-github-apps/setting-permissions-for-github-apps.md index 0fb399026c..df3ebbe72d 100644 --- a/translations/es-ES/content/developers/apps/building-github-apps/setting-permissions-for-github-apps.md +++ b/translations/es-ES/content/developers/apps/building-github-apps/setting-permissions-for-github-apps.md @@ -1,9 +1,9 @@ --- -title: Configurar los permisos para las GitHub Apps +title: Setting permissions for GitHub Apps intro: '{% data reusables.shortdesc.permissions_github_apps %}' redirect_from: - - /apps/building-integrations/setting-up-and-registering-github-apps/about-permissions-for-github-apps/ - - /apps/building-github-apps/permissions-for-github-apps/ + - /apps/building-integrations/setting-up-and-registering-github-apps/about-permissions-for-github-apps + - /apps/building-github-apps/permissions-for-github-apps - /apps/building-github-apps/setting-permissions-for-github-apps - /developers/apps/setting-permissions-for-github-apps versions: @@ -13,7 +13,6 @@ versions: ghec: '*' topics: - GitHub Apps -shortTitle: Configurar permisos +shortTitle: Set permissions --- - -Las GitHub Apps no tienen permisos predeterminados. Cuando creas una GitHub App, puedes seleccionar los permisos a los que necesita para acceder a los datos del usuario final. Los permisos también se pueden agregar y eliminar. Para obtener más información, consulta la sección "[Editar los permisos de una GitHub App](/apps/managing-github-apps/editing-a-github-app-s-permissions/)". +GitHub Apps don't have any permissions by default. When you create a GitHub App, you can select the permissions it needs to access end user data. Permissions can also be added and removed. For more information, see "[Editing a GitHub App's permissions](/apps/managing-github-apps/editing-a-github-app-s-permissions/)." diff --git a/translations/es-ES/content/developers/apps/building-oauth-apps/authorizing-oauth-apps.md b/translations/es-ES/content/developers/apps/building-oauth-apps/authorizing-oauth-apps.md index fc5641bce7..d390f9c8e5 100644 --- a/translations/es-ES/content/developers/apps/building-oauth-apps/authorizing-oauth-apps.md +++ b/translations/es-ES/content/developers/apps/building-oauth-apps/authorizing-oauth-apps.md @@ -2,11 +2,11 @@ title: Authorizing OAuth Apps intro: '{% data reusables.shortdesc.authorizing_oauth_apps %}' redirect_from: - - /apps/building-integrations/setting-up-and-registering-oauth-apps/about-authorization-options-for-oauth-apps/ - - /apps/building-integrations/setting-up-and-registering-oauth-apps/directing-users-to-review-their-access/ - - /apps/building-integrations/setting-up-and-registering-oauth-apps/creating-multiple-tokens-for-oauth-apps/ - - /v3/oauth/ - - /apps/building-oauth-apps/authorization-options-for-oauth-apps/ + - /apps/building-integrations/setting-up-and-registering-oauth-apps/about-authorization-options-for-oauth-apps + - /apps/building-integrations/setting-up-and-registering-oauth-apps/directing-users-to-review-their-access + - /apps/building-integrations/setting-up-and-registering-oauth-apps/creating-multiple-tokens-for-oauth-apps + - /v3/oauth + - /apps/building-oauth-apps/authorization-options-for-oauth-apps - /apps/building-oauth-apps/authorizing-oauth-apps - /developers/apps/authorizing-oauth-apps versions: diff --git a/translations/es-ES/content/developers/apps/building-oauth-apps/creating-an-oauth-app.md b/translations/es-ES/content/developers/apps/building-oauth-apps/creating-an-oauth-app.md index 7e318e6fac..a080cbc4da 100644 --- a/translations/es-ES/content/developers/apps/building-oauth-apps/creating-an-oauth-app.md +++ b/translations/es-ES/content/developers/apps/building-oauth-apps/creating-an-oauth-app.md @@ -1,8 +1,8 @@ --- -title: Crear una App de OAuth +title: Creating an OAuth App intro: '{% data reusables.shortdesc.creating_oauth_apps %}' redirect_from: - - /apps/building-integrations/setting-up-and-registering-oauth-apps/registering-oauth-apps/ + - /apps/building-integrations/setting-up-and-registering-oauth-apps/registering-oauth-apps - /apps/building-oauth-apps/creating-an-oauth-app - /developers/apps/creating-an-oauth-app versions: @@ -13,11 +13,10 @@ versions: topics: - OAuth Apps --- - {% ifversion fpt or ghec %} {% note %} - **Nota:** {% data reusables.apps.maximum-oauth-apps-allowed %} + **Note:** {% data reusables.apps.maximum-oauth-apps-allowed %} {% endnote %} {% endif %} @@ -25,29 +24,35 @@ topics: {% data reusables.user-settings.access_settings %} {% data reusables.user-settings.developer_settings %} {% data reusables.user-settings.oauth_apps %} -4. Da clic en **Nueva App de OAuth**. ![Botón para crear una app de OAuth nueva](/assets/images/oauth-apps/oauth_apps_new_app.png) +4. Click **New OAuth App**. +![Button to create a new OAuth app](/assets/images/oauth-apps/oauth_apps_new_app.png) {% note %} - **Nota:** si es la primera vez que creas una app, este botón dirá **Registrar una aplicación nueva**. + **Note:** If you haven't created an app before, this button will say, **Register a new application**. {% endnote %} -6. Teclea el nombre de tu app en "Nombre de la aplicación". ![Campo para el nombre de tu app](/assets/images/oauth-apps/oauth_apps_application_name.png) +6. In "Application name", type the name of your app. +![Field for the name of your app](/assets/images/oauth-apps/oauth_apps_application_name.png) {% warning %} - **Advertencia** Utiliza solo la información que consideres pública en tu App de OAuth. Evita utilizar datos sensibles, tales como URL internas, cuando crees una App de OAuth. + **Warning:** Only use information in your OAuth app that you consider public. Avoid using sensitive data, such as internal URLs, when creating an OAuth App. {% endwarning %} -7. En "URL de la página principal", teclea la URL completa del sitio web de tu app. ![Campo para la URL de la página principal de tu app](/assets/images/oauth-apps/oauth_apps_homepage_url.png) -8. Opcionalmente, en "Descripción de la aplicación", teclea una descripción de tu app para que los usuarios la vean. ![Campo para la descripción de tu app](/assets/images/oauth-apps/oauth_apps_application_description.png) -9. Teclea la URL de rellamado de tu app en "URL de rellamado para autorización". ![Campo para la URL de rellamado de autorización de tu app](/assets/images/oauth-apps/oauth_apps_authorization_callback_url.png) +7. In "Homepage URL", type the full URL to your app's website. +![Field for the homepage URL of your app](/assets/images/oauth-apps/oauth_apps_homepage_url.png) +8. Optionally, in "Application description", type a description of your app that users will see. +![Field for a description of your app](/assets/images/oauth-apps/oauth_apps_application_description.png) +9. In "Authorization callback URL", type the callback URL of your app. +![Field for the authorization callback URL of your app](/assets/images/oauth-apps/oauth_apps_authorization_callback_url.png) {% ifversion fpt or ghes > 3.0 or ghec %} {% note %} - **Nota:** Las apps de OAuth no puede tener URL de rellamado múltiples, a diferencia de las {% data variables.product.prodname_github_apps %}. + **Note:** OAuth Apps cannot have multiple callback URLs, unlike {% data variables.product.prodname_github_apps %}. {% endnote %} {% endif %} -10. Haz clic en **Register application** (Registrar aplicación). ![Botón para registrar una aplicación](/assets/images/oauth-apps/oauth_apps_register_application.png) +10. Click **Register application**. +![Button to register an application](/assets/images/oauth-apps/oauth_apps_register_application.png) diff --git a/translations/es-ES/content/developers/apps/building-oauth-apps/index.md b/translations/es-ES/content/developers/apps/building-oauth-apps/index.md index 1bccef8167..69a5c827a2 100644 --- a/translations/es-ES/content/developers/apps/building-oauth-apps/index.md +++ b/translations/es-ES/content/developers/apps/building-oauth-apps/index.md @@ -1,8 +1,8 @@ --- -title: Crear Apps de OAuth -intro: Puedes crear OAuth Apps para ti mismo o para que las utilicen los demás. Aprende como registrar y configurar permisos y opciones de autenticación para Apps de OAuth. +title: Building OAuth Apps +intro: You can build OAuth Apps for yourself or others to use. Learn how to register and set up permissions and authorization options for OAuth Apps. redirect_from: - - /apps/building-integrations/setting-up-and-registering-oauth-apps/ + - /apps/building-integrations/setting-up-and-registering-oauth-apps - /apps/building-oauth-apps versions: fpt: '*' diff --git a/translations/es-ES/content/developers/apps/building-oauth-apps/scopes-for-oauth-apps.md b/translations/es-ES/content/developers/apps/building-oauth-apps/scopes-for-oauth-apps.md index 3dc9de0fb9..8471eadaa4 100644 --- a/translations/es-ES/content/developers/apps/building-oauth-apps/scopes-for-oauth-apps.md +++ b/translations/es-ES/content/developers/apps/building-oauth-apps/scopes-for-oauth-apps.md @@ -2,8 +2,8 @@ title: Scopes for OAuth Apps intro: '{% data reusables.shortdesc.understanding_scopes_for_oauth_apps %}' redirect_from: - - /apps/building-integrations/setting-up-and-registering-oauth-apps/about-scopes-for-oauth-apps/ - - /apps/building-oauth-apps/scopes-for-oauth-apps/ + - /apps/building-integrations/setting-up-and-registering-oauth-apps/about-scopes-for-oauth-apps + - /apps/building-oauth-apps/scopes-for-oauth-apps - /apps/building-oauth-apps/understanding-scopes-for-oauth-apps - /developers/apps/scopes-for-oauth-apps versions: @@ -70,7 +70,7 @@ Name | Description  `read:discussion` | Allows read access for team discussions.{% ifversion fpt or ghae or ghec %} **`write:packages`** | Grants access to upload or publish a package in {% data variables.product.prodname_registry %}. For more information, see "[Publishing a package](/github/managing-packages-with-github-packages/publishing-a-package)". **`read:packages`** | Grants access to download or install packages from {% data variables.product.prodname_registry %}. For more information, see "[Installing a package](/github/managing-packages-with-github-packages/installing-a-package)". -**`delete:packages`** | Grants access to delete packages from {% data variables.product.prodname_registry %}. For more information, see "{% ifversion fpt or ghes > 3.0 or ghec %}[Deleting and restoring a package](/packages/learn-github-packages/deleting-and-restoring-a-package){% elsif ghes < 3.1 or ghae %}[Deleting a package](/packages/learn-github-packages/deleting-a-package){% endif %}."{% endif %} +**`delete:packages`** | Grants access to delete packages from {% data variables.product.prodname_registry %}. For more information, see "{% ifversion fpt or ghes > 3.0 or ghec or ghae %}[Deleting and restoring a package](/packages/learn-github-packages/deleting-and-restoring-a-package){% elsif ghes < 3.1 %}[Deleting a package](/packages/learn-github-packages/deleting-a-package){% endif %}."{% endif %} **`admin:gpg_key`** | Fully manage GPG keys.  `write:gpg_key`| Create, list, and view details for GPG keys.  `read:gpg_key`| List and view details for GPG keys.{% ifversion fpt or ghec %} diff --git a/translations/es-ES/content/developers/apps/getting-started-with-apps/about-apps.md b/translations/es-ES/content/developers/apps/getting-started-with-apps/about-apps.md index bcb5178dfb..d60e0d8400 100644 --- a/translations/es-ES/content/developers/apps/getting-started-with-apps/about-apps.md +++ b/translations/es-ES/content/developers/apps/getting-started-with-apps/about-apps.md @@ -2,9 +2,9 @@ title: About apps intro: 'You can build integrations with the {% ifversion fpt or ghec %}{% data variables.product.prodname_dotcom %}{% else %}{% data variables.product.product_name %}{% endif %} APIs to add flexibility and reduce friction in your own workflow.{% ifversion fpt or ghec %} You can also share integrations with others on [{% data variables.product.prodname_marketplace %}](https://github.com/marketplace).{% endif %}' redirect_from: - - /apps/building-integrations/setting-up-a-new-integration/ - - /apps/building-integrations/ - - /apps/getting-started-with-building-apps/ + - /apps/building-integrationssetting-up-a-new-integration + - /apps/building-integrations + - /apps/getting-started-with-building-apps - /apps/about-apps - /developers/apps/about-apps versions: diff --git a/translations/es-ES/content/developers/apps/getting-started-with-apps/differences-between-github-apps-and-oauth-apps.md b/translations/es-ES/content/developers/apps/getting-started-with-apps/differences-between-github-apps-and-oauth-apps.md index 779320db15..6e2ffa00ba 100644 --- a/translations/es-ES/content/developers/apps/getting-started-with-apps/differences-between-github-apps-and-oauth-apps.md +++ b/translations/es-ES/content/developers/apps/getting-started-with-apps/differences-between-github-apps-and-oauth-apps.md @@ -1,9 +1,9 @@ --- -title: Diferencias entre GitHub Apps y Apps de OAuth -intro: 'El entender las diferencias entre las {% data variables.product.prodname_github_apps %} y las {% data variables.product.prodname_oauth_apps %} te ayudará a decidir qué app quieres crear. Una {% data variables.product.prodname_oauth_app %} actúa como un usuario de Github, mientras que una {% data variables.product.prodname_github_app %} utiliza su propia identidad cuando se instala en una organización o en repositorios dentro de una organización.' +title: Differences between GitHub Apps and OAuth Apps +intro: 'Understanding the differences between {% data variables.product.prodname_github_apps %} and {% data variables.product.prodname_oauth_apps %} will help you decide which app you want to create. An {% data variables.product.prodname_oauth_app %} acts as a GitHub user, whereas a {% data variables.product.prodname_github_app %} uses its own identity when installed on an organization or on repositories within an organization.' redirect_from: - - /early-access/integrations/integrations-vs-oauth-applications/ - - /apps/building-integrations/setting-up-a-new-integration/about-choosing-an-integration-type/ + - /early-access/integrations/integrations-vs-oauth-applications + - /apps/building-integrations/setting-up-a-new-integration/about-choosing-an-integration-type - /apps/differences-between-apps - /developers/apps/differences-between-github-apps-and-oauth-apps versions: @@ -14,100 +14,99 @@ versions: topics: - GitHub Apps - OAuth Apps -shortTitle: GitHub Apps & Apps de OAuth +shortTitle: GitHub Apps & OAuth Apps --- +## Who can install GitHub Apps and authorize OAuth Apps? -## ¿Quién puede instalar GitHub Apps y autorizar Apps de OAuth? - -Puedes instalar GitHub Apps en tu cuenta personal o en las organizaciones que te pertenezcan. Si tienes permisos administrativos en un repositorio, puedes instalar GitHub Apps en las cuentas de la organización. Si se instala una GitHub App en un repositorio y requiere permisos de organización, el propietario de la organización deberá aprobar la aplicación. +You can install GitHub Apps in your personal account or organizations you own. If you have admin permissions in a repository, you can install GitHub Apps on organization accounts. If a GitHub App is installed in a repository and requires organization permissions, the organization owner must approve the application. {% data reusables.apps.app_manager_role %} -Por el contrario, los usuarios _autorizan_ las Apps de OAuth, lo cual otorga a estas apps la capacidad de actuar como un usuario autenticado. Por ejemplo, puedes autorizar una App de OAuth que encuentre todas las notificaciones para el usuario autenticado. Siempre puedes retirar los permisos de las Apps de OAuth. +By contrast, users _authorize_ OAuth Apps, which gives the app the ability to act as the authenticated user. For example, you can authorize an OAuth App that finds all notifications for the authenticated user. You can always revoke permissions from an OAuth App. {% data reusables.apps.deletes_ssh_keys %} -| GitHub Apps | OAuth Apps | -| ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| Debes ser un propietario de la organización o tener permisos administrativos en un repositorio para instalar una GitHub App en una organización. Si se instala una GitHub App en un repositorio y requiere permisos de organización, el propietario de la organización deberá aprobar la aplicación. | Puedes autorizar una app de OAuth para que tenga acceso a los recursos. | -| Puedes instalar una GitHu App en tu repositorio personal. | Puedes autorizar una app de OAuth para que tenga acceso a los recursos. | -| Debes ser un propietario de la organización, propietario del repositorio personal, o tener permisos administrativos en un repositorio para desinstalar una GitHub App y eliminar su acceso. | Puedes borrar un token de acceso de OAuth para eliminar el acceso. | -| Debes ser un propietario de la organización o tener permisos administrativos en un repositorio para solicitar la instalación de una GitHub App. | Si está activa una política de aplicación organizacional, cualquier miembro de la organización puede solicitar la instalación de una App de OAuth en dicha organización. Un propietario de la organización deberá aprobar o negar la solicitud. | +| GitHub Apps | OAuth Apps | +| ----- | ------ | +| You must be an organization owner or have admin permissions in a repository to install a GitHub App on an organization. If a GitHub App is installed in a repository and requires organization permissions, the organization owner must approve the application. | You can authorize an OAuth app to have access to resources. | +| You can install a GitHub App on your personal repository. | You can authorize an OAuth app to have access to resources.| +| You must be an organization owner, personal repository owner, or have admin permissions in a repository to uninstall a GitHub App and remove its access. | You can delete an OAuth access token to remove access. | +| You must be an organization owner or have admin permissions in a repository to request a GitHub App installation. | If an organization application policy is active, any organization member can request to install an OAuth App on an organization. An organization owner must approve or deny the request. | -## ¿A qué recursos pueden acceder las GitHub Apps y las Apps de OAuth? +## What can GitHub Apps and OAuth Apps access? -Los propietarios de las cuentas pueden utilizar una {% data variables.product.prodname_github_app %} en una cuenta sin otorgarle acceso a otra cuenta. Por ejemplo, puedes instalar un servicio de compilación de terceros en la organización de tu patrón laboral, pero puedes decidir no otorgar a esa compilación acceso de servicio a los repositorios en tu cuenta personal. Una GitHub App permanece instalada si la persona que la configuró deja a la organización. +Account owners can use a {% data variables.product.prodname_github_app %} in one account without granting access to another. For example, you can install a third-party build service on your employer's organization, but decide not to grant that build service access to repositories in your personal account. A GitHub App remains installed if the person who set it up leaves the organization. -Una App de OAuth _autorizada_ tiene acceso a todos los recursos que son accesibles para el usuario o el propietario de la organización. +An _authorized_ OAuth App has access to all of the user's or organization owner's accessible resources. -| GitHub Apps | OAuth Apps | -| -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| Instalar la GitHub App le otorga acceso a la misma en los repositorios elegidos de la cuenta de usuario o de organización. | Autorizar una App de OAuth otorga a dicha app acceso a los recursos que puede acceder el usuario. Por ejemplo, a los repositorios que puede acceder. | -| El token de instalación de una GitHub App pierde acceso a los recursos si un administrador elimina los repositorios de la instalación. | Un token de acceso de OAuth pierde acceso a los recursos cuando el usuario mismo pierde acceso a ellos, como cuando pierden el acceso de escritura a un repositorio. | -| Los tokens de acceso de la instalación se limitan a los repositorios especificados con los permisos que escogió el creador de la app. | Un token de acceso de OAuth se limita por alcances. | -| Las GitHub Apps pueden solicitar acceso por separado a los informes de problemas y a las solicitudes de extracción sin acceder al contenido real del repositorio. | Las Apps de OAuth necesitan solicitar el alcance de `repo` para obtener acceso a los informes de problemas, solicitudes de extracción, o a cualquier recurso que pertenezca al repositorio. | -| Las GitHub Apps no están sujetas a las políticas de aplicación de la organización. Una GitHub app solo tendrá acceso a los repositorios que haya otorgado el propietario de una organización. | Si una política de aplicación de la organización se encuentra activa, únicamente el propietario de la organización podrá autorizar la instalación de una App de OAuth. Si se instala, la App de OAuth obtiene acceso a todo lo que esté visible para el token que tiene el propietario de la organización dentro de la organización aprobada. | -| Las GitHub Apps reciben un evento de webhook cuando se cambia o elimina una instalación. Esto indica al creador de la app cuando han recibido más o menos accesos a los recursos organizacionales. | Las Apps de OAuth pueden perder el acceso a una organización o a un repositorio en cualquier momento con base en acceso cambiante del usuario que otorga los permisos. La App de OAuth no te informará cuando pierde el acceso a un recurso. | +| GitHub Apps | OAuth Apps | +| ----- | ------ | +| Installing a GitHub App grants the app access to a user or organization account's chosen repositories. | Authorizing an OAuth App grants the app access to the user's accessible resources. For example, repositories they can access. | +| The installation token from a GitHub App loses access to resources if an admin removes repositories from the installation. | An OAuth access token loses access to resources when the user loses access, such as when they lose write access to a repository. | +| Installation access tokens are limited to specified repositories with the permissions chosen by the creator of the app. | An OAuth access token is limited via scopes. | +| GitHub Apps can request separate access to issues and pull requests without accessing the actual contents of the repository. | OAuth Apps need to request the `repo` scope to get access to issues, pull requests, or anything owned by the repository. | +| GitHub Apps aren't subject to organization application policies. A GitHub App only has access to the repositories an organization owner has granted. | If an organization application policy is active, only an organization owner can authorize the installation of an OAuth App. If installed, the OAuth App gains access to anything visible to the token the organization owner has within the approved organization. | +| A GitHub App receives a webhook event when an installation is changed or removed. This tells the app creator when they've received more or less access to an organization's resources. | OAuth Apps can lose access to an organization or repository at any time based on the granting user's changing access. The OAuth App will not inform you when it loses access to a resource. | -## Identificación basada en tokens +## Token-based identification {% note %} -**Nota:** Las GitHub Apps también pueden utilizar un token basado en un usuario. Para obtener más información, consulta la sección "[Identificar y autorizar usuarios para las GitHub Apps](/apps/building-github-apps/identifying-and-authorizing-users-for-github-apps/)". +**Note:** GitHub Apps can also use a user-based token. For more information, see "[Identifying and authorizing users for GitHub Apps](/apps/building-github-apps/identifying-and-authorizing-users-for-github-apps/)." {% endnote %} -| GitHub Apps | OAuth Apps | -| ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| Una GitHub App puede solicitar un token de acceso de la instalación si utiilza una llave privada con un formato de token web de JSON fuera de banda. | Una App de OAuth puede intercambiar un token de solicitud por un token de acceso después de una redirección a través de una solicitud web. | -| Un token de instalación identifica a la app como el bot de las GitHub Apps, tal como el @jenkins-bot. | Un token de acceso identifica a la app como el usuario que otorgó el token para la app, tal como el @octocat. | -| Los tokens de instalación caducan después de un tiempo predefinido (actualmente, 1 hora). | Los tokens de OAuth permanecen activos hasta que el cliente los revoque. | -| {% data reusables.apps.api-rate-limits-non-ghec %}{% ifversion fpt or ghec %} Se aplican límites de tasa más altos para {% data variables.product.prodname_ghe_cloud %}. Para obtener más información, consulta la sección "[Límites de tasa para las GitHub Apps](/developers/apps/rate-limits-for-github-apps)".{% endif %} | Los tokens de OAuth utilizan el límite de tasa del usuario de 5,000 solicitudes por hora. | -| Pueden otorgarse incrementos en el límite de tasa tanto a nivel de las GitHub Apps (lo cual afecta a todas las instalaciones) como a nivel de la instalación individual. | Los incrementos en el límite de tasa se otorgan por cada App de OAuth. Cada token que se otorgue a esa App de OAuth obtiene el límite incrementado. | -| Las {% data variables.product.prodname_github_apps %} pueden autenticarse a nombre del usuario y a esto se le llama solicitudes de usuario a servidor. El flujo para autorizaciones es el mismo que aquél de las autorizaciones para las apps de OAuth. Los tokens de usuario a servidor pueden caducar y renovarse con un token de actualización. Para obtener más información, consulta las secciones "[Actualizar un token de acceso de usuario a servidor](/apps/building-github-apps/refreshing-user-to-server-access-tokens/)" y "[Identificar y autorizar a los usuarios para las GitHub Apps](/apps/building-github-apps/identifying-and-authorizing-users-for-github-apps/)". | El flujo de OAuth que utilizan las {% data variables.product.prodname_oauth_apps %} autoriza a una {% data variables.product.prodname_oauth_app %} en nombre del usuario. Este es el mismo flujo que se utiliza en las autorizaciones de usuario a servidor de una {% data variables.product.prodname_github_app %}. | +| GitHub Apps | OAuth Apps | +| ----- | ----------- | +| A GitHub App can request an installation access token by using a private key with a JSON web token format out-of-band. | An OAuth app can exchange a request token for an access token after a redirect via a web request. | +| An installation token identifies the app as the GitHub Apps bot, such as @jenkins-bot. | An access token identifies the app as the user who granted the token to the app, such as @octocat. | +| Installation tokens expire after a predefined amount of time (currently 1 hour). | OAuth tokens remain active until they're revoked by the customer. | +| {% data reusables.apps.api-rate-limits-non-ghec %}{% ifversion fpt or ghec %} Higher rate limits apply for {% data variables.product.prodname_ghe_cloud %}. For more information, see "[Rate limits for GitHub Apps](/developers/apps/rate-limits-for-github-apps)."{% endif %} | OAuth tokens use the user's rate limit of 5,000 requests per hour. | +| Rate limit increases can be granted both at the GitHub Apps level (affecting all installations) and at the individual installation level. | Rate limit increases are granted per OAuth App. Every token granted to that OAuth App gets the increased limit. | +| {% data variables.product.prodname_github_apps %} can authenticate on behalf of the user, which is called user-to-server requests. The flow to authorize is the same as the OAuth App authorization flow. User-to-server tokens can expire and be renewed with a refresh token. For more information, see "[Refreshing user-to-server access tokens](/apps/building-github-apps/refreshing-user-to-server-access-tokens/)" and "[Identifying and authorizing users for GitHub Apps](/apps/building-github-apps/identifying-and-authorizing-users-for-github-apps/)." | The OAuth flow used by {% data variables.product.prodname_oauth_apps %} authorizes an {% data variables.product.prodname_oauth_app %} on behalf of the user. This is the same flow used in {% data variables.product.prodname_github_app %} user-to-server authorization. | -## Solicitar niveles de permiso para recursos +## Requesting permission levels for resources -A diferencia de las apps de OAuth, las GitHub Apps tiene permisos específicos que les permiten solicitar acceso únicamente a lo que necesitan. Por ejemplo, una GitHub App de Integración Continua (IC) puede solicitar acceso de lectura al contenido del repositorio y acceso de escritura la API de estado. Puede que alguna otra GitHub App no tenga acceso de escritura o lectura al código, pero aún podrá administrar propuestas, etiquetas e hitos. Las Apps de OAuth no pueden utilizar permisos granulares. +Unlike OAuth apps, GitHub Apps have targeted permissions that allow them to request access only to what they need. For example, a Continuous Integration (CI) GitHub App can request read access to repository content and write access to the status API. Another GitHub App can have no read or write access to code but still have the ability to manage issues, labels, and milestones. OAuth Apps can't use granular permissions. -| Acceso | GitHub Apps (permisos de `read` o `write`) | OAuth Apps | -| --------------------------------------------------------------------- | ---------------------------------------------------------------- | --------------------------------------------- | -| **Para acceder a los repositorios públicos** | El repositorio público necesita elegirse durante la instalación. | alcance `public_repo`. | -| **Para acceder al código/contenido del repositorio** | Contenidos del repositorio | alcance `repo`. | -| **Para acceder a propuestas, etiquetas e hitos** | Problemas | alcance `repo`. | -| **Para acceder a solicitudes de extracción, etiquetas e hitos** | Solicitudes de cambios | alcance `repo`. | -| **Para acceder a estados de confirmación (para compilaciones de IC)** | Estados de confirmación | alcance `repo:status`. | -| **Para acceder a los despliegues y estados de despliegue** | Implementaciones | alcance `repo_deployment`. | -| **Para recibir eventos a través de un webhook** | Las GitHub Apps incluyen un webhook predeterminadamente. | alcance `write:repo_hook` o `write:org_hook`. | +| Access | GitHub Apps (`read` or `write` permissions) | OAuth Apps | +| ------ | ----- | ----------- | +| **For access to public repositories** | Public repository needs to be chosen during installation. | `public_repo` scope. | +| **For access to repository code/contents** | Repository contents | `repo` scope. | +| **For access to issues, labels, and milestones** | Issues | `repo` scope. | +| **For access to pull requests, labels, and milestones** | Pull requests | `repo` scope. | +| **For access to commit statuses (for CI builds)** | Commit statuses | `repo:status` scope. | +| **For access to deployments and deployment statuses** | Deployments | `repo_deployment` scope. | +| **To receive events via a webhook** | A GitHub App includes a webhook by default. | `write:repo_hook` or `write:org_hook` scope. | -## Descubrimiento de repositorios +## Repository discovery -| GitHub Apps | OAuth Apps | -| ----------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | -| Las GitHub Apps pueden ver a `/installation/repositories` para encontrar repositorios a los que puede acceder la instalación. | Las Apps de OAuth pueden ver a `/user/repos` para tener una vista de tipo usuario o a `/orgs/:org/repos` para tener una de tipo organización para los repositorios accesibles. | -| Las Github Apps reciben webhooks cuando los repositorios se agregan o eliminan de la instalación. | Las Apps de OAuth crean webhooks de organización para las notificaciones cuando se crea un repositorio nuevo dentro de una organización. | +| GitHub Apps | OAuth Apps | +| ----- | ----------- | +| GitHub Apps can look at `/installation/repositories` to see repositories the installation can access. | OAuth Apps can look at `/user/repos` for a user view or `/orgs/:org/repos` for an organization view of accessible repositories. | +| GitHub Apps receive webhooks when repositories are added or removed from the installation. | OAuth Apps create organization webhooks for notifications when a new repository is created within an organization. | ## Webhooks -| GitHub Apps | OAuth Apps | -| --------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| Predeterminadamente, las GitHub Apps tienen un solo webhook que recibe los eventos que se les ha configurado para recibir para cada repositorio al que tengan acceso. | Las Apps de OAuth solicitan el alcance de webhook para crear un webhook de repositorio para cada repositorio del cual necesiten recibir eventos. | -| Las GitHub Apps reciben algunos eventos a nivel organizacional con el permiso del miembro de la organización. | Las Apps de OAuth solicitan el alcance de webhook de la organización para crear un webhook de organización para cada organización de la cual necesiten recibir eventos de nivel organizacional. | +| GitHub Apps | OAuth Apps | +| ----- | ----------- | +| By default, GitHub Apps have a single webhook that receives the events they are configured to receive for every repository they have access to. | OAuth Apps request the webhook scope to create a repository webhook for each repository they need to receive events from. | +| GitHub Apps receive certain organization-level events with the organization member's permission. | OAuth Apps request the organization webhook scope to create an organization webhook for each organization they need to receive organization-level events from. | -## Acceso a Git +## Git access -| GitHub Apps | OAuth Apps | -| --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | -| Las GitHub Apps solicitan permiso a los contenidos del repositorio y utilizan tu token de instalación para autenticarte a través de [Git basado en HTTP](/apps/building-github-apps/authenticating-with-github-apps/#http-based-git-access-by-an-installation). | Las Apps de OAuth piden el alcance `write:public_key` y [Crean una llave de despliegue](/rest/reference/repos#create-a-deploy-key) a través de la API. Entonces puedes utilizar esa llave para ejecutar comandos de Git. | -| El token se utiliza como la contraseña HTTP. | El token se utiliza como el nombre de usuario HTTP. | +| GitHub Apps | OAuth Apps | +| ----- | ----------- | +| GitHub Apps ask for repository contents permission and use your installation token to authenticate via [HTTP-based Git](/apps/building-github-apps/authenticating-with-github-apps/#http-based-git-access-by-an-installation). | OAuth Apps ask for `write:public_key` scope and [Create a deploy key](/rest/reference/deployments#create-a-deploy-key) via the API. You can then use that key to perform Git commands. | +| The token is used as the HTTP password. | The token is used as the HTTP username. | -## Cuentas de máquina vs cuentas de bot +## Machine vs. bot accounts -Las cuentas de usuario de máquina son cuentas de usuario basadas en OAuth que segregan sistemas automatizados utilizando el sistema de usuarios de GitHub. +Machine user accounts are OAuth-based user accounts that segregate automated systems using GitHub's user system. -Las cuentas de bot son específicas para las GitHub Apps y se crean en cada GitHub App. +Bot accounts are specific to GitHub Apps and are built into every GitHub App. -| GitHub Apps | OAuth Apps | -| ------------------------------------------------------------------------------------------------------------------------ | ----------------------------------------------------------------------------------------------------------------------- | -| Los bots de las GitHub Apps no consumen una plaza de {% data variables.product.prodname_enterprise %}. | Una cuenta de usuario de máquina consume una plaza de {% data variables.product.prodname_enterprise %}. | -| Ya que jamás se otorga una contraseña a un bot de una GitHub App, un cliente no podrá iniciar sesión directamente en él. | Una cuenta de usuario de máquina obtiene un nombre de usuario y contraseña para que el cliente lo administre y asegure. | +| GitHub Apps | OAuth Apps | +| ----- | ----------- | +| GitHub App bots do not consume a {% data variables.product.prodname_enterprise %} seat. | A machine user account consumes a {% data variables.product.prodname_enterprise %} seat. | +| Because a GitHub App bot is never granted a password, a customer can't sign into it directly. | A machine user account is granted a username and password to be managed and secured by the customer. | diff --git a/translations/es-ES/content/developers/apps/getting-started-with-apps/migrating-oauth-apps-to-github-apps.md b/translations/es-ES/content/developers/apps/getting-started-with-apps/migrating-oauth-apps-to-github-apps.md index 323d204d29..c50c580dbb 100644 --- a/translations/es-ES/content/developers/apps/getting-started-with-apps/migrating-oauth-apps-to-github-apps.md +++ b/translations/es-ES/content/developers/apps/getting-started-with-apps/migrating-oauth-apps-to-github-apps.md @@ -1,6 +1,6 @@ --- -title: Migrar de Apps de OAuth a GitHub Apps -intro: 'Aprende sobre las ventajas de migrarte de tu {% data variables.product.prodname_oauth_app %} a una {% data variables.product.prodname_github_app %} y sobre como migrar una {% data variables.product.prodname_oauth_app %} que no se encuentre listada en {% data variables.product.prodname_marketplace %}.' +title: Migrating OAuth Apps to GitHub Apps +intro: 'Learn about the advantages of migrating your {% data variables.product.prodname_oauth_app %} to a {% data variables.product.prodname_github_app %} and how to migrate an {% data variables.product.prodname_oauth_app %} that isn''t listed on {% data variables.product.prodname_marketplace %}. ' redirect_from: - /apps/migrating-oauth-apps-to-github-apps - /developers/apps/migrating-oauth-apps-to-github-apps @@ -11,100 +11,99 @@ versions: ghec: '*' topics: - GitHub Apps -shortTitle: Migrarse desde las Apps de OAuth +shortTitle: Migrate from OAuth Apps --- +This article provides guidelines for existing integrators who are considering migrating from an OAuth App to a GitHub App. -Este artículo proporciona los lineamientos para los integradores existentes que están considerando migrarse de una App de OAuth a una GitHub App. +## Reasons for switching to GitHub Apps -## Razones para cambiar a GitHub Apps +[GitHub Apps](/apps/) are the officially recommended way to integrate with GitHub because they offer many advantages over a pure OAuth-based integration: -Las [GitHub Apps](/apps/) son la forma recomendada de integrarse con GitHub, ya que ofrecen muchas ventajas sobre una integración puramente basada en OAuth: +- [Fine-grained permissions](/apps/differences-between-apps/#requesting-permission-levels-for-resources) target the specific information a GitHub App can access, allowing the app to be more widely used by people and organizations with security policies than OAuth Apps, which cannot be limited by permissions. +- [Short-lived tokens](/apps/differences-between-apps/#token-based-identification) provide a more secure authentication method over OAuth tokens. An OAuth token does not expire until the person who authorized the OAuth App revokes the token. GitHub Apps use tokens that expire quickly, creating a much smaller window of time for compromised tokens to be in use. +- [Built-in, centralized webhooks](/apps/differences-between-apps/#webhooks) receive events for all repositories and organizations the app can access. Conversely, OAuth Apps require configuring a webhook for each repository and organization accessible to the user. +- [Bot accounts](/apps/differences-between-apps/#machine-vs-bot-accounts) don't consume a {% data variables.product.product_name %} seat and remain installed even when the person who initially installed the app leaves the organization. +- Built-in support for OAuth is still available to GitHub Apps using [user-to-server endpoints](/apps/building-github-apps/identifying-and-authorizing-users-for-github-apps/). +- Dedicated [API rate limits](/apps/building-github-apps/understanding-rate-limits-for-github-apps/) for bot accounts scale with your integration. +- Repository owners can [install GitHub Apps](/apps/differences-between-apps/#who-can-install-github-apps-and-authorize-oauth-apps) on organization repositories. If a GitHub App's configuration has permissions that request an organization's resources, the org owner must approve the installation. +- Open Source community support is available through [Octokit libraries](/rest/overview/libraries) and other frameworks such as [Probot](https://probot.github.io/). +- Integrators building GitHub Apps have opportunities to adopt earlier access to APIs. -- [Permisos detallados](/apps/differences-between-apps/#requesting-permission-levels-for-resources) que se enfocan en la información específica a la que puede acceder una GitHub App, lo cual permite que las personas y organizaciones la utilicen más ampliamente con políticas de seguridad a diferencia de las Apps de OAuth, las cuales no se pueden limitar con permisos. -- [Tokens de vida corta](/apps/differences-between-apps/#token-based-identification) que proporcionan un método de autenticación más segura qu la de los tokens de OAuth. Un token de OAuth no caduca hasta que la persona que autorizó la App de OAuth revoque el token. Las GitHub Apps utilizan tokens que caducan rápidamente, lo cual permite tener una ventana de tiempo mucho menor para que se utilicen los tokens que se hayan puesto en riesgo, en caso de existir. -- [Webhooks integrados y centralizados](/apps/differences-between-apps/#webhooks) que reciben eventos para todos los repositorios y organizaciones a los cuales puede acceder la app. Por el contrario, las Apps de OAuth requieren configurar un webhook para cada repositorio y organización que sea accesible para el usuario. -- [Cuentas Bot](/apps/differences-between-apps/#machine-vs-bot-accounts) que no consument una plaza de {% data variables.product.product_name %} y permanecen instaladas aún cuando la persona que las instaló inicialmente deja la organización. -- El soporte integrado para OAuth aún estará disponible para las GitHub Apps que utilicen [terminales de usuario a servidor](/apps/building-github-apps/identifying-and-authorizing-users-for-github-apps/). -- Los [límites de tasa de la API](/apps/building-github-apps/understanding-rate-limits-for-github-apps/) dedicados para cuentas bot se escalarán con tu integración. -- Los propietarios de los repositorios pueden [Instalar GitHub Apps](/apps/differences-between-apps/#who-can-install-github-apps-and-authorize-oauth-apps) en repositorios de organización. Si la configuración de una GitHub App tiene permisos que solicitan los recursos de una organización, el propietario de dicha organización debe aprobar la instalación. -- El apoyo de la comunidad de código abierto se encuentra disponible mediante las [bibliotecas Octokit](/rest/overview/libraries) y mediante otros marcos de trabajo, tales como el [Probot](https://probot.github.io/). -- Los integradores que crean GitHub Apps tienen la oportunidad para adoptar un acceso temprano a las API. +## Converting an OAuth App to a GitHub App -## Convertir una App de OAuth en una GitHub App +These guidelines assume that you have a registered OAuth App{% ifversion fpt or ghec %} that may or may not be listed in GitHub Marketplace{% endif %}. At a high level, you'll need to follow these steps: -Estos lineamientos asumen que has registrado una App de OAuth{% ifversion fpt or ghec %} que puede o no estar listada en GitHub Marketplace{% endif %}. A nivel superior, necesitarás llevar a cabo los siguientes pasos: +1. [Review the available API endpoints for GitHub Apps](#review-the-available-api-endpoints-for-github-apps) +1. [Design to stay within API rate limits](#design-to-stay-within-api-rate-limits) +1. [Register a new GitHub App](#register-a-new-github-app) +1. [Determine the permissions your app requires](#determine-the-permissions-your-app-requires) +1. [Subscribe to webhooks](#subscribe-to-webhooks) +1. [Understand the different methods of authentication](#understand-the-different-methods-of-authentication) +1. [Direct users to install your GitHub App on repositories](#direct-users-to-install-your-github-app-on-repositories) +1. [Remove any unnecessary repository hooks](#remove-any-unnecessary-repository-hooks) +1. [Encourage users to revoke access to your OAuth App](#encourage-users-to-revoke-access-to-your-oauth-app) +1. [Delete the OAuth App](#delete-the-oauth-app) -1. [Revisar las terminales de la API disponibles para las Github Apps](#review-the-available-api-endpoints-for-github-apps) -1. [Diseñar con apego a los límites de tasa de la API](#design-to-stay-within-api-rate-limits) -1. [Registrar una GitHub App nueva](#register-a-new-github-app) -1. [Determinar los permisos que necesitará tu app](#determine-the-permissions-your-app-requires) -1. [Suscribirte a los webhooks](#subscribe-to-webhooks) -1. [Entender los diferentes métodos de autenticación](#understand-the-different-methods-of-authentication) -1. [Dirigir a los usuarios a instalar tu GitHub App en los repositorios](#direct-users-to-install-your-github-app-on-repositories) -1. [Eliminar cualquier gancho innecesario en los repositorios](#remove-any-unnecessary-repository-hooks) -1. [Anima a los usuarios para revocar el acceso a tu App de OAuth](#encourage-users-to-revoke-access-to-your-oauth-app) -1. [Borra la App de OAuth](#delete-the-oauth-app) +### Review the available API endpoints for GitHub Apps -### Revisar las terminales de la API disponibles para las Github Apps +While the majority of [REST API](/rest) endpoints and [GraphQL]({% ifversion ghec %}/free-pro-team@latest{% endif %}/graphql) queries are available to GitHub Apps today, we are still in the process of enabling some endpoints. Review the [available REST endpoints](/rest/overview/endpoints-available-for-github-apps) to ensure that the endpoints you need are compatible with GitHub Apps. Note that some of the API endpoints enabled for GitHub Apps allow the app to act on behalf of the user. See "[User-to-server requests](/apps/building-github-apps/identifying-and-authorizing-users-for-github-apps/#user-to-server-requests)" for a list of endpoints that allow a GitHub App to authenticate as a user. -Mientras que la mayoría de las terminales de la [API de REST](/rest) y de las consultas de [GraphQL]({% ifversion ghec %}/free-pro-team@latest{% endif %}/graphql) están disponibles hoy en día para las GitHub Apps, aún estamos en el proceso de habilitar algunas de ellas. Revisa las [terminales disponibles de REST](/rest/overview/endpoints-available-for-github-apps) para garantizar que las terminales que necesitas sean compatibles con las GitHub Apps. Nota que algunas de las terminales de la API que están habilitadas para las GtiHub Apps permiten que éstas interactúen en nombre del usuario. Consulta la sección "[Solicitudes de usuario a servidor](/apps/building-github-apps/identifying-and-authorizing-users-for-github-apps/#user-to-server-requests)" para encontrar una lista de terminales disponibles para que una GitHub App se autentique como un usuario. +We recommend reviewing the list of API endpoints you need as early as possible. Please let Support know if there is an endpoint you require that is not yet enabled for {% data variables.product.prodname_github_apps %}. -Te recomendamos revisar la lista de terminales de la API que necesitas tan pronto como te sea posible. Por favor, comunícale a soporte si hay alguna terminal que requieras y que no esté habilitada aún para las {% data variables.product.prodname_github_apps %}. +### Design to stay within API rate limits -### Diseñar con apego a los límites de tasa de la API +GitHub Apps use [sliding rules for rate limits](/apps/building-github-apps/understanding-rate-limits-for-github-apps/), which can increase based on the number of repositories and users in the organization. A GitHub App can also make use of [conditional requests](/rest/overview/resources-in-the-rest-api#conditional-requests) or consolidate requests by using the [GraphQL API V4]({% ifversion ghec %}/free-pro-team@latest{% endif %}/graphql). -Las GitHub Apps utilizan [reglas móviles para los límites de tasa](/apps/building-github-apps/understanding-rate-limits-for-github-apps/), las cuales pueden incrementar con base en la cantidad de repositorios y usuarios de la organización. Una GitHub App también puede hacer uso de [solicitudes condicionales](/rest/overview/resources-in-the-rest-api#conditional-requests) o de solicitudes consolidadas si utiliza la [API de GraphQL V4]({% ifversion ghec %}/free-pro-team@latest{% endif %}/graphql). +### Register a new GitHub App -### Registrar una GitHub App nueva +Once you've decided to make the switch to GitHub Apps, you'll need to [create a new GitHub App](/apps/building-github-apps/). -Una vez que hayas decidido hacer el cambio a GitHub Apps, necesitarás [crear una GitHub App nueva](/apps/building-github-apps/). +### Determine the permissions your app requires -### Determinar los permisos que necesitará tu app +When registering your GitHub App, you'll need to select the permissions required by each endpoint used in your app's code. See "[GitHub App permissions](/rest/reference/permissions-required-for-github-apps)" for a list of the permissions needed for each endpoint available to GitHub Apps. -Cuando registras tu GitHub App, necesitarás seleccionar los permisos que requiere cada terminal que se utilice en el código de tu app. Consulta la sección "[Permisos de la GitHub App](/rest/reference/permissions-required-for-github-apps)" para encontrar un listado de permisos que necesita cada terminal disponible para las GitHub Apps. +In your GitHub App's settings, you can specify whether your app needs `No Access`, `Read-only`, or `Read & Write` access for each permission type. The fine-grained permissions allow your app to gain targeted access to the subset of data you need. We recommend specifying the smallest set of permissions possible that provides the desired functionality. -En la configuración de tu GitHub App, puedes especificar si tu app necesita acceso de tipo `No Access`, `Read-only`, o `Read & Write` para cada tipo de permiso. Los permisos detallados le permiten a tu app obtener acceso específico a el subconjunto de datos que necesites. Te recomendamos especifcar el conjunto de datos más definido que sea posible, el cual proporcione la funcionalidad deseada. +### Subscribe to webhooks -### Suscribirte a los webhooks +After you've created a new GitHub App and selected its permissions, you can select the webhook events you wish to subscribe it to. See "[Editing a GitHub App's permissions](/apps/managing-github-apps/editing-a-github-app-s-permissions/)" to learn how to subscribe to webhooks. -Después de que creaste una GitHub App nueva y seleccionaste sus permisos, puedes seleccionar los eventos de webhook a los cuales deseas suscribirte. Consulta la sección "[Editar los permisos de una GitHub App](/apps/managing-github-apps/editing-a-github-app-s-permissions/)" para aprender cómo suscribirte a los webhooks. +### Understand the different methods of authentication -### Entender los diferentes métodos de autenticación +GitHub Apps primarily use a token-based authentication that expires after a short amount of time, providing more security than an OAuth token that does not expire. It’s important to understand the different methods of authentication available to you and when you need to use them: -Las GitHub Apps utilizan principalmente una autenticación basada en tokens que caducan después de un periodo de tiempo corto, lo cual proporciona más seguirdad que un token de OAuth que no caduca. Es importante entender los diferentes métodos de autenticación que tienes disponibles cuando necesitas utilizarlos: +* A **JSON Web Token (JWT)** [authenticates as the GitHub App](/apps/building-github-apps/authenticating-with-github-apps/#authenticating-as-a-github-app). For example, you can authenticate with a **JWT** to fetch application installation details or exchange the **JWT** for an **installation access token**. +* An **installation access token** [authenticates as a specific installation of your GitHub App](/apps/building-github-apps/authenticating-with-github-apps/#authenticating-as-an-installation) (also called server-to-server requests). For example, you can authenticate with an **installation access token** to open an issue or provide feedback on a pull request. +* An **OAuth access token** can [authenticate as a user of your GitHub App](/apps/building-github-apps/identifying-and-authorizing-users-for-github-apps/#identifying-users-on-your-site) (also called user-to-server requests). For example, you can use an OAuth access token to authenticate as a user when a GitHub App needs to verify a user’s identity or act on a user’s behalf. -* Un **Token Web de JSON (JWT)** [ se autentica como la GitHub App](/apps/building-github-apps/authenticating-with-github-apps/#authenticating-as-a-github-app). Por ejemplo, puedes autenticarte con un **JWT** para obtener los detalles de instalación de la aplicación o para intercambiar dicho **JWT** por un **token de acceso a la instalación**. -* Un **token de acceso de la instalación** [se autentica como una instalación específica de tu GitHub App](/apps/building-github-apps/authenticating-with-github-apps/#authenticating-as-an-installation) (también se les conoce como solicitudes de servidor a servidor). Por ejemplo, puedes autenticarte con un **token de acceso de la instalación** para abrir un informe de problemas o para proporcionar retroalimentación en una solicitud de extracción. -* Un **Token de acceso de OAuth** puede [autenticarse como un usuario de tu GitHub App](/apps/building-github-apps/identifying-and-authorizing-users-for-github-apps/#identifying-users-on-your-site) (también se les conoce como solicitudes de usuario a servidor). Por ejemplo, puedes utilizar un token de acceso de OAuth para autenticarte como un usuario cuando una GitHub App necesite verificar la identidad del usuario o actuar en nombre de un usuario. +The most common scenario is to authenticate as a specific installation using an **installation access token**. -El escenario más común es autenticarse como una instalación específica utilizando un **token de acceso de la instalación**. +### Direct users to install your GitHub App on repositories -### Dirigir a los usuarios a instalar tu GitHub App en los repositorios +Once you've made the transition from an OAuth App to a GitHub App, you will need to let users know that the GitHub App is available to install. For example, you can include an installation link for the GitHub App in a call-to-action banner inside your application. To ease the transition, you can use query parameters to identify the user or organization account that is going through the installation flow for your GitHub App and pre-select any repositories your OAuth App had access to. This allows users to easily install your GitHub App on repositories you already have access to. -Una vez que hiciste la transición de una App de OAuth a una GitHub App, necesitarás informar a los usuarios que esta GitHub App se encuentra disponible para su instalación. Por ejemplo, puedes incluir un enlace de instalación para la GitHub App en un letrero de llamada a la acción dentro de tu aplicación. Para facilitar la transición, puedes utilizar parámetros de consulta para identificar a la cuenta de usuario o de organización que esté pasando por el flujo de instalación para tu GitHub App y pre-seleccionar cualquier repositorio al que tuviera acceso tu App de OAuth. Esto les permite a los usuarios instalar tu GitHub App en los repositorios a los que ya tengas acceso. +#### Query parameters -#### Parámetros de consulta +| Name | Description | +|------|-------------| +| `suggested_target_id` | **Required**: ID of the user or organization that is installing your GitHub App. | +| `repository_ids[]` | Array of repository IDs. If omitted, we select all repositories. The maximum number of repositories that can be pre-selected is 100. | -| Nombre | Descripción | -| --------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| `suggested_target_id` | **Requerido**: La ID del usuario u organización que está instalando tu GitHub App. | -| `repository_ids[]` | Matriz de las ID de repositorio. Si se omite, seleccionaremos todos los repositorios. La cantidad máxima de repositorios que se pueden pre-seleccionar es de 100. | - -#### URL de Ejemplo +#### Example URL ``` https://github.com/apps/YOUR_APP_NAME/installations/new/permissions?suggested_target_id=ID_OF_USER_OR_ORG&repository_ids[]=REPO_A_ID&repository_ids[]=REPO_B_ID ``` -Necesitarás reemplazar a `YOUR_APP_NAME` con el nombre de tu GitHub App, a `ID_OF_USER_OR_ORG` con la ID de tu usuario u organización destino, e incluir hasta 100 ID de repositorio (`REPO_A_ID` y `REPO_B_ID`). Para obtener una lista de repositorios a los cuales tiene acceso tu aplicación de OAuth, utiliza las terminales [Listar repositorios para el usuario autenticado](/rest/reference/repos#list-repositories-for-the-authenticated-user) y [Listar repositorios de la organización](/rest/reference/repos#list-organization-repositories). +You'll need to replace `YOUR_APP_NAME` with the name of your GitHub App, `ID_OF_USER_OR_ORG` with the ID of your target user or organization, and include up to 100 repository IDs (`REPO_A_ID` and `REPO_B_ID`). To get a list of repositories your OAuth App has access to, use the [List repositories for the authenticated user](/rest/reference/repos#list-repositories-for-the-authenticated-user) and [List organization repositories](/rest/reference/repos#list-organization-repositories) endpoints. -### Eliminar cualquier gancho innecesario en los repositorios +### Remove any unnecessary repository hooks -Una vez que ti GitHub App se haya instalado en un repositorio, deberías eliminar cualquier webhook innecesario que haya creado tu App tradicional de OAuth. Si ambas apps están instaladas en un repositorio, puede que se duplique la funcionalidad para el usuario. Para eliminar los webhooks, puedes escuchar al [webhook de `installation_repositories`](/webhooks/event-payloads/#installation_repositories) con la acción `repositories_added` y al [webhook para borrar un repositorio](/rest/reference/repos#delete-a-repository-webhook) en los repositorios que creó tu App de OAuth. +Once your GitHub App has been installed on a repository, you should remove any unnecessary webhooks that were created by your legacy OAuth App. If both apps are installed on a repository, they may duplicate functionality for the user. To remove webhooks, you can listen for the [`installation_repositories` webhook](/webhooks/event-payloads/#installation_repositories) with the `repositories_added` action and [Delete a repository webhook](/rest/reference/webhooks#delete-a-repository-webhook) on those repositories that were created by your OAuth App. -### Animar a los usuarios a que revoquen el acceso a tu App de OAuth +### Encourage users to revoke access to your OAuth app -En medida en que vaya creciendo tu base de instalación de la GitHub App, considera exhortar a tus usuarios para revocar el acceso a la integración tradicional de OAuth. Para obtener más información, consulta la sección "[Autorizar las Apps de OAuth](/github/authenticating-to-github/keeping-your-account-and-data-secure/authorizing-oauth-apps)". +As your GitHub App installation base grows, consider encouraging your users to revoke access to the legacy OAuth integration. For more information, see "[Authorizing OAuth Apps](/github/authenticating-to-github/keeping-your-account-and-data-secure/authorizing-oauth-apps)." -### Borrar la App de OAuth +### Delete the OAuth App -Para evitar el abuso de las credenciales de las Apps de OAuth, considera borrar la App de OAuth. Esta acción también revocará todas las autorizaciones restantes de la App de OAuth. Para obtener más información, consulta la sección "[Borrar una App de OAuth](/developers/apps/managing-oauth-apps/deleting-an-oauth-app)". +To avoid abuse of the OAuth App's credentials, consider deleting the OAuth App. This action will also revoke all of the OAuth App's remaining authorizations. For more information, see "[Deleting an OAuth App](/developers/apps/managing-oauth-apps/deleting-an-oauth-app)." diff --git a/translations/es-ES/content/developers/apps/guides/index.md b/translations/es-ES/content/developers/apps/guides/index.md index 3011667a26..4982239bab 100644 --- a/translations/es-ES/content/developers/apps/guides/index.md +++ b/translations/es-ES/content/developers/apps/guides/index.md @@ -1,5 +1,5 @@ --- -title: Guías +title: Guides intro: 'Learn about using the {% ifversion fpt or ghec %}{% data variables.product.prodname_dotcom %}{% else %}{% data variables.product.product_name %}{% endif %} API with your app, continuous integration, and how to build with apps.' redirect_from: - /apps/quickstart-guides diff --git a/translations/es-ES/content/developers/apps/guides/using-the-github-api-in-your-app.md b/translations/es-ES/content/developers/apps/guides/using-the-github-api-in-your-app.md index eea6484360..fa26be18c7 100644 --- a/translations/es-ES/content/developers/apps/guides/using-the-github-api-in-your-app.md +++ b/translations/es-ES/content/developers/apps/guides/using-the-github-api-in-your-app.md @@ -1,8 +1,8 @@ --- -title: Utilizar la API de GitHub en tu app -intro: Aprende cómo configurar tu app para que escuche los eventos y utilice la biblioteca de Octokit para hacer operaciones de la API de REST. +title: Using the GitHub API in your app +intro: Learn how to set up your app to listen for events and use the Octokit library to perform REST API operations. redirect_from: - - /apps/building-your-first-github-app/ + - /apps/building-your-first-github-app - /apps/quickstart-guides/using-the-github-api-in-your-app - /developers/apps/using-the-github-api-in-your-app versions: @@ -12,90 +12,89 @@ versions: ghec: '*' topics: - GitHub Apps -shortTitle: Crear una app con la API de REST +shortTitle: Build an app with the REST API --- +## Introduction -## Introducción +This guide will help you build a GitHub App and run it on a server. The app you build will add a label to all new issues opened in the repository where the app is installed. -Esta guía te ayudará a crear una GitHub App y a ejecutarla en un servidor. La app que crees agregará una etiqueta a todos los informes de problemas nuevos que estén abiertos en el repositorio en donde ésta se instale. +This project will walk you through the following: -Este proyecto te mostrará cómo hacer lo siguiente: - -* Programar tu app para escuchar eventos -* Utilizar la biblioteca de Octokit para hacer operaciones de la API de REST +* Programming your app to listen for events +* Using the Octokit.rb library to do REST API operations {% data reusables.apps.app-ruby-guides %} -Una vez que hayas seguido estos pasos, estarás listo para desarrollar otros tipos de integraciones utilizando la suite completa de las API de GItHub. {% ifversion fpt or ghec %}Puedes revisar los ejemplos exitosos de estas aplicaciones en [GitHub Marketplace](https://github.com/marketplace) y en [Compatible con GitHub](https://github.com/works-with).{% endif %} +Once you've worked through the steps, you'll be ready to develop other kinds of integrations using the full suite of GitHub APIs. {% ifversion fpt or ghec %}You can check out successful examples of apps on [GitHub Marketplace](https://github.com/marketplace) and [Works with GitHub](https://github.com/works-with).{% endif %} -## Prerrequisitos +## Prerequisites -Puede que te sea útil tener un entendimiento básico de lo siguiente: +You may find it helpful to have a basic understanding of the following: * [GitHub Apps](/apps/about-apps) * [Webhooks](/webhooks) -* [El lenguaje de programación Ruby](https://www.ruby-lang.org/en/) -* [Las API de REST](/rest) +* [The Ruby programming language](https://www.ruby-lang.org/en/) +* [REST APIs](/rest) * [Sinatra](http://sinatrarb.com/) -Pero puedes seguir esta guía sin importar tu nivel de experiencia. ¡Colocaremos enlaces para la información que requieras en cada fase! +But you can follow along at any experience level. We'll link out to information you need along the way! -Antes de que comiences, necesitas hacer lo siguiente: +Before you begin, you'll need to do the following: -1. Clona el repositorio [Utilizar la API de GitHub en tu app](https://github.com/github-developer/using-the-github-api-in-your-app). +1. Clone the [Using the GitHub API in your app](https://github.com/github-developer/using-the-github-api-in-your-app) repository. ```shell $ git clone https://github.com/github-developer/using-the-github-api-in-your-app.git ``` - Dentro del directorio, encontrarás un archivo de nombre `template_server.rb` con el código de plantilla que utilizarás en este inicio rápido, y un archivo llamado `server.rb` con el código del proyecto completo. + Inside the directory, you'll find a `template_server.rb` file with the template code you'll use in this quickstart and a `server.rb` file with the completed project code. -1. Sigue los pasos en la guía de inicio rápido "[Configurar tu ambiente de desarrollo](/apps/quickstart-guides/setting-up-your-development-environment/)" para configurar y ejecutar el servidor `template_server.rb` de la app. Si ya habías completado alguna guía de inicio rápido para las GitHub Apps diferente a aquella de [Configurar tu ambiente de desarrollo](/apps/quickstart-guides/setting-up-your-development-environment/), deberás registrar una GitHub App _nueva_ e iniciar un canal de Smee nuevo para utilizarlo con esta guía. +1. Follow the steps in the [Setting up your development environment](/apps/quickstart-guides/setting-up-your-development-environment/) quickstart to configure and run the `template_server.rb` app server. If you've previously completed a GitHub App quickstart other than [Setting up your development environment](/apps/quickstart-guides/setting-up-your-development-environment/), you should register a _new_ GitHub App and start a new Smee channel to use with this quickstart. - Esta guía de inicio rápido incluye el mismo código de `template_server.rb` que aquella llamada [Configurar tu ambiente de desarrollo](/apps/quickstart-guides/setting-up-your-development-environment/). **Nota:** Mientras sigues la guía de inicio rápido de [Configurar tu ambiente de desarrollo](/apps/quickstart-guides/setting-up-your-development-environment/) asegúrate de utilizar los archivos de proyecto que se incluyen en el repositorio [Utilizar la API de GitHub para tu app](https://github.com/github-developer/using-the-github-api-in-your-app). + This quickstart includes the same `template_server.rb` code as the [Setting up your development environment](/apps/quickstart-guides/setting-up-your-development-environment/) quickstart. **Note:** As you follow along with the [Setting up your development environment](/apps/quickstart-guides/setting-up-your-development-environment/) quickstart, make sure to use the project files included in the [Using the GitHub API in your app](https://github.com/github-developer/using-the-github-api-in-your-app) repository. - Consulta la sección [Solución de problemas](/apps/quickstart-guides/setting-up-your-development-environment/#troubleshooting) si te encuentras con algún problema al configurar tu GitHub App de plantilla. + See the [Troubleshooting](/apps/quickstart-guides/setting-up-your-development-environment/#troubleshooting) section if you are running into problems setting up your template GitHub App. -## Crear la app +## Building the app -Ahora que estás familiarizado con el código de `template_server.rb`, vas a crear el código que agregará la etiqueta `needs-response` automáticamente a todos los informes de problemas que estén abiertos en el repositorio en donde se instale la app. +Now that you're familiar with the `template_server.rb` code, you're going to create code that automatically adds the `needs-response` label to all issues opened in the repository where the app is installed. -El archivo `template_server.rb` contiene el código de la plantilla de la app que no se ha personalizado aún. En este archivo, verás código de marcador de posición para gestionar eventos de webhook y algún otro tipo de código para inicializar el cliente de Octokit.rb. +The `template_server.rb` file contains app template code that has not yet been customized. In this file, you'll see some placeholder code for handling webhook events and some other code for initializing an Octokit.rb client. {% note %} -**Nota:** El `template_server.rb` contiene muchos comentarios de código que complementan esta guía y explican detalles técnicos adicionales. Es posible que le resulte útil leer los comentarios de ese archivo ahora, antes de continuar con esta sección, para obtener resumen de cómo funciona el código. +**Note:** `template_server.rb` contains many code comments that complement this guide and explain additional technical details. You may find it helpful to read through the comments in that file now, before continuing with this section, to get an overview of how the code works. -El código personalizado final que crees al terminar esta guía se proporciona en el archivo [`server.rb`](https://github.com/github-developer/using-the-github-api-in-your-app/blob/master/server.rb). Pero, ¡intenta esperar hasta que termines para darle un vistazo! +The final customized code that you'll create by the end of this guide is provided in [`server.rb`](https://github.com/github-developer/using-the-github-api-in-your-app/blob/master/server.rb). Try waiting until the end to look at it, though! {% endnote %} -Estos son los pasos que tendrás que completar para crear tu primer GitHub App: +These are the steps you'll complete to create your first GitHub App: -1. [Actualizar los permisos de la app](#step-1-update-app-permissions) -2. [Agregar la gestión de eventos](#step-2-add-event-handling) -3. [Crear una etiqueta nueva](#step-3-create-a-new-label) -4. [Agregar la gestión de etiquetas](#step-4-add-label-handling) +1. [Update app permissions](#step-1-update-app-permissions) +2. [Add event handling](#step-2-add-event-handling) +3. [Create a new label](#step-3-create-a-new-label) +4. [Add label handling](#step-4-add-label-handling) -## Paso 1. Actualizar los permisos de la app +## Step 1. Update app permissions -Cuando [registraste tu app por primera vez](/apps/quickstart-guides/setting-up-your-development-environment/#step-2-register-a-new-github-app), aceptaste los permisos predeterminados, lo que significa que tu app no tiene acceso a la mayoría de los recursos. Para este ejemplo, tu app necesitará el permiso para leer los informes de problemas y escribir etiquetas. +When you [first registered your app](/apps/quickstart-guides/setting-up-your-development-environment/#step-2-register-a-new-github-app), you accepted the default permissions, which means your app doesn't have access to most resources. For this example, your app will need permission to read issues and write labels. -Para actualizar los permisos de tu app: +To update your app's permissions: -1. Selecciona tu app de la [página de configuración de la app](https://github.com/settings/apps) y da clic en **Permisos & Webhooks** en la barra lateral. -1. En la sección de "Permisos", encuentra "Informes de problemas"; y selecciona **Lectura & Escritura** en el menú desplegable de "Acceso" que está a un costado. La descripción dice que esta opción otorga acceso tanto a informes de problemas como a etiquetas, que es exactamente lo que buscas. -1. En la sección "Suscribirse a los eventos", selecciona **Informes de problemas** para suscribirte a este evento. +1. Select your app from the [app settings page](https://github.com/settings/apps) and click **Permissions & Webhooks** in the sidebar. +1. In the "Permissions" section, find "Issues," and select **Read & Write** in the "Access" dropdown next to it. The description says this option grants access to both issues and labels, which is just what you need. +1. In the "Subscribe to events" section, select **Issues** to subscribe to the event. {% data reusables.apps.accept_new_permissions_steps %} -¡Genial! Tu app tiene permiso para realizar las tareas que quieres que haga. Ahora puedes agregar el código para que funcione. +Great! Your app has permission to do the tasks you want it to do. Now you can add the code to make it work. -## Paso 2. Agregar la gestión de eventos +## Step 2. Add event handling -Lo primero que tiene que hacer tu app es escuchar si se han abierto informes de problemas nuevos. Ahora que te has suscrito alevento de **Informes de problemas**, comenzarás a recibir el webhook [`issues`](/webhooks/event-payloads/#issues), el cual se activa cuando ocurren algunas acciones relacionadas con los informes de problemas. Puedes filtrar este tipo de evento para la acción específica que quieres en tu código. +The first thing your app needs to do is listen for new issues that are opened. Now that you've subscribed to the **Issues** event, you'll start receiving the [`issues`](/webhooks/event-payloads/#issues) webhook, which is triggered when certain issue-related actions occur. You can filter this event type for the specific action you want in your code. -GitHub envía las cargas útiles de los webhooks como solicitudes de tipo `POST`. Ya que reenviaste las cargas útiles del webhook de Smee a `http://localhost/event_handler:3000`, tu servidor recibirá las cargas útiles de la solicitud de `POST` en la ruta `post '/event_handler'`. +GitHub sends webhook payloads as `POST` requests. Because you forwarded your Smee webhook payloads to `http://localhost/event_handler:3000`, your server will receive the `POST` request payloads in the `post '/event_handler'` route. -Ya se incluye una ruta de `post '/event_handler'` vacía en el archivo `template_server.rb`, el cual descargaste en la sección de [prerrequisitos](#prerequisites). La ruta vacía se ve así: +An empty `post '/event_handler'` route is already included in the `template_server.rb` file, which you downloaded in the [prerequisites](#prerequisites) section. The empty route looks like this: ``` ruby post '/event_handler' do @@ -108,7 +107,7 @@ Ya se incluye una ruta de `post '/event_handler'` vacía en el archivo `template end ``` -Utiliza esta ruta para gestionar el evento `issues` agregando el siguiente código: +Use this route to handle the `issues` event by adding the following code: ``` ruby case request.env['HTTP_X_GITHUB_EVENT'] @@ -119,9 +118,9 @@ when 'issues' end ``` -Cada vento que envíe GitHub incluye un encabezado de solicitud que se llama `HTTP_X_GITHUB_EVENT`, el cual indica el tipo de evento en la solicitud de `POST`. Ahora mismo solo te interesan los tipos de evento `issues`. Cada evento tiene un campo adicional de `action` que indica el tipo de acción que activó los eventos. Para los `issues`, el campo de `action` puede estar como `assigned`, `unassigned`, `labeled`, `unlabeled`, `opened`, `edited`, `milestoned`, `demilestoned`, `closed`, o `reopened`. +Every event that GitHub sends includes a request header called `HTTP_X_GITHUB_EVENT`, which indicates the type of event in the `POST` request. Right now, you're only interested in `issues` event types. Each event has an additional `action` field that indicates the type of action that triggered the events. For `issues`, the `action` field can be `assigned`, `unassigned`, `labeled`, `unlabeled`, `opened`, `edited`, `milestoned`, `demilestoned`, `closed`, or `reopened`. -Para probar tu gestor de eventos, intenta agregar un método auxiliar temporal. Lo actualizarás más adelante cuando [Agregues la gestión de etiquetas](#step-4-add-label-handling). Por ahora, agrega el siguiente código dentro de la sección `helpers do` del mismo. Puedes poner el método nuevo arriba o abajo de cualquiera de los métodos auxiliares. El orden no importa. +To test your event handler, try adding a temporary helper method. You'll update later when you [Add label handling](#step-4-add-label-handling). For now, add the following code inside the `helpers do` section of the code. You can put the new method above or below any of the other helper methods. Order doesn't matter. ``` ruby def handle_issue_opened_event(payload) @@ -129,37 +128,37 @@ def handle_issue_opened_event(payload) end ``` -Este método recibe una carga útil de evento formateada con JSON a manera de argumento. Esto significa que puedes analizar la carga útil en el método y profundizar hacia cualquier tipo de datos específico que necesites. Podría parecerte útil el inspeccionar totalmente la carga útil en algún memoento: intenta cambiar el mensaje `logger.debug 'An issue was opened!` a `logger.debug payload`. La estructura de la carga útil que ves deberá coincidir con lo que [se muestra en los documentos del evento de webhook `issues`](/webhooks/event-payloads/#issues). +This method receives a JSON-formatted event payload as an argument. This means you can parse the payload in the method and drill down to any specific data you need. You may find it helpful to inspect the full payload at some point: try changing `logger.debug 'An issue was opened!` to `logger.debug payload`. The payload structure you see should match what's [shown in the `issues` webhook event docs](/webhooks/event-payloads/#issues). -¡Genial! Es momento de probar los cambios. +Great! It's time to test the changes. {% data reusables.apps.sinatra_restart_instructions %} -En tu buscador, visita el repositorio en donde instalaste tu app. Abre un informe de problemas nuevo en este repositorio. El informe de problemas puede decir lo que gustes. Esto es solo para hacer la prueba. +In your browser, visit the repository where you installed your app. Open a new issue in this repository. The issue can say anything you like. It's just for testing. -Cuando regreses a ver tu terminal, deberás ver un mensaje en la salida, el cual diga, `An issue was opened!` ¡Felicidades! Acabas de agregar un gestor de eventos a tu app. 💪 +When you look back at your Terminal, you should see a message in the output that says, `An issue was opened!` Congrats! You've added an event handler to your app. 💪 -## Paso 3. Crear una etiqueta nueva +## Step 3. Create a new label -Bien, tu app puede decirte qué informes de problemas están abiertos. Ahora querrás que agregue la etiqueta `needs-response` a cualquier informe de problemas nuevo que esté abierto en el repositorio en donde se instale. +Okay, your app can tell when issues are opened. Now you want it to add the label `needs-response` to any newly opened issue in a repository the app is installed in. -Antes de que puedas _agregar_ la etiqueta a alguna parte, necesitarás _crear_ la etiqueta personalizada en tu repositorio. Solo necesitas hacer esto una vez. Para fines de esta guía, crea la etiqueta manualmente en GitHub. En tu repositorio, da clic en **Informes de problemas**, luego en **Etiquetas**, y después da clic en **Etiqueta nueva**. Nombra la nueva etiqueta como `needs-response`. +Before the label can be _added_ anywhere, you'll need to _create_ the custom label in your repository. You'll only need to do this one time. For the purposes of this guide, create the label manually on GitHub. In your repository, click **Issues**, then **Labels**, then click **New label**. Name the new label `needs-response`. {% tip %} -**Tip**: ¿No sería genial si tu app pudiera crear la etiqueta mediante programación? Pues ¡[Puede hacerlo](/rest/reference/issues#create-a-label)! Intenta agregar tú mismo el código para que lo haga después de que completes los pasos en esta guía. +**Tip**: Wouldn't it be great if your app could create the label programmatically? [It can](/rest/reference/issues#create-a-label)! Try adding the code to do that on your own after you finish the steps in this guide. {% endtip %} -Ahora que existe la etiqueta, puedes programar tu app para que utilice la API de REST para [agregar la etiqueta a cualquier informe de problemas recién abierto](/rest/reference/issues#add-labels-to-an-issue). +Now that the label exists, you can program your app to use the REST API to [add the label to any newly opened issue](/rest/reference/issues#add-labels-to-an-issue). -## Paso 4. Agregar la gestión de etiquetas +## Step 4. Add label handling -Felicidades—llegste al último paso: agregar la gestión de etiquetas a tu app. Para esta tarea, querrás utilizar la [Biblioteca Ocktokit.rb de Ruby](http://octokit.github.io/octokit.rb/). +Congrats—you've made it to the final step: adding label handling to your app. For this task, you'll want to use the [Octokit.rb Ruby library](http://octokit.github.io/octokit.rb/). -En los documentos de Octokit, encuentra una lista de los [métodos de las etiquetas](http://octokit.github.io/octokit.rb/Octokit/Client/Labels.html). El método que necesitarás usar es [`add_labels_to_an_issue`](http://octokit.github.io/octokit.rb/Octokit/Client/Labels.html#add_labels_to_an_issue-instance_method). +In the Octokit.rb docs, find the list of [label methods](http://octokit.github.io/octokit.rb/Octokit/Client/Labels.html). The method you'll want to use is [`add_labels_to_an_issue`](http://octokit.github.io/octokit.rb/Octokit/Client/Labels.html#add_labels_to_an_issue-instance_method). -Una vez de regreso en el `template_server.rb`, encuentra el método que definiste previamente: +Back in `template_server.rb`, find the method you defined previously: ``` ruby def handle_issue_opened_event(payload) @@ -167,13 +166,13 @@ def handle_issue_opened_event(payload) end ``` -Los documentos de [`add_labels_to_an_issue`](http://octokit.github.io/octokit.rb/Octokit/Client/Labels.html#add_labels_to_an_issue-instance_method) te muestran que necesitarás pasar tres argumentos en este método: +The [`add_labels_to_an_issue`](http://octokit.github.io/octokit.rb/Octokit/Client/Labels.html#add_labels_to_an_issue-instance_method) docs show you'll need to pass three arguments to this method: -* Repo (secuencia en formato `"owner/name"`) -* Número de informe de problemas (número entero) -* Etiquetas (matriz) +* Repo (string in `"owner/name"` format) +* Issue number (integer) +* Labels (array) -Puedes analizar la carga útil para obtener tanto el repo y el número de informe de problemas. Ya que el nombre de la etiqueta siempre será el mismo (`needs-response`), podrás pasarlo como una secuencia fijada en la matriz de etiquetas. Al juntar estas piezas, tu método actualizado se podría ver más o menos así: +You can parse the payload to get both the repo and the issue number. Since the label name will always be the same (`needs-response`), you can pass it as a hardcoded string in the labels array. Putting these pieces together, your updated method might look like this: ``` ruby # When an issue is opened, add a label @@ -184,56 +183,56 @@ def handle_issue_opened_event(payload) end ``` -¡Intenta abrir un informe de problemas nuevo en tu repositorio de prueba y ver lo que pasa! Si no pasa nada de inmediato, intenta actualizarlo. +Try opening a new issue in your test repository and see what happens! If nothing happens right away, try refreshing. -No verás mucho en la terminal, _pero_ deberías ver que el usuario bot agregó la etiqueta al informe de problemas. +You won't see much in the Terminal, _but_ you should see that a bot user has added a label to the issue. {% note %} -**Nota:** Cuando las GitHub Apps toman acciones a través de la API, tales como agregar etiquetas, GitHub muestra estas acciones como si las cuentas _bot_ las realizaran. Para obtener más información, consulta la sección "[Cuentas de máquina vs cuentas de bot](/apps/differences-between-apps/#machine-vs-bot-accounts)". +**Note:** When GitHub Apps take actions via the API, such as adding labels, GitHub shows these actions as being performed by _bot_ accounts. For more information, see "[Machine vs. bot accounts](/apps/differences-between-apps/#machine-vs-bot-accounts)." {% endnote %} -Si es así, ¡felicidades! ¡Has creado una app funcional exitosamente! 🎉 +If so, congrats! You've successfully built a working app! 🎉 -Puedes ver el código final en el `server.rb` dentro del [repositorio de plantilla de app](https://github.com/github-developer/using-the-github-api-in-your-app). +You can see the final code in `server.rb` in the [app template repository](https://github.com/github-developer/using-the-github-api-in-your-app). -Consulta la sección "[Pasos siguientes](#next-steps)" para obtener ideas de qué puedes hacer después. +See "[Next steps](#next-steps)" for ideas about where you can go from here. -## Solución de problemas +## Troubleshooting -Aquí te presentamos algunos problemas comunes y sus soluciones sugeridas. Si te encuentras con cualquier otro problema, puedes pedir ayuda o consejos en el {% data variables.product.prodname_support_forum_with_url %}. +Here are a few common problems and some suggested solutions. If you run into any other trouble, you can ask for help or advice in the {% data variables.product.prodname_support_forum_with_url %}. -* **P:** ¡Mi servidor no está escuchando los eventos! El cliente de Smee está ejecutándose en una ventana de la terminal, y estoy enviando eventos en GitHub.com mediante la apertura de informes de problemas nuevos, pero no veo ninguna salida en la ventana de la terminal en donde estoy ejecutando el servidor. +* **Q:** My server isn't listening to events! The Smee client is running in a Terminal window, and I'm sending events on GitHub.com by opening new issues, but I don't see any output in the Terminal window where I'm running the server. - **R:** Tal vez no tengas el dominio correcto de Smee en la configuración de tu app. Visita tu [página de configuración de la app](https://github.com/settings/apps) y vuelve a revisar los campos que se muestran en "[Registrar una app nueva con GitHub](/apps/quickstart-guides/setting-up-your-development-environment/#step-2-register-a-new-github-app)". Asegúrate que el dominio en estos campos empate con el dominio que utilizaste en tu comando de `smee -u ` en "[Iniciar un canal de Smee nuevo](/apps/quickstart-guides/setting-up-your-development-environment/#step-1-start-a-new-smee-channel)". + **A:** You may not have the correct Smee domain in your app settings. Visit your [app settings page](https://github.com/settings/apps) and double-check the fields shown in "[Register a new app with GitHub](/apps/quickstart-guides/setting-up-your-development-environment/#step-2-register-a-new-github-app)." Make sure the domain in those fields matches the domain you used in your `smee -u ` command in "[Start a new Smee channel](/apps/quickstart-guides/setting-up-your-development-environment/#step-1-start-a-new-smee-channel)." -* **P:** ¡Mi app no funciona! Abrí un nuevo informe de problemas, pero aún después de actualizar, no se le ha agregado ninguna etiqueta. +* **Q:** My app doesn't work! I opened a new issue, but even after refreshing, no label has been added to it. - **R:** Asegúrate de que hayas hecho todo lo siguiente: + **A:** Make sure all of the following are true: - * [Instalaste la app](/apps/quickstart-guides/setting-up-your-development-environment/#step-7-install-the-app-on-your-account) en el repositorio en donde estás abriendo el informe de problemas. - * Tu [cliente de Smee se está ejecutando](/apps/quickstart-guides/setting-up-your-development-environment/#step-1-start-a-new-smee-channel) en una ventana de la terminal. - * Tu [servidor web se está ejecutando](/apps/quickstart-guides/setting-up-your-development-environment/#step-6-start-the-server) sin errores en otra ventana de la terminal. - * Tu app tiene permisos de [lectura & escritura en los informes de problemas y está suscrita a los eventos de los mismos](/apps/quickstart-guides/setting-up-your-development-environment/#step-1-start-a-new-smee-channel). - * [Revisaste tu cuenta de correo electrónico](#step-1-update-app-permissions) después de actualizar los permisos y aceptaste los permisos nuevos. + * You [installed the app](/apps/quickstart-guides/setting-up-your-development-environment/#step-7-install-the-app-on-your-account) on the repository where you're opening the issue. + * Your [Smee client is running](/apps/quickstart-guides/setting-up-your-development-environment/#step-1-start-a-new-smee-channel) in a Terminal window. + * Your [web server is running](/apps/quickstart-guides/setting-up-your-development-environment/#step-6-start-the-server) with no errors in another Terminal window. + * Your app has [read & write permissions on issues and is subscribed to issue events](/apps/quickstart-guides/setting-up-your-development-environment/#step-1-start-a-new-smee-channel). + * You [checked your email](#step-1-update-app-permissions) after updating the permissions and accepted the new permissions. -## Conclusión +## Conclusion -Después de seguir esta guía, ¡habrás aprendido los fundamentos básicos para desarrollar GitHub Apps! Para revisar todo, debes: +After walking through this guide, you've learned the basic building blocks for developing GitHub Apps! To review, you: -* Programaste tu app para escuchar eventos -* Utilizaste la biblioteca de Octokit para hacer operaciones de la API de REST +* Programmed your app to listen for events +* Used the Octokit.rb library to do REST API operations -## Pasos siguientes +## Next steps -Aquí tienes algunas ideas para lo que puedes hacer después: +Here are some ideas for what you can do next: -* ¡[Vuelve a escribir tu app utilizando GraphQL](https://developer.github.com/changes/2018-04-30-graphql-supports-github-apps/)! -* ¡Vuelve a escribir tu app en Node.js utilizando al [Probot](https://github.com/probot/probot)! -* Haz que la app revise si la etiqueta `needs-response` ya existe en el informe de problemas, y si no, agrégala. -* Cuando el bot agregue la etiqueta exitosamente, muestra un mensaje en la terminal. (Pista: compara la ID de la etiqueta `needs-response` con la ID de la etiqueta en la carga útil como una condición para tu mensaje, para que así, el mensaje solo muestre cuando la etiqueta relevante se agregue y no lo haga con otra etiqueta). -* Agrega una página de llegada para tu app y conéctale una [Ruta de Sinatra](https://github.com/sinatra/sinatra#routes). -* Migra tu código a un servidor hospedado (como Heroku). No olvides actualizar la configuración de tu app con el dominio nuevo. -* Comparte tu proyecto u obtén consejos en el {% data variables.product.prodname_support_forum_with_url %}{% ifversion fpt or ghec %} -* ¿Has creado una nueva y reluciente app que crees que pueda ser útil para otros? ¡[Agrégala a GitHub Marketplace](/apps/marketplace/creating-and-submitting-your-app-for-approval/)!{% endif %} +* [Rewrite your app using GraphQL](https://developer.github.com/changes/2018-04-30-graphql-supports-github-apps/)! +* Rewrite your app in Node.js using [Probot](https://github.com/probot/probot)! +* Have the app check whether the `needs-response` label already exists on the issue, and if not, add it. +* When the bot successfully adds the label, show a message in the Terminal. (Hint: compare the `needs-response` label ID with the ID of the label in the payload as a condition for your message, so that the message only displays when the relevant label is added and not some other label.) +* Add a landing page to your app and hook up a [Sinatra route](https://github.com/sinatra/sinatra#routes) for it. +* Move your code to a hosted server (like Heroku). Don't forget to update your app settings with the new domain. +* Share your project or get advice in the {% data variables.product.prodname_support_forum_with_url %}{% ifversion fpt or ghec %} +* Have you built a shiny new app you think others might find useful? [Add it to GitHub Marketplace](/apps/marketplace/creating-and-submitting-your-app-for-approval/)!{% endif %} diff --git a/translations/es-ES/content/developers/apps/index.md b/translations/es-ES/content/developers/apps/index.md index a7b9e15af8..30fe7ff44f 100644 --- a/translations/es-ES/content/developers/apps/index.md +++ b/translations/es-ES/content/developers/apps/index.md @@ -1,12 +1,12 @@ --- -title: Aplicaciones -intro: Puedes automatizar y transmitir tu flujo de trabajo si creas tus propias apps. +title: Apps +intro: You can automate and streamline your workflow by building your own apps. redirect_from: - - /early-access/integrations/ - - /early-access/integrations/authentication/ - - /early-access/integrations/install-an-integration/ - - /apps/adding-integrations/ - - /apps/building-integrations/setting-up-a-new-integration/about-integrations/ + - /early-access/integrations + - /early-access/integrations/authentication + - /early-access/integrations/install-an-integration + - /apps/adding-integrations + - /apps/building-integrations/setting-up-a-new-integration/about-integrations - /apps - /v3/integrations versions: diff --git a/translations/es-ES/content/developers/apps/managing-github-apps/deleting-a-github-app.md b/translations/es-ES/content/developers/apps/managing-github-apps/deleting-a-github-app.md index 6e8c2b8ac2..5c9cdb43cf 100644 --- a/translations/es-ES/content/developers/apps/managing-github-apps/deleting-a-github-app.md +++ b/translations/es-ES/content/developers/apps/managing-github-apps/deleting-a-github-app.md @@ -1,8 +1,8 @@ --- -title: Borrar una GitHub App +title: Deleting a GitHub App intro: '{% data reusables.shortdesc.deleting_github_apps %}' redirect_from: - - /apps/building-integrations/managing-github-apps/deleting-a-github-app/ + - /apps/building-integrations/managing-github-apps/deleting-a-github-app - /apps/managing-github-apps/deleting-a-github-app - /developers/apps/deleting-a-github-app versions: @@ -13,12 +13,15 @@ versions: topics: - GitHub Apps --- - {% data reusables.user-settings.access_settings %} {% data reusables.user-settings.developer_settings %} {% data reusables.user-settings.github_apps %} -4. Selecciona la GitHub App que quieres borrar. ![Seleccion de apps](/assets/images/github-apps/github_apps_select-app.png) +4. Select the GitHub App you want to delete. +![App selection](/assets/images/github-apps/github_apps_select-app.png) {% data reusables.user-settings.github_apps_advanced %} -6. Da clic en **Borrar GitHub App**. ![Botón para borrar una GitHub App](/assets/images/github-apps/github_apps_delete.png) -7. Teclea e nombre de la GitHub App para confirmar que la quieres borrar. ![Campo para confirmar el nombre de la GitHub App que quieres borrar](/assets/images/github-apps/github_apps_delete_integration_name.png) -8. Da clic en **Entiendo las consecuencias, borrar esta GitHub App**. ![Botón para confirmar el borrado de tu GitHub App](/assets/images/github-apps/github_apps_confirm_deletion.png) +6. Click **Delete GitHub App**. +![Button to delete a GitHub App](/assets/images/github-apps/github_apps_delete.png) +7. Type the name of the GitHub App to confirm you want to delete it. +![Field to confirm the name of the GitHub App you want to delete](/assets/images/github-apps/github_apps_delete_integration_name.png) +8. Click **I understand the consequences, delete this GitHub App**. +![Button to confirm the deletion of your GitHub App](/assets/images/github-apps/github_apps_confirm_deletion.png) diff --git a/translations/es-ES/content/developers/apps/managing-github-apps/editing-a-github-apps-permissions.md b/translations/es-ES/content/developers/apps/managing-github-apps/editing-a-github-apps-permissions.md index 2676387825..3d9e709d77 100644 --- a/translations/es-ES/content/developers/apps/managing-github-apps/editing-a-github-apps-permissions.md +++ b/translations/es-ES/content/developers/apps/managing-github-apps/editing-a-github-apps-permissions.md @@ -1,8 +1,8 @@ --- -title: Editar los permisos de una GitHub App +title: Editing a GitHub App's permissions intro: '{% data reusables.shortdesc.editing_permissions_for_github_apps %}' redirect_from: - - /apps/building-integrations/managing-github-apps/editing-a-github-app-s-permissions/ + - /apps/building-integrations/managing-github-apps/editing-a-github-app-s-permissions - /apps/managing-github-apps/editing-a-github-app-s-permissions - /developers/apps/editing-a-github-apps-permissions versions: @@ -12,21 +12,26 @@ versions: ghec: '*' topics: - GitHub Apps -shortTitle: Editar permisos +shortTitle: Edit permissions --- - {% note %} -**Nota:** Los permisos actualizados no tendrán efecto en una instalación hasta que el propietario de la cuenta o de la organización apruebe los cambios. Puedes utilizar el [Webhook de eventos de la instalación](/webhooks/event-payloads/#installation) para saber cuando las personas acepten nuevos permisos para tu app. Una excepción son los [permisos a nivel de usuario](/apps/building-github-apps/identifying-and-authorizing-users-for-github-apps/#user-level-permissions), los cuales no requieren que un propietario de la cuenta apruebe los cambios a los permisos. +**Note:** Updated permissions won't take effect on an installation until the owner of the account or organization approves the changes. You can use the [InstallationEvent webhook](/webhooks/event-payloads/#installation) to find out when people accept new permissions for your app. One exception is [user-level permissions](/apps/building-github-apps/identifying-and-authorizing-users-for-github-apps/#user-level-permissions), which don't require the account owner to approve permission changes. {% endnote %} {% data reusables.user-settings.access_settings %} {% data reusables.user-settings.developer_settings %} {% data reusables.user-settings.github_apps %} -4. Selecciona la GitHub App de la cual quieras cambiar los permisos. ![Seleccion de apps](/assets/images/github-apps/github_apps_select-app.png) -5. En la barra lateral izquierda, haz clic en **Permissions & webhooks** (Permisos y webhooks). ![Permisos y webhooks](/assets/images/github-apps/github_apps_permissions_and_webhooks.png) -6. Modifica los permisos que te gustaría cambiar. Para cada tipo de permisos, selecciona ya sea "únicamente lectura", "Lectura & escritura", o "Sin acceso" del menú desplegable. ![Selecciones de permisos para tu GitHub App](/assets/images/github-apps/github_apps_permissions_post2dot13.png) -7. En "suscribirse a los eventos", selecciona cualquier evento al que quieras suscribir a tu app. ![Selecciones de permisos para suscribir tu GitHub App a los eventos](/assets/images/github-apps/github_apps_permissions_subscribe_to_events.png) -8. Opcionalmente, en "agregar una nota para los usuarios", agrega una nota que indique a tus usuarios el por qué estás cambiando los permisos que solicita tu GitHub App. ![Caja de entrada para agregar una nota para los usuarios, la cual explique por qué cambiaron los permisos de tu GitHub App](/assets/images/github-apps/github_apps_permissions_note_to_users.png) -9. Haz clic en **Guardar cambios**. ![Botón para guardar los cambios en los permisos](/assets/images/github-apps/github_apps_save_changes.png) +4. Select the GitHub App whose permissions you want to change. +![App selection](/assets/images/github-apps/github_apps_select-app.png) +5. In the left sidebar, click **Permissions & webhooks**. +![Permissions and webhooks](/assets/images/github-apps/github_apps_permissions_and_webhooks.png) +6. Modify the permissions you'd like to change. For each type of permission, select either "Read-only", "Read & write", or "No access" from the dropdown. +![Permissions selections for your GitHub App](/assets/images/github-apps/github_apps_permissions_post2dot13.png) +7. In "Subscribe to events", select any events to which you'd like to subscribe your app. +![Permissions selections for subscribing your GitHub App to events](/assets/images/github-apps/github_apps_permissions_subscribe_to_events.png) +8. Optionally, in "Add a note to users", add a note telling your users why you are changing the permissions that your GitHub App requests. +![Input box to add a note to users explaining why your GitHub App permissions have changed](/assets/images/github-apps/github_apps_permissions_note_to_users.png) +9. Click **Save changes**. +![Button to save permissions changes](/assets/images/github-apps/github_apps_save_changes.png) diff --git a/translations/es-ES/content/developers/apps/managing-github-apps/index.md b/translations/es-ES/content/developers/apps/managing-github-apps/index.md index 370ebffba9..718fa7bb8f 100644 --- a/translations/es-ES/content/developers/apps/managing-github-apps/index.md +++ b/translations/es-ES/content/developers/apps/managing-github-apps/index.md @@ -1,8 +1,8 @@ --- -title: Adminsitrar las GitHub Apps -intro: 'Después de que creas y registras una GitHub App, puedes hacer modificaciones a la misma, cambiar sus permisos, transferir la propiedad, y borrarla.' +title: Managing GitHub Apps +intro: 'After you create and register a GitHub App, you can make modifications to the app, change permissions, transfer ownership, and delete the app.' redirect_from: - - /apps/building-integrations/managing-github-apps/ + - /apps/building-integrations/managing-github-apps - /apps/managing-github-apps versions: fpt: '*' diff --git a/translations/es-ES/content/developers/apps/managing-github-apps/making-a-github-app-public-or-private.md b/translations/es-ES/content/developers/apps/managing-github-apps/making-a-github-app-public-or-private.md index c8409c004a..2955f8e8c0 100644 --- a/translations/es-ES/content/developers/apps/managing-github-apps/making-a-github-app-public-or-private.md +++ b/translations/es-ES/content/developers/apps/managing-github-apps/making-a-github-app-public-or-private.md @@ -2,10 +2,10 @@ title: Making a GitHub App public or private intro: '{% data reusables.shortdesc.making-a-github-app-public-or-private %}' redirect_from: - - /apps/building-integrations/setting-up-and-registering-github-apps/about-installation-options-for-github-apps/ - - /apps/building-github-apps/installation-options-for-github-apps/ - - /apps/building-integrations/managing-github-apps/changing-a-github-app-s-installation-option/ - - /apps/managing-github-apps/changing-a-github-app-s-installation-option/ + - /apps/building-integrations/setting-up-and-registering-github-apps/about-installation-options-for-github-apps + - /apps/building-github-apps/installation-options-for-github-apps + - /apps/building-integrations/managing-github-apps/changing-a-github-app-s-installation-option + - /apps/managing-github-apps/changing-a-github-app-s-installation-option - /apps/managing-github-apps/making-a-github-app-public-or-private - /developers/apps/making-a-github-app-public-or-private versions: diff --git a/translations/es-ES/content/developers/apps/managing-github-apps/modifying-a-github-app.md b/translations/es-ES/content/developers/apps/managing-github-apps/modifying-a-github-app.md index 805833900b..48fc1ccfb1 100644 --- a/translations/es-ES/content/developers/apps/managing-github-apps/modifying-a-github-app.md +++ b/translations/es-ES/content/developers/apps/managing-github-apps/modifying-a-github-app.md @@ -1,8 +1,8 @@ --- -title: Modificar una GitHub App +title: Modifying a GitHub App intro: '{% data reusables.shortdesc.modifying_github_apps %}' redirect_from: - - /apps/building-integrations/managing-github-apps/modifying-a-github-app/ + - /apps/building-integrations/managing-github-apps/modifying-a-github-app - /apps/managing-github-apps/modifying-a-github-app - /developers/apps/modifying-a-github-app versions: @@ -13,10 +13,11 @@ versions: topics: - GitHub Apps --- - {% data reusables.user-settings.access_settings %} {% data reusables.user-settings.developer_settings %} {% data reusables.user-settings.github_apps %} {% data reusables.user-settings.modify_github_app %} -5. En "Información básica", modifica la información que quieras cambiar para la GitHub App. ![Sección de información básica para tu GitHub App](/assets/images/github-apps/github_apps_basic_information.png) -6. Haz clic en **Guardar cambios**. ![Botón para guardar los cambios en tu GitHub App](/assets/images/github-apps/github_apps_save_changes.png) +5. In "Basic information", modify the GitHub App information that you'd like to change. +![Basic information section for your GitHub App](/assets/images/github-apps/github_apps_basic_information.png) +6. Click **Save changes**. +![Button to save changes for your GitHub App](/assets/images/github-apps/github_apps_save_changes.png) diff --git a/translations/es-ES/content/developers/apps/managing-github-apps/transferring-ownership-of-a-github-app.md b/translations/es-ES/content/developers/apps/managing-github-apps/transferring-ownership-of-a-github-app.md index 12e47f63ac..4bbe104d16 100644 --- a/translations/es-ES/content/developers/apps/managing-github-apps/transferring-ownership-of-a-github-app.md +++ b/translations/es-ES/content/developers/apps/managing-github-apps/transferring-ownership-of-a-github-app.md @@ -1,8 +1,8 @@ --- -title: Transferir la propiedad de una GitHub App +title: Transferring ownership of a GitHub App intro: '{% data reusables.shortdesc.transferring_ownership_of_github_apps %}' redirect_from: - - /apps/building-integrations/managing-github-apps/transferring-ownership-of-a-github-app/ + - /apps/building-integrations/managing-github-apps/transferring-ownership-of-a-github-app - /apps/managing-github-apps/transferring-ownership-of-a-github-app - /developers/apps/transferring-ownership-of-a-github-app versions: @@ -12,15 +12,19 @@ versions: ghec: '*' topics: - GitHub Apps -shortTitle: Transferir la propiedad +shortTitle: Transfer ownership --- - {% data reusables.user-settings.access_settings %} {% data reusables.user-settings.developer_settings %} {% data reusables.user-settings.github_apps %} -4. Selecciona la GitHub App cuya propiedad quieras transferir. ![Seleccion de apps](/assets/images/github-apps/github_apps_select-app.png) +4. Select the GitHub App whose ownership you want to transfer. +![App selection](/assets/images/github-apps/github_apps_select-app.png) {% data reusables.user-settings.github_apps_advanced %} -6. Da clic en **Transferir propiedad**. ![Botón para transferir la propiedad](/assets/images/github-apps/github_apps_transfer_ownership.png) -7. Teclea el nombre de la GitHub App que quieres transferir. ![Campo para ingresar el nombre de la app a transferir](/assets/images/github-apps/github_apps_transfer_app_name.png) -8. Teclea el nombre del usuario u organización al cual quieres transferir la GitHub App. ![Campo para ingresar el usuario u organización al cual se transferirá la app](/assets/images/github-apps/github_apps_transfer_new_owner.png) -9. Da clic en **Transferir esta GitHub App**. ![Botón para confirmar la transferencia de una GitHub App](/assets/images/github-apps/github_apps_transfer_integration.png) +6. Click **Transfer ownership**. +![Button to transfer ownership](/assets/images/github-apps/github_apps_transfer_ownership.png) +7. Type the name of the GitHub App you want to transfer. +![Field to enter the name of the app to transfer](/assets/images/github-apps/github_apps_transfer_app_name.png) +8. Type the name of the user or organization you want to transfer the GitHub App to. +![Field to enter the user or org to transfer to](/assets/images/github-apps/github_apps_transfer_new_owner.png) +9. Click **Transfer this GitHub App**. +![Button to confirm the transfer of a GitHub App](/assets/images/github-apps/github_apps_transfer_integration.png) diff --git a/translations/es-ES/content/developers/apps/managing-oauth-apps/deleting-an-oauth-app.md b/translations/es-ES/content/developers/apps/managing-oauth-apps/deleting-an-oauth-app.md index db5769aedf..26affcb17f 100644 --- a/translations/es-ES/content/developers/apps/managing-oauth-apps/deleting-an-oauth-app.md +++ b/translations/es-ES/content/developers/apps/managing-oauth-apps/deleting-an-oauth-app.md @@ -1,8 +1,8 @@ --- -title: Borrar una App de OAuth +title: Deleting an OAuth App intro: '{% data reusables.shortdesc.deleting_oauth_apps %}' redirect_from: - - /apps/building-integrations/managing-oauth-apps/deleting-an-oauth-app/ + - /apps/building-integrations/managing-oauth-apps/deleting-an-oauth-app - /apps/managing-oauth-apps/deleting-an-oauth-app - /developers/apps/deleting-an-oauth-app versions: @@ -13,10 +13,12 @@ versions: topics: - OAuth Apps --- - {% data reusables.user-settings.access_settings %} {% data reusables.user-settings.developer_settings %} {% data reusables.user-settings.oauth_apps %} -4. Selecciona la {% data variables.product.prodname_oauth_app %} que quieres modificar. ![Seleccion de apps](/assets/images/oauth-apps/oauth_apps_choose_app_post2dot12.png) -5. Da clic en **Borrar aplicación**. ![Botón para borrar la aplicación](/assets/images/oauth-apps/oauth_apps_delete_application.png) -6. Da clic en **Borrar esta aplicación de OAuth**. ![Botón para confirmar el borrado](/assets/images/oauth-apps/oauth_apps_delete_confirm.png) +4. Select the {% data variables.product.prodname_oauth_app %} you want to modify. +![App selection](/assets/images/oauth-apps/oauth_apps_choose_app_post2dot12.png) +5. Click **Delete application**. +![Button to delete the application](/assets/images/oauth-apps/oauth_apps_delete_application.png) +6. Click **Delete this OAuth Application**. +![Button to confirm the deletion](/assets/images/oauth-apps/oauth_apps_delete_confirm.png) diff --git a/translations/es-ES/content/developers/apps/managing-oauth-apps/index.md b/translations/es-ES/content/developers/apps/managing-oauth-apps/index.md index c4bd639a10..5a40c83444 100644 --- a/translations/es-ES/content/developers/apps/managing-oauth-apps/index.md +++ b/translations/es-ES/content/developers/apps/managing-oauth-apps/index.md @@ -1,8 +1,8 @@ --- -title: Adminsitrar las Apps de OAuth -intro: 'Después de que creas y registras una App de OAuth, puedes hacerle modificaciones, cambiar sus permisos, transferir su propiedad y borrarla.' +title: Managing OAuth Apps +intro: 'After you create and register an OAuth App, you can make modifications to the app, change permissions, transfer ownership, and delete the app.' redirect_from: - - /apps/building-integrations/managing-oauth-apps/ + - /apps/building-integrations/managing-oauth-apps - /apps/managing-oauth-apps versions: fpt: '*' diff --git a/translations/es-ES/content/developers/apps/managing-oauth-apps/modifying-an-oauth-app.md b/translations/es-ES/content/developers/apps/managing-oauth-apps/modifying-an-oauth-app.md index b48221721c..c6196ae921 100644 --- a/translations/es-ES/content/developers/apps/managing-oauth-apps/modifying-an-oauth-app.md +++ b/translations/es-ES/content/developers/apps/managing-oauth-apps/modifying-an-oauth-app.md @@ -1,8 +1,8 @@ --- -title: Modificar una App de OAuth +title: Modifying an OAuth App intro: '{% data reusables.shortdesc.modifying_oauth_apps %}' redirect_from: - - /apps/building-integrations/managing-oauth-apps/modifying-an-oauth-app/ + - /apps/building-integrations/managing-oauth-apps/modifying-an-oauth-app - /apps/managing-oauth-apps/modifying-an-oauth-app - /developers/apps/modifying-an-oauth-app versions: @@ -13,10 +13,9 @@ versions: topics: - OAuth Apps --- - {% data reusables.user-settings.access_settings %} {% data reusables.user-settings.developer_settings %} {% data reusables.user-settings.oauth_apps %} {% data reusables.user-settings.modify_oauth_app %} -1. Modifica la información que quieras cambiar para la {% data variables.product.prodname_oauth_app %}. +1. Modify the {% data variables.product.prodname_oauth_app %} information that you'd like to change. {% data reusables.user-settings.update_oauth_app %} diff --git a/translations/es-ES/content/developers/apps/managing-oauth-apps/transferring-ownership-of-an-oauth-app.md b/translations/es-ES/content/developers/apps/managing-oauth-apps/transferring-ownership-of-an-oauth-app.md index b17c1e9392..975ec5bafb 100644 --- a/translations/es-ES/content/developers/apps/managing-oauth-apps/transferring-ownership-of-an-oauth-app.md +++ b/translations/es-ES/content/developers/apps/managing-oauth-apps/transferring-ownership-of-an-oauth-app.md @@ -1,8 +1,8 @@ --- -title: Transferir la propiedad de una App de OAuth +title: Transferring ownership of an OAuth App intro: '{% data reusables.shortdesc.transferring_ownership_of_oauth_apps %}' redirect_from: - - /apps/building-integrations/managing-oauth-apps/transferring-ownership-of-an-oauth-app/ + - /apps/building-integrations/managing-oauth-apps/transferring-ownership-of-an-oauth-app - /apps/managing-oauth-apps/transferring-ownership-of-an-oauth-app - /developers/apps/transferring-ownership-of-an-oauth-app versions: @@ -12,14 +12,18 @@ versions: ghec: '*' topics: - OAuth Apps -shortTitle: Transferir la propiedad +shortTitle: Transfer ownership --- - {% data reusables.user-settings.access_settings %} {% data reusables.user-settings.developer_settings %} {% data reusables.user-settings.oauth_apps %} -4. Selecciona la {% data variables.product.prodname_oauth_app %} que quieres modificar. ![Seleccion de apps](/assets/images/oauth-apps/oauth_apps_choose_app_post2dot12.png) -5. Da clic en **Transferir propiedad**. ![Botón para transferir la propiedad](/assets/images/oauth-apps/oauth_apps_transfer_ownership.png) -6. Teclea el nombre de la {% data variables.product.prodname_oauth_app %} que quieres transferir. ![Campo para ingresar el nombre de la app a transferir](/assets/images/oauth-apps/oauth_apps_transfer_oauth_name.png) -7. Teclea el nombre del usuario u organización al cual quieres transferir la {% data variables.product.prodname_oauth_app %}. ![Campo para ingresar el usuario u organización al cual se transferirá la app](/assets/images/oauth-apps/oauth_apps_transfer_new_owner.png) -8. Da clic en **Transferir esta aplicación**. ![Botón para transferir la aplicación](/assets/images/oauth-apps/oauth_apps_transfer_application.png) +4. Select the {% data variables.product.prodname_oauth_app %} you want to modify. +![App selection](/assets/images/oauth-apps/oauth_apps_choose_app_post2dot12.png) +5. Click **Transfer ownership**. +![Button to transfer ownership](/assets/images/oauth-apps/oauth_apps_transfer_ownership.png) +6. Type the name of the {% data variables.product.prodname_oauth_app %} you want to transfer. +![Field to enter the name of the app to transfer](/assets/images/oauth-apps/oauth_apps_transfer_oauth_name.png) +7. Type the name of the user or organization you want to transfer the {% data variables.product.prodname_oauth_app %} to. +![Field to enter the user or org to transfer to](/assets/images/oauth-apps/oauth_apps_transfer_new_owner.png) +8. Click **Transfer this application**. +![Button to transfer the application](/assets/images/oauth-apps/oauth_apps_transfer_application.png) diff --git a/translations/es-ES/content/developers/apps/managing-oauth-apps/troubleshooting-authorization-request-errors.md b/translations/es-ES/content/developers/apps/managing-oauth-apps/troubleshooting-authorization-request-errors.md index 8f6948a27b..ce44a8e347 100644 --- a/translations/es-ES/content/developers/apps/managing-oauth-apps/troubleshooting-authorization-request-errors.md +++ b/translations/es-ES/content/developers/apps/managing-oauth-apps/troubleshooting-authorization-request-errors.md @@ -1,8 +1,8 @@ --- -title: Solución de problemas para los errores de solicitud de autorización +title: Troubleshooting authorization request errors intro: '{% data reusables.shortdesc.troubleshooting_authorization_request_errors_oauth_apps %}' redirect_from: - - /apps/building-integrations/managing-oauth-apps/troubleshooting-authorization-request-errors/ + - /apps/building-integrations/managing-oauth-apps/troubleshooting-authorization-request-errors - /apps/managing-oauth-apps/troubleshooting-authorization-request-errors - /developers/apps/troubleshooting-authorization-request-errors versions: @@ -12,38 +12,42 @@ versions: ghec: '*' topics: - GitHub Apps -shortTitle: Solucionar los problemas de autorización +shortTitle: Troubleshoot authorization --- +## Application suspended -## Aplicación suspendida - -Si la App de OAuth que configuraste se suspendió (debido a que reportaron abuso, spam, o mal uso de la API), GitHub te redirigirá a la URL de rellamado registrada utilizando los siguientes parámetros para resumir el error: +If the OAuth App you set up has been suspended (due to reported abuse, spam, or a mis-use of the API), GitHub will redirect to the registered callback URL using the following parameters to summarize the error: http://your-application.com/callback?error=application_suspended &error_description=Your+application+has+been+suspended.+Contact+support@github.com. &error_uri=/apps/building-integrations/setting-up-and-registering-oauth-apps/troubleshooting-authorization-request-errors/%23application-suspended &state=xyz -Para resolver los problemas de suspensión de aplicaciones, por favor contacta a {% data variables.contact.contact_support %}. +To solve issues with suspended applications, please contact {% data variables.contact.contact_support %}. -## Redirigir una discordancia de URI +## Redirect URI mismatch -Si proporcionas una `redirect_uri` que no concuerde con lo que has registrado con tu aplicación, GitHub te redirigirá a la URL de rellamado registrada con los siguientes parámetros que resumirán el error: +If you provide a `redirect_uri` that doesn't match what you've registered with your application, GitHub will redirect to the registered callback URL with the following parameters summarizing the error: http://your-application.com/callback?error=redirect_uri_mismatch &error_description=The+redirect_uri+MUST+match+the+registered+callback+URL+for+this+application. &error_uri=/apps/building-integrations/setting-up-and-registering-oauth-apps/troubleshooting-authorization-request-errors/%23redirect-uri-mismatch &state=xyz -Para corregir este error, puedes ya sea proporcionar una `redirect_uri` que coincida con lo que registraste o dejar este parámetro para utilizar aquél predeterminado que se registró con tu aplicación. +To correct this error, either provide a `redirect_uri` that matches what you registered or leave out this parameter to use the default one registered with your application. -### Acceso denegado +### Access denied -Si el usuario rechaza el acceso a tu aplicación, GitHub te redirigirá a la URL de rellamado registrada con los siguientes parámetros para resumir el error: +If the user rejects access to your application, GitHub will redirect to +the registered callback URL with the following parameters summarizing +the error: http://your-application.com/callback?error=access_denied &error_description=The+user+has+denied+your+application+access. &error_uri=/apps/building-integrations/setting-up-and-registering-oauth-apps/troubleshooting-authorization-request-errors/%23access-denied &state=xyz -No puedes hacer nada al respecto, ya que los usuarios tiene la libertad de elegir si no quieren utilizar tu aplicación. Lo más común es que los usuarios simplemente cierren la ventana o presionen "atrás" en su buscador, así que es probable que nunca veas este error. +There's nothing you can do here as users are free to choose not to use +your application. More often than not, users will just close the window +or press back in their browser, so it is likely that you'll never see +this error. diff --git a/translations/es-ES/content/developers/apps/managing-oauth-apps/troubleshooting-oauth-app-access-token-request-errors.md b/translations/es-ES/content/developers/apps/managing-oauth-apps/troubleshooting-oauth-app-access-token-request-errors.md index 2bd3c2184f..5dc9f10a8b 100644 --- a/translations/es-ES/content/developers/apps/managing-oauth-apps/troubleshooting-oauth-app-access-token-request-errors.md +++ b/translations/es-ES/content/developers/apps/managing-oauth-apps/troubleshooting-oauth-app-access-token-request-errors.md @@ -1,8 +1,8 @@ --- -title: Solucionar problemas para los errores de solicitud en los tokens de acceso a Apps de OAuth +title: Troubleshooting OAuth App access token request errors intro: '{% data reusables.shortdesc.troubleshooting_access_token_reques_errors_oauth_apps %}' redirect_from: - - /apps/building-integrations/managing-oauth-apps/troubleshooting-oauth-app-access-token-request-errors/ + - /apps/building-integrations/managing-oauth-apps/troubleshooting-oauth-app-access-token-request-errors - /apps/managing-oauth-apps/troubleshooting-oauth-app-access-token-request-errors - /developers/apps/troubleshooting-oauth-app-access-token-request-errors versions: @@ -12,18 +12,18 @@ versions: ghec: '*' topics: - OAuth Apps -shortTitle: Solucionar los problemas de la solicitud de token +shortTitle: Troubleshoot token request --- - {% note %} -**Nota:** Estos ejemplos solo muestran respuestas de JSON. +**Note:** These examples only show JSON responses. {% endnote %} -## Credenciales de cliente incorrectas +## Incorrect client credentials -Si la client\_id y/o el client\_secret que pasas son incorrectos, recibirás este error como respuesta. +If the client\_id and or client\_secret you pass are incorrect you will +receive this error response. ```json { @@ -33,11 +33,12 @@ Si la client\_id y/o el client\_secret que pasas son incorrectos, recibirás est } ``` -Para resolver este error, asegúrate de que tienes las credenciales correctas para tu {% data variables.product.prodname_oauth_app %}. Revisa dos veces la `client_id` y el `client_secret` para asegurarte de que sean correctos y de que se pasen correctamente en {% data variables.product.product_name %}. +To solve this error, make sure you have the correct credentials for your {% data variables.product.prodname_oauth_app %}. Double check the `client_id` and `client_secret` to make sure they are correct and being passed correctly +to {% data variables.product.product_name %}. -## Redirigir una discordancia de URI +## Redirect URI mismatch -Si proporcionas una `redirect_uri` que no empate con lo que registraste con tu {% data variables.product.prodname_oauth_app %}, recibirás este mensaje de error: +If you provide a `redirect_uri` that doesn't match what you've registered with your {% data variables.product.prodname_oauth_app %}, you'll receive this error message: ```json { @@ -47,9 +48,11 @@ Si proporcionas una `redirect_uri` que no empate con lo que registraste con tu { } ``` -Para corregir este error, puedes ya sea proporcionar una `redirect_uri` que coincida con lo que registraste o dejar este parámetro para utilizar aquél predeterminado que se registró con tu aplicación. +To correct this error, either provide a `redirect_uri` that matches what +you registered or leave out this parameter to use the default one +registered with your application. -## Código de verificación incorrecto +## Bad verification code ```json { @@ -60,7 +63,9 @@ Para corregir este error, puedes ya sea proporcionar una `redirect_uri` que coin } ``` -Si el código de verificación que pasaste es incorrecto, está caduco, o no coincide con lo que recibiste en la primera solicitud de autorización, recibirás este error. +If the verification code you pass is incorrect, expired, or doesn't +match what you received in the first request for authorization you will +receive this error. ```json { @@ -70,4 +75,5 @@ Si el código de verificación que pasaste es incorrecto, está caduco, o no coi } ``` -Para resolver este error, inicia el [proceso de autorización de OAuth nuevamente](/apps/building-oauth-apps/authorizing-oauth-apps/) y obtén un código nuevo. +To solve this error, start the [OAuth authorization process again](/apps/building-oauth-apps/authorizing-oauth-apps/) +and get a new code. diff --git a/translations/es-ES/content/developers/github-marketplace/creating-apps-for-github-marketplace/requirements-for-listing-an-app.md b/translations/es-ES/content/developers/github-marketplace/creating-apps-for-github-marketplace/requirements-for-listing-an-app.md index ea47b4b45a..4a6292a7c8 100644 --- a/translations/es-ES/content/developers/github-marketplace/creating-apps-for-github-marketplace/requirements-for-listing-an-app.md +++ b/translations/es-ES/content/developers/github-marketplace/creating-apps-for-github-marketplace/requirements-for-listing-an-app.md @@ -2,11 +2,11 @@ title: Requirements for listing an app intro: 'Apps on {% data variables.product.prodname_marketplace %} must meet the requirements outlined on this page before the listing can be published.' redirect_from: - - /apps/adding-integrations/listing-apps-on-github-marketplace/requirements-for-listing-an-app-on-github-marketplace/ - - /apps/marketplace/listing-apps-on-github-marketplace/requirements-for-listing-an-app-on-github-marketplace/ - - /apps/marketplace/getting-started-with-github-marketplace-listings/requirements-for-listing-an-app-on-github-marketplace/ - - /apps/marketplace/creating-and-submitting-your-app-for-approval/requirements-for-listing-an-app-on-github-marketplace/ - - /apps/marketplace/getting-started/requirements-for-listing-an-app-on-github-marketplace/ + - /apps/adding-integrations/listing-apps-on-github-marketplace/requirements-for-listing-an-app-on-github-marketplace + - /apps/marketplace/listing-apps-on-github-marketplace/requirements-for-listing-an-app-on-github-marketplace + - /apps/marketplace/getting-started-with-github-marketplace-listings/requirements-for-listing-an-app-on-github-marketplace + - /apps/marketplace/creating-and-submitting-your-app-for-approval/requirements-for-listing-an-app-on-github-marketplace + - /apps/marketplace/getting-started/requirements-for-listing-an-app-on-github-marketplace - /marketplace/getting-started/requirements-for-listing-an-app-on-github-marketplace - /developers/github-marketplace/requirements-for-listing-an-app versions: diff --git a/translations/es-ES/content/developers/github-marketplace/creating-apps-for-github-marketplace/security-best-practices-for-apps.md b/translations/es-ES/content/developers/github-marketplace/creating-apps-for-github-marketplace/security-best-practices-for-apps.md index 819585c706..edf1015910 100644 --- a/translations/es-ES/content/developers/github-marketplace/creating-apps-for-github-marketplace/security-best-practices-for-apps.md +++ b/translations/es-ES/content/developers/github-marketplace/creating-apps-for-github-marketplace/security-best-practices-for-apps.md @@ -1,63 +1,63 @@ --- -title: Mejores prácticas de seguridad para las apps -intro: 'Lineamientos para preparar una app segura para que se comparta en {% data variables.product.prodname_marketplace %}.' +title: Security best practices for apps +intro: 'Guidelines for preparing a secure app to share on {% data variables.product.prodname_marketplace %}.' redirect_from: - - /apps/marketplace/getting-started/security-review-process/ + - /apps/marketplace/getting-started/security-review-process - /marketplace/getting-started/security-review-process - /developers/github-marketplace/security-review-process-for-submitted-apps - /developers/github-marketplace/security-best-practices-for-apps -shortTitle: Mejores prácticas de seguridad +shortTitle: Security best practice versions: fpt: '*' ghec: '*' topics: - Marketplace --- +If you follow these best practices it will help you to provide a secure user experience. -El seguir estas mejores prácticas te ayudará a proporcionar una experiencia de usuario segura. +## Authorization, authentication, and access control -## Autorización, autenticación, y control de accesos +We recommend creating a GitHub App rather than an OAuth App. {% data reusables.marketplace.github_apps_preferred %}. See "[Differences between GitHub Apps and OAuth Apps](/apps/differences-between-apps/)" for more details. +- Apps should use the principle of least privilege and should only request the OAuth scopes and GitHub App permissions that the app needs to perform its intended functionality. For more information, see [Principle of least privilege](https://en.wikipedia.org/wiki/Principle_of_least_privilege) in Wikipedia. +- Apps should provide customers with a way to delete their account, without having to email or call a support person. +- Apps should not share tokens between different implementations of the app. For example, a desktop app should have a separate token from a web-based app. Individual tokens allow each app to request the access needed for GitHub resources separately. +- Design your app with different user roles, depending on the functionality needed by each type of user. For example, a standard user should not have access to admin functionality, and billing managers might not need push access to repository code. +- Apps should not share service accounts such as email or database services to manage your SaaS service. +- All services used in your app should have unique login and password credentials. +- Admin privilege access to the production hosting infrastructure should only be given to engineers and employees with administrative duties. +- Apps should not use personal access tokens to authenticate and should authenticate as an [OAuth App](/apps/about-apps/#about-oauth-apps) or a [GitHub App](/apps/about-apps/#about-github-apps): + - OAuth Apps should authenticate using an [OAuth token](/apps/building-oauth-apps/authorizing-oauth-apps/). + - GitHub Apps should authenticate using either a [JSON Web Token (JWT)](/apps/building-github-apps/authenticating-with-github-apps/#authenticating-as-a-github-app), [OAuth token](/apps/building-github-apps/identifying-and-authorizing-users-for-github-apps/), or [installation access token](/apps/building-github-apps/authenticating-with-github-apps/#authenticating-as-an-installation). -Te recomendamos crear una GitHub App en vez de una OAuth App. {% data reusables.marketplace.github_apps_preferred %}. Consulta la sección "[Diferencias entre las GitHub Apps y las Apps de OAuth](/apps/differences-between-apps/)" para encontrar más detalles. -- Las apps deben utilizar el principio del menor privilegio necesario y solo deberán solicitar los alcances de OAuth y permisos de GitHub Apps que dicha app necesite para llevar a cabo su funcionalidad prevista. Para obtener más información, consulta la sección [Principio del menor privilegio necesario](https://en.wikipedia.org/wiki/Principle_of_least_privilege) en Wikipedia. -- Las apps deben proporcionar a los clientes una forma de borrar su cuenta, sin tener que enviar un correo electrónico o llamar a una persona de soporte. -- Las apps no deben compartir tokens entre las diferentes implementaciones de la misma. Por ejemplo, una app de escritorio debe tener un token separado de aquella que es basada en web. Los tokens individuales permiten a cada app solicitar el acceso necesario a los recursos de GitHub por separado. -- Diseña tu app con diferentes roles de usuario, dependiendo de la funcionalidad que necesita cada tipo de usuario. Por ejemplo, un usuario estándar no debe tener acceso a la funcionalidad de administrador, y los gerentes de facturación podrían no requerir acceso de carga al código de un repositorio. -- Las apps no deben compartir cuentas de servicio tales como servicios de correo electrónico o de bases de datos para administrar tu servicio SaaS. -- Todos los servicios que se utilicen en tu app deben contar con credenciales únicas de nombre de inicio de sesión y contraseña. -- El acceso privilegiado de administrador para la infraestructura de alojamiento productiva solo se deberá otorgar a los ingenieros y empleados con obligaciones administrativas. -- Las apps no deben utilizar tokens de acceso personal para autenticarse en ellas y deberán autenticarse como una [App de OAuth](/apps/about-apps/#about-oauth-apps) o una [GitHub App](/apps/about-apps/#about-github-apps): - - Las apps de OAuth deben autenticarse utilizando un [Token de OAuth](/apps/building-oauth-apps/authorizing-oauth-apps/). - - Las GitHub Apps deben autenticarse utilizando ya sea un [Token Web de JSON (JWT)](/apps/building-github-apps/authenticating-with-github-apps/#authenticating-as-a-github-app), un [token de OAuth](/apps/building-github-apps/identifying-and-authorizing-users-for-github-apps/), o un [token de acceso a la instalación](/apps/building-github-apps/authenticating-with-github-apps/#authenticating-as-an-installation). +## Data protection -## Protección de datos +- Apps should encrypt data transferred over the public internet using HTTPS, with a valid TLS certificate, or SSH for Git. +- Apps should store client ID and client secret keys securely. We recommend storing them as [environmental variables](http://en.wikipedia.org/wiki/Environment_variable#Getting_and_setting_environment_variables). +- Apps should delete all GitHub user data within 30 days of receiving a request from the user, or within 30 days of the end of the user's legal relationship with GitHub. +- Apps should not require the user to provide their GitHub password. +- Apps should encrypt tokens, client IDs, and client secrets. -- Las apps deben cifrar los datos que se transfieren a través del internet público utilizando HTTPS con un certificado TLS válido o con SSH para Git. -- Las apps deben almacenar las llaves secretas y las ID de los clientes de forma segura. Te recomendamos almacenarlas como [variables de ambiente](http://en.wikipedia.org/wiki/Environment_variable#Getting_and_setting_environment_variables). -- Las apps deben borrar todos los datos de usuario de GitHub dentro de los 30 días posteriores de recibir una solicitud del usuario para hacerlo, o dentro de 30 días posteriores al final de la relación legal del usuario con GitHub. -- Las apps no deben requerir que el usuario proporcione su contraseña de GitHub. -- Las apps deben cifrar los tokens, ID de cliente y secretos de cliente. +## Logging and monitoring -## Registro y monitoreo +Apps should have logging and monitoring capabilities. App logs should be retained for at least 30 days and archived for at least one year. +A security log should include: -Las apps deben tener capacidad de monitoreo y de ingreso de usuarios. Las bitácoras de las apps deben retenerse por lo menos por 30 días y archivarse por un mínimo de un año. Un log de seguirdad debería incluir: +- Authentication and authorization events +- Service configuration changes +- Object reads and writes +- All user and group permission changes +- Elevation of role to admin +- Consistent timestamping for each event +- Source users, IP addresses, and/or hostnames for all logged actions -- Eventos de autenticación y autorización -- Cambios a la configuración del servicio -- Escritura y lectura de objetos -- Todos los cambios de permisos de usuarios y grupos -- Elevación de rol a aquel de administrador -- Marca de tiempo consistente para cada evento -- Usuarios orgien, direcciones IP, y/o nombres de host para todas las acciones registradas +## Incident response workflow -## Flujo de trabajo de respuesta a incidentes +To provide a secure experience for users, you should have a clear incident response plan in place before listing your app. We recommend having a security and operations incident response team in your company rather than using a third-party vendor. You should have the capability to notify {% data variables.product.product_name %} within 24 hours of a confirmed incident. -Para proporcionar una experiencia segura a los usuarios, debes tener un plan claro de respuesta a incidentes antes de listar tu app. Te recomendamos tener un equipo de respuesta a incidentes para operaciones y de seguridad en tu compañía en vez de utilizar un proveedor tercero. Debes poder notificar a {% data variables.product.product_name %} dentro de las primeras 24 horas de que se confirme un incidente. +For an example of an incident response workflow, see the "Data Breach Response Policy" on the [SANS Institute website](https://www.sans.org/information-security-policy/). A short document with clear steps to take in the event of an incident is more valuable than a lengthy policy template. -Para obtener un ejemplo de un flujo de trabajo de respuesta a incidentes, consulta la "Política de Respuesta a Fuga de Datos" en el [Sitio web del insitituto SANS](https://www.sans.org/information-security-policy/). Un documento corto con pasos claros a tomar en caso de un incidente es más valioso que una plantilla larga de una política. +## Vulnerability management and patching workflow -## Administración de vulnerabilidades y flujo de trabajo de parchado +You should conduct regular vulnerability scans of production infrastructure. You should triage the results of vulnerability scans and define a period of time in which you agree to remediate the vulnerability. -Debes llevar a cabo escaneos de vulnerabilidades frecuentes para la infraestructura productiva. Debes clasificar los resultados de los escaneos de vulnerabilidades y definir un tiempo en el que acuerdes remediar dichas vulnerabilidades. - -Si no estás listo para configurar un programa completo de administración de vulnerabilidades, es útil comenzar creando un proceso de parchado. Para obtener orientación sobre la creación de una política de administración de parches, consulta este artículo de TechRepublic: "[Establecer una política de administración de parches](https://www.techrepublic.com/blog/it-security/establish-a-patch-management-policy-87756/)". +If you are not ready to set up a full vulnerability management program, it's useful to start by creating a patching process. For guidance in creating a patch management policy, see this TechRepublic article "[Establish a patch management policy](https://www.techrepublic.com/blog/it-security/establish-a-patch-management-policy-87756/)." diff --git a/translations/es-ES/content/developers/github-marketplace/creating-apps-for-github-marketplace/viewing-metrics-for-your-listing.md b/translations/es-ES/content/developers/github-marketplace/creating-apps-for-github-marketplace/viewing-metrics-for-your-listing.md index 0cb29f0aa8..1faccc7c50 100644 --- a/translations/es-ES/content/developers/github-marketplace/creating-apps-for-github-marketplace/viewing-metrics-for-your-listing.md +++ b/translations/es-ES/content/developers/github-marketplace/creating-apps-for-github-marketplace/viewing-metrics-for-your-listing.md @@ -1,10 +1,10 @@ --- -title: Visualizar las métricas para tu listado -intro: 'La página de perspectivas de {% data variables.product.prodname_marketplace %} muestra métricas para tu {% data variables.product.prodname_github_app %}. Puedes utilizar las métricas para rastrear el desempeño de tu {% data variables.product.prodname_github_app %} y tomar decisiones informadas acerca de los precios, planes, periodos de prueba gratuitos, y de cómo visualizar los efectos de las campañas de marketing.' +title: Viewing metrics for your listing +intro: 'The {% data variables.product.prodname_marketplace %} Insights page displays metrics for your {% data variables.product.prodname_github_app %}. You can use the metrics to track your {% data variables.product.prodname_github_app %}''s performance and make more informed decisions about pricing, plans, free trials, and how to visualize the effects of marketing campaigns.' redirect_from: - - /apps/marketplace/managing-github-marketplace-listings/viewing-performance-metrics-for-a-github-marketplace-listing/ - - /apps/marketplace/viewing-performance-metrics-for-a-github-marketplace-listing/ - - /apps/marketplace/github-marketplace-insights/ + - /apps/marketplace/managing-github-marketplace-listings/viewing-performance-metrics-for-a-github-marketplace-listing + - /apps/marketplace/viewing-performance-metrics-for-a-github-marketplace-listing + - /apps/marketplace/github-marketplace-insights - /marketplace/github-marketplace-insights - /developers/github-marketplace/viewing-metrics-for-your-listing versions: @@ -12,45 +12,45 @@ versions: ghec: '*' topics: - Marketplace -shortTitle: Visualizar las métricas de listado +shortTitle: View listing metrics --- - -Puedes ver las métricas del día anterior (24 horas), de la semana, el mes, o de la duración total de tiempo que ha estado listada tu {% data variables.product.prodname_github_app %}. +You can view metrics for the past day (24 hours), week, month, or for the entire duration of time that your {% data variables.product.prodname_github_app %} has been listed. {% note %} -**Nota:** Ya que el agregar datos es tardado, notarás un atraso ligero en las fechas que se muestran. Cuando seleccionas un periodo de tiempo, puedes ver las fechas exactas para las métricas en la parte superior de la página. +**Note:** Because it takes time to aggregate data, you'll notice a slight delay in the dates shown. When you select a time period, you can see exact dates for the metrics at the top of the page. {% endnote %} -## Métricas de rendimiento +## Performance metrics -La página de perspectivas muestra estas métricas de rendimiento para el periodo de tiempo que selecciones: +The Insights page displays these performance metrics, for the selected time period: -* **Valor de la suscripción:** La ganancia total posible (en dólares estadounidenses) de las suscripciones. Este valor representa la ganancia posible si no se cancela ningún plan o periodo de prueba gratuito para que todas las transacciones de tarjetas bancarias tengan éxito. El valor de la suscripción incluye el valor total de los planes que comeinzan con un periodo de prueba gratuito en el periodo de tiempo seleccionado, aún cuando no hay transacciones financieras en dicho periodo de tiempo. El valor de la suscripción también incluye un valor completo de los planes actualizados en el periodo de tiempo seleccionado pero no incluye la cantidad prorrateada. Para ver y descargar las transacciones individuales, consulta la sección "[transacciones de GitHub Marketplace](/marketplace/github-marketplace-transactions/)". -* **Visitantes:** Cantidad de personas que han visto una página en tu listado de GitHub Apps. Esta cantidad incluye tanto a los visitantes que han iniciado sesión como a los que salen de sesión. -* **Visualizaciones de página:** Cantidad de visualizaciones que han recibido las páginas en tu listado de GitHub Apps. Un solo visitante puede generar más de una visualización de página. +* **Subscription value:** Total possible revenue (in US dollars) for subscriptions. This value represents the possible revenue if no plans or free trials are cancelled and all credit transactions are successful. The subscription value includes the full value for plans that begin with a free trial in the selected time period, even when there are no financial transactions in that time period. The subscription value also includes the full value of upgraded plans in the selected time period but does not include the prorated amount. To see and download individual transactions, see "[GitHub Marketplace transactions](/marketplace/github-marketplace-transactions/)." +* **Visitors:** Number of people that have viewed a page in your GitHub Apps listing. This number includes both logged in and logged out visitors. +* **Pageviews:** Number of views the pages in your GitHub App's listing received. A single visitor can generate more than one pageview. {% note %} -**Nota:** El valor estimado de tu suscripción podría ser mucho mayor que el de las transacciones procesadas durante este periodo de tiempo. +**Note:** Your estimated subscription value could be much higher than the transactions processed for this period. {% endnote %} -### Rendimiento de conversión +### Conversion performance -* **Visitantes únicos en la página de llegada:** Cantidad de personas que vieron la página de llegada de tu GitHub App. -* **Visitantes únicos de la página pago:** Cantidad de personas que vieron una de tus páginas de pago para tu GitHub App. -* **Página de pago para suscripciones nuevas:** La cantidad total de suscripciones pagadas, periodos de prueb gratuitos, y suscripciones gratuitas. Consulta la sección "Desglose del total de las suscripciones" para encontrar la cantidad específcia de cada tipo de suscripción. +* **Unique visitors to landing page:** Number of people who viewed your GitHub App's landing page. +* **Unique visitors to checkout page:** Number of people who viewed one of your GitHub App's checkout pages. +* **Checkout page to new subscriptions:** Total number of paid subscriptions, free trials, and free subscriptions. See the "Breakdown of total subscriptions" for the specific number of each type of subscription. -![Perspectivas de Marketplace](/assets/images/marketplace/marketplace_insights.png) +![Marketplace insights](/assets/images/marketplace/marketplace_insights.png) -Para acceder a las perspectivas de {% data variables.product.prodname_marketplace %}: +To access {% data variables.product.prodname_marketplace %} Insights: {% data reusables.user-settings.access_settings %} {% data reusables.user-settings.developer_settings %} {% data reusables.user-settings.marketplace_apps %} -4. Selecciona la {% data variables.product.prodname_github_app %} para la cual quisieras ver las perspectivas. +4. Select the {% data variables.product.prodname_github_app %} that you'd like to view Insights for. {% data reusables.user-settings.edit_marketplace_listing %} -6. Da clic en la pestaña **Perspectivas**. -7. Opcionalmente, selecciona cualquier periodo de tiempo diferente dando clic en el menú desplegable de dicho periodo en la esquina superior derecha de la página de perspectivas. ![Periodo de tiempo de Marketplace](/assets/images/marketplace/marketplace_insights_time_period.png) +6. Click the **Insights** tab. +7. Optionally, select a different time period by clicking the Period dropdown in the upper-right corner of the Insights page. +![Marketplace time period](/assets/images/marketplace/marketplace_insights_time_period.png) diff --git a/translations/es-ES/content/developers/github-marketplace/github-marketplace-overview/about-github-marketplace.md b/translations/es-ES/content/developers/github-marketplace/github-marketplace-overview/about-github-marketplace.md index 9b9bc6f646..7370b55b41 100644 --- a/translations/es-ES/content/developers/github-marketplace/github-marketplace-overview/about-github-marketplace.md +++ b/translations/es-ES/content/developers/github-marketplace/github-marketplace-overview/about-github-marketplace.md @@ -2,7 +2,7 @@ title: About GitHub Marketplace intro: 'Learn about {% data variables.product.prodname_marketplace %} where you can share your apps and actions publicly with all {% data variables.product.product_name %} users.' redirect_from: - - /apps/marketplace/getting-started/ + - /apps/marketplace/getting-started - /marketplace/getting-started - /developers/github-marketplace/about-github-marketplace versions: diff --git a/translations/es-ES/content/developers/github-marketplace/index.md b/translations/es-ES/content/developers/github-marketplace/index.md index 1257a2d773..7bfbc295fd 100644 --- a/translations/es-ES/content/developers/github-marketplace/index.md +++ b/translations/es-ES/content/developers/github-marketplace/index.md @@ -1,9 +1,9 @@ --- title: GitHub Marketplace -intro: 'Lista tus herramientas en {% data variables.product.prodname_dotcom %} Marketplace para que los desarrolladores las utilicen o las compren.' +intro: 'List your tools in {% data variables.product.prodname_dotcom %} Marketplace for developers to use or purchase.' redirect_from: - - /apps/adding-integrations/listing-apps-on-github-marketplace/about-github-marketplace/ - - /apps/marketplace/ + - /apps/adding-integrations/listing-apps-on-github-marketplace/about-github-marketplace + - /apps/marketplace - /marketplace versions: fpt: '*' diff --git a/translations/es-ES/content/developers/github-marketplace/listing-an-app-on-github-marketplace/configuring-a-webhook-to-notify-you-of-plan-changes.md b/translations/es-ES/content/developers/github-marketplace/listing-an-app-on-github-marketplace/configuring-a-webhook-to-notify-you-of-plan-changes.md index 1992412920..d1b387eead 100644 --- a/translations/es-ES/content/developers/github-marketplace/listing-an-app-on-github-marketplace/configuring-a-webhook-to-notify-you-of-plan-changes.md +++ b/translations/es-ES/content/developers/github-marketplace/listing-an-app-on-github-marketplace/configuring-a-webhook-to-notify-you-of-plan-changes.md @@ -1,11 +1,11 @@ --- -title: Configurar un webhook para que te notifique sobre los cambios de plan -intro: 'Después de [crear un listado de {% data variables.product.prodname_marketplace %} en borrador] (/marketplace/listing-on-github-marketplace/creating-a-draft-github-marketplace-listing/), puedes configurar un webhook que te notifique cuando sucedan cambios en los planes de la cuenta de los clientes. Después de que configures el webhook, puedes [gestionar los tipos de evento de `marketplace_purchase`] (/marketplace/integrating-with-the-github-marketplace-api/github-marketplace-webhook-events/) en tu app.' +title: Configuring a webhook to notify you of plan changes +intro: 'After [creating a draft {% data variables.product.prodname_marketplace %} listing](/marketplace/listing-on-github-marketplace/creating-a-draft-github-marketplace-listing/), you can configure a webhook that notifies you when changes to customer account plans occur. After you configure the webhook, you can [handle the `marketplace_purchase` event types](/marketplace/integrating-with-the-github-marketplace-api/github-marketplace-webhook-events/) in your app.' redirect_from: - - /apps/adding-integrations/managing-listings-on-github-marketplace/adding-webhooks-for-a-github-marketplace-listing/ - - /apps/marketplace/managing-github-marketplace-listings/adding-webhooks-for-a-github-marketplace-listing/ - - /apps/marketplace/setting-up-github-marketplace-webhooks/creating-a-webhook-for-a-github-marketplace-listing/ - - /apps/marketplace/listing-on-github-marketplace/configuring-the-github-marketplace-webhook/ + - /apps/adding-integrations/managing-listings-on-github-marketplace/adding-webhooks-for-a-github-marketplace-listing + - /apps/marketplace/managing-github-marketplace-listings/adding-webhooks-for-a-github-marketplace-listing + - /apps/marketplace/setting-up-github-marketplace-webhooks/creating-a-webhook-for-a-github-marketplace-listing + - /apps/marketplace/listing-on-github-marketplace/configuring-the-github-marketplace-webhook - /marketplace/listing-on-github-marketplace/configuring-the-github-marketplace-webhook - /developers/github-marketplace/configuring-a-webhook-to-notify-you-of-plan-changes versions: @@ -13,33 +13,32 @@ versions: ghec: '*' topics: - Marketplace -shortTitle: Webhooks para planear cambios +shortTitle: Webhooks for plan changes --- +The {% data variables.product.prodname_marketplace %} event webhook can only be set up from your application's {% data variables.product.prodname_marketplace %} listing page. You can configure all other events from your [application's developer settings page](https://github.com/settings/developers). If you haven't created a {% data variables.product.prodname_marketplace %} listing, read "[Creating a draft {% data variables.product.prodname_marketplace %} listing](/marketplace/listing-on-github-marketplace/creating-a-draft-github-marketplace-listing/)" to learn how. -El webhook de evento de {% data variables.product.prodname_marketplace %} solo puede configurarse desde la página de listado de {% data variables.product.prodname_marketplace %} de tu aplicación. Puedes configurar el resto de los eventos desde la [página de configuración del desarrollador de la aplicación](https://github.com/settings/developers). Si no has creado un listado de {% data variables.product.prodname_marketplace %}, lee la sección "[Crear un borrador de listado de {% data variables.product.prodname_marketplace %}](/marketplace/listing-on-github-marketplace/creating-a-draft-github-marketplace-listing/)" para aprender cómo hacerlo. +## Creating a webhook -## Crear un webhook +To create a webhook for your {% data variables.product.prodname_marketplace %} listing, click **Webhook** in the left sidebar of your [{% data variables.product.prodname_marketplace %} listing page](https://github.com/marketplace/manage). You'll see the following webhook configuration options needed to configure your webhook: -Para crear un webhook para tu listado de {% data variables.product.prodname_marketplace %}, da clic en **Webhooks** en la barra lateral de tu [página de listado de {% data variables.product.prodname_marketplace %}](https://github.com/marketplace/manage). Verás las siguientes opciones que se necesitan para configurar tu webhook: - -### URL de la carga útil +### Payload URL {% data reusables.webhooks.payload_url %} -### Tipo de contenido +### Content type -{% data reusables.webhooks.content_type %} GitHub te recomienda utilizar el tipo de contenido `application/json`. +{% data reusables.webhooks.content_type %} GitHub recommends using the `application/json` content type. -### Secreto +### Secret {% data reusables.webhooks.secret %} -### Activo +### Active -Predeterminadamente, las entregas de webhook están "Activas". También puedes elegir inhabilitar la entrega de cargas útiles de webhooks durante el desarrollo si deseleccionas "Activo". Si inhabilitaste las entregas de los webhooks, necesitarás seleccionar "Activo" antes de que emitas tu app para su revisión. +By default, webhook deliveries are "Active." You can choose to disable the delivery of webhook payloads during development by deselecting "Active." If you've disabled webhook deliveries, you will need to select "Active" before you submit your app for review. -## Visualizar las entregas de los webhooks +## Viewing webhook deliveries -Una vez que hayas configurado tu webhook de {% data variables.product.prodname_marketplace %}, podrás inspecionar las cargas útiles de las solicitudes de tipo `POST` desde la página del **Webhooks** del [listado de {% data variables.product.prodname_marketplace %}](https://github.com/marketplace/manage) de tu aplicación. GitHub no reenvía los intentos fallidos de entrega. Asegúrate de que tu app pueda recibir toda la carga útil del webhook que envíe GitHub. +Once you've configured your {% data variables.product.prodname_marketplace %} webhook, you'll be able to inspect `POST` request payloads from the **Webhook** page of your application's [{% data variables.product.prodname_marketplace %} listing](https://github.com/marketplace/manage). GitHub doesn't resend failed delivery attempts. Ensure your app can receive all webhook payloads sent by GitHub. -![Inspeccionar las entregas de webhooks de {% data variables.product.prodname_marketplace %} recientes](/assets/images/marketplace/marketplace_webhook_deliveries.png) +![Inspect recent {% data variables.product.prodname_marketplace %} webhook deliveries](/assets/images/marketplace/marketplace_webhook_deliveries.png) diff --git a/translations/es-ES/content/developers/github-marketplace/listing-an-app-on-github-marketplace/drafting-a-listing-for-your-app.md b/translations/es-ES/content/developers/github-marketplace/listing-an-app-on-github-marketplace/drafting-a-listing-for-your-app.md index c366b33420..9dd64a8959 100644 --- a/translations/es-ES/content/developers/github-marketplace/listing-an-app-on-github-marketplace/drafting-a-listing-for-your-app.md +++ b/translations/es-ES/content/developers/github-marketplace/listing-an-app-on-github-marketplace/drafting-a-listing-for-your-app.md @@ -1,16 +1,16 @@ --- -title: Hacer un borrador de un listado para tu app -intro: 'Cuando creas un listado de {% data variables.product.prodname_marketplace %}, GitHub lo guarda en modo borrador hasta que emitas la app para su aprobación. Tu listado muestra a los clientes cómo pueden utilizar tu app.' +title: Drafting a listing for your app +intro: 'When you create a {% data variables.product.prodname_marketplace %} listing, GitHub saves it in draft mode until you submit the app for approval. Your listing shows customers how they can use your app.' redirect_from: - - /apps/adding-integrations/listing-apps-on-github-marketplace/listing-an-app-on-github-marketplace/ - - /apps/marketplace/listing-apps-on-github-marketplace/listing-an-app-on-github-marketplace/ - - /apps/marketplace/getting-started-with-github-marketplace-listings/listing-an-app-on-github-marketplace/ - - /apps/marketplace/creating-and-submitting-your-app-for-approval/listing-an-app-on-github-marketplace/ - - /apps/adding-integrations/managing-listings-on-github-marketplace/removing-a-listing-from-github-marketplace/ - - /apps/marketplace/managing-github-marketplace-listings/removing-a-listing-from-github-marketplace/ - - /apps/adding-integrations/managing-listings-on-github-marketplace/editing-a-github-marketplace-listing/ - - /apps/marketplace/managing-github-marketplace-listings/editing-a-github-marketplace-listing/ - - /apps/marketplace/listing-on-github-marketplace/creating-a-draft-github-marketplace-listing/ + - /apps/adding-integrations/listing-apps-on-github-marketplace/listing-an-app-on-github-marketplace + - /apps/marketplace/listing-apps-on-github-marketplace/listing-an-app-on-github-marketplace + - /apps/marketplace/getting-started-with-github-marketplace-listings/listing-an-app-on-github-marketplace + - /apps/marketplace/creating-and-submitting-your-app-for-approval/listing-an-app-on-github-marketplace + - /apps/adding-integrations/managing-listings-on-github-marketplace/removing-a-listing-from-github-marketplace + - /apps/marketplace/managing-github-marketplace-listings/removing-a-listing-from-github-marketplace + - /apps/adding-integrations/managing-listings-on-github-marketplace/editing-a-github-marketplace-listing + - /apps/marketplace/managing-github-marketplace-listings/editing-a-github-marketplace-listing + - /apps/marketplace/listing-on-github-marketplace/creating-a-draft-github-marketplace-listing - /marketplace/listing-on-github-marketplace/creating-a-draft-github-marketplace-listing - /developers/github-marketplace/drafting-a-listing-for-your-app versions: @@ -18,50 +18,51 @@ versions: ghec: '*' topics: - Marketplace -shortTitle: Hacer un borrador de un listado de una app +shortTitle: Draft an app listing --- +## Create a new draft {% data variables.product.prodname_marketplace %} listing -## Crear un borrador nuevo de un listado de {% data variables.product.prodname_marketplace %} +You can only create draft listings for apps that are public. Before creating your draft listing, you can read the following guidelines for writing and configuring settings in your {% data variables.product.prodname_marketplace %} listing: -Solo puedes crear borradores de listados para las apps que sean públicas. Antes de crear tu borrador de listado puedes leer los siguientes lineamientos para escribir y configurar los ajustes en tu listado de {% data variables.product.prodname_marketplace %}: +* [Writing {% data variables.product.prodname_marketplace %} listing descriptions](/marketplace/listing-on-github-marketplace/writing-github-marketplace-listing-descriptions/) +* [Setting a {% data variables.product.prodname_marketplace %} listing's pricing plan](/marketplace/listing-on-github-marketplace/setting-a-github-marketplace-listing-s-pricing-plan/) +* [Configuring the {% data variables.product.prodname_marketplace %} Webhook](/marketplace/listing-on-github-marketplace/configuring-the-github-marketplace-webhook/) -* [Escribir descripciones de los listados de {% data variables.product.prodname_marketplace %}](/marketplace/listing-on-github-marketplace/writing-github-marketplace-listing-descriptions/) -* [Configurar un plan de precios para el listado de {% data variables.product.prodname_marketplace %}](/marketplace/listing-on-github-marketplace/setting-a-github-marketplace-listing-s-pricing-plan/) -* [Configurar el Webhook de {% data variables.product.prodname_marketplace %}](/marketplace/listing-on-github-marketplace/configuring-the-github-marketplace-webhook/) - -Para crear un listado de {% data variables.product.prodname_marketplace %}: +To create a {% data variables.product.prodname_marketplace %} listing: {% data reusables.user-settings.access_settings %} {% data reusables.user-settings.developer_settings %} -3. En la barra lateral izquierda, da clic ya sea en **Apps de OAuth** o **GitHub Apps** dependiendo del tipo de app que estés agregando a {% data variables.product.prodname_marketplace %}. +3. In the left sidebar, click either **OAuth Apps** or **GitHub Apps** depending on the app you're adding to {% data variables.product.prodname_marketplace %}. {% note %} - **Nota**: También puedes agregar un listado si navegas a https://github.com/marketplace/new, ves tus apps disponibles, y das clic en **Crear un borrador de un lsitado**. + **Note**: You can also add a listing by navigating to https://github.com/marketplace/new, viewing your available apps, and clicking **Create draft listing**. {% endnote %} - ![Selección del tipo de app](/assets/images/settings/apps_choose_app.png) + ![App type selection](/assets/images/settings/apps_choose_app.png) -4. Selecciona la app que quisieras agregar a {% data variables.product.prodname_marketplace %}. ![Selección de aplicaciones para el listado de {% data variables.product.prodname_marketplace %}](/assets/images/github-apps/github_apps_select-app.png) +4. Select the app you'd like to add to {% data variables.product.prodname_marketplace %}. +![App selection for {% data variables.product.prodname_marketplace %} listing](/assets/images/github-apps/github_apps_select-app.png) {% data reusables.user-settings.edit_marketplace_listing %} -5. Una vez que hayas creado un borrador nuevo de un listado, verás un resumen de las secciones que necesitas visitar antes de que tu listado de {% data variables.product.prodname_marketplace %} esté completo. ![Listado de GitHub Marketplace](/assets/images/marketplace/marketplace_listing_overview.png) +5. Once you've created a new draft listing, you'll see an overview of the sections that you'll need to visit before your {% data variables.product.prodname_marketplace %} listing will be complete. +![GitHub Marketplace listing](/assets/images/marketplace/marketplace_listing_overview.png) {% note %} -**Nota:** En la sección de "información de contacto" de tu listado, te recomendamos utilizar direcciones de correo electrónico individuales en vez de direcciones grupales como support@domain.com. GitHub utilizará estas direcciones de correo electrónico para contactarte con respecto a las actualizaciones a {% data variables.product.prodname_marketplace %} que pudieran afectar tu listado, a los lanzamientos de nuevas características, a las oportunidades de marketing, a los pagos, y a la información sobre conferencias y patrocinios. +**Note:** In the "Contact info" section of your listing, we recommend using individual email addresses, rather than group emails addresses like support@domain.com. GitHub will use these email addresses to contact you about updates to {% data variables.product.prodname_marketplace %} that might affect your listing, new feature releases, marketing opportunities, payouts, and information on conferences and sponsorships. {% endnote %} -## Editar tu listado +## Editing your listing -Ya que hayas creado un borrador de listado de {% data variables.product.prodname_marketplace %}, puedes regresar a modificar la información de éste en cualquier momento. Si tu app ya se aprobó y está en {% data variables.product.prodname_marketplace %}, puedes editar la información e imágenes en tu listado, pero no podrás cambiar los planes de precios que ya estén publicados. Consulta la sección "[Configurar el plan de pagos de un listado de {% data variables.product.prodname_marketplace %}](/marketplace/listing-on-github-marketplace/setting-a-github-marketplace-listing-s-pricing-plan/)". +Once you've created a {% data variables.product.prodname_marketplace %} draft listing, you can come back to modify information in your listing anytime. If your app is already approved and in {% data variables.product.prodname_marketplace %}, you can edit the information and images in your listing, but you will not be able to change existing published pricing plans. See "[Setting a {% data variables.product.prodname_marketplace %} listing's pricing plan](/marketplace/listing-on-github-marketplace/setting-a-github-marketplace-listing-s-pricing-plan/)." -## Emitir tu app +## Submitting your app -Ya que hayas completado tu listado de {% data variables.product.prodname_marketplace %}, puedes emitirlo para su revisión a través de la página **Resumen**. Necesitas leer y aceptar el "[Acuerdo de Desarrollador de {% data variables.product.prodname_marketplace %}](/free-pro-team@latest/github/site-policy/github-marketplace-developer-agreement/)", y luego puedes dar clic en **Emitir para revisión**. Después de emitir tu app para su revisión te contactará un experto en integraciones con cualquier tipo de información adicional que se requiera para el proceso de integración. +Once you've completed your {% data variables.product.prodname_marketplace %} listing, you can submit your listing for review from the **Overview** page. You'll need to read and accept the "[{% data variables.product.prodname_marketplace %} Developer Agreement](/free-pro-team@latest/github/site-policy/github-marketplace-developer-agreement/)," and then you can click **Submit for review**. After you submit your app for review, an onboarding expert will contact you with additional information about the onboarding process. -## Eliminar un listado de {% data variables.product.prodname_marketplace %} +## Removing a {% data variables.product.prodname_marketplace %} listing -Si ya no quieres listar tu app en {% data variables.product.prodname_marketplace %}, contacta a {% data variables.contact.contact_support %} para eliminar tu lista. +If you no longer want to list your app in {% data variables.product.prodname_marketplace %}, contact {% data variables.contact.contact_support %} to remove your listing. diff --git a/translations/es-ES/content/developers/github-marketplace/listing-an-app-on-github-marketplace/index.md b/translations/es-ES/content/developers/github-marketplace/listing-an-app-on-github-marketplace/index.md index dea0f0a173..c587c34a71 100644 --- a/translations/es-ES/content/developers/github-marketplace/listing-an-app-on-github-marketplace/index.md +++ b/translations/es-ES/content/developers/github-marketplace/listing-an-app-on-github-marketplace/index.md @@ -1,14 +1,14 @@ --- -title: Listar una app en GitHub Marketplace -intro: 'Aprende sobre los requisitos y mejores prácticas para listar tu app en {% data variables.product.prodname_marketplace %}.' +title: Listing an app on GitHub Marketplace +intro: 'Learn about requirements and best practices for listing your app on {% data variables.product.prodname_marketplace %}.' redirect_from: - - /apps/adding-integrations/listing-apps-on-github-marketplace/ - - /apps/marketplace/listing-apps-on-github-marketplace/ - - /apps/marketplace/getting-started-with-github-marketplace-listings/ - - /apps/marketplace/creating-and-submitting-your-app-for-approval/ - - /apps/adding-integrations/managing-listings-on-github-marketplace/ - - /apps/marketplace/managing-github-marketplace-listings/ - - /apps/marketplace/listing-on-github-marketplace/ + - /apps/adding-integrations/listing-apps-on-github-marketplace + - /apps/marketplace/listing-apps-on-github-marketplace + - /apps/marketplace/getting-started-with-github-marketplace-listings + - /apps/marketplace/creating-and-submitting-your-app-for-approval + - /apps/adding-integrations/managing-listings-on-github-marketplace + - /apps/marketplace/managing-github-marketplace-listings + - /apps/marketplace/listing-on-github-marketplace - /marketplace/listing-on-github-marketplace versions: fpt: '*' @@ -21,6 +21,6 @@ children: - /setting-pricing-plans-for-your-listing - /configuring-a-webhook-to-notify-you-of-plan-changes - /submitting-your-listing-for-publication -shortTitle: Listar una app en Marketplace +shortTitle: List an app on the Marketplace --- diff --git a/translations/es-ES/content/developers/github-marketplace/listing-an-app-on-github-marketplace/setting-pricing-plans-for-your-listing.md b/translations/es-ES/content/developers/github-marketplace/listing-an-app-on-github-marketplace/setting-pricing-plans-for-your-listing.md index d2ccf0b4ee..ffdba1e720 100644 --- a/translations/es-ES/content/developers/github-marketplace/listing-an-app-on-github-marketplace/setting-pricing-plans-for-your-listing.md +++ b/translations/es-ES/content/developers/github-marketplace/listing-an-app-on-github-marketplace/setting-pricing-plans-for-your-listing.md @@ -1,17 +1,17 @@ --- -title: Configurar planes de precios para tu listado -intro: 'Cuando listas tu app en {% data variables.product.prodname_marketplace %}, puedes elegir proporcionarla como un servicio gratuito o venderla. Si planeas vender tu app, puedes crear planes de precio diferentes para los diferentes escalones de características.' +title: Setting pricing plans for your listing +intro: 'When you list your app on {% data variables.product.prodname_marketplace %}, you can choose to provide your app as a free service or sell your app. If you plan to sell your app, you can create different pricing plans for different feature tiers.' redirect_from: - - /apps/adding-integrations/managing-pricing-and-payments-for-a-github-marketplace-listing/setting-a-github-marketplace-listing-s-pricing-plan/ - - /apps/marketplace/managing-pricing-and-payments-for-a-github-marketplace-listing/setting-a-github-marketplace-listing-s-pricing-plan/ - - /apps/marketplace/pricing-payments-and-free-trials/setting-a-github-marketplace-listing-s-pricing-plan/ - - /apps/adding-integrations/managing-pricing-and-payments-for-a-github-marketplace-listing/about-github-marketplace-pricing-plans/ - - /apps/marketplace/managing-pricing-and-payments-for-a-github-marketplace-listing/about-github-marketplace-pricing-plans/ - - /apps/marketplace/pricing-payments-and-free-trials/about-github-marketplace-pricing-plans/ - - /apps/adding-integrations/managing-pricing-and-payments-for-a-github-marketplace-listing/changing-a-github-marketplace-listing-s-pricing-plan/ - - /apps/marketplace/managing-pricing-and-payments-for-a-github-marketplace-listing/changing-a-github-marketplace-listing-s-pricing-plan/ - - /apps/marketplace/managing-github-marketplace-listings/changing-a-github-marketplace-listing-s-pricing-plan/ - - /apps/marketplace/listing-on-github-marketplace/setting-a-github-marketplace-listing-s-pricing-plan/ + - /apps/adding-integrations/managing-pricing-and-payments-for-a-github-marketplace-listing/setting-a-github-marketplace-listing-s-pricing-plan + - /apps/marketplace/managing-pricing-and-payments-for-a-github-marketplace-listing/setting-a-github-marketplace-listing-s-pricing-plan + - /apps/marketplace/pricing-payments-and-free-trials/setting-a-github-marketplace-listing-s-pricing-plan + - /apps/adding-integrations/managing-pricing-and-payments-for-a-github-marketplace-listing/about-github-marketplace-pricing-plans + - /apps/marketplace/managing-pricing-and-payments-for-a-github-marketplace-listing/about-github-marketplace-pricing-plans + - /apps/marketplace/pricing-payments-and-free-trials/about-github-marketplace-pricing-plans + - /apps/adding-integrations/managing-pricing-and-payments-for-a-github-marketplace-listing/changing-a-github-marketplace-listing-s-pricing-plan + - /apps/marketplace/managing-pricing-and-payments-for-a-github-marketplace-listing/changing-a-github-marketplace-listing-s-pricing-plan + - /apps/marketplace/managing-github-marketplace-listings/changing-a-github-marketplace-listing-s-pricing-plan + - /apps/marketplace/listing-on-github-marketplace/setting-a-github-marketplace-listing-s-pricing-plan - /marketplace/listing-on-github-marketplace/setting-a-github-marketplace-listing-s-pricing-plan - /developers/github-marketplace/setting-pricing-plans-for-your-listing versions: @@ -19,70 +19,69 @@ versions: ghec: '*' topics: - Marketplace -shortTitle: Configurar los planes de precios del listado +shortTitle: Set listing pricing plans --- +## About setting pricing plans -## Acerca de configurar planes de precios +{% data variables.product.prodname_marketplace %} offers several different types of pricing plans. For detailed information, see "[Pricing plans for {% data variables.product.prodname_marketplace %}](/developers/github-marketplace/pricing-plans-for-github-marketplace-apps)." -{% data variables.product.prodname_marketplace %} ofrece varios tipos diferentes de planes de pago. Para obener información detallada, consulta la sección "[Planes de precios para {% data variables.product.prodname_marketplace %}](/developers/github-marketplace/pricing-plans-for-github-marketplace-apps)". +To offer a paid plan for your app, your app must be owned by an organization that has completed the publisher verification process and met certain criteria. For more information, see "[Applying for publisher verification for your organization](/developers/github-marketplace/applying-for-publisher-verification-for-your-organization)" and "[Requirements for listing an app on {% data variables.product.prodname_marketplace %}](/marketplace/getting-started/requirements-for-listing-an-app-on-github-marketplace/)." -Para ofrecer un plan de pago para tu app, esta debe pertenecer a una organización que haya completado el proceso de verificación de publicadores y debe cumplir con ciertos criterios. Para obtener más información, consulta las secciones "[Solicitar una verificación de publicador para tu organizción](/developers/github-marketplace/applying-for-publisher-verification-for-your-organization)" y "[Requisitos para listar una app en {% data variables.product.prodname_marketplace %}](/marketplace/getting-started/requirements-for-listing-an-app-on-github-marketplace/)". +If your app is already published with a paid plan and you're a verified publisher, then you can publish a new paid plan from the "Edit a pricing plan" page in your Marketplace app listing settings. -Si tu app ya se publicó con un plan de pago y eres un publicador verificado, entonces puedes publicar un plan de pago nuevo desde la página de "Editar plan de precios" en la configuración del listado de tu app de Marketplace. +![Publish this plan button](/assets/images/marketplace/publish-this-plan-button.png) -![Botón de publicar este plan](/assets/images/marketplace/publish-this-plan-button.png) +If your app is already published with a paid plan and but you are not a verified publisher, then you can cannot publish a new paid plan until you are a verified publisher. For more information about becoming a verified publisher, see "[Applying for publisher verification for your organization](/developers/github-marketplace/applying-for-publisher-verification-for-your-organization)." -Si tu app ya se publicó con un plan de pago, pero no puedes verificar al publicador, entonces no podrás publicar un plan de pago nuevo hasta que seas un publicador verificado. Para obtener más información acerca de cómo convertirse en un publicador verificado, consulta la sección "[Solicitar una verificación de publicador para tu organización](/developers/github-marketplace/applying-for-publisher-verification-for-your-organization)". +## About saving pricing plans -## Acerca de guardar los planes de precios +You can save pricing plans in a draft or published state. If you haven't submitted your {% data variables.product.prodname_marketplace %} listing for approval, a published plan will function in the same way as a draft plan until your listing is approved and shown on {% data variables.product.prodname_marketplace %}. Draft plans allow you to create and save new pricing plans without making them available on your {% data variables.product.prodname_marketplace %} listing page. Once you publish a pricing plan on a published listing, it's available for customers to purchase immediately. You can publish up to 10 pricing plans. -Puedes guardar los planes de precios con los estados de "borrador" o de "publicado". Si aún no emites tu listado de {% data variables.product.prodname_marketplace %} para su aprobación, los planes publicados funcionarán de la misma forma que los planes en borrador hasta que se apruebe tu listado y se muestre en {% data variables.product.prodname_marketplace %}. Los planes en borrador te permiten crear y guardar nuevos planes de precios sin hacerlos disponibles en tu página de listado de {% data variables.product.prodname_marketplace %}. Una vez que publicas un plan de precios en un listado publicado, éste estará disponible para que los clientes lo compren de inmediato. Puedes publicar hasta 10 planes de precios. +For guidelines on billing customers, see "[Billing customers](/developers/github-marketplace/billing-customers)." -Para obtener lineamientos sobre la facturación a clientes, consulta la sección "[Facturar a clientes](/developers/github-marketplace/billing-customers)". +## Creating pricing plans -## Crear planes de precios +To create a pricing plan for your {% data variables.product.prodname_marketplace %} listing, click **Plans and pricing** in the left sidebar of your [{% data variables.product.prodname_marketplace %} listing page](https://github.com/marketplace/manage). For more information, see "[Creating a draft {% data variables.product.prodname_marketplace %} listing](/marketplace/listing-on-github-marketplace/creating-a-draft-github-marketplace-listing/)." -Para crear un plan de precios para tu listado de {% data variables.product.prodname_marketplace %}, da clic en **Planes y precios** en la barra lateral izquierda de tu [página de listado de{% data variables.product.prodname_marketplace %}](https://github.com/marketplace/manage). Para obtener más información, consulta la sección "[Crear un borrador de listado de {% data variables.product.prodname_marketplace %}](/marketplace/listing-on-github-marketplace/creating-a-draft-github-marketplace-listing/)". +When you click **New draft plan**, you'll see a form that allows you to customize your pricing plan. You'll need to configure the following fields to create a pricing plan: -Cuando das clic en **Nuevo borrador de plan**, verás un formato que te permite personalizar tu plan de precios. Necesitarás configurar los siguientes cambios para crear un plan de precios: +- **Plan name** - Your pricing plan's name will appear on your {% data variables.product.prodname_marketplace %} app's landing page. You can customize the name of your pricing plan to align with the plan's resources, the size of the company that will use the plan, or anything you'd like. -- **Nombre del plan** - El nombre de tu plan de precios aparecerá en la página de llegada de tu app de {% data variables.product.prodname_marketplace %}. Puedes personalizar el nombre de tu plan de precios para que se ajuste con los recursos del plan, el tamaño de la compañía que lo utilizará, o con lo que gustes. +- **Pricing models** - There are three types of pricing plan: free, flat-rate, and per-unit. All plans require you to process new purchase and cancellation events from the marketplace API. In addition, for paid plans: -- **Modelos de precios** - Hay tres tipos de planes de precios: grtuito, tasa fija, y por unidad. Todos los planes requieren que proceses eventos de compras nuevas y de cancelaciones desde la API de marketplace. Adicionalmente, para los planes pagados: - - - Debes configurar un precio para las suscripciones tanto anuales como mensuales en dólares estadounidenses. - - Tu app debe procesar los eventos de cambio de planes. - - Debes solicitar la verificación para publicar un listado con un plan de pago. + - You must set a price for both monthly and yearly subscriptions in US dollars. + - Your app must process plan change events. + - You must request verification to publish a listing with a paid plan. - {% data reusables.marketplace.marketplace-pricing-free-trials %} - Para obtener información detallada, consulta las secciones "[Planes de precios para las apps de {% data variables.product.prodname_marketplace %}](/developers/github-marketplace/pricing-plans-for-github-marketplace-apps)" y "[Utilizar la API de {% data variables.product.prodname_marketplace %} en tu app](/developers/github-marketplace/using-the-github-marketplace-api-in-your-app)". + For detailed information, see "[Pricing plans for {% data variables.product.prodname_marketplace %} apps](/developers/github-marketplace/pricing-plans-for-github-marketplace-apps)" and "[Using the {% data variables.product.prodname_marketplace %} API in your app](/developers/github-marketplace/using-the-github-marketplace-api-in-your-app)." -- **Disponible para** - Los planes de precios de {% data variables.product.prodname_marketplace %} pueden aplicar para las **cuentas personales y de organización**, **Cuentas personales únicamente**, o **Cuentas de organización únicamente**. Por ejemplo, si tu plan de precios es por unidad y proporciona plazas múltioples, seleccionarías **únicamente para cuentas de organización**, ya que no hay manera de asignar plazas a las personas de la organización desde una cuenta personal. +- **Available for** - {% data variables.product.prodname_marketplace %} pricing plans can apply to **Personal and organization accounts**, **Personal accounts only**, or **Organization accounts only**. For example, if your pricing plan is per-unit and provides multiple seats, you would select **Organization accounts only** because there is no way to assign seats to people in an organization from a personal account. -- **Descripción corta** - Escribe un resumen breve de los detalles del plan de precios. La descripción puede incluir el tipo de cliente para el cual se creó el plan o los recursos que dicho plan incluye. +- **Short description** - Write a brief summary of the details of the pricing plan. The description might include the type of customer the plan is intended for or the resources the plan includes. -- **Viñetas** - Puedes escribir hasta cuatro viñetas que incluyan más detalles sobre tu plan de precios. Estas viñetas pueden incluir los casos de uso de tu app o listar información más detallada acerca de los recursos o de las características que incluye el plan. +- **Bullets** - You can write up to four bullets that include more details about your pricing plan. The bullets might include the use cases of your app or list more detailed information about the resources or features included in the plan. {% data reusables.marketplace.free-plan-note %} -## Cambiar un plan de precios del listado de {% data variables.product.prodname_marketplace %}. +## Changing a {% data variables.product.prodname_marketplace %} listing's pricing plan -Si ya no se requiere algún plan de precios para tu listado de {% data variables.product.prodname_marketplace %}, o si necesitas ajustar los detalles de los precios, puedes eliminarlo. +If a pricing plan for your {% data variables.product.prodname_marketplace %} listing is no longer needed, or if you need to adjust pricing details, you can remove it. -![Botón para eliminar tu plan de precios](/assets/images/marketplace/marketplace_remove_this_plan.png) +![Button to remove your pricing plan](/assets/images/marketplace/marketplace_remove_this_plan.png) -No podrás hacer cambios a un plan de precios para una app que ya está listada en {% data variables.product.prodname_marketplace %} una vez que lo publiques. En su lugar, necesitarás eliminar el plan de precios y crear un plan nuevo. Los clientes que ya compraron el plan de precios que se eliminó seguirán utilizándolo hasta que decidan abandonarlo y migrarse a un plan de precios nuevo. Para encontrar más información acerca de los planes de precios, consulta la sección "[planes de precios en {% data variables.product.prodname_marketplace %}](/marketplace/selling-your-app/github-marketplace-pricing-plans/)". +Once you publish a pricing plan for an app that is already listed in {% data variables.product.prodname_marketplace %}, you can't make changes to the plan. Instead, you'll need to remove the pricing plan and create a new plan. Customers who already purchased the removed pricing plan will continue to use it until they opt out and move onto a new pricing plan. For more on pricing plans, see "[{% data variables.product.prodname_marketplace %} pricing plans](/marketplace/selling-your-app/github-marketplace-pricing-plans/)." -Una vez que elimines el plan de precios, los usuarios ya no podrán comprar tu app utilizando dicho plan. Los usuarios existentes del plan que eliminaste seguirán en ese plan hasta que cancelen su suscripción. +Once you remove a pricing plan, users won't be able to purchase your app using that plan. Existing users on the removed pricing plan will continue to stay on the plan until they cancel their plan subscription. {% note %} -**Nota:** {% data variables.product.product_name %} no puede eliminar a los usuarios de un plan de precios que ya no existe. Puedes lanzar una campaña para exhortar a los usuarios a mejorar o degradar su suscripción para el plan de precios que eliminaste hacia un plan nuevo. +**Note:** {% data variables.product.product_name %} can't remove users from a removed pricing plan. You can run a campaign to encourage users to upgrade or downgrade from the removed pricing plan onto a new pricing plan. {% endnote %} -Puedes inhabilitar los periodos de prueba gratuitos en GitHub Marketplace sin retirar el plan de precios, pero esto te impide inciar periodos de prueba gratuitos en el futuro para este plan. Si eliges inhabilitar los periodos de prueba gratuitos para un plan de precios, los usuarios que ya se hayan registrado pueden completar su periodo de prueba gratuito. +You can disable GitHub Marketplace free trials without retiring the pricing plan, but this prevents you from initiating future free trials for that plan. If you choose to disable free trials for a pricing plan, users already signed up can complete their free trial. -Después de dar de baja un plan de precios, puedes crear uno nuevo con el mismo nombre que aquél que eliminaste. Por ejemplo, si tienes un plan de precios "Pro" pero necesitas cambiar el precio de tasa fija, puedes eliminar el plan "Pro" y crear uno nuevo, que también sea "Pro" con un precio actualizado. Los usuarios podrán comprar el nuevo plan de precios inmediatamente. +After retiring a pricing plan, you can create a new pricing plan with the same name as the removed pricing plan. For instance, if you have a "Pro" pricing plan but need to change the flat rate price, you can remove the "Pro" pricing plan and create a new "Pro" pricing plan with an updated price. Users will be able to purchase the new pricing plan immediately. -Si no eres un publicador verificado, entonces no podrás cambiar el plan de precios para tu app. Para obtener más información acerca de cómo convertirse en un publicador verificado, consulta la sección "[Solicitar una verificación de publicador para tu organización](/developers/github-marketplace/applying-for-publisher-verification-for-your-organization)". +If you are not a verified publisher, then you cannot change a pricing plan for your app. For more information about becoming a verified publisher, see "[Applying for publisher verification for your organization](/developers/github-marketplace/applying-for-publisher-verification-for-your-organization)." diff --git a/translations/es-ES/content/developers/github-marketplace/listing-an-app-on-github-marketplace/writing-a-listing-description-for-your-app.md b/translations/es-ES/content/developers/github-marketplace/listing-an-app-on-github-marketplace/writing-a-listing-description-for-your-app.md index 1905ce8446..0fc3e55f1b 100644 --- a/translations/es-ES/content/developers/github-marketplace/listing-an-app-on-github-marketplace/writing-a-listing-description-for-your-app.md +++ b/translations/es-ES/content/developers/github-marketplace/listing-an-app-on-github-marketplace/writing-a-listing-description-for-your-app.md @@ -2,13 +2,13 @@ title: Writing a listing description for your app intro: 'To [list your app](/marketplace/listing-on-github-marketplace/) in the {% data variables.product.prodname_marketplace %}, you''ll need to write descriptions of your app and provide images that follow GitHub''s guidelines.' redirect_from: - - /apps/marketplace/getting-started-with-github-marketplace-listings/guidelines-for-writing-github-app-descriptions/ - - /apps/marketplace/creating-and-submitting-your-app-for-approval/writing-github-app-descriptions/ - - /apps/adding-integrations/listing-apps-on-github-marketplace/guidelines-for-creating-a-github-marketplace-listing/ - - /apps/marketplace/listing-apps-on-github/guidelines-for-creating-a-github-marketplace-listing/ - - /apps/marketplace/getting-started-with-github-marketplace-listings/guidelines-for-creating-github-marketplace-listing-images/ - - /apps/marketplace/creating-and-submitting-your-app-for-approval/creating-github-marketplace-listing-images/ - - /apps/marketplace/listing-on-github-marketplace/writing-github-marketplace-listing-descriptions/ + - /apps/marketplace/getting-started-with-github-marketplace-listings/guidelines-for-writing-github-app-descriptions + - /apps/marketplace/creating-and-submitting-your-app-for-approval/writing-github-app-descriptions + - /apps/adding-integrations/listing-apps-on-github-marketplace/guidelines-for-creating-a-github-marketplace-listing + - /apps/marketplace/listing-apps-on-github/guidelines-for-creating-a-github-marketplace-listing + - /apps/marketplace/getting-started-with-github-marketplace-listings/guidelines-for-creating-github-marketplace-listing-images + - /apps/marketplace/creating-and-submitting-your-app-for-approval/creating-github-marketplace-listing-images + - /apps/marketplace/listing-on-github-marketplace/writing-github-marketplace-listing-descriptions - /marketplace/listing-on-github-marketplace/writing-github-marketplace-listing-descriptions - /developers/github-marketplace/writing-a-listing-description-for-your-app versions: diff --git a/translations/es-ES/content/developers/github-marketplace/selling-your-app-on-github-marketplace/billing-customers.md b/translations/es-ES/content/developers/github-marketplace/selling-your-app-on-github-marketplace/billing-customers.md index be1643cea5..e7cd6e457d 100644 --- a/translations/es-ES/content/developers/github-marketplace/selling-your-app-on-github-marketplace/billing-customers.md +++ b/translations/es-ES/content/developers/github-marketplace/selling-your-app-on-github-marketplace/billing-customers.md @@ -1,9 +1,9 @@ --- -title: Facturar a los clientes -intro: 'Las apps en {% data variables.product.prodname_marketplace %} deben apegarse a los lineamientos de facturación de GitHub y apoyar a los servicios recomendados. El seguir nuestros lineamientos ayuda a los clientes a navegar en el proceso de facturación sin ninguna sorpresa.' +title: Billing customers +intro: 'Apps on {% data variables.product.prodname_marketplace %} should adhere to GitHub''s billing guidelines and support recommended services. Following our guidelines helps customers navigate the billing process without any surprises.' redirect_from: - - /apps/marketplace/administering-listing-plans-and-user-accounts/billing-customers-in-github-marketplace/ - - /apps/marketplace/selling-your-app/billing-customers-in-github-marketplace/ + - /apps/marketplace/administering-listing-plans-and-user-accounts/billing-customers-in-github-marketplace + - /apps/marketplace/selling-your-app/billing-customers-in-github-marketplace - /marketplace/selling-your-app/billing-customers-in-github-marketplace - /developers/github-marketplace/billing-customers versions: @@ -12,39 +12,38 @@ versions: topics: - Marketplace --- +## Understanding the billing cycle -## Entender el ciclo de facturación +Customers can choose a monthly or yearly billing cycle when they purchase your app. All changes customers make to the billing cycle and plan selection will trigger a `marketplace_purchase` event. You can refer to the `marketplace_purchase` webhook payload to see which billing cycle a customer selects and when the next billing date begins (`effective_date`). For more information about webhook payloads, see "[Webhook events for the {% data variables.product.prodname_marketplace %} API](/developers/github-marketplace/webhook-events-for-the-github-marketplace-api)." -Los clientes pueden escoger un ciclo mensual o anual cuando compran tu app. Todos los cambios que los clientes hagan a los ciclos de facturación y a la selección de plan activaran un evento de `marketplace_purchase`. Puedes referirte a la carga útil del webhook de `marketplace_purchase` para ver qué ciclo de facturación selecciona un usuario y cuándo comienza la siguiente fecha de facturación (`effective_date`). Para obtener más información sobre las cargas útiles de los webhooks, consulta la sección "[Eventos de webhook para la API de {% data variables.product.prodname_marketplace %}](/developers/github-marketplace/webhook-events-for-the-github-marketplace-api)". +## Providing billing services in your app's UI -## Proporcionar servicios de facturación en la IU de tu app - -Los clientes deberán ser capaces de realizar las siguientes acciones desde el sitio web de tu app: -- Los clientes podrán modificar o cancelar sus planes de {% data variables.product.prodname_marketplace %} para sus cuentas de organización y personales por separado. +Customers should be able to perform the following actions from your app's website: +- Customers should be able to modify or cancel their {% data variables.product.prodname_marketplace %} plans for personal and organizational accounts separately. {% data reusables.marketplace.marketplace-billing-ui-requirements %} -## Servicios de facturación para mejoras, decrementos y cancelaciones +## Billing services for upgrades, downgrades, and cancellations -Sigue estos lineamientos para las mejoras, decrementos y cancelaciones para mantener un proceso de facturación limpio y consistente. Para obtener instrucciones más detalladas sobre los eventos de compra de {% data variables.product.prodname_marketplace %}, consulta la sección "[Utilizar la API de {% data variables.product.prodname_marketplace %} en tu app](/developers/github-marketplace/using-the-github-marketplace-api-in-your-app)". +Follow these guidelines for upgrades, downgrades, and cancellations to maintain a clear and consistent billing process. For more detailed instructions about the {% data variables.product.prodname_marketplace %} purchase events, see "[Using the {% data variables.product.prodname_marketplace %} API in your app](/developers/github-marketplace/using-the-github-marketplace-api-in-your-app)." -Puedes utilizar la llave de `effective_date` del webhook de `marketplace_purchase` para determinar cuando ocurrirá un cambio de plan y sincronizar la [Lista de cuentas para un plan](/rest/reference/apps#list-accounts-for-a-plan) de vez en cuando. +You can use the `marketplace_purchase` webhook's `effective_date` key to determine when a plan change will occur and periodically synchronize the [List accounts for a plan](/rest/reference/apps#list-accounts-for-a-plan). -### Actualizaciones +### Upgrades -Cuando un cliente mejora su plan de precios o cambia su ciclo de facturación de mensual a anual, deberás hacerles el cambio efectivo inmediatamente. Tienes que aplicar un descuento prorrateado para el plan nuevo y cambiar el ciclo de facturación. +When a customer upgrades their pricing plan or changes their billing cycle from monthly to yearly, you should make the change effective for them immediately. You need to apply a pro-rated discount to the new plan and change the billing cycle. {% data reusables.marketplace.marketplace-failed-purchase-event %} -Para obtener más información sobre cómo crear flujos de trabajo para mejoras y retrocesos en tu app, consulta la sección "[Administrar los cambios de planes](/developers/github-marketplace/handling-plan-changes)". +For information about building upgrade and downgrade workflows into your app, see "[Handling plan changes](/developers/github-marketplace/handling-plan-changes)." -### Decrementos y cancelaciones +### Downgrades and cancellations -Los decrementos ocurren cuando un cliente se cambia de un plan pagado a uno gratuito, selecciona un plan con un costo menor al actual, o cambia su ciclo de facturación de anual a mensual. Cuando suceden los decrementos o cancelaciones, no necesitas proporcionar un reembolso. En vez de esto, el plan actual se mantendrá activo hasta el último día del ciclo de facturación actual. El evento `marketplace_purchase` se enviará cuando el nuevo plan entre en vigor al inicio del siguiente ciclo de facturación del cliente. - -Cuando un cliente cancela un plan, debes: -- Degradarlos automáticamente al plan gratuito, si es que existe. +Downgrades occur when a customer moves to a free plan from a paid plan, selects a plan with a lower cost than their current plan, or changes their billing cycle from yearly to monthly. When downgrades or cancellations occur, you don't need to provide a refund. Instead, the current plan will remain active until the last day of the current billing cycle. The `marketplace_purchase` event will be sent when the new plan takes effect at the beginning of the customer's next billing cycle. +When a customer cancels a plan, you must: +- Automatically downgrade them to the free plan, if it exists. + {% data reusables.marketplace.cancellation-clarification %} -- Habilitarlos para mejorar el plan a través de GitHub si es que quisieran continuar con él más adelante. +- Enable them to upgrade the plan through GitHub if they would like to continue the plan at a later time. -Para obtener más información sobre cómo crear flujos de trabajo de cancelaciones en tu app, consulta la sección "[Administrar cancelaciones de planes](/developers/github-marketplace/handling-plan-cancellations)". +For information about building cancellation workflows into your app, see "[Handling plan cancellations](/developers/github-marketplace/handling-plan-cancellations)." diff --git a/translations/es-ES/content/developers/github-marketplace/selling-your-app-on-github-marketplace/index.md b/translations/es-ES/content/developers/github-marketplace/selling-your-app-on-github-marketplace/index.md index b16e1418f1..b8325be8fc 100644 --- a/translations/es-ES/content/developers/github-marketplace/selling-your-app-on-github-marketplace/index.md +++ b/translations/es-ES/content/developers/github-marketplace/selling-your-app-on-github-marketplace/index.md @@ -1,12 +1,12 @@ --- -title: Vender tu app en GitHub Marketplace -intro: 'Aprende sobre los requisitos y mejores prácticas para vender tu app en {% data variables.product.prodname_marketplace %}.' +title: Selling your app on GitHub Marketplace +intro: 'Learn about requirements and best practices for selling your app on {% data variables.product.prodname_marketplace %}.' redirect_from: - - /apps/marketplace/administering-listing-plans-and-user-accounts/ - - /apps/adding-integrations/managing-pricing-and-payments-for-a-github-marketplace-listing/ - - /apps/marketplace/managing-pricing-and-payments-for-a-github-marketplace-listing/ - - /apps/marketplace/pricing-payments-and-free-trials/ - - /apps/marketplace/selling-your-app/ + - /apps/marketplace/administering-listing-plans-and-user-accounts + - /apps/adding-integrations/managing-pricing-and-payments-for-a-github-marketplace-listing + - /apps/marketplace/managing-pricing-and-payments-for-a-github-marketplace-listing + - /apps/marketplace/pricing-payments-and-free-trials + - /apps/marketplace/selling-your-app - /marketplace/selling-your-app versions: fpt: '*' @@ -17,6 +17,6 @@ children: - /pricing-plans-for-github-marketplace-apps - /billing-customers - /receiving-payment-for-app-purchases -shortTitle: Vender las apps en Marketplace +shortTitle: Sell apps on the Marketplace --- diff --git a/translations/es-ES/content/developers/github-marketplace/selling-your-app-on-github-marketplace/pricing-plans-for-github-marketplace-apps.md b/translations/es-ES/content/developers/github-marketplace/selling-your-app-on-github-marketplace/pricing-plans-for-github-marketplace-apps.md index 999f345c3d..98d5bcce1c 100644 --- a/translations/es-ES/content/developers/github-marketplace/selling-your-app-on-github-marketplace/pricing-plans-for-github-marketplace-apps.md +++ b/translations/es-ES/content/developers/github-marketplace/selling-your-app-on-github-marketplace/pricing-plans-for-github-marketplace-apps.md @@ -2,7 +2,7 @@ title: Pricing plans for GitHub Marketplace apps intro: 'Pricing plans allow you to provide your app with different levels of service or resources. You can offer up to 10 pricing plans in your {% data variables.product.prodname_marketplace %} listing.' redirect_from: - - /apps/marketplace/selling-your-app/github-marketplace-pricing-plans/ + - /apps/marketplace/selling-your-app/github-marketplace-pricing-plans - /marketplace/selling-your-app/github-marketplace-pricing-plans - /developers/github-marketplace/pricing-plans-for-github-marketplace-apps versions: diff --git a/translations/es-ES/content/developers/github-marketplace/selling-your-app-on-github-marketplace/receiving-payment-for-app-purchases.md b/translations/es-ES/content/developers/github-marketplace/selling-your-app-on-github-marketplace/receiving-payment-for-app-purchases.md index 3ed5f7ae4a..37bfe4dd23 100644 --- a/translations/es-ES/content/developers/github-marketplace/selling-your-app-on-github-marketplace/receiving-payment-for-app-purchases.md +++ b/translations/es-ES/content/developers/github-marketplace/selling-your-app-on-github-marketplace/receiving-payment-for-app-purchases.md @@ -1,11 +1,11 @@ --- -title: Recibir pagos por las compras de las apps -intro: 'Al final de cada mes, recibiras los pagos de tus listados de {% data variables.product.prodname_marketplace %}.' +title: Receiving payment for app purchases +intro: 'At the end of each month, you''ll receive payment for your {% data variables.product.prodname_marketplace %} listing.' redirect_from: - - /apps/adding-integrations/managing-pricing-and-payments-for-a-github-marketplace-listing/receiving-payment-for-a-github-marketplace-listing/ - - /apps/marketplace/managing-pricing-and-payments-for-a-github-marketplace-listing/receiving-payment-for-a-github-marketplace-listing/ - - /apps/marketplace/pricing-payments-and-free-trials/receiving-payment-for-a-github-marketplace-listing/ - - /apps/marketplace/selling-your-app/receiving-payment-for-github-marketplace-listings/ + - /apps/adding-integrations/managing-pricing-and-payments-for-a-github-marketplace-listing/receiving-payment-for-a-github-marketplace-listing + - /apps/marketplace/managing-pricing-and-payments-for-a-github-marketplace-listing/receiving-payment-for-a-github-marketplace-listing + - /apps/marketplace/pricing-payments-and-free-trials/receiving-payment-for-a-github-marketplace-listing + - /apps/marketplace/selling-your-app/receiving-payment-for-github-marketplace-listings - /marketplace/selling-your-app/receiving-payment-for-github-marketplace-listings - /developers/github-marketplace/receiving-payment-for-app-purchases versions: @@ -13,17 +13,16 @@ versions: ghec: '*' topics: - Marketplace -shortTitle: Recibir pagos +shortTitle: Receive payment --- +After your {% data variables.product.prodname_marketplace %} listing for an app with a paid plan is created and approved, you'll provide payment details to {% data variables.product.product_name %} as part of the financial onboarding process. -Después de que tu listado de {% data variables.product.prodname_marketplace %} para una app con un plan de pago se cree y apruebe, deberás proporcionar los detalles de pago a {% data variables.product.product_name %} como parte del proceso de integración financiera. +Once your revenue reaches a minimum of 500 US dollars for the month, you'll receive an electronic payment from {% data variables.product.company_short %}. This will be the income from marketplace transactions minus the amount charged by {% data variables.product.company_short %} to cover their running costs. -Una vez que tus ganancias lleguen a un mínimo de 500 dólares estadounidenses por el mes, recibirás un pago electrónico de {% data variables.product.company_short %}. Este será el ingreso de las transacciones de marketplace menos la cantidad que cobra {% data variables.product.company_short %} para cubrir los costos de operación. - -Para las transacciones que se realicen antes del 1 de enero de 2021, {% data variables.product.company_short %} retendrá el 25% del ingreso de ellas. Para las transacciones que se realicen después de esta fecha, {% data variables.product.company_short %} solo retendrá el 5%. Este cambio se reflejará en los pagos que se reciban desde el final de enero 2021 en adelante. +For transactions made before January 1, 2021, {% data variables.product.company_short %} retains 25% of transaction income. For transactions made after that date, only 5% is retained by {% data variables.product.company_short %}. This change will be reflected in payments received from the end of January 2021 onward. {% note %} -**Nota:** Para obtener más detalles de los precios y condiciones de pago actuales, consulta la sección "[acuerdo de desarrollador de {% data variables.product.prodname_marketplace %}](/free-pro-team@latest/github/site-policy/github-marketplace-developer-agreement)". +**Note:** For details of the current pricing and payment terms, see "[{% data variables.product.prodname_marketplace %} developer agreement](/free-pro-team@latest/github/site-policy/github-marketplace-developer-agreement)." {% endnote %} diff --git a/translations/es-ES/content/developers/github-marketplace/using-the-github-marketplace-api-in-your-app/handling-new-purchases-and-free-trials.md b/translations/es-ES/content/developers/github-marketplace/using-the-github-marketplace-api-in-your-app/handling-new-purchases-and-free-trials.md index 064761f321..54fb39ac9f 100644 --- a/translations/es-ES/content/developers/github-marketplace/using-the-github-marketplace-api-in-your-app/handling-new-purchases-and-free-trials.md +++ b/translations/es-ES/content/developers/github-marketplace/using-the-github-marketplace-api-in-your-app/handling-new-purchases-and-free-trials.md @@ -1,10 +1,10 @@ --- -title: Gestionar las compras nuevas y las pruebas gratuitas -intro: 'Cuando un cliente compra un plan de pago, una prueba gratuita, o la versión gratuita de tu app de {% data variables.product.prodname_marketplace %}, recibirás el webhook de [evento de `marketplace_purchase`] (/marketplace/integrating-with-the-github-marketplace-api/github-marketplace-webhook-events) con la acción `comprado`, lo cual inicia el flujo de compra.' +title: Handling new purchases and free trials +intro: 'When a customer purchases a paid plan, free trial, or the free version of your {% data variables.product.prodname_marketplace %} app, you''ll receive the [`marketplace_purchase` event](/marketplace/integrating-with-the-github-marketplace-api/github-marketplace-webhook-events) webhook with the `purchased` action, which kicks off the purchasing flow.' redirect_from: - - /apps/marketplace/administering-listing-plans-and-user-accounts/supporting-purchase-plans-for-github-apps/ - - /apps/marketplace/administering-listing-plans-and-user-accounts/supporting-purchase-plans-for-oauth-apps/ - - /apps/marketplace/integrating-with-the-github-marketplace-api/handling-new-purchases-and-free-trials/ + - /apps/marketplace/administering-listing-plans-and-user-accounts/supporting-purchase-plans-for-github-apps + - /apps/marketplace/administering-listing-plans-and-user-accounts/supporting-purchase-plans-for-oauth-apps + - /apps/marketplace/integrating-with-the-github-marketplace-api/handling-new-purchases-and-free-trials - /marketplace/integrating-with-the-github-marketplace-api/handling-new-purchases-and-free-trials - /developers/github-marketplace/handling-new-purchases-and-free-trials versions: @@ -12,73 +12,72 @@ versions: ghec: '*' topics: - Marketplace -shortTitle: Compras nuevas & periodos de prueba gratuitos +shortTitle: New purchases & free trials --- - {% warning %} -Si ofreces una {% data variables.product.prodname_github_app %} en {% data variables.product.prodname_marketplace %}, esta debe identificar a los usuarios siguiendo el flujo de autorizaciones de OAuth. No necesitas configurar una {% data variables.product.prodname_oauth_app %} por separado para admitir este flujo. Consulta la sección "[Identificar y autorizar usuarios para las {% data variables.product.prodname_github_apps %}](/apps/building-github-apps/identifying-and-authorizing-users-for-github-apps/)" para obtener más información. +If you offer a {% data variables.product.prodname_github_app %} in {% data variables.product.prodname_marketplace %}, your app must identify users following the OAuth authorization flow. You don't need to set up a separate {% data variables.product.prodname_oauth_app %} to support this flow. See "[Identifying and authorizing users for {% data variables.product.prodname_github_apps %}](/apps/building-github-apps/identifying-and-authorizing-users-for-github-apps/)" for more information. {% endwarning %} -## Paso 1. Compra inicial y evento de webhook +## Step 1. Initial purchase and webhook event -Antes de qeu un cliente compre tu app de {% data variables.product.prodname_marketplace %}, ellos elligen un [plan del listado](/marketplace/selling-your-app/github-marketplace-pricing-plans/). También eligen si quieren comprar la app desde su cuenta personal o su cuenta de organización. +Before a customer purchases your {% data variables.product.prodname_marketplace %} app, they select a [listing plan](/marketplace/selling-your-app/github-marketplace-pricing-plans/). They also choose whether to purchase the app from their personal account or an organization account. -El cliente completa la compra dando clic en **Completar orden y comenzar con la instalación**. +The customer completes the purchase by clicking **Complete order and begin installation**. -Entonces, {% data variables.product.product_name %} envía el webhook [`marketplace_purchase`](/webhooks/event-payloads/#marketplace_purchase) a tu app con la acción `purchased`. +{% data variables.product.product_name %} then sends the [`marketplace_purchase`](/webhooks/event-payloads/#marketplace_purchase) webhook with the `purchased` action to your app. -Lee el objeto `effective_date` y `marketplace_purchase` del webhook de `marketplace_purchase` para determinar qué plan compró el cliente, cuándo inicia el ciclo de facturación, y cuándo comienza el siguiente ciclo de facturación. +Read the `effective_date` and `marketplace_purchase` object from the `marketplace_purchase` webhook to determine which plan the customer purchased, when the billing cycle starts, and when the next billing cycle begins. -Si tu app ofrece una prueba gratuita, lee el atributo `marketplace_purchase[on_free_trial]` del webhook. Si el valor es `true`, tu app necesitará rastrear la fecha de inicio de la prueba gratuita (`effective_date`) y la fecha en la cual termina éste (`free_trial_ends_on`). Utiliza la fecha `free_trial_ends_on` para mostrar los días restantes en una prueba gratuita en la IU de tu app. Puedes hacerlo ya sea en un letrero o en tu [IU de facturación](/marketplace/selling-your-app/billing-customers-in-github-marketplace/#providing-billing-services-in-your-apps-ui). Para saber cómo administrar las cancelaciones antes de que termine un periodo de prueba gratuita, consulta la sección "[Administrar las cancelaciones de planes](/developers/github-marketplace/handling-plan-cancellations)". Consulta la sección "[Administrar los cambios de planes](/developers/github-marketplace/handling-plan-changes)" para encontrar más información sobre cómo hacer la transición de un plan de prueba gratuito a un plan de pago cuando el primero venza. +If your app offers a free trial, read the `marketplace_purchase[on_free_trial]` attribute from the webhook. If the value is `true`, your app will need to track the free trial start date (`effective_date`) and the date the free trial ends (`free_trial_ends_on`). Use the `free_trial_ends_on` date to display the remaining days left in a free trial in your app's UI. You can do this in either a banner or in your [billing UI](/marketplace/selling-your-app/billing-customers-in-github-marketplace/#providing-billing-services-in-your-apps-ui). To learn how to handle cancellations before a free trial ends, see "[Handling plan cancellations](/developers/github-marketplace/handling-plan-cancellations)." See "[Handling plan changes](/developers/github-marketplace/handling-plan-changes)" to find out how to transition a free trial to a paid plan when a free trial expires. -Consulta la sección "[eventos de webhook de {% data variables.product.prodname_marketplace %}](/marketplace/integrating-with-the-github-marketplace-api/github-marketplace-webhook-events/)" para encontrar un ejemplo de la carga últil del evento `marketplace_purchase`. +See "[{% data variables.product.prodname_marketplace %} webhook events](/marketplace/integrating-with-the-github-marketplace-api/github-marketplace-webhook-events/)" for an example of the `marketplace_purchase` event payload. -## Paso 2. Instalación +## Step 2. Installation -Si tu app es una {% data variables.product.prodname_github_app %}, {% data variables.product.product_name %} pedirá al cliente que seleccione a qué repositorios puede acceder dicha app cuando la compren. Entonces, {% data variables.product.product_name %} instala la app en la cuenta del cliente seleccionado y le otorga acceso a los repositorios seleccionados. +If your app is a {% data variables.product.prodname_github_app %}, {% data variables.product.product_name %} prompts the customer to select which repositories the app can access when they purchase it. {% data variables.product.product_name %} then installs the app on the account the customer selected and grants access to the selected repositories. -En este punto, si especificaste una **URL de configuración** en la configuración de tu {% data variables.product.prodname_github_app %}, {% data variables.product.product_name %} redirigirá al cliente a esta. Si no especificaste una URL de configuración, no podrás manejar las compras de tu {% data variables.product.prodname_github_app %}. +At this point, if you specified a **Setup URL** in your {% data variables.product.prodname_github_app %} settings, {% data variables.product.product_name %} will redirect the customer to that URL. If you do not specify a setup URL, you will not be able to handle purchases of your {% data variables.product.prodname_github_app %}. {% note %} -**Nota:** La **URL de configuración** se describe como opcional en la configuración de la {% data variables.product.prodname_github_app %}, es un campo requerido si quieres ofrecer tu app en {% data variables.product.prodname_marketplace %}. +**Note:** The **Setup URL** is described as optional in {% data variables.product.prodname_github_app %} settings, but it is a required field if you want to offer your app in {% data variables.product.prodname_marketplace %}. {% endnote %} -Si tu app es una {% data variables.product.prodname_oauth_app %}. {% data variables.product.product_name %} no la instala en ningún lugar. En vez de esto, {% data variables.product.product_name %} redirige al cliente a la **URL de instalación** que especificaste en tu [listado de {% data variables.product.prodname_marketplace %}](/marketplace/listing-on-github-marketplace/writing-github-marketplace-listing-descriptions/#listing-urls). +If your app is an {% data variables.product.prodname_oauth_app %}, {% data variables.product.product_name %} does not install it anywhere. Instead, {% data variables.product.product_name %} redirects the customer to the **Installation URL** you specified in your [{% data variables.product.prodname_marketplace %} listing](/marketplace/listing-on-github-marketplace/writing-github-marketplace-listing-descriptions/#listing-urls). -Cuando un cliente compra una {% data variables.product.prodname_oauth_app %}, {% data variables.product.product_name %} redirige al cliente a la URL que eliges (ya sea de configuración o de instalación) y esta incluye el plan de precios que eligió el cliente como un parámetro de consulta: `marketplace_listing_plan_id`. +When a customer purchases an {% data variables.product.prodname_oauth_app %}, {% data variables.product.product_name %} redirects the customer to the URL you choose (either Setup URL or Installation URL) and the URL includes the customer's selected pricing plan as a query parameter: `marketplace_listing_plan_id`. -## Paso 3. Autorización +## Step 3. Authorization -Cuando un cliente compra tu app, debes enviar a dicho cliente a través del flujo de autorización de OAuth: +When a customer purchases your app, you must send the customer through the OAuth authorization flow: -* Si tu app es una {% data variables.product.prodname_github_app %}, inicia el flujo de autorizaciones tan pronto como {% data variables.product.product_name %} redirija al cliente a la **URL de configuración**. Sigue los pasos en la sección "[Identificar y autorizar usuarios para las {% data variables.product.prodname_github_apps %}](/apps/building-github-apps/identifying-and-authorizing-users-for-github-apps/)". +* If your app is a {% data variables.product.prodname_github_app %}, begin the authorization flow as soon as {% data variables.product.product_name %} redirects the customer to the **Setup URL**. Follow the steps in "[Identifying and authorizing users for {% data variables.product.prodname_github_apps %}](/apps/building-github-apps/identifying-and-authorizing-users-for-github-apps/)." -* Si tu app es una {% data variables.product.prodname_oauth_app %}, inicia el flujo de autorización tan pronto como {% data variables.product.product_name %} redirija al cliente a la **URL de instalación**. Sigue los pasos de la sección "[Autorizar las {% data variables.product.prodname_oauth_apps %}](/apps/building-oauth-apps/authorizing-oauth-apps/)". +* If your app is an {% data variables.product.prodname_oauth_app %}, begin the authorization flow as soon as {% data variables.product.product_name %} redirects the customer to the **Installation URL**. Follow the steps in "[Authorizing {% data variables.product.prodname_oauth_apps %}](/apps/building-oauth-apps/authorizing-oauth-apps/)." -Para cualquier tipo de app, el primer paso es redirigir al cliente a https://github.com/login/oauth/authorize. +For either type of app, the first step is to redirect the customer to https://github.com/login/oauth/authorize. -Después de que el ciente complete la autorización, tu app recibirá un token de acceso de OAuth para el cliente. Necesitas este token para el siguiente paso. +After the customer completes the authorization, your app receives an OAuth access token for the customer. You'll need this token for the next step. {% note %} -**Nota:** Cuando autorices a un cliente para una prueba gratuita, otórgales el mismo acceso que tendrían en el plan de pago. Los migrarás al plan pagado después de que termine el periodo de pruebas. +**Note:** When authorizing a customer on a free trial, grant them the same access they would have on the paid plan. You'll move them to the paid plan after the trial period ends. {% endnote %} -## Paso 4. Aprovisionar las cuentas de los clientes +## Step 4. Provisioning customer accounts -Tu app debe aprovisionar una cuenta de cliente para cada compra nueva. Mediante el uso del token de acceso que recibiste para el cliente en el [Paso 3. Autorización](#step-3-authorization), llama a la terminal "[Listar suscripciones para el usuario autenticado](/rest/reference/apps#list-subscriptions-for-the-authenticated-user)". La respuesta incluirá la información de `account` del cliente y mostrará si están en una prueba gratuita (`on_free_trial`). Utiliza esta información para completar el aprovisionamiento y la configuración. +Your app must provision a customer account for all new purchases. Using the access token you received for the customer in [Step 3. Authorization](#step-3-authorization), call the "[List subscriptions for the authenticated user](/rest/reference/apps#list-subscriptions-for-the-authenticated-user)" endpoint. The response will include the customer's `account` information and show whether they are on a free trial (`on_free_trial`). Use this information to complete setup and provisioning. {% data reusables.marketplace.marketplace-double-purchases %} -Si la compra es para una organización y es por usuario, puedes solicitar al cliente que escoja qué miembros de la organización tendrán acceso a la app que se compró. +If the purchase is for an organization and per-user, you can prompt the customer to choose which organization members will have access to the purchased app. -Puedes personalizar la forma en la que los miembros de la organización reciben acceso a tu app. Aquí hay algunas sugerencias: +You can customize the way that organization members receive access to your app. Here are a few suggestions: -**Precios con tasa fija:** Si la compra se hace para una organización que utiliza precios de tasa fija, tu app puede [obtener todos los miembros de la organización](/rest/reference/orgs#list-organization-members) a través de la API y solicitar al administrador de la organización que elija qué miembros tendrán usuarios en plan de pago de lado del integrador. +**Flat-rate pricing:** If the purchase is made for an organization using flat-rate pricing, your app can [get all the organization’s members](/rest/reference/orgs#list-organization-members) via the API and prompt the organization admin to choose which members will have paid users on the integrator side. -**Precios por unidad:** Un método para aprovisionar plazas por unidad es permitir a los usuarios que ocupen una plaza conforme inicien sesión en la app. Una vez que el cliente llegue al umbral de conteo de plazas, tu app puede notificarle que necesita mejorar el plan a través de {% data variables.product.prodname_marketplace %}. +**Per-unit pricing:** One method of provisioning per-unit seats is to allow users to occupy a seat as they log in to the app. Once the customer hits the seat count threshold, your app can alert the user that they need to upgrade through {% data variables.product.prodname_marketplace %}. diff --git a/translations/es-ES/content/developers/github-marketplace/using-the-github-marketplace-api-in-your-app/handling-plan-cancellations.md b/translations/es-ES/content/developers/github-marketplace/using-the-github-marketplace-api-in-your-app/handling-plan-cancellations.md index 429bf57bee..bc5ef37804 100644 --- a/translations/es-ES/content/developers/github-marketplace/using-the-github-marketplace-api-in-your-app/handling-plan-cancellations.md +++ b/translations/es-ES/content/developers/github-marketplace/using-the-github-marketplace-api-in-your-app/handling-plan-cancellations.md @@ -1,9 +1,9 @@ --- -title: Gestionar las cancelaciones de plan -intro: 'El cancelar una app de {% data variables.product.prodname_marketplace %} activa el webhook del [evento `marketplace_purchase`](/marketplace/integrating-with-the-github-marketplace-api/github-marketplace-webhook-events) con la acción `cancelada`, lo cual inicia el flujo de cancelación.' +title: Handling plan cancellations +intro: 'Cancelling a {% data variables.product.prodname_marketplace %} app triggers the [`marketplace_purchase` event](/marketplace/integrating-with-the-github-marketplace-api/github-marketplace-webhook-events) webhook with the `cancelled` action, which kicks off the cancellation flow.' redirect_from: - - /apps/marketplace/administering-listing-plans-and-user-accounts/cancelling-plans/ - - /apps/marketplace/integrating-with-the-github-marketplace-api/cancelling-plans/ + - /apps/marketplace/administering-listing-plans-and-user-accounts/cancelling-plans + - /apps/marketplace/integrating-with-the-github-marketplace-api/cancelling-plans - /marketplace/integrating-with-the-github-marketplace-api/cancelling-plans - /developers/github-marketplace/handling-plan-cancellations versions: @@ -11,26 +11,25 @@ versions: ghec: '*' topics: - Marketplace -shortTitle: Cancelaciones de plan +shortTitle: Plan cancellations --- +For more information about cancelling as it relates to billing, see "[Billing customers in {% data variables.product.prodname_marketplace %}](/apps//marketplace/administering-listing-plans-and-user-accounts/billing-customers-in-github-marketplace)." -Para obtener más información acerca de las cancelaciones de acuerdo a como se relaciona con la facturación, consulta la sección "[Cobrar a los usuarios en {% data variables.product.prodname_marketplace %}](/apps//marketplace/administering-listing-plans-and-user-accounts/billing-customers-in-github-marketplace)". +## Step 1. Cancellation event -## Paso 1. Evento de cancelación +If a customer chooses to cancel a {% data variables.product.prodname_marketplace %} order, GitHub sends a [`marketplace_purchase`](/marketplace/integrating-with-the-github-marketplace-api/github-marketplace-webhook-events/) webhook with the action `cancelled` to your app when the cancellation takes effect. If the customer cancels during a free trial, your app will receive the event immediately. When a customer cancels a paid plan, the cancellation will occur at the end of the customer's billing cycle. -Si un cliente decide cancelar una orden de {% data variables.product.prodname_marketplace %}, GitHub envía un webhook de [`marketplace_purchase`](/marketplace/integrating-with-the-github-marketplace-api/github-marketplace-webhook-events/) conla acción `cancelled` a tu app cuando tome efecto dicha cancelación. Si el cliente cancela durante un periodo de prueba gratuito, tu app recibirá el vento de inmediato. Cuando un cliente cancela un plan pagado, la cancelación tomará lugar al final del ciclo de facturación del cliente. +## Step 2. Deactivating customer accounts -## Paso 2. Desactivar las cuentas de usuario +When a customer cancels a free or paid plan, your app must perform these steps to complete cancellation: -Cuando un cliente cancela un plan pagado o gratuito, tu app debe llevar a cabo estos pasos para completar la cancelación: - -1. Desactivar la cuenta del cliente que canceló su plan. -1. Revocar el token de OAuth que recibió tu app para el cliente. -1. Si tu app es una App de OAuth, eliminar todos los webhooks que creó tu app para los repositorios. -1. Eliminar todos los datos del cliente en los primeros 30 días de que se recibió el evento `cancelled`. +1. Deactivate the account of the customer who cancelled their plan. +1. Revoke the OAuth token your app received for the customer. +1. If your app is an OAuth App, remove all webhooks your app created for repositories. +1. Remove all customer data within 30 days of receiving the `cancelled` event. {% note %} -**Nota:** Te recomendamos utilizar la `effective_date` del webhook [`marketplace_purchase`](/marketplace/integrating-with-the-github-marketplace-api/github-marketplace-webhook-events/) para determinar cuándo ocurrirá un cambio de plan y así sincronizar a menudo el [Listar las cuentas para un plan](/rest/reference/apps#list-accounts-for-a-plan). Para obtener más informació sobre los webhooks, consulta la sección "[eventos de webhook de {% data variables.product.prodname_marketplace %}](/marketplace/integrating-with-the-github-marketplace-api/github-marketplace-webhook-events/)". +**Note:** We recommend using the [`marketplace_purchase`](/marketplace/integrating-with-the-github-marketplace-api/github-marketplace-webhook-events/) webhook's `effective_date` to determine when a plan change will occur and periodically synchronizing the [List accounts for a plan](/rest/reference/apps#list-accounts-for-a-plan). For more information on webhooks, see "[{% data variables.product.prodname_marketplace %} webhook events](/marketplace/integrating-with-the-github-marketplace-api/github-marketplace-webhook-events/)." {% endnote %} diff --git a/translations/es-ES/content/developers/github-marketplace/using-the-github-marketplace-api-in-your-app/handling-plan-changes.md b/translations/es-ES/content/developers/github-marketplace/using-the-github-marketplace-api-in-your-app/handling-plan-changes.md index ba8fcd3e77..34142dbb37 100644 --- a/translations/es-ES/content/developers/github-marketplace/using-the-github-marketplace-api-in-your-app/handling-plan-changes.md +++ b/translations/es-ES/content/developers/github-marketplace/using-the-github-marketplace-api-in-your-app/handling-plan-changes.md @@ -1,9 +1,9 @@ --- -title: Gestionar cambios de plan -intro: 'El mejorar y degradar una app de {% data variables.product.prodname_marketplace %} activa el webhook del [evento `marketplace_purchase`](/marketplace/integrating-with-the-github-marketplace-api/github-marketplace-webhook-events/) con la acción `cambiada`, lo cual inicia el flujo de mejora o degradación.' +title: Handling plan changes +intro: 'Upgrading or downgrading a {% data variables.product.prodname_marketplace %} app triggers the [`marketplace_purchase` event](/marketplace/integrating-with-the-github-marketplace-api/github-marketplace-webhook-events/) webhook with the `changed` action, which kicks off the upgrade or downgrade flow.' redirect_from: - - /apps/marketplace/administering-listing-plans-and-user-accounts/upgrading-or-downgrading-plans/ - - /apps/marketplace/integrating-with-the-github-marketplace-api/upgrading-and-downgrading-plans/ + - /apps/marketplace/administering-listing-plans-and-user-accounts/upgrading-or-downgrading-plans + - /apps/marketplace/integrating-with-the-github-marketplace-api/upgrading-and-downgrading-plans - /marketplace/integrating-with-the-github-marketplace-api/upgrading-and-downgrading-plans - /developers/github-marketplace/handling-plan-changes versions: @@ -12,55 +12,54 @@ versions: topics: - Marketplace --- +For more information about upgrading and downgrading as it relates to billing, see "[Integrating with the {% data variables.product.prodname_marketplace %} API](/marketplace/integrating-with-the-github-marketplace-api/)." -Para obtener más información acerca de mejorar y degradar los planes de acuerdo a como se relaciona con la facturación, consulta la sección "[Integrarse con la API de {% data variables.product.prodname_marketplace %}](/marketplace/integrating-with-the-github-marketplace-api/)". +## Step 1. Pricing plan change event -## Paso 1. Evento de cambio en el plan de precios +GitHub send the `marketplace_purchase` webhook with the `changed` action to your app, when a customer makes any of these changes to their {% data variables.product.prodname_marketplace %} order: +* Upgrades to a more expensive pricing plan or downgrades to a lower priced plan. +* Adds or removes seats to their existing plan. +* Changes the billing cycle. -GitHub envía el webhook `marketplace_purchase` con la acción `changed` a tu app cuando el cliente hace cualquiera de estos cambios a su orden de {% data variables.product.prodname_marketplace %}: -* Mejorar a un plan de precios más caro o degradarlo a uno más barato. -* Agregar o eliminar plazas a su plan existente. -* Cambiar el ciclo de facturación. +GitHub will send the webhook when the change takes effect. For example, when a customer downgrades a plan, GitHub sends the webhook at the end of the customer's billing cycle. GitHub sends a webhook to your app immediately when a customer upgrades their plan to allow them access to the new service right away. If a customer switches from a monthly to a yearly billing cycle, it's considered an upgrade. See "[Billing customers in {% data variables.product.prodname_marketplace %}](/marketplace/selling-your-app/billing-customers-in-github-marketplace/)" to learn more about what actions are considered an upgrade or downgrade. -GitHub enviará el webhook cuando el cambio entre en vigor. Por ejemplo, cuando un cliente degrada un plan, GitHub envía el webhook al final del ciclo de facturación del cliente. GitHub envía un webhook a tu app inmediatamente cuando un cliente mejora su plan para permitirle el acceso al servicio nuevo de inmediato. Si un cliente cambia de un ciclo mensual a uno anual, esto se considera como una mejora. Consulta la sección "[Cobrar a los clientes en {% data variables.product.prodname_marketplace %}](/marketplace/selling-your-app/billing-customers-in-github-marketplace/)" para aprender más acerca de las acciones que se consideran una mejora o una degradación. +Read the `effective_date`, `marketplace_purchase`, and `previous_marketplace_purchase` from the `marketplace_purchase` webhook to update the plan's start date and make changes to the customer's billing cycle and pricing plan. See "[{% data variables.product.prodname_marketplace %} webhook events](/marketplace/integrating-with-the-github-marketplace-api/github-marketplace-webhook-events/)" for an example of the `marketplace_purchase` event payload. -Lee `effective_date`, `marketplace_purchase`, y `previous_marketplace_purchase` del webhook de `marketplace_purchase` para actualizar la fecha de inicio del plan y hacer cambios al ciclo de facturació y plan de precios del cliente. Consulta la sección "[eventos de webhook de {% data variables.product.prodname_marketplace %}](/marketplace/integrating-with-the-github-marketplace-api/github-marketplace-webhook-events/)" para encontrar un ejemplo de la carga últil del evento `marketplace_purchase`. +If your app offers free trials, you'll receive the `marketplace_purchase` webhook with the `changed` action when the free trial expires. If the customer's free trial expires, upgrade the customer to the paid version of the free-trial plan. -Si tu app ofrece periodos de prueba gratuitos, recibirás el webhook de `marketplace_purchase` con la acción `changed` cuando caduque este periodo de prueba. Si el periodo de prueba gratuito del cliente caduca, mejora al cliente a la versión pagada del plan de prueba gratuito. +## Step 2. Updating customer accounts -## Paso 2. Actualizar las cuentas de usuario +You'll need to update the customer's account information to reflect the billing cycle and pricing plan changes the customer made to their {% data variables.product.prodname_marketplace %} order. Display upgrades to the pricing plan, `seat_count` (for per-unit pricing plans), and billing cycle on your Marketplace app's website or your app's UI when you receive the `changed` action webhook. -Necesitarás actualizar la información de las cuentas de usuario para que se reflejen los cambios en el ciclo de facturación y en el plan de precios que el cliente hizo en su orden de {% data variables.product.prodname_marketplace %}. Muestra las mejoras al plan de precios, `seat_count` (para planes de precios por unidad), y ciclo de facturación en el sitio web de tu app de Marketplace en la IU de la misma cuando recibas el webhook de la acción `changed`. +When a customer downgrades a plan, it's recommended to review whether a customer has exceeded their plan limits and engage with them directly in your UI or by reaching out to them by phone or email. -Cuando un cliente degrada un plan, se recomienda revisar si éste excedió los límites del mismo y contactarlos directamente en tu IU o por teléfono o correo electrónico. - -Para motivar a las personas a mejorar el plan, puedes mostrar una URL de mejora en la IU de tu app. Consulta la sección "[Acerca de las URL de mejora](#about-upgrade-urls)" para obtener más detalles. +To encourage people to upgrade you can display an upgrade URL in your app's UI. See "[About upgrade URLs](#about-upgrade-urls)" for more details. {% note %} -**Nota:** Te recomendamos llevar a cabo una sincronización frecuente utilizando `GET /marketplace_listing/plans/:id/accounts` para asegurarte de que tu app tiene el plan, información de ciclo de facturación y conteo de unidades (para los precios por unidad) correctos para cada cuenta. +**Note:** We recommend performing a periodic synchronization using `GET /marketplace_listing/plans/:id/accounts` to ensure your app has the correct plan, billing cycle information, and unit count (for per-unit pricing) for each account. {% endnote %} -## Pagos de mejora fallidos +## Failed upgrade payments {% data reusables.marketplace.marketplace-failed-purchase-event %} -## Acerca de las URL de mejora +## About upgrade URLs -Puedes redirigir a los usuarios desde la IU de tu app para que mejoren su plan en GitHub a través de una URL de mejora: +You can redirect users from your app's UI to upgrade on GitHub using an upgrade URL: ``` https://www.github.com/marketplace//upgrade// ``` -Por ejemplo, si notas que el cliente tiene un plan de 5 personas y necesita cambiar a uno de 10, puedes mostrar un boton en la IU de tu app, el cual diga "Te mostramos como mejorar tu plan", o bien, mostrar un letrero con un enlace a la URL de mejora. La URL de mejora llevará al cliente a la página de confirmación de mejora para el plan de tu listado. +For example, if you notice that a customer is on a 5 person plan and needs to move to a 10 person plan, you could display a button in your app's UI that says "Here's how to upgrade" or show a banner with a link to the upgrade URL. The upgrade URL takes the customer to your listing plan's upgrade confirmation page. -Utiliza el `LISTING_PLAN_NUMBER` para el plan que el cliente quisiera comprar. Cuando creas planes de precios nuevos, estos reciben un `LISTING_PLAN_NUMBER`, lo cual es específico para cada plan en tu listado, y también reciben una `LISTING_PLAN_ID`, que es específica para cada plan en {% data variables.product.prodname_marketplace %}. Puedes encontrar estos números cuando [Listas los planes](/rest/reference/apps#list-plans), los cuales identifican a los planes de precios en tus listados. Utiliza la `LISTING_PLAN_ID` y la terminal "[Listar cuentas para un plan](/rest/reference/apps#list-accounts-for-a-plan)" para obtener la `CUSTOMER_ACCOUNT_ID`. +Use the `LISTING_PLAN_NUMBER` for the plan the customer would like to purchase. When you create new pricing plans they receive a `LISTING_PLAN_NUMBER`, which is unique to each plan across your listing, and a `LISTING_PLAN_ID`, which is unique to each plan in the {% data variables.product.prodname_marketplace %}. You can find these numbers when you [List plans](/rest/reference/apps#list-plans), which identifies your listing's pricing plans. Use the `LISTING_PLAN_ID` and the "[List accounts for a plan](/rest/reference/apps#list-accounts-for-a-plan)" endpoint to get the `CUSTOMER_ACCOUNT_ID`. {% note %} -**Nota:** Si un cliente mejora su cantidad adicional de unidades (como las plazas), aún puedes enviarlos al plan adecuado para su compra, pero no podemos dar soporte para los parámetros de `unit_count` en este momento. +**Note:** If your customer upgrades to additional units (such as seats), you can still send them to the appropriate plan for their purchase, but we are unable to support `unit_count` parameters at this time. {% endnote %} diff --git a/translations/es-ES/content/developers/github-marketplace/using-the-github-marketplace-api-in-your-app/index.md b/translations/es-ES/content/developers/github-marketplace/using-the-github-marketplace-api-in-your-app/index.md index 1eccf6effb..074d42544b 100644 --- a/translations/es-ES/content/developers/github-marketplace/using-the-github-marketplace-api-in-your-app/index.md +++ b/translations/es-ES/content/developers/github-marketplace/using-the-github-marketplace-api-in-your-app/index.md @@ -1,9 +1,9 @@ --- -title: Utilizar la API de GitHub Marketplace en tu app -intro: 'Aprende cómo integrar la API y eventos de webhook de {% data variables.product.prodname_marketplace %} en tu app para {% data variables.product.prodname_marketplace %}.' +title: Using the GitHub Marketplace API in your app +intro: 'Learn how to integrate the {% data variables.product.prodname_marketplace %} API and webhook events into your app for the {% data variables.product.prodname_marketplace %} .' redirect_from: - - /apps/marketplace/setting-up-github-marketplace-webhooks/ - - /apps/marketplace/integrating-with-the-github-marketplace-api/ + - /apps/marketplace/setting-up-github-marketplace-webhooks + - /apps/marketplace/integrating-with-the-github-marketplace-api - /marketplace/integrating-with-the-github-marketplace-api versions: fpt: '*' @@ -17,6 +17,6 @@ children: - /handling-new-purchases-and-free-trials - /handling-plan-changes - /handling-plan-cancellations -shortTitle: Uso de la API de Marketplace +shortTitle: Marketplace API usage --- diff --git a/translations/es-ES/content/developers/github-marketplace/using-the-github-marketplace-api-in-your-app/rest-endpoints-for-the-github-marketplace-api.md b/translations/es-ES/content/developers/github-marketplace/using-the-github-marketplace-api-in-your-app/rest-endpoints-for-the-github-marketplace-api.md index 48f7fd34cc..8a02a458a7 100644 --- a/translations/es-ES/content/developers/github-marketplace/using-the-github-marketplace-api-in-your-app/rest-endpoints-for-the-github-marketplace-api.md +++ b/translations/es-ES/content/developers/github-marketplace/using-the-github-marketplace-api-in-your-app/rest-endpoints-for-the-github-marketplace-api.md @@ -1,9 +1,9 @@ --- -title: Terminales de REST para la API de GitHub Marketplace -intro: 'Para ayudarte a adminsitrar tu app en {% data variables.product.prodname_marketplace %}, utiliza estas terminales de la API de {% data variables.product.prodname_marketplace %}.' +title: REST endpoints for the GitHub Marketplace API +intro: 'To help manage your app on {% data variables.product.prodname_marketplace %}, use these {% data variables.product.prodname_marketplace %} API endpoints.' redirect_from: - - /apps/marketplace/github-marketplace-api-endpoints/ - - /apps/marketplace/integrating-with-the-github-marketplace-api/github-marketplace-rest-api-endpoints/ + - /apps/marketplace/github-marketplace-api-endpoints + - /apps/marketplace/integrating-with-the-github-marketplace-api/github-marketplace-rest-api-endpoints - /marketplace/integrating-with-the-github-marketplace-api/github-marketplace-rest-api-endpoints - /developers/github-marketplace/rest-endpoints-for-the-github-marketplace-api versions: @@ -11,23 +11,22 @@ versions: ghec: '*' topics: - Marketplace -shortTitle: API de REST +shortTitle: REST API --- +Here are some useful endpoints available for Marketplace listings: -Aquí te mostramos algunas terminales útiles que están disponibles para los listados de Marketplace: +* [List plans](/rest/reference/apps#list-plans) +* [List accounts for a plan](/rest/reference/apps#list-accounts-for-a-plan) +* [Get a subscription plan for an account](/rest/reference/apps#get-a-subscription-plan-for-an-account) +* [List subscriptions for the authenticated user](/rest/reference/apps#list-subscriptions-for-the-authenticated-user) -* [Listar planes](/rest/reference/apps#list-plans) -* [Listar cuentas para un plan](/rest/reference/apps#list-accounts-for-a-plan) -* [Obtener un plan de suscripción para una cuenta](/rest/reference/apps#get-a-subscription-plan-for-an-account) -* [Listar las suscripciones del usuario autenticado](/rest/reference/apps#list-subscriptions-for-the-authenticated-user) +See these pages for details on how to authenticate when using the {% data variables.product.prodname_marketplace %} API: -Consulta estas páginas para encontrar más detalles sobre cómo autenticarte cuando utilices la API de {% data variables.product.prodname_marketplace %}: - -* [Opciones de autorización para las Apps de OAuth](/apps/building-oauth-apps/authorizing-oauth-apps/) -* [Opciones de autenticación para las GitHub Apps](/apps/building-github-apps/authenticating-with-github-apps/) +* [Authorization options for OAuth Apps](/apps/building-oauth-apps/authorizing-oauth-apps/) +* [Authentication options for GitHub Apps](/apps/building-github-apps/authenticating-with-github-apps/) {% note %} -**Nota:** [Los límites de tasa para la API de REST](/rest#rate-limiting) aplican para todas las terminales de la API de {% data variables.product.prodname_marketplace %}. +**Note:** [Rate limits for the REST API](/rest#rate-limiting) apply to all {% data variables.product.prodname_marketplace %} API endpoints. {% endnote %} diff --git a/translations/es-ES/content/developers/github-marketplace/using-the-github-marketplace-api-in-your-app/testing-your-app.md b/translations/es-ES/content/developers/github-marketplace/using-the-github-marketplace-api-in-your-app/testing-your-app.md index dd9df2e474..537d8fe792 100644 --- a/translations/es-ES/content/developers/github-marketplace/using-the-github-marketplace-api-in-your-app/testing-your-app.md +++ b/translations/es-ES/content/developers/github-marketplace/using-the-github-marketplace-api-in-your-app/testing-your-app.md @@ -1,9 +1,9 @@ --- -title: Probar tu app -intro: 'GitHub te recomienda probar tu app con las API y los webhooks antes de emitir tu listado a {% data variables.product.prodname_marketplace %} para que puedas proporcionar una experiencia ideal para los clientes. Antes de que un experto de incorporación apruebe tu app, ésta deberá administrar los flujos de facturación adecuadamente.' +title: Testing your app +intro: 'GitHub recommends testing your app with APIs and webhooks before submitting your listing to {% data variables.product.prodname_marketplace %} so you can provide an ideal experience for customers. Before an onboarding expert approves your app, it must adequately handle the billing flows.' redirect_from: - - /apps/marketplace/testing-apps-apis-and-webhooks/ - - /apps/marketplace/integrating-with-the-github-marketplace-api/testing-github-marketplace-apps/ + - /apps/marketplace/testing-apps-apis-and-webhooks + - /apps/marketplace/integrating-with-the-github-marketplace-api/testing-github-marketplace-apps - /marketplace/integrating-with-the-github-marketplace-api/testing-github-marketplace-apps - /developers/github-marketplace/testing-your-app versions: @@ -12,35 +12,34 @@ versions: topics: - Marketplace --- +## Testing apps -## Probar las apps +You can use a draft {% data variables.product.prodname_marketplace %} listing to simulate each of the billing flows. A listing in the draft state means that it has not been submitted for approval. Any purchases you make using a draft {% data variables.product.prodname_marketplace %} listing will _not_ create real transactions, and GitHub will not charge your credit card. Note that you can only simulate purchases for plans published in the draft listing and not for draft plans. For more information, see "[Drafting a listing for your app](/developers/github-marketplace/drafting-a-listing-for-your-app)" and "[Using the {% data variables.product.prodname_marketplace %} API in your app](/developers/github-marketplace/using-the-github-marketplace-api-in-your-app)." -Puedes utilizar un borrador de listado de {% data variables.product.prodname_marketplace %} para simular cada uno de los flujos de facturación. Un listado en estado de borrador significa que no se ha emitido para aprobación. Cualquier compra que hagas utilizando un borrador de listado de {% data variables.product.prodname_marketplace %} _no_ creará transacciones reales, y GitHub no hará cargos a tu tarjeta de crédito. Nota que solo puedes simular compras para los planes que están publicados en el borrador de la lista y no para el borrador de los planes. Para obtener más información, consulta las secciones "[Hacer un borrador de listado para tu app](/developers/github-marketplace/drafting-a-listing-for-your-app)" y "[Utilizar la API de {% data variables.product.prodname_marketplace %} en tu app](/developers/github-marketplace/using-the-github-marketplace-api-in-your-app)". +### Using a development app with a draft listing to test changes -### Utilizar una app de desarrollo con un borrador de listado para probar los cambios +A {% data variables.product.prodname_marketplace %} listing can only be associated with a single app registration, and each app can only access its own {% data variables.product.prodname_marketplace %} listing. For these reasons, we recommend configuring a separate development app, with the same configuration as your production app, and creating a _draft_ {% data variables.product.prodname_marketplace %} listing that you can use for testing. The draft {% data variables.product.prodname_marketplace %} listing allows you to test changes without affecting the active users of your production app. You will never have to submit your development {% data variables.product.prodname_marketplace %} listing, since you will only use it for testing. -Un listado de {% data variables.product.prodname_marketplace %} únicamente puede asociarse con un solo registro de app, y cada app puede acceder únicamente a su propio listado de {% data variables.product.prodname_marketplace %}. Es por esto que te recomendamos configurar una app de desarrollo por separado con la misma configuración que la productiva, y que crees un _borrador_ de listado de {% data variables.product.prodname_marketplace %} que puedas utilizar para las pruebas. El borrador del listado de {% data variables.product.prodname_marketplace %} te permite probar los cambios sin afectar a los usuarios activos de tu app productiva. Nunca tendrás que emitir tu listado de desarrollo de {% data variables.product.prodname_marketplace %}, ya que solo lo utilizarás para las pruebas. +Because you can only create draft {% data variables.product.prodname_marketplace %} listings for public apps, you must make your development app public. Public apps are not discoverable outside of published {% data variables.product.prodname_marketplace %} listings as long as you don't share the app's URL. A Marketplace listing in the draft state is only visible to the app's owner. -Ya que solo puedes crear un borrador de listado de {% data variables.product.prodname_marketplace %} para las apps públicas, debes poner tu app de desarrollo como pública. Las apps públicas no pueden descubrirse fuera de los listados publicados de {% data variables.product.prodname_marketplace %} mientras no compartas la URL de éstas. Solo el dueño de la aplicación podrá ver el lsitado de Marketplace en su estado de borrador. - -Una vez que cuentes con una app de desarrollo con un listado en estado de borrador, puedes utilizarla para probar los cambios que hagas a dicha app mientras que lo integras con la API y los webhooks de {% data variables.product.prodname_marketplace %}. +Once you have a development app with a draft listing, you can use it to test changes you make to your app while integrating with the {% data variables.product.prodname_marketplace %} API and webhooks. {% warning %} -No hagas compras de prueba con las apps que están activas en {% data variables.product.prodname_marketplace %}. +Do not make test purchases with an app that is live in {% data variables.product.prodname_marketplace %}. {% endwarning %} -### Simular eventos de compra en Marketplace +### Simulating Marketplace purchase events -Tus escenarios de prueba podrían requerir que configures los planes de los listados que ofrecen periodos de prueba gratuitos y que cambies entre las suscripciones de pago y gratuitas. Ya que los decrementos y las cancelaciones no toman efecto sino hasta el siguiente ciclo de facturación, GitHub proporciona una característica exclusiva para desarrolladores para "Aplicar el Cambio Pendiente", la cual fuerza las acciones de `changed` y `cancelled` para que tomen efecto inmediatamente. Puedes acceder a la opción de **Aplicar Cambios Pendientes** para las apps con listados de Marketplace en estado de _borrador_ en https://github.com/settings/billing#pending-cycle: +Your testing scenarios may require setting up listing plans that offer free trials and switching between free and paid subscriptions. Because downgrades and cancellations don't take effect until the next billing cycle, GitHub provides a developer-only feature to "Apply Pending Change" to force `changed` and `cancelled` plan actions to take effect immediately. You can access **Apply Pending Change** for apps with _draft_ Marketplace listings in https://github.com/settings/billing#pending-cycle: -![Aplicar el cambio pendiente](/assets/images/github-apps/github-apps-apply-pending-changes.png) +![Apply pending change](/assets/images/github-apps/github-apps-apply-pending-changes.png) -## Probar las API +## Testing APIs -También proporcionamos terminales de prueba para muchas de las terminales de las API de {% data variables.product.prodname_marketplace %}, las cuales devuelven datos falsos de código predefinido que puedes utilizar para hacer pruebas. Para recibir datos de prueba, debes especificar las URL de prueba que incluyan `/stubbed` en la ruta (por ejemplo, `/user/marketplace_purchases/stubbed`). Para obtener una lista de terminales que son compatibles con este acercamiento de datos de prueba, consulta la sección de [terminales de {% data variables.product.prodname_marketplace %}](/rest/reference/apps#github-marketplace). +For most {% data variables.product.prodname_marketplace %} API endpoints, we also provide stubbed API endpoints that return hard-coded, fake data you can use for testing. To receive stubbed data, you must specify stubbed URLs, which include `/stubbed` in the route (for example, `/user/marketplace_purchases/stubbed`). For a list of endpoints that support this stubbed-data approach, see [{% data variables.product.prodname_marketplace %} endpoints](/rest/reference/apps#github-marketplace). -## Probar los webhooks +## Testing webhooks -GitHub proporciona herramientas para probar tus cárgas útiles desplegadas. Para obtener más información, consulta la sección "[Probar los webhooks](/webhooks/testing/)". +GitHub provides tools for testing your deployed payloads. For more information, see "[Testing webhooks](/webhooks/testing/)." diff --git a/translations/es-ES/content/developers/github-marketplace/using-the-github-marketplace-api-in-your-app/webhook-events-for-the-github-marketplace-api.md b/translations/es-ES/content/developers/github-marketplace/using-the-github-marketplace-api-in-your-app/webhook-events-for-the-github-marketplace-api.md index 09d39b815f..eb0ffba0ac 100644 --- a/translations/es-ES/content/developers/github-marketplace/using-the-github-marketplace-api-in-your-app/webhook-events-for-the-github-marketplace-api.md +++ b/translations/es-ES/content/developers/github-marketplace/using-the-github-marketplace-api-in-your-app/webhook-events-for-the-github-marketplace-api.md @@ -2,8 +2,8 @@ title: Webhook events for the GitHub Marketplace API intro: 'A {% data variables.product.prodname_marketplace %} app receives information about changes to a user''s plan from the Marketplace purchase event webhook. A Marketplace purchase event is triggered when a user purchases, cancels, or changes their payment plan.' redirect_from: - - /apps/marketplace/setting-up-github-marketplace-webhooks/about-webhook-payloads-for-a-github-marketplace-listing/ - - /apps/marketplace/integrating-with-the-github-marketplace-api/github-marketplace-webhook-events/ + - /apps/marketplace/setting-up-github-marketplace-webhooks/about-webhook-payloads-for-a-github-marketplace-listing + - /apps/marketplace/integrating-with-the-github-marketplace-api/github-marketplace-webhook-events - /marketplace/integrating-with-the-github-marketplace-api/github-marketplace-webhook-events - /developers/github-marketplace/webhook-events-for-the-github-marketplace-api versions: diff --git a/translations/es-ES/content/developers/overview/managing-deploy-keys.md b/translations/es-ES/content/developers/overview/managing-deploy-keys.md index b651619a2c..6d51247d42 100644 --- a/translations/es-ES/content/developers/overview/managing-deploy-keys.md +++ b/translations/es-ES/content/developers/overview/managing-deploy-keys.md @@ -2,7 +2,7 @@ title: Managing deploy keys intro: Learn different ways to manage SSH keys on your servers when you automate deployment scripts and which way is best for you. redirect_from: - - /guides/managing-deploy-keys/ + - /guides/managing-deploy-keys - /v3/guides/managing-deploy-keys versions: fpt: '*' diff --git a/translations/es-ES/content/developers/overview/replacing-github-services.md b/translations/es-ES/content/developers/overview/replacing-github-services.md index 8fc5e7b0a8..7e39883b4a 100644 --- a/translations/es-ES/content/developers/overview/replacing-github-services.md +++ b/translations/es-ES/content/developers/overview/replacing-github-services.md @@ -1,9 +1,9 @@ --- -title: Reemplazar los GitHub Services -intro: 'Si aún estás dependiendo de los {% data variables.product.prodname_dotcom %} Services obsoletizados, aprende cómomigrar los ganchos de tu servicio a webhooks.' +title: Replacing GitHub Services +intro: 'If you''re still relying on the deprecated {% data variables.product.prodname_dotcom %} Services, learn how to migrate your service hooks to webhooks.' redirect_from: - - /guides/replacing-github-services/ - - /v3/guides/automating-deployments-to-integrators/ + - /guides/replacing-github-services + - /v3/guides/automating-deployments-to-integrators - /v3/guides/replacing-github-services versions: fpt: '*' @@ -14,61 +14,61 @@ topics: --- -Hemos obsoletizado los GitHub Services para favorecer la integración con los webhooks. Esta guía te ayuda a hacer la transición hacia los webhooks de GitHub Services. Para obtener más información acerca de este anuncio, consulta la [Publicación del blog](https://developer.github.com/changes/2018-10-01-denying-new-github-services). +We have deprecated GitHub Services in favor of integrating with webhooks. This guide helps you transition to webhooks from GitHub Services. For more information on this announcement, see the [blog post](https://developer.github.com/changes/2018-10-01-denying-new-github-services). {% note %} -Como una alternativa al servicio de correo electrónico, ahora puedes comenzar a utilizar las notificaciones para las cargas de información a tu repositorio. Consulta la sección "[Acerca de las notificaciones de correo electrónico para las cargas a tu repositorio](/github/receiving-notifications-about-activity-on-github/about-email-notifications-for-pushes-to-your-repository/)" para aprender cómo configurar las notificaciones por correo electrónico de las confirmaciones. +As an alternative to the email service, you can now start using email notifications for pushes to your repository. See "[About email notifications for pushes to your repository](/github/receiving-notifications-about-activity-on-github/about-email-notifications-for-pushes-to-your-repository/)" to learn how to configure commit email notifications. {% endnote %} -## Línea del tiempo de la obsoletización +## Deprecation timeline -- **1 de octubre de 2018**: GitHub descontinuó el permitir que los usuarios instalen servicios. Eliminamos los GitHub Services de la interface de usuario de GitHub.com. -- **29 de enero de 2019**: Como alternativa al servicio de correo electrónico, ahora puedes comenzar a utilizar las notificaciones por correo electrónico para las cargas a tu repositorio. Consulta la sección "[Acerca de las notificaciones de correo electrónico para las cargas a tu repositorio](/github/receiving-notifications-about-activity-on-github/about-email-notifications-for-pushes-to-your-repository/)" para aprender cómo configurar las notificaciones por correo electrónico de las confirmaciones. -- **31 de enero de 2019**: GitHub dejará de entregar los eventos de los servicios instalados en GitHub.com. +- **October 1, 2018**: GitHub discontinued allowing users to install services. We removed GitHub Services from the GitHub.com user interface. +- **January 29, 2019**: As an alternative to the email service, you can now start using email notifications for pushes to your repository. See "[About email notifications for pushes to your repository](/github/receiving-notifications-about-activity-on-github/about-email-notifications-for-pushes-to-your-repository/)" to learn how to configure commit email notifications. +- **January 31, 2019**: GitHub will stop delivering installed services' events on GitHub.com. -## Antecedentes de GitHub Services +## GitHub Services background -GitHub Services (a veces conocido como Ganchos de Servicio) es el método tradicional de integración en donde GitHub hospedó una porción de los servicios de nuestros integradores a través [del repositorio`github-services`](https://github.com/github/github-services). Las acciones que se realizan en GitHub activan estos servicios, y puedes utilizarlos a su vez para activar acciones fuera de GitHub. +GitHub Services (sometimes referred to as Service Hooks) is the legacy method of integrating where GitHub hosted a portion of our integrator’s services via [the `github-services` repository](https://github.com/github/github-services). Actions performed on GitHub trigger these services, and you can use these services to trigger actions outside of GitHub. {% ifversion ghes or ghae %} -## Encontrar los repositorios que utilizan GitHub Services -Proporcionamos un script de línea de comandos que te ayuda a identificar los repositorios de tu aplicativo que utilizan GitHub Services. Para obtener más información, consulta [ghe-legacy-github-services-report](/enterprise/{{currentVersion}}/admin/articles/command-line-utilities/#ghe-legacy-github-services-report).{% endif %} +## Finding repositories that use GitHub Services +We provide a command-line script that helps you identify which repositories on your appliance use GitHub Services. For more information, see [ghe-legacy-github-services-report](/enterprise/{{currentVersion}}/admin/articles/command-line-utilities/#ghe-legacy-github-services-report).{% endif %} -## GitHub Services vs webhooks +## GitHub Services vs. webhooks -Las diferencias clave entre GitHub Services y los webhooks son: -- **Configuración**: Los GitHub Services tienen opciones de configuración específicas para los servicioes, mientras que los webhooks se configuran simplemente especificando una URL y un conjunto de eventos. -- **Lógica personalizada**: Los GitHub Services pueden tener una lógica personalizada para responder con acciones múltiples como parte de procesar solo un evento, mientras que los webhooks no tienen lógica personalizada. -- **Tipos de solicitudes**: Los GitHub Services pueden hacer solicitudes tanto de HTTP como no-HTTP, mientras que los webhooks solo hacen solicitudes HTTP. +The key differences between GitHub Services and webhooks: +- **Configuration**: GitHub Services have service-specific configuration options, while webhooks are simply configured by specifying a URL and a set of events. +- **Custom logic**: GitHub Services can have custom logic to respond with multiple actions as part of processing a single event, while webhooks have no custom logic. +- **Types of requests**: GitHub Services can make HTTP and non-HTTP requests, while webhooks can make HTTP requests only. -## Reemplazar los Servicios con webhooks +## Replacing Services with webhooks -Para reemplazar los GitHub Services con Webhooks: +To replace GitHub Services with Webhooks: -1. Identifica los eventos de webhook relevantes a los que necesitas suscribirte desde [esta lista](/webhooks/#events). +1. Identify the relevant webhook events you’ll need to subscribe to from [this list](/webhooks/#events). -2. Cambia tu configuración dependiendo de cómo utilizas los GitHub Services actualmente: +2. Change your configuration depending on how you currently use GitHub Services: - - Para las **GitHub Apps**: Actualiza los permisos y eventos suscritos de tu app para configurarla para recibir los eventos de webhook reelevantes. - - Para las **Apps de OAuth**: Solicita ya sea el(los) alcance(s) `repo_hook` y/o `org_hook` para administrar los eventos relevantes a nombre de los usuarios. - - Para los **proveedores de GitHub Services**: solicita que los usuarios configuren manualmente un webhook con los eventos relevantes que se te envían, o aprovecha esta oportunidad para crear una app para administrar esta funcionalidad. Para obtener más información, consulta "[Acerca de las apps](/apps/about-apps/)." + - **GitHub Apps**: Update your app's permissions and subscribed events to configure your app to receive the relevant webhook events. + - **OAuth Apps**: Request either the `repo_hook` and/or `org_hook` scope(s) to manage the relevant events on behalf of users. + - **GitHub Service providers**: Request that users manually configure a webhook with the relevant events sent to you, or take this opportunity to build an app to manage this functionality. For more information, see "[About apps](/apps/about-apps/)." -3. Migra las configuraciones adicionales desde fuera de GitHub. Algunos GitHub Services necesitan configuraciones personalizadas adicionales en la página de configuración dentro de GitHub. Si tu servicio hace esto, necesitarás migrar esta funcionalidad en tu aplicación o depender de GitHub o de las Apps de OAuth conforme esto aplique. +3. Move additional configuration from outside of GitHub. Some GitHub Services require additional, custom configuration on the configuration page within GitHub. If your service does this, you will need to move this functionality into your application or rely on GitHub or OAuth Apps where applicable. -## Compatibilidad con {% data variables.product.prodname_ghe_server %} +## Supporting {% data variables.product.prodname_ghe_server %} -- **{% data variables.product.prodname_ghe_server %} 2.17**: El {% data variables.product.prodname_ghe_server %} con lanzamiento 2.17 y superior descontinuará el permitir que los administradores instalen servicios. Los aministradores podrán seguir modificando los ganchos de servicio existentes y recibiendo ganchos en el {% data variables.product.prodname_ghe_server %} con lanzamiento 2.17 hasta el 2.19. Como una alternativa al servicio de correo electrónico, podrás utilizar las notificaciones de correo electrónico para las cargas de información a tu repositorio en el {% data variables.product.prodname_ghe_server %} 2.17 y superior. Consulta [esta publicación del blog](https://developer.github.com/changes/2019-01-29-life-after-github-services) para conocer más al respecto. -- **{% data variables.product.prodname_ghe_server %} 2.20**: El {% data variables.product.prodname_ghe_server %} con lanzamiento 2.20 y superior dejará de entregar cualquier evento de los servicios instalados. +- **{% data variables.product.prodname_ghe_server %} 2.17**: {% data variables.product.prodname_ghe_server %} release 2.17 and higher will discontinue allowing admins to install services. Admins will continue to be able to modify existing service hooks and receive service hooks in {% data variables.product.prodname_ghe_server %} release 2.17 through 2.19. As an alternative to the email service, you will be able to use email notifications for pushes to your repository in {% data variables.product.prodname_ghe_server %} 2.17 and higher. See [this blog post](https://developer.github.com/changes/2019-01-29-life-after-github-services) to learn more. +- **{% data variables.product.prodname_ghe_server %} 2.20**: {% data variables.product.prodname_ghe_server %} release 2.20 and higher will stop delivering all installed services' events. -El lanzamiento 2.17 de {% data variables.product.prodname_ghe_server %} será el primer lanzamiento que no permite a los administradores instalar GitHub Services. Únicamente admitiremos los GitHub Services existentes hasta el lanzamiento 2.20 de {% data variables.product.prodname_ghe_server %}. También aceptaremos cualquier parche crítico para tu Github Service que se ejecute en el {% data variables.product.prodname_ghe_server %} hasta el 1 de octubre de 2019. +The {% data variables.product.prodname_ghe_server %} 2.17 release will be the first release that does not allow admins to install GitHub Services. We will only support existing GitHub Services until the {% data variables.product.prodname_ghe_server %} 2.20 release. We will also accept any critical patches for your GitHub Service running on {% data variables.product.prodname_ghe_server %} until October 1, 2019. -## Migrarte con nuestra ayuda +## Migrating with our help -Por favor [contáctanos](https://github.com/contact?form%5Bsubject%5D=GitHub+Services+Deprecation) si tienes cualquier pregunta. +Please [contact us](https://github.com/contact?form%5Bsubject%5D=GitHub+Services+Deprecation) with any questions. -Como un resumen de alto nivel, el proceso de migración involucra habitualmente: - - Identificar cómo y dónde tu producto está utilizando los GitHub Services. - - Identificar los eventos de webhook correspondientes que necesites configurar para poder migrarlos a webhooks sencillos. - - Implementar el diseño utilizando ya sea [{% data variables.product.prodname_oauth_apps %}](/apps/building-oauth-apps/) o [{% data variables.product.prodname_github_apps %}. se prefieren las {% data variables.product.prodname_github_apps %}](/apps/building-github-apps/). Para aprender más sobre por qué se prefieren las {% data variables.product.prodname_github_apps %}, consulta la sección "[Razones por las cuales querrías cambiarte a {% data variables.product.prodname_github_apps %}](/apps/migrating-oauth-apps-to-github-apps/#reasons-for-switching-to-github-apps)". +As a high-level overview, the process of migration typically involves: + - Identifying how and where your product is using GitHub Services. + - Identifying the corresponding webhook events you need to configure in order to move to plain webhooks. + - Implementing the design using either [{% data variables.product.prodname_oauth_apps %}](/apps/building-oauth-apps/) or [{% data variables.product.prodname_github_apps %}. {% data variables.product.prodname_github_apps %}](/apps/building-github-apps/) are preferred. To learn more about why {% data variables.product.prodname_github_apps %} are preferred, see "[Reasons for switching to {% data variables.product.prodname_github_apps %}](/apps/migrating-oauth-apps-to-github-apps/#reasons-for-switching-to-github-apps)." diff --git a/translations/es-ES/content/developers/overview/secret-scanning-partner-program.md b/translations/es-ES/content/developers/overview/secret-scanning-partner-program.md index 4f096f358b..c1967ee2cc 100644 --- a/translations/es-ES/content/developers/overview/secret-scanning-partner-program.md +++ b/translations/es-ES/content/developers/overview/secret-scanning-partner-program.md @@ -1,9 +1,9 @@ --- -title: Programa asociado del escaneo de secretos -intro: 'Como proveedor de servicios, puedes asociarte con {% data variables.product.prodname_dotcom %} para que se aseguren nuestros formatos de token secretos a través de un escaneo de secretos, el cual busca las confirmaciones accidentales de tus formatos secretos y puede enviarse a la terminal de verificación de un proveedor de servicios.' +title: Secret scanning partner program +intro: 'As a service provider, you can partner with {% data variables.product.prodname_dotcom %} to have your secret token formats secured through secret scanning, which searches for accidental commits of your secret format and can be sent to a service provider''s verify endpoint.' miniTocMaxHeadingLevel: 3 redirect_from: - - /partnerships/token-scanning/ + - /partnerships/token-scanning - /partnerships/secret-scanning - /developers/overview/secret-scanning versions: @@ -11,55 +11,55 @@ versions: ghec: '*' topics: - API -shortTitle: Escaneo de secretos +shortTitle: Secret scanning --- -{% data variables.product.prodname_dotcom %} escanea los repositorios en busca de formatos secretos para prevenir el uso fraudulento de las credenciales que se confirmaron por accidente. El {% data variables.product.prodname_secret_scanning_caps %} ocurre predeterminadamente en los repositorios públicos y los administradores de repositorio o propietarios de la organización pueden habilitarlo en los repositorios privados. Como proveedor de servicios, puedes asociarte con {% data variables.product.prodname_dotcom %} para que tus formatos de secreto se incluyan en nuestro {% data variables.product.prodname_secret_scanning %}. +{% data variables.product.prodname_dotcom %} scans repositories for known secret formats to prevent fraudulent use of credentials that were committed accidentally. {% data variables.product.prodname_secret_scanning_caps %} happens by default on public repositories, and can be enabled on private repositories by repository administrators or organization owners. As a service provider, you can partner with {% data variables.product.prodname_dotcom %} so that your secret formats are included in our {% data variables.product.prodname_secret_scanning %}. -Cuando se encuentra una coincidencia de tu formato secreto en un repositorio público, se envía una carga útil a una terminal HTTP de tu elección. +When a match of your secret format is found in a public repository, a payload is sent to an HTTP endpoint of your choice. -Cuando se encuentra una coincidencia de tu formato de secreto en un repositorio privado, la cual esté configurada para el {% data variables.product.prodname_secret_scanning %}, entonces los administradores del repositorio y el confirmante recibirán una alerta y podrán ver y administrar el resultado del {% data variables.product.prodname_secret_scanning %} en {% data variables.product.prodname_dotcom %}. Para obtener más información, consulta la sección "[Administrar alertas de {% data variables.product.prodname_secret_scanning %}](/github/administering-a-repository/managing-alerts-from-secret-scanning)". +When a match of your secret format is found in a private repository configured for {% data variables.product.prodname_secret_scanning %}, then repository admins and the committer are alerted and can view and manage the {% data variables.product.prodname_secret_scanning %} result on {% data variables.product.prodname_dotcom %}. For more information, see "[Managing alerts from {% data variables.product.prodname_secret_scanning %}](/github/administering-a-repository/managing-alerts-from-secret-scanning)." -Este artículo describe la forma en la que puedes asociarte con {% data variables.product.prodname_dotcom %} como proveedor de servicios y unirte al programa asociado del {% data variables.product.prodname_secret_scanning %}. +This article describes how you can partner with {% data variables.product.prodname_dotcom %} as a service provider and join the {% data variables.product.prodname_secret_scanning %} partner program. -## El proceso del {% data variables.product.prodname_secret_scanning %} +## The {% data variables.product.prodname_secret_scanning %} process -#### Cómo funciona el {% data variables.product.prodname_secret_scanning %} en un repositorio público +#### How {% data variables.product.prodname_secret_scanning %} works in a public repository -El siguiente diagrama resume el proceso del {% data variables.product.prodname_secret_scanning %} para los repositorios públicos y muestra como cualquier coincidencia se envía a la terminal de verificación de un proveedor de servicios. +The following diagram summarizes the {% data variables.product.prodname_secret_scanning %} process for public repositories, with any matches sent to a service provider's verify endpoint. -![Diagrama de flujo que muestra el proceso de escaneo para un secreto y el envío de coincidencias a una terminal de verificación del proveedor de servicios](/assets/images/secret-scanning-flow.png "Flujo del {% data variables.product.prodname_secret_scanning_caps %}") +![Flow diagram showing the process of scanning for a secret and sending matches to a service provider's verify endpoint](/assets/images/secret-scanning-flow.png "{% data variables.product.prodname_secret_scanning_caps %} flow") -## Unirse al programa del {% data variables.product.prodname_secret_scanning %} en {% data variables.product.prodname_dotcom %} +## Joining the {% data variables.product.prodname_secret_scanning %} program on {% data variables.product.prodname_dotcom %} -1. Contacta a {% data variables.product.prodname_dotcom %} para iniciar el proceso. -1. Identifica los secretos relevantes que quieres escanear y crea expresiones regulares para capturarlos. -1. Para las coincidencias de secretos que se encuentran en los repositorios públicos, crea un servicio de alerta de secretos que acepte webhooks de {% data variables.product.prodname_dotcom %}, el cual contenga la carga últil del mensaje del {% data variables.product.prodname_secret_scanning %}. -1. Implementa la verificación de firmas en tu servicio de alerta secreto. -1. Implementa la revocación de secretos y las notificaciones al usuario en tu servicio de alerta de secretos. -1. Proporciona retroalimentación para los falsos positivos (opcional). +1. Contact {% data variables.product.prodname_dotcom %} to get the process started. +1. Identify the relevant secrets you want to scan for and create regular expressions to capture them. +1. For secret matches found in public repositories, create a secret alert service which accepts webhooks from {% data variables.product.prodname_dotcom %} that contain the {% data variables.product.prodname_secret_scanning %} message payload. +1. Implement signature verification in your secret alert service. +1. Implement secret revocation and user notification in your secret alert service. +1. Provide feedback for false positives (optional). -### Contacta a {% data variables.product.prodname_dotcom %} para iniciar el proceso +### Contact {% data variables.product.prodname_dotcom %} to get the process started -Para iniciar con el proceso de inscripción, manda un correo electrónico a secret-scanning@github.com. +To get the enrollment process started, email secret-scanning@github.com. -Recibirás los detalles del programa del {% data variables.product.prodname_secret_scanning %} y necesitarás aceptar las condiciones de participación de {% data variables.product.prodname_dotcom %} antes de proceder. +You will receive details on the {% data variables.product.prodname_secret_scanning %} program, and you will need to agree to {% data variables.product.prodname_dotcom %}'s terms of participation before proceeding. -### Identifica tus secretos y crea expresiones regulares +### Identify your secrets and create regular expressions -Para escanear tus secretos, {% data variables.product.prodname_dotcom %} necesita la siguiente información de cada secreto que quieras incluir en el programa del {% data variables.product.prodname_secret_scanning %}: +To scan for your secrets, {% data variables.product.prodname_dotcom %} needs the following pieces of information for each secret that you want included in the {% data variables.product.prodname_secret_scanning %} program: -* Un nombre único y legible para las personas para el tipo de secreto. Lo utilizaremos para generar el valor `Type` en la carga útil del mensaje más adelante. -* Una expresión regular que encuentre el tipo de secreto. Sé tan preciso como sea posible, ya que esto reducirá la cantidad de falsos positivos. -* La URL de la terminal que recibe mensajes de {% data variables.product.prodname_dotcom %}. Esto no tiene que ser único para cada tipo de secreto. +* A unique, human readable name for the secret type. We'll use this to generate the `Type` value in the message payload later. +* A regular expression which finds the secret type. Be as precise as possible, because this will reduce the number of false positives. +* The URL of the endpoint that receives messages from {% data variables.product.prodname_dotcom %}. This does not have to be unique for each secret type. -Envía esta información a secret-scanning@github.com. +Send this information to secret-scanning@github.com. -### Crea un servicio de alerta de secretos +### Create a secret alert service -Crea una terminal HTTP pública y accesible desde la internet en la URL que nos proporcionaste. Cuando se encuentre una coincidencia de tu expresión regular en un repositorio público, {% data variables.product.prodname_dotcom %} enviará un mensaje HTTP de tipo `POST` a tu terminal. +Create a public, internet accessible HTTP endpoint at the URL you provided to us. When a match of your regular expression is found in a public repository, {% data variables.product.prodname_dotcom %} will send an HTTP `POST` message to your endpoint. -#### Ejemplo del POST que se envía a tu terminal +#### Example POST sent to your endpoint ```http POST / HTTP/2 @@ -73,33 +73,34 @@ Content-Length: 0123 [{"token":"NMIfyYncKcRALEXAMPLE","type":"mycompany_api_token","url":"https://github.com/octocat/Hello-World/blob/12345600b9cbe38a219f39a9941c9319b600c002/foo/bar.txt"}] ``` -El cuerpo del mensaje es una matriz de JSON que contiene uno o más objetos con el siguiente contenido. Cuando se encuentran coincidencias múltiples, {% data variables.product.prodname_dotcom %} podría enviar un solo mensaje con más de una coincidencia del secreto. Tu terminal deberá poder gestionar las solicitudes con una gran cantidad de coincidencias sin exceder el tiempo. +The message body is a JSON array that contains one or more objects with the following contents. When multiple matches are found, {% data variables.product.prodname_dotcom %} may send a single message with more than one secret match. Your endpoint should be able to handle requests with a large number of matches without timing out. -* **Token**: El valor de la coincidencia del secreto. -* **Tipo**: El nombre único que proporcionaste para identificar tu expresión regular. -* **URL**: La URL de la confirmación pública en donde se encontró la coincidencia. +* **Token**: The value of the secret match. +* **Type**: The unique name you provided to identify your regular expression. +* **URL**: The public commit URL where the match was found. -### Implementa la verificación de firmas en tu servicio de alerta de secretos +### Implement signature verification in your secret alert service -Te recomendamos que implementes la validación de firmas en tu servicio de alerta de secretos para garantizar que los mensajes que recibes son auténticamente de {% data variables.product.prodname_dotcom %} y no son malintencionados. +We strongly recommend you implement signature validation in your secret alert service to ensure that the messages you receive are genuinely from {% data variables.product.prodname_dotcom %} and not malicious. -Puedes recuperar la llave pública del escaneo de secretos de {% data variables.product.prodname_dotcom %} desde https://api.github.com/meta/public_keys/secret_scanning y validar el mensaje utilizando el algoritmo `ECDSA-NIST-P256V1-SHA256`. +You can retrieve the {% data variables.product.prodname_dotcom %} secret scanning public key from https://api.github.com/meta/public_keys/secret_scanning and validate the message using the `ECDSA-NIST-P256V1-SHA256` algorithm. {% note %} -**Nota**: Cuando envías una solicitud a la terminal de la llave pública anterior, podrías llegar a los límites de tasa. Para evitar lelgar a estos límites de tasa, puedes utilizar un token de acceso personal (no se necesitan alcances) de acuerdo con lo que se sugiere en los ejemplos siguientes, o bien, utilizar una solicitud condicional. Para obtener más información, consulta la sección "[Comenzar con la API de REST](/rest/guides/getting-started-with-the-rest-api#conditional-requests)". +**Note**: When you send a request to the public key endpoint above, you may hit rate limits. To avoid hitting rate limits, you can use a personal access token (no scopes required) as suggested in the samples below, or use a conditional request. For more information, see "[Getting started with the REST API](/rest/guides/getting-started-with-the-rest-api#conditional-requests)." {% endnote %} -Asumiendo que recibes el siguiente mensaje, los extractos de código que presentamos a continuación demuestran cómo pudiste realizar la validación de firmas. Los fragmentos de código asumen que configuraste una variable de ambiente llamada `GITHUB_PRODUCTION_TOKEN` con un PAT generado (https://github.com/settings/tokens) para evitar llegar a los límites de tasa. Este PAT no necesita alcances/permisos. +Assuming you receive the following message, the code snippets below demonstrate how you could perform signature validation. +The code snippets assume you've set an environment variable called `GITHUB_PRODUCTION_TOKEN` with a generated PAT (https://github.com/settings/tokens) to avoid hitting rate limits. The PAT does not need any scopes/permissions. {% note %} -**Nota**: La firma se generó utilizando el cuerpo del mensaje sin procesar. Así que es importante que también utilices el cuerpo del mensaje sin procesar para la validación de la firma en vez de interpretar y convertir en secuencias el JSON, para evitar volver a arreglar dicho mensaje o cambiar los espacios. +**Note**: The signature was generated using the raw message body. So it's important you also use the raw message body for signature validation, instead of parsing and stringifying the JSON, to avoid rearranging the message or changing spacing. {% endnote %} -**Mensaje de ejemplo que se envía a tu terminal de verificación** +**Sample message sent to verify endpoint** ```http POST / HTTP/2 Host: HOST @@ -112,7 +113,7 @@ Content-Length: 0000 [{"token":"some_token","type":"some_type","url":"some_url"}] ``` -**Ejemplo de validación en Go** +**Validation sample in Go** ```golang package main @@ -199,30 +200,31 @@ func main() { ecdsaKey, ok := key.(*ecdsa.PublicKey) if !ok { fmt.Println("GitHub key was not ECDSA, what are they doing?!") - Exit(7) + os.Exit(7) } // Parse the Webhook Signature parsedSig := asn1Signature{} asnSig, err := base64.StdEncoding.DecodeString(kSig) if err != nil { - fmt. Printf("unable to base64 decode signature: %s\n", err) - os. Exit(8) + fmt.Printf("unable to base64 decode signature: %s\n", err) + os.Exit(8) } rest, err := asn1.Unmarshal(asnSig, &parsedSig) if err != nil || len(rest) != 0 { - fmt. Printf("Error unmarshalling asn.1 signature: %s\n", err) - os. Exit(9) + fmt.Printf("Error unmarshalling asn.1 signature: %s\n", err) + os.Exit(9) } // Verify the SHA256 encoded payload against the signature with GitHub's Key digest := sha256.Sum256([]byte(payload)) - keyOk := ecdsa. Verify(ecdsaKey, digest[:], parsedSig.R, parsedSig.S) + keyOk := ecdsa.Verify(ecdsaKey, digest[:], parsedSig.R, parsedSig.S) if keyOk { - fmt. - Println("the payload is invalid :(") - os. Exit(10) + fmt.Println("THE PAYLOAD IS GOOD!!") + } else { + fmt.Println("the payload is invalid :(") + os.Exit(10) } } @@ -241,7 +243,7 @@ type asn1Signature struct { } ``` -**Ejemplo de validación en Ruby** +**Validation sample in Ruby** ```ruby require 'openssl' require 'net/http' @@ -281,7 +283,7 @@ openssl_key = OpenSSL::PKey::EC.new(current_key) puts openssl_key.verify(OpenSSL::Digest::SHA256.new, Base64.decode64(signature), payload.chomp) ``` -**Ejemplo de validación en JavaScript** +**Validation sample in JavaScript** ```js const crypto = require("crypto"); const axios = require("axios"); @@ -323,17 +325,17 @@ const verify_signature = async (payload, signature, keyID) => { }; ``` -### Implementa la revocación de secretos y la notificación a usuarios en tu servicio de alerta de secretos +### Implement secret revocation and user notification in your secret alert service -Para el {% data variables.product.prodname_secret_scanning %} en repositorios públicos, puedes ampliar tu servicio de alerta de secretos para que revoque los secretos expuestos y notifique a los usuarios afectados. Depende de ti el cómo implementas esto en tu servicio de alerta de secretos, pero te recomendamos considerar cualquier secreto del cual {% data variables.product.prodname_dotcom %} te envíe mensajes de que es público y está puesto en riesgo. +For {% data variables.product.prodname_secret_scanning %} in public repositories, you can enhance your secret alert service to revoke the exposed secrets and notify the affected users. How you implement this in your secret alert service is up to you, but we recommend considering any secrets that {% data variables.product.prodname_dotcom %} sends you messages about as public and compromised. -### Proporciona retroalimentación sobre los falsos positivos +### Provide feedback for false positives -Recolectamos la retroalimentación sobre la validez de los secretos individuales que se detectan en las respuestas de los socios. Si quieres formar parte, mándanos un correo electrónico a secret-scanning@github.com. +We collect feedback on the validity of the detected individual secrets in partner responses. If you wish to take part, email us at secret-scanning@github.com. -Cuando te reportamos los secretos, enviamos un arreglo de JSON con cada elemento que contiene el token, identificador de tipo y URL de confirmación. Cuando envías retroalimentación, nos envías información sobre si el token que se detectó fue una credencial real o falsa. Aceptamos la retroalimentación en los siguientes formatos. +When we report secrets to you, we send a JSON array with each element containing the token, type identifier, and commit URL. When you send us feedback, you send us information about whether the detected token was a real or false credential. We accept feedback in the following formats. -Puedes enviarnos el token sin procesar: +You can send us the raw token: ``` [ @@ -344,7 +346,7 @@ Puedes enviarnos el token sin procesar: } ] ``` -También puedes proporcionar el token en forma de hash después de realizar un hash criptográfico de una sola vía para el token sin procesar utilizando SHA-256: +You may also provide the token in hashed form after performing a one way cryptographic hash of the raw token using SHA-256: ``` [ @@ -355,13 +357,13 @@ También puedes proporcionar el token en forma de hash después de realizar un h } ] ``` -Algunos puntos importantes: -- Solo debes enviarnos ya sea la forma sin procesar del token ("token raw") o la forma en hash ("token_hash"), pero no ambas. -- En el caso de la forma en hash del token sin procesar, solo puedes utilizar SHA-256 para crear el hash del token y no algún otro algoritmo. -- La etiqueta indica si un token es un positivo verdadero ("true_positive") o falso ("false_positive"). Solo se permiten estas secuencias en minúsculas. +A few important points: +- You should only send us either the raw form of the token ("token_raw"), or the hashed form ("token_hash"), but not both. +- For the hashed form of the raw token, you can only use SHA-256 to hash the token, not any other hashing algorithm. +- The label indicates whether the token is a true ("true_positive") or a false positive ("false_positive"). Only these two lowercased literal strings are allowed. {% note %} -**Nota:** Nuestro tiempo límite se configura para que sea mayor (es decir, 30 segundos) para los socios que proporcionen datos sobre falsos positivos. Si requieres de un tiempo límite mayor a 30 segundos, envíanos un correo electrónico a secret-scanning@github.com. +**Note:** Our request timeout is set to be higher (that is, 30 seconds) for partners who provide data about false positives. If you require a timeout higher than 30 seconds, email us at secret-scanning@github.com. {% endnote %} diff --git a/translations/es-ES/content/developers/overview/using-ssh-agent-forwarding.md b/translations/es-ES/content/developers/overview/using-ssh-agent-forwarding.md index 303d3b3a60..1a5c54cd28 100644 --- a/translations/es-ES/content/developers/overview/using-ssh-agent-forwarding.md +++ b/translations/es-ES/content/developers/overview/using-ssh-agent-forwarding.md @@ -1,8 +1,8 @@ --- -title: Utilizar el reenvío del agente SSH -intro: 'Para simplificar los despliegues en un servidor, puedes configurar el reenvío del agente SSH para utilizar las llaves SSH locales de forma segura.' +title: Using SSH agent forwarding +intro: 'To simplify deploying to a server, you can set up SSH agent forwarding to securely use local SSH keys.' redirect_from: - - /guides/using-ssh-agent-forwarding/ + - /guides/using-ssh-agent-forwarding - /v3/guides/using-ssh-agent-forwarding versions: fpt: '*' @@ -11,22 +11,22 @@ versions: ghec: '*' topics: - API -shortTitle: Reenvío del agente SSH +shortTitle: SSH agent forwarding --- -El reenvío del agente de SSH puede utilizarse para hacer despliegues a un servidor simple. Te permite utilizar llaves SSH locales en vez de dejar las llaves (¡sin frases de acceso!) en tu servidor. +SSH agent forwarding can be used to make deploying to a server simple. It allows you to use your local SSH keys instead of leaving keys (without passphrases!) sitting on your server. -Si ya configuraste una llave SSH para que interactúe con {% data variables.product.product_name %}, probablemente estás familiarizado con el `ssh-agent`. Es un programa que se ejecuta en segundo plano y que mantiene tu llave cargada en la memoria para que no tengas que ingresar tu frase deacceso cada que quieres utilizar esta llave. Lo ingenioso de esto es que puedes elegir dejar que los servidores accedan a tu `ssh-agent` local como si ya se estuvieran ejecutando en el servidor. Esto es como pedirle a un amigo que ingrese su contraseña para que puedas utilizar su computadora. +If you've already set up an SSH key to interact with {% data variables.product.product_name %}, you're probably familiar with `ssh-agent`. It's a program that runs in the background and keeps your key loaded into memory, so that you don't need to enter your passphrase every time you need to use the key. The nifty thing is, you can choose to let servers access your local `ssh-agent` as if they were already running on the server. This is sort of like asking a friend to enter their password so that you can use their computer. -Revisa la sección [Guía de Tips Técnicos de Steve Friedl][tech-tips] para obtener una explicación más exacta del reenvío del agente SSH. +Check out [Steve Friedl's Tech Tips guide][tech-tips] for a more detailed explanation of SSH agent forwarding. -## Configurar el reenvío del agente SSH +## Setting up SSH agent forwarding -Asegúrate de que tu propia llave SSH está configurada y funciona. Puedes utilizar [nuestra guía para generar llaves SSH][generating-keys] si aún no lo has hecho. +Ensure that your own SSH key is set up and working. You can use [our guide on generating SSH keys][generating-keys] if you've not done this yet. -Puedes probar si tu llave local funciona ingresando `ssh -T git@{% ifversion ghes or ghae %}hostname{% else %}github.com{% endif %}` en la terminal: +You can test that your local key works by entering `ssh -T git@{% ifversion ghes or ghae %}hostname{% else %}github.com{% endif %}` in the terminal: ```shell $ ssh -T git@{% ifversion ghes or ghae %}hostname{% else %}github.com{% endif %} @@ -35,26 +35,26 @@ $ ssh -T git@{% ifversion ghes or ghae %}hostname{% else %}github.com{% endif %} > shell access. ``` -Estamos empezando muy bien. Vamso a configurar SSH para permitir el reenvío del agente en tu servidor. +We're off to a great start. Let's set up SSH to allow agent forwarding to your server. -1. Utilizando tu editor de texto preferido, abre el archivo en `~/.ssh/config`. Si este archivo no existe, puedes crearlo si ingresas `touch ~/.ssh/config` en la terminal. +1. Using your favorite text editor, open up the file at `~/.ssh/config`. If this file doesn't exist, you can create it by entering `touch ~/.ssh/config` in the terminal. + +2. Enter the following text into the file, replacing `example.com` with your server's domain name or IP: -2. Ingresa el siguiente texto en el archivo, reemplazando `example.com` con el nombre de dominio o la IP de tu servidor: - Host example.com ForwardAgent yes {% warning %} -**Advertencia:** Podrías estar tentado a utilizar un comodín como `Host *` para aplicar esta configuración únicamente a todas las conexiones SSH. No es realmente una buena idea, ya que compartirías tus llaves SSH locales con *todos* los servidores en los que ingreses con SSH. No tendrán acceso directo a las llaves, pero podrán utilizarlas *como si fueran tú* mientras que se establece la conexión. **Deberías agregar únicamente los servidores en los que confías y que pretendes usar con el reenvío del agente.** +**Warning:** You may be tempted to use a wildcard like `Host *` to just apply this setting to all SSH connections. That's not really a good idea, as you'd be sharing your local SSH keys with *every* server you SSH into. They won't have direct access to the keys, but they will be able to use them *as you* while the connection is established. **You should only add servers you trust and that you intend to use with agent forwarding.** {% endwarning %} -## Probar el reenvío del agente SSH +## Testing SSH agent forwarding -Para probar que el reenvío de agentes funcione con tu servidor, puedes ingresar por SSH en éste y ejecutar `ssh -T git@{% ifversion ghes or ghae %}hostname{% else %}github.com{% endif %}` nuevamente. Si todo sale bien, te regresará el mismo mensaje que salió cuando lo hiciste localmente. +To test that agent forwarding is working with your server, you can SSH into your server and run `ssh -T git@{% ifversion ghes or ghae %}hostname{% else %}github.com{% endif %}` once more. If all is well, you'll get back the same prompt as you did locally. -Si no estás seguro de que se esté utilizando tu llave local, también puedes inspeccionar la variable `SSH_AUTH_SOCK` en tu servidor: +If you're unsure if your local key is being used, you can also inspect the `SSH_AUTH_SOCK` variable on your server: ```shell $ echo "$SSH_AUTH_SOCK" @@ -62,7 +62,7 @@ $ echo "$SSH_AUTH_SOCK" > /tmp/ssh-4hNGMk8AZX/agent.79453 ``` -Si no se ha configurado la variable, esto significa que el reenvío del agente no funciona: +If the variable is not set, it means that agent forwarding is not working: ```shell $ echo "$SSH_AUTH_SOCK" @@ -73,13 +73,13 @@ $ ssh -T git@{% ifversion ghes or ghae %}hostname{% else %}github.com{% endif %} > Permission denied (publickey). ``` -## Solucionar problemas del reenvío del agente SSH +## Troubleshooting SSH agent forwarding -Aquí te mostramos algunos puntos en los cuales tener cuidado cuando intentes solucionar problemas relacionados con el reenvío del agente SSH. +Here are some things to look out for when troubleshooting SSH agent forwarding. -### Debes utilizar una URL con SSH para revisar el código +### You must be using an SSH URL to check out code -El reenvío SSH funciona únicamente con URL con SSH, no con aquellas de HTTP(s). Revisa el archivo *.git/config* en tu servidor y asegúrate de que la URL es de estilo SSH como se muestra a continuación: +SSH forwarding only works with SSH URLs, not HTTP(s) URLs. Check the *.git/config* file on your server and ensure the URL is an SSH-style URL like below: ```shell [remote "origin"] @@ -87,13 +87,13 @@ El reenvío SSH funciona únicamente con URL con SSH, no con aquellas de HTTP(s) fetch = +refs/heads/*:refs/remotes/origin/* ``` -### Tus llaves SSH deben funcionar localmente +### Your SSH keys must work locally -Antes de que hagas que tus llaves funcionen a través del reenvío del agente, primero deben funcionar localmente. [Nuestra guía para generar llaves SSH][generating-keys] puede ayudarte a configurar tus llaves SSH localmente. +Before you can make your keys work through agent forwarding, they must work locally first. [Our guide on generating SSH keys][generating-keys] can help you set up your SSH keys locally. -### Tu sistema debe permitir el reenvío del agente SSH +### Your system must allow SSH agent forwarding -Algunas veces, la configuración del sistema deja de permitir el reenvío del agente SSH. Puedes verificar si se está utilizando un archivo de configuración del sistema ingresando el siguiente comando en la terminal: +Sometimes, system configurations disallow SSH agent forwarding. You can check if a system configuration file is being used by entering the following command in the terminal: ```shell $ ssh -v example.com @@ -107,7 +107,7 @@ $ exit # Returns to your local command prompt ``` -En este ejemplo, el archivo *~/.ssh/config* se carga primero, luego se lee el */etc/ssh_config*. Podemos inspeccionar ese archivo para ver si está anulando nuestras opciones si ejecutamos los siguientes comandos: +In the example above, the file *~/.ssh/config* is loaded first, then */etc/ssh_config* is read. We can inspect that file to see if it's overriding our options by running the following commands: ```shell $ cat /etc/ssh_config @@ -117,17 +117,17 @@ $ cat /etc/ssh_config > ForwardAgent no ``` -En este ejemplo, nuestro archivo */etc/ssh_config* dice específicamente `ForwardAgent no`, lo cual es una manera de bloquear el reenvío del agente. Si borramos esta línea del archivo deberíamos poder hacer funcionar el reenvío del agente nuevamente. +In this example, our */etc/ssh_config* file specifically says `ForwardAgent no`, which is a way to block agent forwarding. Deleting this line from the file should get agent forwarding working once more. -### Tu servidor debe permitir el reenvío del agente SSH en las conexiones entrantes +### Your server must allow SSH agent forwarding on inbound connections -El reenvío del agente también puede bloquearse en tu servidor. Puedes verificar que se permita este reenvío si entras al servidor mediante SSH y ejecutas `sshd_config`. La salida de este comando deberá indicar que se configuró `AllowAgentForwarding`. +Agent forwarding may also be blocked on your server. You can check that agent forwarding is permitted by SSHing into the server and running `sshd_config`. The output from this command should indicate that `AllowAgentForwarding` is set. -### Tu `ssh-agent` local debe estar ejecutándose +### Your local `ssh-agent` must be running -En la mayoría de las computadoras, el sistema operativo lanza el `ssh-agent` automáticamente. Sin embargo, en Windows, tienes que hacerlo manualmente. Tenemos [una guía de cómo empezar con el `ssh-agent` cuando abres Git Bash][autolaunch-ssh-agent]. +On most computers, the operating system automatically launches `ssh-agent` for you. On Windows, however, you need to do this manually. We have [a guide on how to start `ssh-agent` whenever you open Git Bash][autolaunch-ssh-agent]. -Para verificar que el `ssh-agent` se está ejecutando en tu computadora, teclea el siguiente comando en la terminal: +To verify that `ssh-agent` is running on your computer, type the following command in the terminal: ```shell $ echo "$SSH_AUTH_SOCK" @@ -135,15 +135,15 @@ $ echo "$SSH_AUTH_SOCK" > /tmp/launch-kNSlgU/Listeners ``` -### Tu llave debe estar disponible para el `ssh-agent` +### Your key must be available to `ssh-agent` -Puedes verificar que tu llave esté visible para el `ssh-agent` si ejecutas el siguiente comando: +You can check that your key is visible to `ssh-agent` by running the following command: ```shell ssh-add -L ``` -Si el comando dice que no hay identidad disponible, necesitarás agregar tu llave: +If the command says that no identity is available, you'll need to add your key: ```shell $ ssh-add yourkey @@ -151,7 +151,7 @@ $ ssh-add yourkey {% tip %} -En macOS, `ssh-agent` "olvidará" esta llave una vez que se reinicie durante el proceso de inicialización. Pero puedes importar tus llaves SSH en Keychain si utilizas este comando: +On macOS, `ssh-agent` will "forget" this key, once it gets restarted during reboots. But you can import your SSH keys into Keychain using this command: ```shell $ ssh-add -K yourkey @@ -161,5 +161,5 @@ $ ssh-add -K yourkey [tech-tips]: http://www.unixwiz.net/techtips/ssh-agent-forwarding.html [generating-keys]: /articles/generating-ssh-keys -[generating-keys]: /articles/generating-ssh-keys +[ssh-passphrases]: /ssh-key-passphrases/ [autolaunch-ssh-agent]: /github/authenticating-to-github/working-with-ssh-key-passphrases#auto-launching-ssh-agent-on-git-for-windows diff --git a/translations/es-ES/content/developers/webhooks-and-events/webhooks/webhook-events-and-payloads.md b/translations/es-ES/content/developers/webhooks-and-events/webhooks/webhook-events-and-payloads.md index d02f24f4a3..f98ec58b61 100644 --- a/translations/es-ES/content/developers/webhooks-and-events/webhooks/webhook-events-and-payloads.md +++ b/translations/es-ES/content/developers/webhooks-and-events/webhooks/webhook-events-and-payloads.md @@ -3,8 +3,8 @@ title: Webhook events and payloads intro: 'For each webhook event, you can review when the event occurs, an example payload, and descriptions about the payload object parameters.' product: '{% data reusables.gated-features.enterprise_account_webhooks %}' redirect_from: - - /early-access/integrations/webhooks/ - - /v3/activity/events/types/ + - /early-access/integrations/webhooks + - /v3/activity/events/types - /webhooks/event-payloads - /developers/webhooks-and-events/webhook-events-and-payloads versions: @@ -327,7 +327,7 @@ Webhook events are triggered based on the specificity of the domain you register Key | Type | Description ----|------|-------------{% ifversion fpt or ghes or ghae or ghec %} `action` |`string` | The action performed. Can be `created`.{% endif %} -`deployment` |`object` | The [deployment](/rest/reference/repos#list-deployments). +`deployment` |`object` | The [deployment](/rest/reference/deployments#list-deployments). {% data reusables.webhooks.repo_desc %} {% data reusables.webhooks.org_desc %} {% data reusables.webhooks.app_desc %} @@ -352,11 +352,11 @@ Key | Type | Description Key | Type | Description ----|------|-------------{% ifversion fpt or ghes or ghae or ghec %} `action` |`string` | The action performed. Can be `created`.{% endif %} -`deployment_status` |`object` | The [deployment status](/rest/reference/repos#list-deployment-statuses). +`deployment_status` |`object` | The [deployment status](/rest/reference/deployments#list-deployment-statuses). `deployment_status["state"]` |`string` | The new state. Can be `pending`, `success`, `failure`, or `error`. `deployment_status["target_url"]` |`string` | The optional link added to the status. `deployment_status["description"]`|`string` | The optional human-readable description added to the status. -`deployment` |`object` | The [deployment](/rest/reference/repos#list-deployments) that this status is associated with. +`deployment` |`object` | The [deployment](/rest/reference/deployments#list-deployments) that this status is associated with. {% data reusables.webhooks.repo_desc %} {% data reusables.webhooks.org_desc %} {% data reusables.webhooks.app_desc %} @@ -820,7 +820,7 @@ Activity related to {% data variables.product.prodname_registry %}. {% data reus Key | Type | Description ----|------|------------ `id` | `integer` | The unique identifier of the page build. -`build` | `object` | The [List GitHub Pages builds](/rest/reference/repos#list-github-pages-builds) itself. +`build` | `object` | The [List GitHub Pages builds](/rest/reference/pages#list-github-pages-builds) itself. {% data reusables.webhooks.repo_desc %} {% data reusables.webhooks.org_desc %} {% data reusables.webhooks.app_desc %} @@ -846,7 +846,7 @@ Key | Type | Description ----|------|------------ `zen` | `string` | Random string of GitHub zen. `hook_id` | `integer` | The ID of the webhook that triggered the ping. -`hook` | `object` | The [webhook configuration](/rest/reference/repos#get-a-repository-webhook). +`hook` | `object` | The [webhook configuration](/rest/reference/webhooks#get-a-repository-webhook). `hook[app_id]` | `integer` | When you register a new {% data variables.product.prodname_github_app %}, {% data variables.product.product_name %} sends a ping event to the **webhook URL** you specified during registration. The event contains the `app_id`, which is required for [authenticating](/apps/building-integrations/setting-up-and-registering-github-apps/about-authentication-options-for-github-apps/) an app. {% data reusables.webhooks.repo_desc %} {% data reusables.webhooks.org_desc %} @@ -1197,8 +1197,9 @@ Key | Type | Description {% ifversion fpt or ghes or ghec %} ## security_advisory -Activity related to a security advisory. A security advisory provides information about security-related vulnerabilities in software on GitHub. The security advisory dataset also powers the GitHub security alerts, see "[About alerts for vulnerable dependencies](/github/managing-security-vulnerabilities/about-alerts-for-vulnerable-dependencies/)." -{% endif %} +Activity related to a security advisory that has been reviewed by {% data variables.product.company_short %}. A {% data variables.product.company_short %}-reviewed security advisory provides information about security-related vulnerabilities in software on {% data variables.product.prodname_dotcom %}. + +The security advisory dataset also powers the GitHub {% data variables.product.prodname_dependabot_alerts %}. For more information, see "[About alerts for vulnerable dependencies](/github/managing-security-vulnerabilities/about-alerts-for-vulnerable-dependencies/)." ### Availability @@ -1215,6 +1216,8 @@ Key | Type | Description {{ webhookPayloadsForCurrentVersion.security_advisory.published }} +{% endif %} + {% ifversion fpt or ghec %} ## sponsorship diff --git a/translations/es-ES/content/education/explore-the-benefits-of-teaching-and-learning-with-github-education/use-github-at-your-educational-institution/about-campus-advisors.md b/translations/es-ES/content/education/explore-the-benefits-of-teaching-and-learning-with-github-education/use-github-at-your-educational-institution/about-campus-advisors.md index 5061637838..77e4c35b89 100644 --- a/translations/es-ES/content/education/explore-the-benefits-of-teaching-and-learning-with-github-education/use-github-at-your-educational-institution/about-campus-advisors.md +++ b/translations/es-ES/content/education/explore-the-benefits-of-teaching-and-learning-with-github-education/use-github-at-your-educational-institution/about-campus-advisors.md @@ -1,6 +1,6 @@ --- -title: Acerca de Asesores de campus -intro: 'Como instructor o mentor, aprende a usar {% data variables.product.prodname_dotcom %} en tu escuela con el soporte técnico y la capacitación de Asesores de campus.' +title: About Campus Advisors +intro: 'As an instructor or mentor, learn to use {% data variables.product.prodname_dotcom %} at your school with Campus Advisors training and support.' redirect_from: - /education/teach-and-learn-with-github-education/about-campus-advisors - /github/teaching-and-learning-with-github-education/about-campus-advisors @@ -9,8 +9,7 @@ redirect_from: versions: fpt: '*' --- - -Profesores, maestros y mentores pueden usar la capacitación en línea de Asesores de campus para ser expertos en Git y {% data variables.product.prodname_dotcom %} y aprender las mejores prácticas para enseñarles a los alumnos con {% data variables.product.prodname_dotcom %}. Para obtener más información, consulta "[Asesores de campus](https://education.github.com/teachers/advisors)". +Professors, teachers and mentors can use the Campus Advisors online training to master Git and {% data variables.product.prodname_dotcom %} and learn best practices for teaching students with {% data variables.product.prodname_dotcom %}. For more information, see "[Campus Advisors](https://education.github.com/teachers/advisors)." {% note %} @@ -18,6 +17,6 @@ Profesores, maestros y mentores pueden usar la capacitación en línea de Asesor {% endnote %} -Los maestros pueden administrar un curso sobre desarrollo de software con {% data variables.product.prodname_education %}. {% data variables.product.prodname_classroom %} te ayuda a distribuir código, proporcionar retroalimentación y administrar el trabajo del curso utilizando {% data variables.product.product_name %}. Para obtener más información, consulta la sección "[Administrar el trabajo del curso con {% data variables.product.prodname_classroom %}](/education/manage-coursework-with-github-classroom)". +Teachers can manage a course on software development with {% data variables.product.prodname_education %}. {% data variables.product.prodname_classroom %} allows you to distribute code, provide feedback, and manage coursework using {% data variables.product.product_name %}. For more information, see "[Manage coursework with {% data variables.product.prodname_classroom %}](/education/manage-coursework-with-github-classroom)." -Si eres un estudiante validado o académico y tu escuela no está asociada con {% data variables.product.prodname_dotcom %} como una escuela {% data variables.product.prodname_campus_program %}, aún puedes solicitar descuentos de forma individual para usar {% data variables.product.prodname_dotcom %}. Para obtener más información, consulta la sección "[Usar {% data variables.product.prodname_dotcom %} para tu trabajo escolar](/education/teach-and-learn-with-github-education/use-github-for-your-schoolwork)" o "[Usar {% data variables.product.prodname_dotcom %} en tu aula y en tu investigación](/education/teach-and-learn-with-github-education/use-github-in-your-classroom-and-research/)". +If you're a student or academic faculty and your school isn't partnered with {% data variables.product.prodname_dotcom %} as a {% data variables.product.prodname_campus_program %} school, then you can still individually apply for discounts to use {% data variables.product.prodname_dotcom %}. For more information, see "[Use {% data variables.product.prodname_dotcom %} for your schoolwork](/education/teach-and-learn-with-github-education/use-github-for-your-schoolwork)" or "[Use {% data variables.product.prodname_dotcom %} in your classroom and research](/education/teach-and-learn-with-github-education/use-github-in-your-classroom-and-research/)." diff --git a/translations/es-ES/content/education/explore-the-benefits-of-teaching-and-learning-with-github-education/use-github-for-your-schoolwork/why-wasnt-my-application-for-a-student-developer-pack-approved.md b/translations/es-ES/content/education/explore-the-benefits-of-teaching-and-learning-with-github-education/use-github-for-your-schoolwork/why-wasnt-my-application-for-a-student-developer-pack-approved.md index 514bf5d42f..3249d81ea8 100644 --- a/translations/es-ES/content/education/explore-the-benefits-of-teaching-and-learning-with-github-education/use-github-for-your-schoolwork/why-wasnt-my-application-for-a-student-developer-pack-approved.md +++ b/translations/es-ES/content/education/explore-the-benefits-of-teaching-and-learning-with-github-education/use-github-for-your-schoolwork/why-wasnt-my-application-for-a-student-developer-pack-approved.md @@ -4,7 +4,7 @@ intro: 'Review common reasons that applications for the {% data variables.produc redirect_from: - /education/teach-and-learn-with-github-education/why-wasnt-my-application-for-a-student-developer-pack-approved - /github/teaching-and-learning-with-github-education/why-wasnt-my-application-for-a-student-developer-pack-approved - - /articles/why-was-my-application-for-a-student-developer-pack-denied/ + - /articles/why-was-my-application-for-a-student-developer-pack-denied - /articles/why-wasn-t-my-application-for-a-student-developer-pack-approved - /articles/why-wasnt-my-application-for-a-student-developer-pack-approved - /education/explore-the-benefits-of-teaching-and-learning-with-github-education/why-wasnt-my-application-for-a-student-developer-pack-approved diff --git a/translations/es-ES/content/education/explore-the-benefits-of-teaching-and-learning-with-github-education/use-github-in-your-classroom-and-research/apply-for-an-educator-or-researcher-discount.md b/translations/es-ES/content/education/explore-the-benefits-of-teaching-and-learning-with-github-education/use-github-in-your-classroom-and-research/apply-for-an-educator-or-researcher-discount.md index e43ffc528e..e1e2026fb4 100644 --- a/translations/es-ES/content/education/explore-the-benefits-of-teaching-and-learning-with-github-education/use-github-in-your-classroom-and-research/apply-for-an-educator-or-researcher-discount.md +++ b/translations/es-ES/content/education/explore-the-benefits-of-teaching-and-learning-with-github-education/use-github-in-your-classroom-and-research/apply-for-an-educator-or-researcher-discount.md @@ -1,29 +1,28 @@ --- -title: Postularse para un descuento de investigador o educador -intro: 'Si eres educador o investigador, puedes aplicar para recibir {% data variables.product.prodname_team %} para la cuenta de tu organización de manera gratuita.' +title: Apply for an educator or researcher discount +intro: 'If you''re an educator or a researcher, you can apply to receive {% data variables.product.prodname_team %} for your organization account for free.' redirect_from: - /education/teach-and-learn-with-github-education/apply-for-an-educator-or-researcher-discount - /github/teaching-and-learning-with-github-education/applying-for-an-educator-or-researcher-discount - - /articles/applying-for-a-classroom-discount/ - - /articles/applying-for-a-discount-for-your-school-club/ - - /articles/applying-for-an-academic-research-discount/ - - /articles/applying-for-a-discount-for-your-first-robotics-team/ + - /articles/applying-for-a-classroom-discount + - /articles/applying-for-a-discount-for-your-school-club + - /articles/applying-for-an-academic-research-discount + - /articles/applying-for-a-discount-for-your-first-robotics-team - /articles/applying-for-an-educator-or-researcher-discount - /education/explore-the-benefits-of-teaching-and-learning-with-github-education/apply-for-an-educator-or-researcher-discount versions: fpt: '*' -shortTitle: Solicitar un descuento +shortTitle: Apply for a discount --- - -## Acerca de descuentos para educadores e investigadores +## About educator and researcher discounts {% data reusables.education.about-github-education-link %} {% data reusables.education.educator-requirements %} -Para obtener más información acerca de las cuentas de usuario en {% data variables.product.product_name %}, consulta la sección "[Registrarse para una cuenta nueva de {% data variables.product.prodname_dotcom %}](/github/getting-started-with-github/signing-up-for-a-new-github-account)". +For more information about user accounts on {% data variables.product.product_name %}, see "[Signing up for a new {% data variables.product.prodname_dotcom %} account](/github/getting-started-with-github/signing-up-for-a-new-github-account)." -## Aplicar para un descuento de educador o investigador +## Applying for an educator or researcher discount {% data reusables.education.benefits-page %} {% data reusables.education.click-get-teacher-benefits %} @@ -33,28 +32,30 @@ Para obtener más información acerca de las cuentas de usuario en {% data varia {% data reusables.education.plan-to-use-github %} {% data reusables.education.submit-application %} -## Actualizar tu organización +## Upgrading your organization -Después de que se apruebe tu solicitud para un descuento de investigador o de maestro, puedes mejorar las organizaciones que utilizas con tu comunidad educativa a {% data variables.product.prodname_team %}, lo cual permitirá que tengas usuarios y repositorios privados ilimitados con todas las características gratuitamente. Puedes actualizar una organización existente o crear una organización nueva para actualizarla. +After your request for an educator or researcher discount has been approved, you can upgrade the organizations you use with your learning community to {% data variables.product.prodname_team %}, which allows unlimited users and private repositories with full features, for free. You can upgrade an existing organization or create a new organization to upgrade. -### Actualizar una organización existente +### Upgrading an existing organization {% data reusables.education.upgrade-page %} {% data reusables.education.upgrade-organization %} -### Actualizar una organización nueva +### Upgrading a new organization {% data reusables.education.upgrade-page %} -1. Da clic en {% octicon "plus" aria-label="The plus symbol" %}**Crear una organización**. ![Botón para crear una organizacion](/assets/images/help/education/create-org-button.png) -3. Lee la información, posteriormente da clic en **Crear organización**. ![Botón Create organization (Crear organización)](/assets/images/help/education/create-organization-button.png) -4. Debajo de "Elige tu plan", da clic en **Elegir {% data variables.product.prodname_free_team %}**. -5. Sigue las propuestas para crear tu organización. +1. Click {% octicon "plus" aria-label="The plus symbol" %} **Create an organization**. + ![Create an organization button](/assets/images/help/education/create-org-button.png) +3. Read the information, then click **Create organization**. + ![Create organization button](/assets/images/help/education/create-organization-button.png) +4. Under "Choose your plan", click **Choose {% data variables.product.prodname_free_team %}**. +5. Follow the prompts to create your organization. {% data reusables.education.upgrade-page %} {% data reusables.education.upgrade-organization %} -## Leer más +## Further reading -- "[¿Por que no ha sido aprobada mi aplicación para recibir un descuento como educador o investigador?](/articles/why-wasn-t-my-application-for-an-educator-or-researcher-discount-approved)" +- "[Why wasn't my application for an educator or researcher discount approved?](/articles/why-wasn-t-my-application-for-an-educator-or-researcher-discount-approved)" - [{% data variables.product.prodname_education %}](https://education.github.com) -- [Videos de {% data variables.product.prodname_classroom %}](https://classroom.github.com/videos) +- [{% data variables.product.prodname_classroom %} Videos](https://classroom.github.com/videos) - [{% data variables.product.prodname_education_community %}](https://education.github.community/) diff --git a/translations/es-ES/content/education/explore-the-benefits-of-teaching-and-learning-with-github-education/use-github-in-your-classroom-and-research/why-wasnt-my-application-for-an-educator-or-researcher-discount-approved.md b/translations/es-ES/content/education/explore-the-benefits-of-teaching-and-learning-with-github-education/use-github-in-your-classroom-and-research/why-wasnt-my-application-for-an-educator-or-researcher-discount-approved.md index e00e698b34..82cc504911 100644 --- a/translations/es-ES/content/education/explore-the-benefits-of-teaching-and-learning-with-github-education/use-github-in-your-classroom-and-research/why-wasnt-my-application-for-an-educator-or-researcher-discount-approved.md +++ b/translations/es-ES/content/education/explore-the-benefits-of-teaching-and-learning-with-github-education/use-github-in-your-classroom-and-research/why-wasnt-my-application-for-an-educator-or-researcher-discount-approved.md @@ -1,48 +1,47 @@ --- -title: ¿Por qué mi solicitud para un descuento de educador o de investigador no se aprobó? -intro: Revisa las razones comunes por las que las solicitudes para un descuento de educador o de investigador no se aprueban y lee las sugerencias para volver a solicitarlo con éxito. +title: Why wasn't my application for an educator or researcher discount approved? +intro: Review common reasons that applications for an educator or researcher discount are not approved and learn tips for reapplying successfully. redirect_from: - /education/teach-and-learn-with-github-education/why-wasnt-my-application-for-an-educator-or-researcher-discount-approved - /github/teaching-and-learning-with-github-education/why-wasnt-my-application-for-an-educator-or-researcher-discount-approved - - /articles/why-was-my-application-for-an-educator-or-researcher-discount-denied/ + - /articles/why-was-my-application-for-an-educator-or-researcher-discount-denied - /articles/why-wasn-t-my-application-for-an-educator-or-researcher-discount-approved - /articles/why-wasnt-my-application-for-an-educator-or-researcher-discount-approved - /education/explore-the-benefits-of-teaching-and-learning-with-github-education/why-wasnt-my-application-for-an-educator-or-researcher-discount-approved versions: fpt: '*' -shortTitle: Aplicación sin aprobar +shortTitle: Application not approved --- - {% tip %} -**Sugerencia:** {% data reusables.education.about-github-education-link %} +**Tip:** {% data reusables.education.about-github-education-link %} {% endtip %} -## Documentos poco claros de la prueba de afiliación +## Unclear proof of affiliation documents -Si la imagen que cargaste no identifica claramente tu empleo actual con una escuela o una universidad, debes volver a presentar la solicitud y cargar otra imagen de la identificación de tu facultad o carta de verificación de empleo con información clara. +If the image you uploaded doesn't clearly identify your current employment with a school or university, you must reapply and upload another image of your faculty ID or employment verification letter with clear information. {% data reusables.education.pdf-support %} -## Usar un correo electrónico académico con un dominio no verificado +## Using an academic email with an unverified domain -Si tu dirección de correo electrónico académica tiene un dominio no verificado, podemos solicitar más pruebas de tu situación académica. {% data reusables.education.upload-different-image %} +If your academic email address has an unverified domain, we may require further proof of your academic status. {% data reusables.education.upload-different-image %} {% data reusables.education.pdf-support %} -## Usar un correo electrónico académico de una escuela con políticas de correo electrónico poco estrictas +## Using an academic email from a school with lax email policies -Si los ex alumnos y los profesores retirados de tu escuela tienen acceso vitalicio a las direcciones de correo electrónico suministradas por la escuela, podemos requerir más pruebas de tu situación académica. {% data reusables.education.upload-different-image %} +If alumni and retired faculty of your school have lifetime access to school-issued email addresses, we may require further proof of your academic status. {% data reusables.education.upload-different-image %} {% data reusables.education.pdf-support %} -Si tienes otras preguntas o inquietudes acerca del dominio de la escuela, solicita al personal de informática de tu escuela que nos contacte. +If you have other questions or concerns about the school domain, please ask your school IT staff to contact us. -## Personas que no son estudiantes solicitan un paquete de desarrollo para estudiantes +## Non-student applying for Student Developer Pack -Los educadores y los investigadores no son elegibles para las ofertas de los socios que vienen con el [{% data variables.product.prodname_student_pack %}](https://education.github.com/pack). Cuando vuelves a presentar una solicitud, asegúrate de elegir **Profesor** para describir tu situación académica. +Educators and researchers are not eligible for the partner offers that come with the [{% data variables.product.prodname_student_pack %}](https://education.github.com/pack). When you reapply, make sure that you choose **Faculty** to describe your academic status. -## Leer más +## Further reading -- "[Solicitar un descuento de educador o de investigador](/education/explore-the-benefits-of-teaching-and-learning-with-github-education/apply-for-an-educator-or-researcher-discount)" +- "[Apply for an educator or researcher discount](/education/explore-the-benefits-of-teaching-and-learning-with-github-education/apply-for-an-educator-or-researcher-discount)" diff --git a/translations/es-ES/content/get-started/index.md b/translations/es-ES/content/get-started/index.md index 8917ef270e..8131599b42 100644 --- a/translations/es-ES/content/get-started/index.md +++ b/translations/es-ES/content/get-started/index.md @@ -37,6 +37,7 @@ featuredLinks: - /github/getting-started-with-github/signing-up-for-a-new-github-account - /get-started/quickstart/hello-world - /github/getting-started-with-github/set-up-git + - /get-started/learning-about-github/about-versions-of-github-docs - /github/getting-started-with-github/github-glossary - /github/getting-started-with-github/fork-a-repo - /github/getting-started-with-github/keyboard-shortcuts diff --git a/translations/es-ES/content/get-started/learning-about-github/about-github-advanced-security.md b/translations/es-ES/content/get-started/learning-about-github/about-github-advanced-security.md index d99e76f16a..c8b27e59df 100644 --- a/translations/es-ES/content/get-started/learning-about-github/about-github-advanced-security.md +++ b/translations/es-ES/content/get-started/learning-about-github/about-github-advanced-security.md @@ -16,9 +16,9 @@ shortTitle: GitHub Advanced Security --- ## About {% data variables.product.prodname_GH_advanced_security %} -{% data variables.product.prodname_dotcom %} has many features that help you improve and maintain the quality of your code. Some of these are included in all plans{% ifversion not ghae %}, such as dependency graph and {% data variables.product.prodname_dependabot_alerts %}{% endif %}. Other security features require a license for {% data variables.product.prodname_GH_advanced_security %} to run on repositories apart from public repositories on {% data variables.product.prodname_dotcom_the_website %}. +{% data variables.product.prodname_dotcom %} has many features that help you improve and maintain the quality of your code. Some of these are included in all plans{% ifversion not ghae %}, such as dependency graph and {% data variables.product.prodname_dependabot_alerts %}{% endif %}. Other security features require {% data variables.product.prodname_GH_advanced_security %}{% ifversion fpt or ghec %} to run on repositories apart from public repositories on {% data variables.product.prodname_dotcom_the_website %}{% endif %}. -{% ifversion fpt or ghes > 3.0 or ghec %}For more information about purchasing {% data variables.product.prodname_GH_advanced_security %}, see "[About billing for {% data variables.product.prodname_GH_advanced_security %}](/billing/managing-billing-for-github-advanced-security/about-billing-for-github-advanced-security)."{% elsif ghae %}There is no charge for {% data variables.product.prodname_GH_advanced_security %} on {% data variables.product.prodname_ghe_managed %} during the beta release.{% endif %} +{% ifversion ghes > 3.0 or ghec %}For information about buying a license for {% data variables.product.prodname_GH_advanced_security %}, see "[About billing for {% data variables.product.prodname_GH_advanced_security %}](/billing/managing-billing-for-github-advanced-security/about-billing-for-github-advanced-security)."{% elsif ghae %}There is no charge for {% data variables.product.prodname_GH_advanced_security %} on {% data variables.product.prodname_ghe_managed %} during the beta release.{% elsif fpt %}To purchase a {% data variables.product.prodname_GH_advanced_security %} license, you must be using {% data variables.product.prodname_enterprise %}. For information about upgrading to {% data variables.product.prodname_enterprise %} with {% data variables.product.prodname_GH_advanced_security %}, see "[GitHub's products](/get-started/learning-about-github/githubs-products)" and "[About billing for {% data variables.product.prodname_GH_advanced_security %}](/billing/managing-billing-for-github-advanced-security/about-billing-for-github-advanced-security)."{% endif %} ## About {% data variables.product.prodname_advanced_security %} features @@ -32,45 +32,49 @@ A {% data variables.product.prodname_GH_advanced_security %} license provides th - **Dependency review** - Show the full impact of changes to dependencies and see details of any vulnerable versions before you merge a pull request. For more information, see "[About dependency review](/code-security/supply-chain-security/about-dependency-review)." {% endif %} +{% ifversion ghec or ghes > 3.1 %} +- **Security overview** - Review the security configuration and alerts for an organization and identify the repositories at greatest risk. For more information, see "[About the security overview](/code-security/security-overview/about-the-security-overview)." +{% endif %} + For information about {% data variables.product.prodname_advanced_security %} features that are in development, see "[{% data variables.product.prodname_dotcom %} public roadmap](https://github.com/github/roadmap)." For an overview of all security features, see "[{% data variables.product.prodname_dotcom %} security features](/code-security/getting-started/github-security-features)." -{% ifversion ghes or ghec %} +{% ifversion fpt or ghec %} +{% data variables.product.prodname_GH_advanced_security %} features are enabled for all public repositories on {% data variables.product.prodname_dotcom_the_website %}. Organizations that use {% data variables.product.prodname_ghe_cloud %} with {% data variables.product.prodname_advanced_security %} can additionally enable these features for private and internal repositories. They also have access an organization-level security overview. {% ifversion fpt %}For more information, see the [{% data variables.product.prodname_ghe_cloud %} documentation](/enterprise-cloud@latest/get-started/learning-about-github/about-github-advanced-security#enabling-advanced-security-features).{% endif %} +{% endif %} +{% ifversion ghes or ghec %} ## Deploying GitHub Advanced Security in your enterprise -To learn about what you need to know to plan your {% data variables.product.prodname_GH_advanced_security %} deployment at a high level, see "[Overview of {% data variables.product.prodname_GH_advanced_security %}](/admin/advanced-security/overview-of-github-advanced-security-deployment)." +To learn about what you need to know to plan your {% data variables.product.prodname_GH_advanced_security %} deployment at a high level, see "[Overview of {% data variables.product.prodname_GH_advanced_security %} deployment](/admin/advanced-security/overview-of-github-advanced-security-deployment)." To review the rollout phases we recommended in more detail, see "[Deploying {% data variables.product.prodname_GH_advanced_security %} in your enterprise](/admin/advanced-security/deploying-github-advanced-security-in-your-enterprise)." - {% endif %} -{% ifversion ghes or ghae %} -## Enabling {% data variables.product.prodname_advanced_security %} features on {% data variables.product.product_name %} +{% ifversion not fpt %} +## Enabling {% data variables.product.prodname_advanced_security %} features -{% ifversion ghes %} -The site administrator must enable {% data variables.product.prodname_advanced_security %} for {% data variables.product.product_location %} before you can use these features. For more information, see "[Configuring Advanced Security features](/admin/configuration/configuring-advanced-security-features)." -{% endif %} +{%- ifversion ghes %} +The site administrator must enable {% data variables.product.prodname_advanced_security %} for {% data variables.product.product_location %} before you can use these features. For more information, see "[Configuring Advanced Security features](/admin/configuration/configuring-advanced-security-features). -Once your system is set up, you can enable and disable these features at the organization or repository level. For more information, see "[Managing security and analysis settings for your organization](/organizations/keeping-your-organization-secure/managing-security-and-analysis-settings-for-your-organization)" and "[Managing security and analysis settings for your repository](/github/administering-a-repository/managing-security-and-analysis-settings-for-your-repository)." +Once your system is set up, you can enable and disable these features at the organization or repository level. -{% endif %} +{%- elsif ghec %} +For public repositories these features are permanently on and can only be disabled if you change the visibility of the project so that the code is no longer public. -{% ifversion not ghae %} -## Enabling {% data variables.product.prodname_advanced_security %} features on {% data variables.product.prodname_dotcom_the_website %} +For other repositories, once you have a license for your enterprise account, you can enable and disable these features at the organization or repository level. -For public repositories on {% data variables.product.prodname_dotcom_the_website %}, these features are permanently on and can only be disabled if you change the visibility of the project so that the code is no longer public. +{%- elsif ghae %} +You can enable and disable these features at the organization or repository level. +{%- endif %} +For more information, see "[Managing security and analysis settings for your organization](/organizations/keeping-your-organization-secure/managing-security-and-analysis-settings-for-your-organization)" and "[Managing security and analysis settings for your repository](/github/administering-a-repository/managing-security-and-analysis-settings-for-your-repository)." -For other repositories, once you have a license for your enterprise account, you can enable and disable these features at the organization or repository level. {% ifversion fpt or ghes > 3.0 or ghec %}For more information, see "[Managing security and analysis settings for your organization](/organizations/keeping-your-organization-secure/managing-security-and-analysis-settings-for-your-organization)" and "[Managing security and analysis settings for your repository](/github/administering-a-repository/managing-security-and-analysis-settings-for-your-repository)."{% endif %} - -{% endif %} - -{% ifversion fpt or ghec %} +{% ifversion ghec or ghes > 3.0 %} If you have an enterprise account, license use for the entire enterprise is shown on your enterprise license page. For more information, see "[Viewing your {% data variables.product.prodname_GH_advanced_security %} usage](/billing/managing-licensing-for-github-advanced-security/viewing-your-github-advanced-security-usage)." +{% endif %} {% endif %} {% ifversion ghec or ghes > 3.0 or ghae %} - ## Further reading - "[Enforcing policies for {% data variables.product.prodname_advanced_security %} in your enterprise account](/admin/policies/enforcing-policies-for-advanced-security-in-your-enterprise)" diff --git a/translations/es-ES/content/get-started/learning-about-github/about-versions-of-github-docs.md b/translations/es-ES/content/get-started/learning-about-github/about-versions-of-github-docs.md new file mode 100644 index 0000000000..71486683c9 --- /dev/null +++ b/translations/es-ES/content/get-started/learning-about-github/about-versions-of-github-docs.md @@ -0,0 +1,56 @@ +--- +title: About versions of GitHub Docs +intro: "You can read documentation that reflects the {% data variables.product.company_short %} product you're currently using." +versions: '*' +shortTitle: Docs versions +--- + +## About versions of {% data variables.product.prodname_docs %} + +{% data variables.product.company_short %} offers different products for storing and collaborating on code. The product you use determines which features are available to you. For more information, see "[{% data variables.product.company_short %}'s products](/get-started/learning-about-github/githubs-products)." + +This website, {% data variables.product.prodname_docs %}, provides documentation for all of {% data variables.product.company_short %}'s products. If the content you're reading applies to more than one product, you can choose the version of the documentation that's relevant to you by selecting the product you're currently using. + +At the top of a page on {% data variables.product.prodname_docs %}, select the dropdown menu and click a product. If your browser window is not wide enough to display the full navigation bar, you may need to click {% octicon "three-bars" aria-label="The three bars icon" %} first. + +![Screenshot of the dropdown menu for picking a version of {% data variables.product.prodname_docs %} to view](/assets/images/help/docs/version-picker.png) + +{% note %} + +**Note**: You can try changing the version now. You're viewing {% ifversion ghes %}a{% else %}the{% endif %} {% ifversion fpt %}Free, Pro, & Team{% else %}{% data variables.product.product_name %}{% endif %} version of this article. + +{% endnote %} + +## Determining which {% data variables.product.company_short %} product you use + +You can determine which {% data variables.product.company_short %} product you're currently using by reviewing the URL in the address bar of your browser and the heading for the {% data variables.product.prodname_dotcom %} website you're on. + +You may use more than one {% data variables.product.company_short %} product. For example, you might contribute to open source on {% data variables.product.prodname_dotcom_the_website %} and collaborate on code on your employer's {% data variables.product.prodname_ghe_server %} instance. You may need to view different versions of the same article at different times, depending on the problem you're currently trying to solve. + +### {% data variables.product.prodname_dotcom_the_website %} plans or {% data variables.product.prodname_ghe_cloud %} + +If you access {% data variables.product.prodname_dotcom %} at https://github.com, you're either using the features of a Free, Pro, or Team plan, or you're using {% data variables.product.prodname_ghe_cloud %}. + +In a wide browser window, there is no text that immediately follows the {% data variables.product.company_short %} logo on the left side of the header. + +![Screenshot of the address bar and the {% data variables.product.prodname_dotcom_the_website %} header in a browser](/assets/images/help/docs/header-dotcom.png) + +On {% data variables.product.prodname_dotcom_the_website %}, each account has its own plan. Each personal account has an associated plan that provides access to certain features, and each organization has a different associated plan. If your personal account is a member of an organization on {% data variables.product.prodname_dotcom_the_website %}, you may have access to different features when you use resources owned by that organization than when you use resources owned by your personal account. For more information, see "[Types of {% data variables.product.prodname_dotcom %} accounts](/get-started/learning-about-github/types-of-github-accounts)." + +If you don't know whether an organization uses {% data variables.product.prodname_ghe_cloud %}, ask an organization owner. For more information, see "[Viewing people's roles in an organization](/account-and-profile/setting-up-and-managing-your-github-user-account/managing-your-membership-in-organizations/viewing-peoples-roles-in-an-organization)." + +### {% data variables.product.prodname_ghe_server %} + +If you access {% data variables.product.prodname_dotcom %} at a URL other than https://github.com, `https://*.githubenterprise.com`, `https://*.github.us`, or `https://*.ghe.com`, you're using {% data variables.product.prodname_ghe_server %}. For example, you may access {% data variables.product.prodname_ghe_server %} at `https://github.YOUR-COMPANY-NAME.com`. Your administrators may choose a URL that doesn't include the word "{% data variables.product.company_short %}." + +In a wide browser window, the word "Enterprise" immediately follows the {% data variables.product.company_short %} logo on the left side of the header. + +![Screenshot of address bar and {% data variables.product.prodname_ghe_server %} header in a browser](/assets/images/help/docs/header-ghes.png) + +### {% data variables.product.prodname_ghe_managed %} + +If you access {% data variables.product.prodname_dotcom %} at `https://*.githubenterprise.com`, `https://*.github.us`, or `https://*.ghe.com`, you're using {% data variables.product.prodname_ghe_managed %}. + +In a wide browser window, the words "{% data variables.product.prodname_ghe_managed %}" immediately follow the {% data variables.product.company_short %} logo in the header. + +![Address bar and {% data variables.product.prodname_ghe_managed %} header in a browser](/assets/images/help/docs/header-ghae.png) diff --git a/translations/es-ES/content/get-started/learning-about-github/access-permissions-on-github.md b/translations/es-ES/content/get-started/learning-about-github/access-permissions-on-github.md index 9d725ebcf0..07127770d3 100644 --- a/translations/es-ES/content/get-started/learning-about-github/access-permissions-on-github.md +++ b/translations/es-ES/content/get-started/learning-about-github/access-permissions-on-github.md @@ -7,7 +7,7 @@ redirect_from: - /articles/access-permissions-on-github - /github/getting-started-with-github/access-permissions-on-github - /github/getting-started-with-github/learning-about-github/access-permissions-on-github -intro: 'While you can grant read/write access to collaborators on a personal repository, members of an organization can have more granular access permissions for the organization''s repositories.' +intro: 'With roles, you can control who has access to your accounts and resources on {% data variables.product.product_name %} and the level of access each person has.' versions: fpt: '*' ghes: '*' @@ -18,6 +18,13 @@ topics: - Accounts shortTitle: Access permissions --- + +## About access permissions on {% data variables.product.prodname_dotcom %} + +{% data reusables.organizations.about-roles %} + +Roles work differently for different types of accounts. For more information about accounts, see "[Types of {% data variables.product.prodname_dotcom %} accounts](/get-started/learning-about-github/types-of-github-accounts)." + ## Personal user accounts A repository owned by a user account has two permission levels: the *repository owner* and *collaborators*. For more information, see "[Permission levels for a user account repository](/articles/permission-levels-for-a-user-account-repository)." diff --git a/translations/es-ES/content/get-started/learning-about-github/githubs-products.md b/translations/es-ES/content/get-started/learning-about-github/githubs-products.md index 769487d60e..a45107bd4c 100644 --- a/translations/es-ES/content/get-started/learning-about-github/githubs-products.md +++ b/translations/es-ES/content/get-started/learning-about-github/githubs-products.md @@ -1,6 +1,6 @@ --- -title: Productos de GitHub -intro: 'Un resumen de los productos de {% data variables.product.prodname_dotcom %} y de los planes de precios.' +title: GitHub's products +intro: 'An overview of {% data variables.product.prodname_dotcom %}''s products and pricing plans.' redirect_from: - /articles/github-s-products - /articles/githubs-products @@ -18,94 +18,97 @@ topics: - Desktop - Security --- +## About {% data variables.product.prodname_dotcom %}'s products -## Acerca de los productos de {% data variables.product.prodname_dotcom %} +{% data variables.product.prodname_dotcom %} offers free and paid products for storing and collaborating on code. Some products apply only to user accounts, while other plans apply only to organization and enterprise accounts. For more information about accounts, see "[Types of {% data variables.product.prodname_dotcom %} accounts](/get-started/learning-about-github/types-of-github-accounts)." -{% data variables.product.prodname_dotcom %} ofrece productos gratuitos y pagos. Puedes ver los precios y una lista completa de las funciones de cada producto en <{% data variables.product.pricing_url %}>. {% data reusables.products.product-roadmap %} +You can see pricing and a full list of features for each product at <{% data variables.product.pricing_url %}>. {% data reusables.products.product-roadmap %} + +When you read {% data variables.product.prodname_docs %}, make sure to select the version that reflects your product. For more information, see "[About versions of {% data variables.product.prodname_docs %}](/get-started/learning-about-github/about-versions-of-github-docs)." ## {% data variables.product.prodname_free_user %} for user accounts -Con {% data variables.product.prodname_free_team %} para cuentas de usuario, puedes trabajar con colaboradores ilimitados en repositorios públicos ilimitados con un juego completo de características, y en repositorios privados ilimitados con un conjunto limitado de características. +With {% data variables.product.prodname_free_team %} for user accounts, you can work with unlimited collaborators on unlimited public repositories with a full feature set, and on unlimited private repositories with a limited feature set. -Con {% data variables.product.prodname_free_user %}, tu cuenta de usuario incluye: +With {% data variables.product.prodname_free_user %}, your user account includes: - {% data variables.product.prodname_gcf %} - {% data variables.product.prodname_dependabot_alerts %} -- Aplicación de la autenticación de dos factores -- 2,000 minutos de {% data variables.product.prodname_actions %} -- 500MB de almacenamiento de {% data variables.product.prodname_registry %} +- Two-factor authentication enforcement +- 2,000 {% data variables.product.prodname_actions %} minutes +- 500MB {% data variables.product.prodname_registry %} storage ## {% data variables.product.prodname_pro %} -Adicionalmente a las características disponibles con {% data variables.product.prodname_free_user %} para cuentas de usuario, {% data variables.product.prodname_pro %} incluye: -- {% data variables.contact.github_support %} por correo electrónico -- 3,000 minutos de {% data variables.product.prodname_actions %} -- 2GB de almacenamiento de {% data variables.product.prodname_registry %} -- Herramientas y perspectivas avanzadas en repositorios privados: - - Revisores requeridos para solicitudes de extracción - - Revisores múltiples para solicitudes de extracción - - Referencias auto-vinculadas +In addition to the features available with {% data variables.product.prodname_free_user %} for user accounts, {% data variables.product.prodname_pro %} includes: +- {% data variables.contact.github_support %} via email +- 3,000 {% data variables.product.prodname_actions %} minutes +- 2GB {% data variables.product.prodname_registry %} storage +- Advanced tools and insights in private repositories: + - Required pull request reviewers + - Multiple pull request reviewers + - Auto-linked references - {% data variables.product.prodname_pages %} - Wikis - - Ramas protegidas - - Propietarios del código - - Gráficos de información del repositorio: pulso, contribuyentes, tráfico, confirmaciones, frecuencia de código, red y bifurcaciones + - Protected branches + - Code owners + - Repository insights graphs: Pulse, contributors, traffic, commits, code frequency, network, and forks -## {% data variables.product.prodname_free_team %} para organizaciones +## {% data variables.product.prodname_free_team %} for organizations -Con {% data variables.product.prodname_free_team %} para organizaciones, puedes trabajar con colaboradores ilimitados en repositorios públicos ilimitados con un juego completo de características, o en repositorios privados ilimitados con un conjunto limitado de características. +With {% data variables.product.prodname_free_team %} for organizations, you can work with unlimited collaborators on unlimited public repositories with a full feature set, or unlimited private repositories with a limited feature set. -Adicionalmente a las características disponibles con {% data variables.product.prodname_free_user %} para cuentas de usuario, {% data variables.product.prodname_free_team %} para organizaciones incluye: +In addition to the features available with {% data variables.product.prodname_free_user %} for user accounts, {% data variables.product.prodname_free_team %} for organizations includes: - {% data variables.product.prodname_gcf %} -- Debates de equipo -- Controles de acceso del equipo para administrar grupos -- 2,000 minutos de {% data variables.product.prodname_actions %} -- 500MB de almacenamiento de {% data variables.product.prodname_registry %} +- Team discussions +- Team access controls for managing groups +- 2,000 {% data variables.product.prodname_actions %} minutes +- 500MB {% data variables.product.prodname_registry %} storage ## {% data variables.product.prodname_team %} -Adicionalmente a las características disponibles con {% data variables.product.prodname_free_team %} para organizaciones, {% data variables.product.prodname_team %} incluye: -- {% data variables.contact.github_support %} por correo electrónico -- 3,000 minutos de {% data variables.product.prodname_actions %} -- 2GB de almacenamiento de {% data variables.product.prodname_registry %} -- Herramientas y perspectivas avanzadas en repositorios privados: - - Revisores requeridos para solicitudes de extracción - - Revisores múltiples para solicitudes de extracción +In addition to the features available with {% data variables.product.prodname_free_team %} for organizations, {% data variables.product.prodname_team %} includes: +- {% data variables.contact.github_support %} via email +- 3,000 {% data variables.product.prodname_actions %} minutes +- 2GB {% data variables.product.prodname_registry %} storage +- Advanced tools and insights in private repositories: + - Required pull request reviewers + - Multiple pull request reviewers - {% data variables.product.prodname_pages %} - Wikis - - Ramas protegidas - - Propietarios del código - - Gráficos de información del repositorio: pulso, contribuyentes, tráfico, confirmaciones, frecuencia de código, red y bifurcaciones - - Solicitudes de extracción en borrador - - Revisores de equipo para solicitudes de extracción - - Recordatorios programados + - Protected branches + - Code owners + - Repository insights graphs: Pulse, contributors, traffic, commits, code frequency, network, and forks + - Draft pull requests + - Team pull request reviewers + - Scheduled reminders {% ifversion fpt or ghec %} -- La opción para habilitar {% data variables.product.prodname_github_codespaces %} - - Los propietarios de organizaciones pueden habilitar los {% data variables.product.prodname_github_codespaces %} para la organización si configuran un límite de gastos y otorgan permisos de usuario para los miembros de su organziación. Para obtener más información, consulta la sección "[Habilitar los Codespaces para tu organización](/codespaces/managing-codespaces-for-your-organization/enabling-codespaces-for-your-organization)". +- The option to enable {% data variables.product.prodname_github_codespaces %} + - Organization owners can enable {% data variables.product.prodname_github_codespaces %} for the organization by setting a spending limit and granting user permissions for members of their organization. For more information, see "[Enabling Codespaces for your organization](/codespaces/managing-codespaces-for-your-organization/enabling-codespaces-for-your-organization)." {% endif %} {% data reusables.github-actions.actions-billing %} ## {% data variables.product.prodname_enterprise %} -{% data variables.product.prodname_enterprise %} incluye dos opciones de despliegue: hospedado en la nuba y auto-hospedado. +{% data variables.product.prodname_enterprise %} includes two deployment options: cloud-hosted and self-hosted. -Adicionalmente a las características disponibles con {% data variables.product.prodname_team %}, {% data variables.product.prodname_enterprise %} incluye: +In addition to the features available with {% data variables.product.prodname_team %}, {% data variables.product.prodname_enterprise %} includes: - {% data variables.contact.enterprise_support %} -- Controles de seguridad, cumplimiento e implementación adicionales -- Autenticación con inicio de sesión único SAML -- Provisión de acceso con SAML o SCIM +- Additional security, compliance, and deployment controls +- Authentication with SAML single sign-on +- Access provisioning with SAML or SCIM - {% data variables.product.prodname_github_connect %} -- La opción para comprar {% data variables.product.prodname_GH_advanced_security %}. Para obtener más información, consulta la sección "[Acerca de {% data variables.product.prodname_GH_advanced_security %}](/github/getting-started-with-github/about-github-advanced-security)". +- The option to purchase {% data variables.product.prodname_GH_advanced_security %}. For more information, see "[About {% data variables.product.prodname_GH_advanced_security %}](/github/getting-started-with-github/about-github-advanced-security)." -{% data variables.product.prodname_ghe_cloud %} también incluye lo siguiente: -- {% data variables.contact.enterprise_support %}. Para obtener más información, consulta "{% data variables.product.prodname_ghe_cloud %} soporte" y "{% data variables.product.prodname_ghe_cloud %} Adenda." -- 50,000 minutos de {% data variables.product.prodname_actions %} -- 50GB de almacenamiento de {% data variables.product.prodname_registry %} -- Control de acceso para los sitios de {% data variables.product.prodname_pages %}. Para obtener más información, consulta la sección "Cambiar la visibilidad de tu sitio de {% data variables.product.prodname_pages %}" -- Un acuerdo de nivel de servicio del 99.9% de tiempo activo mensual -- La opción de configurar tu empresa para los {% data variables.product.prodname_emus %}, para que puedas aprovisionar y administrar a los miembros con tu proveedor de identidad y restringir sus contribuciones para que solo se hagan en tu empresa. Para obtener más información, consulta la sección "[Acerca de {% data variables.product.prodname_emus %}](/enterprise-cloud@latest/admin/authentication/managing-your-enterprise-users-with-your-identity-provider/about-enterprise-managed-users)". -- La opción de administrar de forma centralizada las políticas y la facturación de múltiples organizaciones {% data variables.product.prodname_dotcom_the_website %} con una cuenta de empresa. Para obtener más información, consulta "[Acerca de las cuentas de empresa](/enterprise-cloud@latest/admin/overview/about-enterprise-accounts)". +{% data variables.product.prodname_ghe_cloud %} also includes: +- {% data variables.contact.enterprise_support %}. For more information, see "{% data variables.product.prodname_ghe_cloud %} support" and "{% data variables.product.prodname_ghe_cloud %} Addendum." +- 50,000 {% data variables.product.prodname_actions %} minutes +- 50GB {% data variables.product.prodname_registry %} storage +- Access control for {% data variables.product.prodname_pages %} sites. For more information, see Changing the visibility of your {% data variables.product.prodname_pages %} site" +- A service level agreement for 99.9% monthly uptime +- The option to configure your enterprise for {% data variables.product.prodname_emus %}, so you can provision and manage members with your identity provider and restrict your member's contributions to just your enterprise. For more information, see "[About {% data variables.product.prodname_emus %}](/enterprise-cloud@latest/admin/authentication/managing-your-enterprise-users-with-your-identity-provider/about-enterprise-managed-users)." +- The option to centrally manage policy and billing for multiple {% data variables.product.prodname_dotcom_the_website %} organizations with an enterprise account. For more information, see "[About enterprise accounts](/enterprise-cloud@latest/admin/overview/about-enterprise-accounts)." -Puedes configurar una prueba para evaluar {% data variables.product.prodname_ghe_cloud %}. Para obtener más información, consulta "Configurar una prueba de {% data variables.product.prodname_ghe_cloud %}". +You can set up a trial to evaluate {% data variables.product.prodname_ghe_cloud %}. For more information, see "Setting up a trial of {% data variables.product.prodname_ghe_cloud %}." -Para obtener más información acerca de hospedar tu propia instancia de [{% data variables.product.prodname_ghe_server %}](https://enterprise.github.com), contacta a {% data variables.contact.contact_enterprise_sales %}. {% data reusables.enterprise_installation.request-a-trial %} +For more information about hosting your own instance of [{% data variables.product.prodname_ghe_server %}](https://enterprise.github.com), contact {% data variables.contact.contact_enterprise_sales %}. {% data reusables.enterprise_installation.request-a-trial %} diff --git a/translations/es-ES/content/get-started/learning-about-github/index.md b/translations/es-ES/content/get-started/learning-about-github/index.md index 32d67d6de5..5861d232ae 100644 --- a/translations/es-ES/content/get-started/learning-about-github/index.md +++ b/translations/es-ES/content/get-started/learning-about-github/index.md @@ -17,10 +17,11 @@ topics: - Security children: - /githubs-products + - /about-versions-of-github-docs - /github-language-support - - /about-github-advanced-security - /types-of-github-accounts - /access-permissions-on-github + - /about-github-advanced-security - /faq-about-changes-to-githubs-plans --- diff --git a/translations/es-ES/content/get-started/learning-about-github/types-of-github-accounts.md b/translations/es-ES/content/get-started/learning-about-github/types-of-github-accounts.md index 4981f1858c..568b1834d8 100644 --- a/translations/es-ES/content/get-started/learning-about-github/types-of-github-accounts.md +++ b/translations/es-ES/content/get-started/learning-about-github/types-of-github-accounts.md @@ -1,6 +1,6 @@ --- title: Types of GitHub accounts -intro: 'Your user account is your identity on {% data variables.product.product_location %}. Your user account can be a member of any number of organizations.{% ifversion fpt or ghec %} Organizations can belong to enterprise accounts.{% endif %}' +intro: 'Accounts on {% data variables.product.product_name %} allow you to organize and control access to code.' redirect_from: - /manage-multiple-clients - /managing-clients @@ -21,73 +21,67 @@ topics: - Desktop - Security --- -{% ifversion fpt or ghec %} -For a full list of features for each {% data variables.product.product_name %} product, see "[{% data variables.product.prodname_dotcom %}'s products](/github/getting-started-with-github/githubs-products)." -{% endif %} -## Personal user accounts +## About accounts on {% data variables.product.product_name %} -Every person who uses {% data variables.product.product_location %} has their own user account, which includes: +With {% data variables.product.product_name %}, you can store and collaborate on code. Accounts allow you to organize and control access to that code. There are three types of accounts on {% data variables.product.product_name %}. +- Personal accounts +- Organization accounts +- Enterprise accounts -{% ifversion fpt or ghec %} +Every person who uses {% data variables.product.product_name %} signs into a personal account. An organization account enhances collaboration between multiple personal accounts, and {% ifversion fpt or ghec %}an enterprise account{% else %}the enterprise account for {% data variables.product.product_location %}{% endif %} allows central management of multiple organizations. -- Unlimited public and private repositories with {% data variables.product.prodname_free_user %} -- Unlimited collaborators with {% data variables.product.prodname_free_user %} -- Additional features for private repositories with {% data variables.product.prodname_pro %} -- Ability to [invite repository collaborators](/articles/inviting-collaborators-to-a-personal-repository) +## Personal accounts -{% else %} +Every person who uses {% data variables.product.product_location %} signs into a personal account. Your personal account is your identity on {% data variables.product.product_location %} and has a username and profile. For example, see [@octocat's profile](https://github.com/octocat). -- Unlimited repositories and [collaborators](/articles/permission-levels-for-a-user-account-repository) -- Ability to [add unlimited repository collaborators](/articles/inviting-collaborators-to-a-personal-repository) +Your personal account can own resources such as repositories, packages, and projects. Any time you take any action on {% data variables.product.product_location %}, such as creating an issue or reviewing a pull request, the action is attributed to your personal account. -{% endif %} - -{% ifversion fpt or ghec %} +{% ifversion fpt or ghec %}Each personal account uses either {% data variables.product.prodname_free_user %} or {% data variables.product.prodname_pro %}. All personal accounts can own an unlimited number of public and private repositories, with an unlimited number of collaborators on those repositories. If you use {% data variables.product.prodname_free_user %}, private repositories owned by your personal account have a limited feature set. You can upgrade to {% data variables.product.prodname_pro %} to get a full feature set for private repositories. For more information, see "[{% data variables.product.prodname_dotcom %}'s products](/articles/githubs-products)." {% else %}You can create an unlimited number of repositories owned by your personal account, with an unlimited number of collaborators on those repositories.{% endif %} {% tip %} -**Tips**: - -- You can use one account for multiple purposes, such as for personal use and business use. We do not recommend creating more than one account. For more information, see "[Merging multiple user accounts](/articles/merging-multiple-user-accounts)." -- User accounts are intended for humans, but you can give one to a robot, such as a continuous integration bot, if necessary. +**Tip**: Personal accounts are intended for humans, but you can create accounts to automate activity on {% data variables.product.product_name %}. This type of account is called a machine user. For example, you can create a machine user account to automate continuous integration (CI) workflows. {% endtip %} -{% else %} - -{% tip %} - -**Tip**: User accounts are intended for humans, but you can give one to a robot, such as a continuous integration bot, if necessary. - -{% endtip %} - -{% endif %} - {% ifversion fpt or ghec %} -### {% data variables.product.prodname_emus %} - -With {% data variables.product.prodname_emus %}, instead of using your personal account, members of an {% data variables.product.prodname_emu_enterprise %} are provisioned accounts using the enterprise's identity provider (IdP). {% data variables.product.prodname_managed_users_caps %} authenticate using their IdP instead of a {% data variables.product.prodname_dotcom_the_website %} username and password. - -{% data variables.product.prodname_managed_users_caps %} can only interact with users, repositories, and organizations that are part of their enterprise. {% data variables.product.prodname_managed_users_caps %} have read-only access to the rest of {% data variables.product.prodname_dotcom_the_website %}. For more information, see "[About {% data variables.product.prodname_emus %}](/enterprise-cloud@latest/admin/authentication/managing-your-enterprise-users-with-your-identity-provider/about-enterprise-managed-users){% ifversion fpt %}" in the {% data variables.product.prodname_ghe_cloud %} documentation.{% else %}."{% endif %} +Most people will use one personal account for all their work on {% data variables.product.prodname_dotcom_the_website %}, including both open source projects and paid employment. If you're currently using more than one personal account that you created for yourself, we suggest combining the accounts. For more information, see "[Merging multiple user accounts](/articles/merging-multiple-user-accounts)." {% endif %} ## Organization accounts -Organizations are shared accounts where groups of people can collaborate across many projects at once. Owners and administrators can manage member access to the organization's data and projects with sophisticated security and administrative features. +Organizations are shared accounts where an unlimited number of people can collaborate across many projects at once. -{% data reusables.organizations.organizations_include %} +Like personal accounts, organizations can own resources such as repositories, packages, and projects. However, you cannot sign into an organization. Instead, each person signs into their own personal account, and any actions the person takes on organization resources are attributed to their personal account. Each personal account can be a member of multiple organizations. -{% ifversion fpt or ghec %} +The personal accounts within an organization can be given different roles in the organization, which grant different levels of access to the organization and its data. All members can collaborate with each other in repositories and projects, but only organization owners and security managers can manage the settings for the organization and control access to the organization's data with sophisticated security and administrative features. For more information, see "[Roles in an organization](/organizations/managing-peoples-access-to-your-organization-with-roles/roles-in-an-organization)" and "[Keeping your organization secure](/organizations/keeping-your-organization-secure)." + +![Diagram showing that users must sign in to their personal user account to access an organization's resources](/assets/images/help/overview/sign-in-pattern.png) + +{% ifversion fpt or ghec %} +Even if you're a member of an organization that uses SAML single sign-on, you will still sign into your own personal account on {% data variables.product.prodname_dotcom_the_website %}, and that personal account will be linked to your identity in your organization's identity provider (IdP). For more information, see "[About authentication with SAML single sign-on](/enterprise-cloud@latest/authentication/authenticating-with-saml-single-sign-on/about-authentication-with-saml-single-sign-on){% ifversion fpt %}" in the {% data variables.product.prodname_ghe_cloud %} documentation{% else %}."{% endif %} + +However, if you're a member of an enterprise that uses {% data variables.product.prodname_emus %}, instead of using a personal account that you created, a new account will be provisioned for you by the enterprise's IdP. To access any organizations owned by that enterprise, you must authenticate using their IdP instead of a {% data variables.product.prodname_dotcom_the_website %} username and password. For more information, see "[About {% data variables.product.prodname_emus %}](/enterprise-cloud@latest/admin/authentication/managing-your-enterprise-users-with-your-identity-provider/about-enterprise-managed-users){% ifversion fpt %}" in the {% data variables.product.prodname_ghe_cloud %} documentation.{% else %}."{% endif %} +{% endif %} + +You can also create nested sub-groups of organization members called teams, to reflect your group's structure and simplify access management. For more information, see "[About teams](/organizations/organizing-members-into-teams/about-teams)." + +{% data reusables.organizations.organization-plans %} + +For more information about all the features of organizations, see "[About organizations](/organizations/collaborating-with-groups-in-organizations/about-organizations)." ## Enterprise accounts -With enterprise accounts, you can centrally manage policy and billing for multiple {% data variables.product.prodname_dotcom_the_website %} organizations. {% data reusables.gated-features.enterprise-accounts %} - +{% ifversion fpt %} +{% data variables.product.prodname_ghe_cloud %} and {% data variables.product.prodname_ghe_server %} include enterprise accounts, which allow administrators to centrally manage policy and billing for multiple organizations and enable innersourcing between the organizations. For more information, see "[About enterprise accounts](/enterprise-cloud@latest/admin/overview/about-enterprise-accounts)" in the {% data variables.product.prodname_ghe_cloud %} documentation. +{% elsif ghec %} +Enterprise accounts allow central policy management and billing for multiple organizations. You can use your enterprise account to centrally manage policy and billing. Unlike organizations, enterprise accounts cannot directly own resources like repositories, packages, or projects. These resources are owned by organizations within the enterprise account instead. For more information, see "[About enterprise accounts](/admin/overview/about-enterprise-accounts)." +{% elsif ghes or ghae %} +Your enterprise account is a collection of all the organizations {% ifversion ghae %}owned by{% elsif ghes %}on{% endif %} {% data variables.product.product_location %}. You can use your enterprise account to centrally manage policy and billing. Unlike organizations, enterprise accounts cannot directly own resources like repositories, packages, or projects. These resources are owned by organizations within the enterprise account instead. For more information, see "[About enterprise accounts](/admin/overview/about-enterprise-accounts)." {% endif %} ## Further reading -{% ifversion fpt or ghec %}- "[Signing up for a new {% data variables.product.prodname_dotcom %} account](/articles/signing-up-for-a-new-github-account)" -- "[{% data variables.product.prodname_dotcom %}'s products](/articles/githubs-products)"{% endif %} +{% ifversion fpt or ghec %}- "[Signing up for a new {% data variables.product.prodname_dotcom %} account](/articles/signing-up-for-a-new-github-account)"{% endif %} - "[Creating a new organization account](/articles/creating-a-new-organization-account)" diff --git a/translations/es-ES/content/get-started/onboarding/getting-started-with-github-ae.md b/translations/es-ES/content/get-started/onboarding/getting-started-with-github-ae.md index 34adcc9fcb..013ac1a1af 100644 --- a/translations/es-ES/content/get-started/onboarding/getting-started-with-github-ae.md +++ b/translations/es-ES/content/get-started/onboarding/getting-started-with-github-ae.md @@ -73,8 +73,11 @@ For more information on enabling and configuring {% data variables.product.prodn ## Part 5: Using {% data variables.product.prodname_dotcom %}'s learning and support resources Your enterprise members can learn more about Git and {% data variables.product.prodname_dotcom %} with our learning resources, and you can get the support you need with {% data variables.product.prodname_dotcom %} Enterprise Support. -### 1. Learning with {% data variables.product.prodname_learning %} +### 1. Reading about {% data variables.product.product_name %} on {% data variables.product.prodname_docs %} +You can read documentation that reflects the features available with {% data variables.product.prodname_ghe_managed %}. For more information, see "[About versions of {% data variables.product.prodname_docs %}](/get-started/learning-about-github/about-versions-of-github-docs)." + +### 2. Learning with {% data variables.product.prodname_learning %} {% data reusables.getting-started.learning-lab-enterprise %} -### 2. Working with {% data variables.product.prodname_dotcom %} Enterprise Support +### 3. Working with {% data variables.product.prodname_dotcom %} Enterprise Support {% data reusables.getting-started.contact-support-enterprise %} diff --git a/translations/es-ES/content/get-started/onboarding/getting-started-with-github-enterprise-cloud.md b/translations/es-ES/content/get-started/onboarding/getting-started-with-github-enterprise-cloud.md index d8227e1740..9598e02d65 100644 --- a/translations/es-ES/content/get-started/onboarding/getting-started-with-github-enterprise-cloud.md +++ b/translations/es-ES/content/get-started/onboarding/getting-started-with-github-enterprise-cloud.md @@ -199,14 +199,18 @@ Members of your organization or enterprise can use tools from the {% data variab ## Part 7: Participating in {% data variables.product.prodname_dotcom %}'s community Members of your organization or enterprise can use GitHub's learning and support resources to get the help they need. You can also support the open source community. -### 1. Learning with {% data variables.product.prodname_learning %} + +### 1. Reading about {% data variables.product.prodname_ghe_cloud %} on {% data variables.product.prodname_docs %} +You can read documentation that reflects the features available with {% data variables.product.prodname_ghe_cloud %}. For more information, see "[About versions of {% data variables.product.prodname_docs %}](/get-started/learning-about-github/about-versions-of-github-docs)." + +### 2. Learning with {% data variables.product.prodname_learning %} Members of your organization or enterprise can learn new skills by completing fun, realistic projects in your very own GitHub repository with [{% data variables.product.prodname_learning %}](https://lab.github.com/). Each course is a hands-on lesson created by the GitHub community and taught by the friendly Learning Lab bot. For more information, see "[Git and {% data variables.product.prodname_dotcom %} learning resources](/github/getting-started-with-github/quickstart/git-and-github-learning-resources)." -### 2. Supporting the open source community +### 3. Supporting the open source community {% data reusables.getting-started.sponsors %} -### 3. Contacting {% data variables.contact.github_support %} +### 4. Contacting {% data variables.contact.github_support %} {% data reusables.getting-started.contact-support %} {% data variables.product.prodname_ghe_cloud %} allows you to submit priority support requests with a target eight-hour response time. For more information, see "[{% data variables.product.prodname_ghe_cloud %} support](/github/working-with-github-support/github-enterprise-cloud-support)." diff --git a/translations/es-ES/content/get-started/onboarding/getting-started-with-github-enterprise-server.md b/translations/es-ES/content/get-started/onboarding/getting-started-with-github-enterprise-server.md index 6022968de4..4637e3b623 100644 --- a/translations/es-ES/content/get-started/onboarding/getting-started-with-github-enterprise-server.md +++ b/translations/es-ES/content/get-started/onboarding/getting-started-with-github-enterprise-server.md @@ -114,7 +114,13 @@ If you are the owner of both a {% data variables.product.product_name %} instanc ## Part 6: Using {% data variables.product.prodname_dotcom %}'s learning and support resources Your enterprise members can learn more about Git and {% data variables.product.prodname_dotcom %} with our learning resources, and you can get the support you need when setting up and managing {% data variables.product.product_location %} with {% data variables.product.prodname_dotcom %} Enterprise Support. -### 1. Learning with {% data variables.product.prodname_learning %} + +### 1. Reading about {% data variables.product.product_name %} on {% data variables.product.prodname_docs %} + +You can read documentation that reflects the features available with {% data variables.product.prodname_ghe_server %}. For more information, see "[About versions of {% data variables.product.prodname_docs %}](/get-started/learning-about-github/about-versions-of-github-docs)." + +### 2. Learning with {% data variables.product.prodname_learning %} {% data reusables.getting-started.learning-lab-enterprise %} -### 2. Working with {% data variables.product.prodname_dotcom %} Enterprise Support + +### 3. Working with {% data variables.product.prodname_dotcom %} Enterprise Support {% data reusables.getting-started.contact-support-enterprise %} diff --git a/translations/es-ES/content/get-started/onboarding/getting-started-with-github-team.md b/translations/es-ES/content/get-started/onboarding/getting-started-with-github-team.md index f98c11638d..27e6ee5e6a 100644 --- a/translations/es-ES/content/get-started/onboarding/getting-started-with-github-team.md +++ b/translations/es-ES/content/get-started/onboarding/getting-started-with-github-team.md @@ -83,13 +83,16 @@ You can help to make your organization more secure by recommending or requiring ### 2. Interacting with the {% data variables.product.prodname_gcf %} {% data reusables.support.ask-and-answer-forum %} -### 3. Learning with {% data variables.product.prodname_learning %} +### 3. Reading about {% data variables.product.prodname_team %} on {% data variables.product.prodname_docs %} +You can read documentation that reflects the features available with {% data variables.product.prodname_team %}. For more information, see "[About versions of {% data variables.product.prodname_docs %}](/get-started/learning-about-github/about-versions-of-github-docs)." + +### 4. Learning with {% data variables.product.prodname_learning %} {% data reusables.getting-started.learning-lab %} -### 4. Supporting the open source community +### 5. Supporting the open source community {% data reusables.getting-started.sponsors %} -### 5. Contacting {% data variables.contact.github_support %} +### 6. Contacting {% data variables.contact.github_support %} {% data reusables.getting-started.contact-support %} ## Further reading diff --git a/translations/es-ES/content/get-started/onboarding/getting-started-with-your-github-account.md b/translations/es-ES/content/get-started/onboarding/getting-started-with-your-github-account.md index 8c5c1036a1..245a75c61f 100644 --- a/translations/es-ES/content/get-started/onboarding/getting-started-with-your-github-account.md +++ b/translations/es-ES/content/get-started/onboarding/getting-started-with-your-github-account.md @@ -182,14 +182,18 @@ For more information, see "[Securing your software supply chain](/code-security/ ### 2. Interacting with {% data variables.product.prodname_gcf %} {% data reusables.support.ask-and-answer-forum %} -### 3. Learning with {% data variables.product.prodname_learning %} +### 3. Reading about {% data variables.product.product_name %} on {% data variables.product.prodname_docs %} + +{% data reusables.docs.you-can-read-docs-for-your-product %} + +### 4. Learning with {% data variables.product.prodname_learning %} {% data reusables.getting-started.learning-lab %} {% ifversion fpt or ghec %} -### 4. Supporting the open source community +### 5. Supporting the open source community {% data reusables.getting-started.sponsors %} -### 5. Contacting {% data variables.contact.github_support %} +### 6. Contacting {% data variables.contact.github_support %} {% data reusables.getting-started.contact-support %} {% ifversion fpt %} diff --git a/translations/es-ES/content/get-started/quickstart/github-flow.md b/translations/es-ES/content/get-started/quickstart/github-flow.md index 0ae27c4179..e555ed5d9f 100644 --- a/translations/es-ES/content/get-started/quickstart/github-flow.md +++ b/translations/es-ES/content/get-started/quickstart/github-flow.md @@ -24,7 +24,7 @@ miniTocMaxHeadingLevel: 3 ## Prerequisites -To follow {% data variables.product.prodname_dotcom %} flow, you will need {% data variables.product.prodname_dotcom %} account and a repository. For information on how to create an account, see "[Signing up for {% data variables.product.prodname_dotcom %}](/github/getting-started-with-github/signing-up-for-github)." For information on how to create a repository, see "[Create a repo](/github/getting-started-with-github/create-a-repo)."{% ifversion fpt or ghec %} For information on how to find an existing repository to contribute to, see "[Finding ways to contribute to open source on {% data variables.product.prodname_dotcom %}](/github/getting-started-with-github/finding-ways-to-contribute-to-open-source-on-github)."{% endif %} +To follow {% data variables.product.prodname_dotcom %} flow, you will need a {% data variables.product.prodname_dotcom %} account and a repository. For information on how to create an account, see "[Signing up for {% data variables.product.prodname_dotcom %}](/github/getting-started-with-github/signing-up-for-github)." For information on how to create a repository, see "[Create a repo](/github/getting-started-with-github/create-a-repo)."{% ifversion fpt or ghec %} For information on how to find an existing repository to contribute to, see "[Finding ways to contribute to open source on {% data variables.product.prodname_dotcom %}](/github/getting-started-with-github/finding-ways-to-contribute-to-open-source-on-github)."{% endif %} ## Following {% data variables.product.prodname_dotcom %} flow diff --git a/translations/es-ES/content/get-started/quickstart/set-up-git.md b/translations/es-ES/content/get-started/quickstart/set-up-git.md index 2b916a6abb..f8272f9fc3 100644 --- a/translations/es-ES/content/get-started/quickstart/set-up-git.md +++ b/translations/es-ES/content/get-started/quickstart/set-up-git.md @@ -40,6 +40,16 @@ If you don't need to work with files locally, {% data variables.product.product_ ## Setting up Git 1. [Download and install the latest version of Git](https://git-scm.com/downloads). + +{% note %} + +**Note**: If you are using a Chrome OS device, additional set up is required: + +1. Install a terminal emulator such as Termux from the Google Play Store on your Chrome OS device. +2. From the terminal emulator that you installed, install Git. For example, in Termux, enter `apt install git` and then type `y` when prompted. + +{% endnote %} + 2. [Set your username in Git](/github/getting-started-with-github/setting-your-username-in-git). 3. [Set your commit email address in Git](/articles/setting-your-commit-email-address). diff --git a/translations/es-ES/content/get-started/signing-up-for-github/setting-up-a-trial-of-github-enterprise-cloud.md b/translations/es-ES/content/get-started/signing-up-for-github/setting-up-a-trial-of-github-enterprise-cloud.md index cfe1727e12..f5c9633c79 100644 --- a/translations/es-ES/content/get-started/signing-up-for-github/setting-up-a-trial-of-github-enterprise-cloud.md +++ b/translations/es-ES/content/get-started/signing-up-for-github/setting-up-a-trial-of-github-enterprise-cloud.md @@ -19,12 +19,18 @@ shortTitle: Enterprise Cloud trial ## About {% data variables.product.prodname_ghe_cloud %} -{% data reusables.organizations.about-organizations %} +{% data variables.product.prodname_ghe_cloud %} is a plan for large businesses or teams who collaborate on {% data variables.product.prodname_dotcom_the_website %}. + +{% data reusables.organizations.about-organizations %} For more information about accounts, see "[Types of {% data variables.product.prodname_dotcom %} accounts](/get-started/learning-about-github/types-of-github-accounts)." You can use organizations for free with {% data variables.product.prodname_free_team %}, which includes limited features. For additional features, such as SAML single sign-on (SSO), access control for {% data variables.product.prodname_pages %}, and included {% data variables.product.prodname_actions %} minutes, you can upgrade to {% data variables.product.prodname_ghe_cloud %}. For a detailed list of the features available with {% data variables.product.prodname_ghe_cloud %}, see our [Pricing](https://github.com/pricing) page. {% data reusables.saml.saml-accounts %} For more information, see "[About identity and access management with SAML single sign-on](/enterprise-cloud@latest/organizations/managing-saml-single-sign-on-for-your-organization/about-identity-and-access-management-with-saml-single-sign-on){% ifversion not ghec %}" in the {% data variables.product.prodname_ghe_cloud %} documentation.{% else %}."{% endif %} +{% data reusables.enterprise-accounts.emu-short-summary %} + +{% data variables.product.prodname_emus %} is not part of the free trial of {% data variables.product.prodname_ghe_cloud %}. If you're interested in {% data variables.product.prodname_emus %}, please contact [{% data variables.product.prodname_dotcom %}'s Sales team](https://enterprise.github.com/contact). + {% data reusables.products.which-product-to-use %} ## About trials of {% data variables.product.prodname_ghe_cloud %} @@ -50,6 +56,8 @@ Before you can try {% data variables.product.prodname_ghe_cloud %}, you must be After setting up your trial, you can explore {% data variables.product.prodname_ghe_cloud %} by following the [Enterprise Onboarding Guide](https://resources.github.com/enterprise-onboarding/). +{% data reusables.docs.you-can-read-docs-for-your-product %} + {% data reusables.products.product-roadmap %} ## Finishing your trial diff --git a/translations/es-ES/content/get-started/signing-up-for-github/setting-up-a-trial-of-github-enterprise-server.md b/translations/es-ES/content/get-started/signing-up-for-github/setting-up-a-trial-of-github-enterprise-server.md index 6b47866c00..1328f54580 100644 --- a/translations/es-ES/content/get-started/signing-up-for-github/setting-up-a-trial-of-github-enterprise-server.md +++ b/translations/es-ES/content/get-started/signing-up-for-github/setting-up-a-trial-of-github-enterprise-server.md @@ -41,6 +41,7 @@ To get the most out of your trial, follow these steps: - [Quick start guide to {% data variables.product.prodname_dotcom %}](https://resources.github.com/webcasts/Quick-start-guide-to-GitHub/) webcast - [Understanding the {% data variables.product.prodname_dotcom %} flow](https://guides.github.com/introduction/flow/) in {% data variables.product.prodname_dotcom %} Guides - [Hello World](https://guides.github.com/activities/hello-world/) in {% data variables.product.prodname_dotcom %} Guides + - "[About versions of {% data variables.product.prodname_docs %}](/get-started/learning-about-github/about-versions-of-github-docs)" 3. To configure your instance to meet your organization's needs, see "[Configuring your enterprise](/enterprise-server@latest/admin/configuration/configuring-your-enterprise)." 4. To integrate {% data variables.product.prodname_ghe_server %} with your identity provider, see "[Using SAML](/enterprise-server@latest/admin/user-management/using-saml)" and "[Using LDAP](/enterprise-server@latest/admin/authentication/using-ldap)." 5. Invite an unlimited number of people to join your trial. diff --git a/translations/es-ES/content/get-started/signing-up-for-github/signing-up-for-a-new-github-account.md b/translations/es-ES/content/get-started/signing-up-for-github/signing-up-for-a-new-github-account.md index d0581c6def..d20a58f745 100644 --- a/translations/es-ES/content/get-started/signing-up-for-github/signing-up-for-a-new-github-account.md +++ b/translations/es-ES/content/get-started/signing-up-for-github/signing-up-for-a-new-github-account.md @@ -1,7 +1,7 @@ --- -title: Registrar una nueva cuenta GitHub -shortTitle: Registrarse para una cuenta nueva de GitHub -intro: '{% data variables.product.company_short %} ofrece cuentas de usuario para personas y organizaciones para equipos de personas que trabajan juntas.' +title: Signing up for a new GitHub account +shortTitle: Sign up for a new GitHub account +intro: '{% data variables.product.company_short %} offers user accounts for individuals and organizations for teams of people working together.' redirect_from: - /articles/signing-up-for-a-new-github-account - /github/getting-started-with-github/signing-up-for-a-new-github-account @@ -13,15 +13,19 @@ topics: - Accounts --- -Para obtener más información sobre tipos de cuentas y productos, consulta "[Tipos de cuentas {% data variables.product.prodname_dotcom %}](/articles/types-of-github-accounts)" y productos de "[{% data variables.product.company_short %}](/articles/github-s-products)." +## About new accounts on {% data variables.product.prodname_dotcom_the_website %} + +You can create a personal account, which serves as your identity on {% data variables.product.prodname_dotcom_the_website %}, or an organization, which allows multiple personal accounts to collaborate across multiple projects. For more information about account types, see "[Types of {% data variables.product.prodname_dotcom %} accounts](/get-started/learning-about-github/types-of-github-accounts)." + +When you create a personal account or organization, you must select a billing plan for the account. For more information, see "[{% data variables.product.company_short %}'s products](/get-started/learning-about-github/githubs-products)." + +## Signing up for a new account {% data reusables.accounts.create-account %} -1. Sigue las indicaciones para crear tu cuenta personal o de organización. +1. Follow the prompts to create your personal account or organization. -## Pasos siguientes +## Next steps -- [Verifica tus dirección de correo electrónico](/articles/verifying-your-email-address)" -- [Configura autenticación de dos factores](/articles/configuring-two-factor-authentication)" -- [Agrega una biografía a tu perfil](/articles/adding-a-bio-to-your-profile)" -- "[Crea una organización](/articles/creating-a-new-organization-from-scratch)" -- [ {% data variables.product.prodname_roadmap %} ]({% data variables.product.prodname_roadmap_link %}) en el repositorio `github/roadmap` +- "[Verify your email address](/articles/verifying-your-email-address)" +- "[Creating an enterprise account](/enterprise-cloud@latest/admin/overview/creating-an-enterprise-account)"{% ifversion fpt %} in the {% data variables.product.prodname_ghe_cloud %} documentation{% endif %} +- [ {% data variables.product.prodname_roadmap %} ]( {% data variables.product.prodname_roadmap_link %} ) in the `github/roadmap` repository diff --git a/translations/es-ES/content/get-started/using-github/exploring-early-access-releases-with-feature-preview.md b/translations/es-ES/content/get-started/using-github/exploring-early-access-releases-with-feature-preview.md index 1bccbbcea3..3b8bdfe7b5 100644 --- a/translations/es-ES/content/get-started/using-github/exploring-early-access-releases-with-feature-preview.md +++ b/translations/es-ES/content/get-started/using-github/exploring-early-access-releases-with-feature-preview.md @@ -1,6 +1,6 @@ --- -title: Explorar versiones de acceso anticipado con vista previa de la característica -intro: Puedes usar la vista previa de las características para ver los productos o las características que están disponibles en beta y para activar o desactivar cada característica de tu cuenta de usuario. +title: Exploring early access releases with feature preview +intro: You can use feature preview to see products or features that are available in beta and to enable or disable each feature for your user account. redirect_from: - /articles/exploring-early-access-releases-with-feature-preview - /github/getting-started-with-github/exploring-early-access-releases-with-feature-preview @@ -10,22 +10,22 @@ versions: ghec: '*' topics: - Early access -shortTitle: Vista previa de las características +shortTitle: Feature preview --- +## {% data variables.product.prodname_dotcom %}'s release cycle -## ciclo de lanzamiento de {% data variables.product.prodname_dotcom %} +{% data variables.product.prodname_dotcom %}'s products and features can go through multiple release phases. -Los productos y características de {% data variables.product.prodname_dotcom %}pueden pasar por varias fases de lanzamiento. +| Phase | Description | +|-------|-------------| +| Alpha | The product or feature is under heavy development and often has changing requirements and scope. The feature is available for demonstration and test purposes but may not be documented. Alpha releases are not necessarily feature complete, no service level agreements (SLAs) are provided, and there are no technical support obligations.

**Note**: A product or feature released as a "Technology Preview" is considered to be in the alpha release stage. Technology Preview releases share the same characteristics of alpha releases as described above.| +| Beta | The product or feature is ready for broader distribution. Beta releases can be public or private, are documented, but do not have any SLAs or technical support obligations. | +| General availability (GA) | The product or feature is fully tested and open publicly to all users. GA releases are ready for production use, and associated SLA and technical support obligations apply. | -| Fase | Descripción | -| --------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | -| Alfa | El producto o la característica está bajo un gran desarrollo y a menudo tiene requisitos y alcance cambiantes. Esta característica se encuentra disponible para propósitos de demostración y pruebas, pero puede no documentarse. Las versiones Alpha no necesariamente tienen una función completa, no se proporcionan Acuerdo de nivel de servicio (SLA) y no hay obligaciones de apoyo técnico.

**Note**: A product or feature released as a "Technology Preview" is considered to be in the alpha release stage. Technology Preview releases share the same characteristics of alpha releases as described above. | -| Beta | El producto o característica está listo para una distribución más amplia. Las versiones beta pueden ser públicas o privadas, están documentadas, pero no tienen ningún SLA u obligación de soporte técnico. | -| Disponibilidad general (GA) | El producto o característica está completamente probado y abierto públicamente a todos los usuarios. Las versiones de GA están listas para su uso en producción, y se aplican el Acuerdo de nivel de servicio y las obligaciones de asistencia técnica asociados. | +## Exploring beta releases with feature preview -## Explorar versiones beta con vista previa de la característica - -Puedes ver una lista de características disponibles en beta y una breve descripción de cada característica. Cada característica incluye un enlace para proporcionar retroalimentación. +You can see a list of features that are available in beta and a brief description for each feature. Each feature includes a link to give feedback. {% data reusables.feature-preview.feature-preview-setting %} -2. Opcionalmente, a la derecha de una función, haz clic en **Enable** (Habilitar) o **Disable** (Inhabilitar). ![Activar el botón en la vista previa de la característica](/assets/images/help/settings/enable-feature-button.png) +2. Optionally, to the right of a feature, click **Enable** or **Disable**. + ![Enable button in feature preview](/assets/images/help/settings/enable-feature-button.png) diff --git a/translations/es-ES/content/github/understanding-how-github-uses-and-protects-your-data/managing-data-use-settings-for-your-private-repository.md b/translations/es-ES/content/github/understanding-how-github-uses-and-protects-your-data/managing-data-use-settings-for-your-private-repository.md index 22de459d32..e2b617a11c 100644 --- a/translations/es-ES/content/github/understanding-how-github-uses-and-protects-your-data/managing-data-use-settings-for-your-private-repository.md +++ b/translations/es-ES/content/github/understanding-how-github-uses-and-protects-your-data/managing-data-use-settings-for-your-private-repository.md @@ -1,6 +1,6 @@ --- -title: Administrar la configuración de uso de datos para tu repositorio privado -intro: 'Para ayudar a que {% data variables.product.product_name %} te conecte a las herramientas, proyectos, personas e información relevantes, puedes configurar el uso de datos para tu repositorio privado.' +title: Managing data use settings for your private repository +intro: 'To help {% data variables.product.product_name %} connect you to relevant tools, people, projects, and information, you can configure data use for your private repository.' redirect_from: - /articles/opting-into-or-out-of-data-use-for-your-private-repository - /github/understanding-how-github-uses-and-protects-your-data/opting-into-or-out-of-data-use-for-your-private-repository @@ -10,24 +10,26 @@ versions: topics: - Policy - Legal -shortTitle: Administrar el uso de datos para un repositorio privado +shortTitle: Manage data use for private repo --- -## Acerca del uso de datos para tu repositorio privado +## About data use for your private repository -Cuando habilitas el uso de datos para tu repositorio privado, podrás acceder a la gráfica de dependencias, en donde puedes rastrear las dependencias de tus repositorios y recibir las {% data variables.product.prodname_dependabot_alerts %} cuando {% data variables.product.product_name %} detecte las dependencias vulnerables. Para obtener más información, consulta la sección "[Acerca de las alertas para las dependencias vulnerables](/github/managing-security-vulnerabilities/about-alerts-for-vulnerable-dependencies#dependabot-alerts-for-vulnerable-dependencies)". +When you enable data use for your private repository, you'll be able to access the dependency graph, where you can track your repository's dependencies and receive {% data variables.product.prodname_dependabot_alerts %} when {% data variables.product.product_name %} detects vulnerable dependencies. For more information, see "[About alerts for vulnerable dependencies](/github/managing-security-vulnerabilities/about-alerts-for-vulnerable-dependencies#dependabot-alerts-for-vulnerable-dependencies)." -## Habilitar o inhabilitar las características para el uso de datos +## Enabling or disabling data use features {% data reusables.security.security-and-analysis-features-enable-read-only %} {% data reusables.repositories.navigate-to-repo %} {% data reusables.repositories.sidebar-settings %} {% data reusables.repositories.navigate-to-security-and-analysis %} -4. Debajo de "Configurar la seguridad y las características de análisis", a la derecha de la característica, da clic en **Inhabilitar** o **Habilitar**. ![Botón de "Habilitar" o "Inhabilitar" para las características de "Configurar la seguridad y el análisis"](/assets/images/help/repository/security-and-analysis-disable-or-enable-dotcom-private.png) +4. Under "Configure security and analysis features", to the right of the feature, click **Disable** or **Enable**.{% ifversion fpt %} + !["Enable" or "Disable" button for "Configure security and analysis" features](/assets/images/help/repository/security-and-analysis-disable-or-enable-fpt-private.png){% elsif ghec %} + !["Enable" or "Disable" button for "Configure security and analysis" features](/assets/images/help/repository/security-and-analysis-disable-or-enable-ghec-private.png){% endif %} -## Leer más +## Further reading -- "[Acerca del uso de tus datos de {% data variables.product.prodname_dotcom %}](/articles/about-github-s-use-of-your-data)" -- "[Ver y actualizar las dependencias vulnerables en tu repositorio](/github/managing-security-vulnerabilities/viewing-and-updating-vulnerable-dependencies-in-your-repository)" -- "[Administrar la configuración de seguridad y de análisis para tu organización](/github/administering-a-repository/managing-security-and-analysis-settings-for-your-repository)" +- "[About {% data variables.product.prodname_dotcom %}'s use of your data](/articles/about-github-s-use-of-your-data)" +- "[Viewing and updating vulnerable dependencies in your repository](/github/managing-security-vulnerabilities/viewing-and-updating-vulnerable-dependencies-in-your-repository)" +- "[Managing security and analysis settings for your repository](/github/administering-a-repository/managing-security-and-analysis-settings-for-your-repository)" diff --git a/translations/es-ES/content/github/writing-on-github/getting-started-with-writing-and-formatting-on-github/about-writing-and-formatting-on-github.md b/translations/es-ES/content/github/writing-on-github/getting-started-with-writing-and-formatting-on-github/about-writing-and-formatting-on-github.md index ddad82683d..f9a0195100 100644 --- a/translations/es-ES/content/github/writing-on-github/getting-started-with-writing-and-formatting-on-github/about-writing-and-formatting-on-github.md +++ b/translations/es-ES/content/github/writing-on-github/getting-started-with-writing-and-formatting-on-github/about-writing-and-formatting-on-github.md @@ -1,6 +1,6 @@ --- -title: Acerca de escritura y formato en GitHub -intro: GitHub combina una sintáxis para el texto con formato llamado formato Markdown de GitHub con algunas características de escritura únicas. +title: About writing and formatting on GitHub +intro: GitHub combines a syntax for formatting text called GitHub Flavored Markdown with a few unique writing features. redirect_from: - /articles/about-writing-and-formatting-on-github - /github/writing-on-github/about-writing-and-formatting-on-github @@ -9,24 +9,36 @@ versions: ghes: '*' ghae: '*' ghec: '*' -shortTitle: Escribir & formatear en GitHub +shortTitle: Write & format on GitHub --- +[Markdown](http://daringfireball.net/projects/markdown/) is an easy-to-read, easy-to-write syntax for formatting plain text. -[Markdown](http://daringfireball.net/projects/markdown/) es una sintáxis fácil de leer y fácil de escribir para el texto simple con formato. +We've added some custom functionality to create {% data variables.product.prodname_dotcom %} Flavored Markdown, used to format prose and code across our site. -Le hemos agregado alguna funcionalidad personalizada para crear el formato Markdown de {% data variables.product.prodname_dotcom %}, usado para dar formato a la prosa y al código en todo nuestro sitio. +You can also interact with other users in pull requests and issues using features like [@mentions](/articles/basic-writing-and-formatting-syntax/#mentioning-people-and-teams), [issue and PR references](/articles/basic-writing-and-formatting-syntax/#referencing-issues-and-pull-requests), and [emoji](/articles/basic-writing-and-formatting-syntax/#using-emoji). -También puedes interactuar con otros usuarios en las solicitudes de extracción y las propuestas, usando funciones como [@menciones](/articles/basic-writing-and-formatting-syntax/#mentioning-people-and-teams), [propuesta y referencias PR](/articles/basic-writing-and-formatting-syntax/#referencing-issues-and-pull-requests) y [emoji](/articles/basic-writing-and-formatting-syntax/#using-emoji). +## Text formatting toolbar -## Barra de herramientas de formato de texto +Every comment field on {% data variables.product.product_name %} contains a text formatting toolbar, allowing you to format your text without learning Markdown syntax. In addition to Markdown formatting like bold and italic styles and creating headers, links, and lists, the toolbar includes {% data variables.product.product_name %}-specific features such as @mentions, task lists, and links to issues and pull requests. -Cada campo de comentario en {% data variables.product.product_name %} contiene una barra de herramientas de formato de texto, lo que te permite dar formato a tu texto sin tener que aprender la sintáxis de Markdown. Además del formato de Markdown como la negrita y la cursiva y crear encabezados, enlaces y listados, la barra de herramientas incluye características específicas de {% data variables.product.product_name %}, como las @menciones, los listados de tareas y los enlaces a propuestas y solicitudes de extracción. +{% if fixed-width-font-gfm-fields %} -![Barra de herramientas de Markdown](/assets/images/help/writing/markdown-toolbar.gif) +## Enabling fixed-width fonts in the editor + +You can enable a fixed-width font in every comment field on {% data variables.product.product_name %}. Each character in a fixed-width, or monospace, font occupies the same horizontal space which can make it easier to edit advanced Markdown structures such as tables and code snippets. -## Leer más +![Screenshot showing the {% data variables.product.product_name %} comment field with fixed-width fonts enabled](/assets/images/help/writing/fixed-width-example.png) -- [{% data variables.product.prodname_dotcom %} Especificaciones del formato Markdown](https://github.github.com/gfm/) -- [Sintaxis de escritura y formato básicos](/articles/basic-writing-and-formatting-syntax)" -- "[Trabajar con formato avanzado](/articles/working-with-advanced-formatting)" -- "[Dominar Markdown](https://guides.github.com/features/mastering-markdown/)" +{% data reusables.user_settings.access_settings %} +{% data reusables.user_settings.appearance-settings %} +1. Under "Markdown editor font preference", select **Use a fixed-width (monospace) font when editing Markdown**. + ![Screenshot showing the {% data variables.product.product_name %} comment field with fixed width fonts enabled](/assets/images/help/writing/enable-fixed-width.png) + +{% endif %} + +## Further reading + +- [{% data variables.product.prodname_dotcom %} Flavored Markdown Spec](https://github.github.com/gfm/) +- "[Basic writing and formatting syntax](/articles/basic-writing-and-formatting-syntax)" +- "[Working with advanced formatting](/articles/working-with-advanced-formatting)" +- "[Mastering Markdown](https://guides.github.com/features/mastering-markdown/)" diff --git a/translations/es-ES/content/github/writing-on-github/getting-started-with-writing-and-formatting-on-github/basic-writing-and-formatting-syntax.md b/translations/es-ES/content/github/writing-on-github/getting-started-with-writing-and-formatting-on-github/basic-writing-and-formatting-syntax.md index 5753951e64..f3c22ea38e 100644 --- a/translations/es-ES/content/github/writing-on-github/getting-started-with-writing-and-formatting-on-github/basic-writing-and-formatting-syntax.md +++ b/translations/es-ES/content/github/writing-on-github/getting-started-with-writing-and-formatting-on-github/basic-writing-and-formatting-syntax.md @@ -78,6 +78,8 @@ git commit For more information, see "[Creating and highlighting code blocks](/articles/creating-and-highlighting-code-blocks)." +{% data reusables.user_settings.enabling-fixed-width-fonts %} + ## Links You can create an inline link by wrapping link text in brackets `[ ]`, and then wrapping the URL in parentheses `( )`. {% ifversion fpt or ghae or ghes > 3.1 or ghec %}You can also use the keyboard shortcut `command + k` to create a link.{% endif %}{% ifversion fpt or ghae-issue-5434 or ghes > 3.3 or ghec %} When you have text selected, you can paste a URL from your clipboard to automatically create a link from the selection.{% endif %} diff --git a/translations/es-ES/content/github/writing-on-github/working-with-advanced-formatting/creating-and-highlighting-code-blocks.md b/translations/es-ES/content/github/writing-on-github/working-with-advanced-formatting/creating-and-highlighting-code-blocks.md index 73219017bb..71616f8e10 100644 --- a/translations/es-ES/content/github/writing-on-github/working-with-advanced-formatting/creating-and-highlighting-code-blocks.md +++ b/translations/es-ES/content/github/writing-on-github/working-with-advanced-formatting/creating-and-highlighting-code-blocks.md @@ -1,6 +1,6 @@ --- -title: Crear y resaltar bloques de código -intro: Compartir muestras de código con bloques de código cercados y habilitar el resaltado de la sintaxis +title: Creating and highlighting code blocks +intro: Share samples of code with fenced code blocks and enabling syntax highlighting. redirect_from: - /articles/creating-and-highlighting-code-blocks - /github/writing-on-github/creating-and-highlighting-code-blocks @@ -9,12 +9,12 @@ versions: ghes: '*' ghae: '*' ghec: '*' -shortTitle: Crear bloques de código +shortTitle: Create code blocks --- -## Bloques de código cercados +## Fenced code blocks -Puedes crear bloques de código cercados al colocar comillas simples triples \`\`\` antes y después del bloque de código. Te recomendamos dejar una línea en blanco antes y después de los bloques de código para facilitar la lectura del formato sin procesar. +You can create fenced code blocks by placing triple backticks \`\`\` before and after the code block. We recommend placing a blank line before and after code blocks to make the raw formatting easier to read.
 ```
@@ -24,48 +24,48 @@ function test() {
 ```
 
-![Bloque de código cercado representado](/assets/images/help/writing/fenced-code-block-rendered.png) +![Rendered fenced code block](/assets/images/help/writing/fenced-code-block-rendered.png) {% tip %} -**Sugerencia:** Para preservar tu formato en una lista, asegúrate de dejar una sangría de ocho espacios para los bloques de código no cercados. +**Tip:** To preserve your formatting within a list, make sure to indent non-fenced code blocks by eight spaces. {% endtip %} -Para mostrar las comillas simples triples en un bloque de código cercado, enciérralas en comillas simples cuádruples. +To display triple backticks in a fenced code block, wrap them inside quadruple backticks.
 ```` 
 ```
-Look! Puedes ver mis comillas inversas.
+Look! You can see my backticks.
 ```
 ````
 
-![Código cercado interpretado con un bloque de comillas inversas](/assets/images/help/writing/fenced-code-show-backticks-rendered.png) +![Rendered fenced code with backticks block](/assets/images/help/writing/fenced-code-show-backticks-rendered.png) +{% data reusables.user_settings.enabling-fixed-width-fonts %} -## Resaltado de la sintaxis +## Syntax highlighting -Puedes agregar un identificador opcional de idioma para habilitar el resaltado de la sintaxis en tu bloque de código cercado. +You can add an optional language identifier to enable syntax highlighting in your fenced code block. -Por ejemplo, para resaltar la sintaxis del código Ruby: +For example, to syntax highlight Ruby code: ```ruby require 'redcarpet' markdown = Redcarpet.new("Hello World!") puts markdown.to_html - puts markdown.to_html ``` -![Bloque de código cercado representado con sintaxis de Ruby resaltada](/assets/images/help/writing/code-block-syntax-highlighting-rendered.png) +![Rendered code block with Ruby syntax highlighting](/assets/images/help/writing/code-block-syntax-highlighting-rendered.png) -Usamos [Lingüista](https://github.com/github/linguist) para realizar la detección del idioma y seleccionar [gramáticas independientes](https://github.com/github/linguist/blob/master/vendor/README.md) para el resaltado de la sintaxis. Puedes conocer las palabra clave válidas en [el archivo YAML de idiomas](https://github.com/github/linguist/blob/master/lib/linguist/languages.yml). +We use [Linguist](https://github.com/github/linguist) to perform language detection and to select [third-party grammars](https://github.com/github/linguist/blob/master/vendor/README.md) for syntax highlighting. You can find out which keywords are valid in [the languages YAML file](https://github.com/github/linguist/blob/master/lib/linguist/languages.yml). -## Leer más +## Further reading -- [{% data variables.product.prodname_dotcom %} Especificaciones del formato Markdown](https://github.github.com/gfm/) -- [Sintaxis de escritura y formato básicos](/articles/basic-writing-and-formatting-syntax)" +- [{% data variables.product.prodname_dotcom %} Flavored Markdown Spec](https://github.github.com/gfm/) +- "[Basic writing and formatting syntax](/articles/basic-writing-and-formatting-syntax)" diff --git a/translations/es-ES/content/github/writing-on-github/working-with-advanced-formatting/organizing-information-with-tables.md b/translations/es-ES/content/github/writing-on-github/working-with-advanced-formatting/organizing-information-with-tables.md index d3e0e60f92..4c5738d5f5 100644 --- a/translations/es-ES/content/github/writing-on-github/working-with-advanced-formatting/organizing-information-with-tables.md +++ b/translations/es-ES/content/github/writing-on-github/working-with-advanced-formatting/organizing-information-with-tables.md @@ -1,6 +1,6 @@ --- -title: Organizar la información en tablas -intro: 'Puedes construir tablas para organizar la información en comentarios, propuestas, solicitudes de extracción y wikis.' +title: Organizing information with tables +intro: 'You can build tables to organize information in comments, issues, pull requests, and wikis.' redirect_from: - /articles/organizing-information-with-tables - /github/writing-on-github/organizing-information-with-tables @@ -9,72 +9,73 @@ versions: ghes: '*' ghae: '*' ghec: '*' -shortTitle: Datos organizados con tablas +shortTitle: Organized data with tables --- +## Creating a table -## Crear una tabla - -Puede crear tablas con barras verticales `|` y guiones `-`. Los guiones se usan para crear el encabezado de cada columna, mientras que las barras verticales separan cada columna. Debes incluir una línea en blanco antes de tu tabla para que se representen correctamente. +You can create tables with pipes `|` and hyphens `-`. Hyphens are used to create each column's header, while pipes separate each column. You must include a blank line before your table in order for it to correctly render. ```markdown -| Primer encabezado | Segundo encabezado | +| First Header | Second Header | | ------------- | ------------- | -| Contenido de la celda | Contenido de la celda | -| Contenido de la celda | Contenido de la celda | +| Content Cell | Content Cell | +| Content Cell | Content Cell | ``` -![Tabla presentada](/assets/images/help/writing/table-basic-rendered.png) +![Rendered table](/assets/images/help/writing/table-basic-rendered.png) -Las barras verticales en cada lado de la tabla son opcionales. +The pipes on either end of the table are optional. -Las celdas pueden variar en el ancho y no es necesario que estén perfectamente alineadas dentro de las columnas. Debe haber al menos tres guiones en cada columna de la línea de encabezamiento. +Cells can vary in width and do not need to be perfectly aligned within columns. There must be at least three hyphens in each column of the header row. ```markdown -| Comando | Descripción | +| Command | Description | | --- | --- | -| git status | Enumera todos los archivos nuevos o modificados | -| git diff | Muestra las diferencias de archivo que no han sido preparadas | +| git status | List all new or modified files | +| git diff | Show file differences that haven't been staged | ``` -![Tabla presentada con ancho de celda variado](/assets/images/help/writing/table-varied-columns-rendered.png) +![Rendered table with varied cell width](/assets/images/help/writing/table-varied-columns-rendered.png) -## Formatear el contenido dentro de tu tabla +{% data reusables.user_settings.enabling-fixed-width-fonts %} -Puedes utilizar [formato](/articles/basic-writing-and-formatting-syntax) como enlaces, bloques de códigos insertados y el estilo de texto dentro de tu tabla: +## Formatting content within your table + +You can use [formatting](/articles/basic-writing-and-formatting-syntax) such as links, inline code blocks, and text styling within your table: ```markdown -| Comando | Descripción | +| Command | Description | | --- | --- | -| `git status` | Enumera todos los archivos *nuevos o modificados* | -| `git diff` | Muestra las diferencias de archivo que **no han sido** preparadas | +| `git status` | List all *new or modified* files | +| `git diff` | Show file differences that **haven't been** staged | ``` -![Tabla presentada con texto formateado](/assets/images/help/writing/table-inline-formatting-rendered.png) +![Rendered table with formatted text](/assets/images/help/writing/table-inline-formatting-rendered.png) -Puedes alinear el texto a la izquierda, la derecha o en el centro de una columna al incluir dos puntos `:` a la izquierda, la derecha, o en ambos lados de los guiones dentro de la línea de encabezamiento. +You can align text to the left, right, or center of a column by including colons `:` to the left, right, or on both sides of the hyphens within the header row. ```markdown -| Alineado a la izquierda | Alineado en el centro | Alineado a la derecha | +| Left-aligned | Center-aligned | Right-aligned | | :--- | :---: | ---: | | git status | git status | git status | | git diff | git diff | git diff | ``` -![Tabla presentada con alineación de texto a la izquierda, a la derecha o al centro](/assets/images/help/writing/table-aligned-text-rendered.png) +![Rendered table with left, center, and right text alignment](/assets/images/help/writing/table-aligned-text-rendered.png) -Para incluir una barra vertical `|` como contenido dentro de tu celda, utiliza una `\` antes de la barra: +To include a pipe `|` as content within your cell, use a `\` before the pipe: ```markdown -| Nombre | Símbolo | +| Name | Character | | --- | --- | -| Comilla simple | ` | -| Barra vertical | \| | +| Backtick | ` | +| Pipe | \| | ``` -![Tabla presentada con una barra vertical liberada](/assets/images/help/writing/table-escaped-character-rendered.png) +![Rendered table with an escaped pipe](/assets/images/help/writing/table-escaped-character-rendered.png) -## Leer más +## Further reading -- [{% data variables.product.prodname_dotcom %} Especificaciones del formato Markdown](https://github.github.com/gfm/) -- [Sintaxis de escritura y formato básicos](/articles/basic-writing-and-formatting-syntax)" +- [{% data variables.product.prodname_dotcom %} Flavored Markdown Spec](https://github.github.com/gfm/) +- "[Basic writing and formatting syntax](/articles/basic-writing-and-formatting-syntax)" diff --git a/translations/es-ES/content/graphql/reference/mutations.md b/translations/es-ES/content/graphql/reference/mutations.md index 1ac24f8638..73f190ae96 100644 --- a/translations/es-ES/content/graphql/reference/mutations.md +++ b/translations/es-ES/content/graphql/reference/mutations.md @@ -1,5 +1,5 @@ --- -title: Mutaciones +title: Mutations redirect_from: - /v4/mutation - /v4/reference/mutation @@ -12,12 +12,11 @@ topics: - API --- -## Acerca de las mutaciones +## About mutations -Cada modelo de GraphQL tiene un tipo de raíz tanto para consultas como para mutaciones. El [tipo mutación](https://graphql.github.io/graphql-spec/June2018/#sec-Type-System) define las operaciones de GraphQL que cambian los datos en el servidor. Es análogo a realizar verbos HTTP tales como `POST`, `PATCH`, y `DELETE`. +Every GraphQL schema has a root type for both queries and mutations. The [mutation type](https://graphql.github.io/graphql-spec/June2018/#sec-Type-System) defines GraphQL operations that change data on the server. It is analogous to performing HTTP verbs such as `POST`, `PATCH`, and `DELETE`. -Para obtener más información, consulta la sección "[Acerca de las mutaciones](/graphql/guides/forming-calls-with-graphql#about-mutations)". +For more information, see "[About mutations](/graphql/guides/forming-calls-with-graphql#about-mutations)." -{% for item in graphql.schemaForCurrentVersion.mutations %} - {% include graphql-mutation %} -{% endfor %} + + diff --git a/translations/es-ES/content/issues/index.md b/translations/es-ES/content/issues/index.md index 25c044c9d6..7b78e0992a 100644 --- a/translations/es-ES/content/issues/index.md +++ b/translations/es-ES/content/issues/index.md @@ -1,7 +1,7 @@ --- -title: Propuestas de GitHub -shortTitle: Propuestas de GitHub -intro: 'Aprende cómo puedes utilizar las {% data variables.product.prodname_github_issues %} para planear y rastrear tu trabajo.' +title: GitHub Issues +shortTitle: GitHub Issues +intro: 'Learn how you can use {% data variables.product.prodname_github_issues %} to plan and track your work.' introLinks: overview: /issues/tracking-your-work-with-issues/creating-issues/about-issues quickstart: /issues/tracking-your-work-with-issues/quickstart @@ -44,9 +44,9 @@ redirect_from: - /github/managing-your-work-on-github/managing-your-work-with-issues-and-pull-requests - /github/managing-your-work-on-github/managing-your-work-with-issues - /github/managing-your-work-on-github - - /categories/100/articles/ - - /categories/managing-projects/ - - /categories/managing-projects-on-github/ + - /categories/100/articles + - /categories/managing-projects + - /categories/managing-projects-on-github - /categories/managing-your-work-on-github - /about-issues - /creating-an-issue diff --git a/translations/es-ES/content/issues/organizing-your-work-with-project-boards/managing-project-boards/about-project-boards.md b/translations/es-ES/content/issues/organizing-your-work-with-project-boards/managing-project-boards/about-project-boards.md index 358a5f26f8..833004a4f8 100644 --- a/translations/es-ES/content/issues/organizing-your-work-with-project-boards/managing-project-boards/about-project-boards.md +++ b/translations/es-ES/content/issues/organizing-your-work-with-project-boards/managing-project-boards/about-project-boards.md @@ -1,9 +1,9 @@ --- -title: Acerca de los tableros de proyecto -intro: 'Los tableros de proyecto en {% data variables.product.product_name %} te ayudan a organizar y priorizar tu trabajo. Puedes crear tableros de proyecto para un trabajo con características específicas, hojas de ruta completas y hasta listas de verificación de lanzamientos. Con los tableros de proyecto, tienes la flexibilidad de crear flujos de trabajo personalizados que se adapten a tus necesidades.' +title: About project boards +intro: 'Project boards on {% data variables.product.product_name %} help you organize and prioritize your work. You can create project boards for specific feature work, comprehensive roadmaps, or even release checklists. With project boards, you have the flexibility to create customized workflows that suit your needs.' redirect_from: - /github/managing-your-work-on-github/managing-project-boards/about-project-boards - - /articles/about-projects/ + - /articles/about-projects - /articles/about-project-boards - /github/managing-your-work-on-github/about-project-boards versions: @@ -17,58 +17,58 @@ topics: {% data reusables.projects.project_boards_old %} -Los tableros de proyecto están compuestos por propuestas, solicitudes de extracción y notas que se categorizan como tarjetas en columnas a tu elección. Puedes arrastrar y soltar o usar los atajos del teclado para reordenar las tarjetas dentro de una columna, mover tarjetas de columna a columna y cambiar el orden de las columnas. +Project boards are made up of issues, pull requests, and notes that are categorized as cards in columns of your choosing. You can drag and drop or use keyboard shortcuts to reorder cards within a column, move cards from column to column, and change the order of columns. -Las tarjetas del tablero de proyecto contienen metadatos relevantes para las propuestas y las solicitudes de extracción, como etiquetas, asignatarios, el estado y quién la abrió. {% data reusables.project-management.edit-in-project %} +Project board cards contain relevant metadata for issues and pull requests, like labels, assignees, the status, and who opened it. {% data reusables.project-management.edit-in-project %} -También puedes crear notas dentro de las columnas para servir como recordatorios de tarea, referencias a propuestas y solicitudes de extracción desde cualquier repositorio en {% data variables.product.product_location %}, o agregar información relacionada con tu tablero de proyecto. Puedes crear una tarjeta de referencia para otro tablero de proyecto agregando un enlace a una nota. Si la nota no es suficiente para tus necesidades, puedes convertirla en una propuesta. Para obtener más información sobre cómo convertir las notas del tablero de proyecto en propuestas, consulta "[Agregar notas a un tablero de proyecto](/articles/adding-notes-to-a-project-board)". +You can create notes within columns to serve as task reminders, references to issues and pull requests from any repository on {% data variables.product.product_location %}, or to add information related to the project board. You can create a reference card for another project board by adding a link to a note. If the note isn't sufficient for your needs, you can convert it to an issue. For more information on converting project board notes to issues, see "[Adding notes to a project board](/articles/adding-notes-to-a-project-board)." -Tipos de tableros de proyecto: +Types of project boards: -- Los **tableros de proyecto propiedad del usuario** pueden contener propuestas y solicitudes de extracción de cualquier repositorio personal. -- Los **tableros de proyecto para toda la organización** pueden contener propuestas y solicitudes de extracción de cualquier repositorio que pertenezca a una organización. {% data reusables.project-management.link-repos-to-project-board %} Para obtener más información, consulta "[Enlazar un repositorio a un tablero de proyecto](/articles/linking-a-repository-to-a-project-board)". -- Los **tableros de proyecto para un repositorio** están limitados a las propuestas y las solicitudes de extracción dentro de un único repositorio. También pueden incluir notas que hacen referencia a las propuestas y las solicitudes de extracción en otros repositorios. +- **User-owned project boards** can contain issues and pull requests from any personal repository. +- **Organization-wide project boards** can contain issues and pull requests from any repository that belongs to an organization. {% data reusables.project-management.link-repos-to-project-board %} For more information, see "[Linking a repository to a project board](/articles/linking-a-repository-to-a-project-board)." +- **Repository project boards** are scoped to issues and pull requests within a single repository. They can also include notes that reference issues and pull requests in other repositories. -## Crear y ver tableros de proyecto +## Creating and viewing project boards -Para crear un tablero de proyecto para tu organización, debes ser un miembro de la organización. Los propietarios de la organización y las personas con permisos de administrador para el tablero de proyecto pueden personalizar el acceso al tablero de proyecto. +To create a project board for your organization, you must be an organization member. Organization owners and people with project board admin permissions can customize access to the project board. -Si un tablero de proyecto propiedad de la organización incluye propuestas o solicitudes de extracción de un repositorio del que no tienes permiso para ver, la tarjeta será censurada. Para obtener más información, consulta "[Permisos de tablero de proyecto para una organización](/articles/project-board-permissions-for-an-organization)". +If an organization-owned project board includes issues or pull requests from a repository that you don't have permission to view, the card will be redacted. For more information, see "[Project board permissions for an organization](/articles/project-board-permissions-for-an-organization)." -La vista actividad muestra el historial reciente del tablero de proyecto, como las tarjetas que alguien creó o movió entre las columnas. Para acceder a la vista actividad, haz clic en **Menú** y desplázate hacia abajo. +The activity view shows the project board's recent history, such as cards someone created or moved between columns. To access the activity view, click **Menu** and scroll down. -Para encontrar tarjetas específicas en un tablero de proyecto o para ver un subconjunto de tarjetas, puedes filtrar las tarjetas del tablero de proyecto. Para obtener más información, consulta "[Filtrar tarjetas en un tablero de proyecto](/articles/filtering-cards-on-a-project-board)". +To find specific cards on a project board or view a subset of the cards, you can filter project board cards. For more information, see "[Filtering cards on a project board](/articles/filtering-cards-on-a-project-board)." -Para simplificar tu flujo de trabajo y para mantener las tareas completadas al margen de tu tablero de proyecto, puedes archivar tarjetas. Para obtener más información, consulta "[Archivar tarjetas en un tablero de proyecto](/articles/archiving-cards-on-a-project-board)". +To simplify your workflow and keep completed tasks off your project board, you can archive cards. For more information, see "[Archiving cards on a project board](/articles/archiving-cards-on-a-project-board)." -Si has completado todas las tareas de tu tablero de proyecto o ya no necesitas usar tu tablero de proyecto, puedes cerrar el tablero de proyecto. Para obtener más información, consulta "[Cerrar un tablero de proyecto](/articles/closing-a-project-board)". +If you've completed all of your project board tasks or no longer need to use your project board, you can close the project board. For more information, see "[Closing a project board](/articles/closing-a-project-board)." -También puedes [desactivar tableros de proyecto en un repositorio](/articles/disabling-project-boards-in-a-repository) o [desactivar tableros de proyecto en tu organización](/articles/disabling-project-boards-in-your-organization), si prefieres hacer un seguimiento de tu trabajo de manera diferente. +You can also [disable project boards in a repository](/articles/disabling-project-boards-in-a-repository) or [disable project boards in your organization](/articles/disabling-project-boards-in-your-organization), if you prefer to track your work in a different way. {% data reusables.project-management.project-board-import-with-api %} -## Plantillas para tableros de proyecto +## Templates for project boards -Puedes usar plantillas para configurar de forma rápida un nuevo tablero de proyecto. Cuando usas una plantilla para crear un tablero de proyecto, tu nuevo tablero incluirá columnas, así como tarjetas con sugerencias para usar los tableros de proyecto. También puedes elegir una plantilla con la automatización ya configurada. +You can use templates to quickly set up a new project board. When you use a template to create a project board, your new board will include columns as well as cards with tips for using project boards. You can also choose a template with automation already configured. -| Plantilla | Descripción | -| ------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| Kanban básico | Hace un seguimiento de tus tareas con las columnas Tareas pendientes, En progreso y Hecho | -| Kanban automatizado | Las tarjetas se mueven automáticamente entre las columnas Tareas pendientes, En progreso y Hecho | -| Kanba automatizado con revisión | Las tarjetas se mueven automáticamente entre las columnas Tareas pendientes, En progreso y Hecho, con disparos adicionales para el estado de la revisión de solicitud de extracción | -| Evaluación de error | Evalúa y prioriza errores con las columnas Tareas pendientes, Prioridad alta, Prioridad baja y Cerrado | +| Template | Description | +| --- | --- | +| Basic kanban | Track your tasks with To do, In progress, and Done columns | +| Automated kanban | Cards automatically move between To do, In progress, and Done columns | +| Automated kanban with review | Cards automatically move between To do, In progress, and Done columns, with additional triggers for pull request review status | +| Bug triage | Triage and prioritize bugs with To do, High priority, Low priority, and Closed columns | -Para obtener más información, consulta "[Acerca de la automatización para tableros de proyecto](/articles/about-automation-for-project-boards)". +For more information on automation for project boards, see "[About automation for project boards](/articles/about-automation-for-project-boards)." -![Tablero de proyecto con plantilla de kanban básico](/assets/images/help/projects/project-board-basic-kanban-template.png) +![Project board with basic kanban template](/assets/images/help/projects/project-board-basic-kanban-template.png) {% data reusables.project-management.copy-project-boards %} -## Leer más +## Further reading -- "[Crear un tablero de proyecto](/articles/creating-a-project-board)" -- "[Editar un tablero de proyecto](/articles/editing-a-project-board)"{% ifversion fpt or ghec %} +- "[Creating a project board](/articles/creating-a-project-board)" +- "[Editing a project board](/articles/editing-a-project-board)"{% ifversion fpt or ghec %} - "[Copying a project board](/articles/copying-a-project-board)"{% endif %} -- "[Agregar propuestas y solicitudes de extracción a un tablero de proyecto](/articles/adding-issues-and-pull-requests-to-a-project-board)" -- [Permisos de tablero de proyecto para una organización](/articles/project-board-permissions-for-an-organization)" -- "[Atajos del teclado](/articles/keyboard-shortcuts/#project-boards)" +- "[Adding issues and pull requests to a project board](/articles/adding-issues-and-pull-requests-to-a-project-board)" +- "[Project board permissions for an organization](/articles/project-board-permissions-for-an-organization)" +- "[Keyboard shortcuts](/articles/keyboard-shortcuts/#project-boards)" diff --git a/translations/es-ES/content/issues/organizing-your-work-with-project-boards/managing-project-boards/closing-a-project-board.md b/translations/es-ES/content/issues/organizing-your-work-with-project-boards/managing-project-boards/closing-a-project-board.md index 3426870660..4dbbbda931 100644 --- a/translations/es-ES/content/issues/organizing-your-work-with-project-boards/managing-project-boards/closing-a-project-board.md +++ b/translations/es-ES/content/issues/organizing-your-work-with-project-boards/managing-project-boards/closing-a-project-board.md @@ -1,9 +1,9 @@ --- -title: Cerrar un tablero de proyecto -intro: 'Si has completado todas las tareas de tu tablero de proyecto o ya no necesitas usar un tablero de proyecto, puedes cerrarlo.' +title: Closing a project board +intro: 'If you''ve completed all the tasks in a project board or no longer need to use a project board, you can close the project board.' redirect_from: - /github/managing-your-work-on-github/managing-project-boards/closing-a-project-board - - /articles/closing-a-project/ + - /articles/closing-a-project - /articles/closing-a-project-board - /github/managing-your-work-on-github/closing-a-project-board versions: @@ -14,21 +14,22 @@ versions: topics: - Pull requests --- - {% data reusables.projects.project_boards_old %} -Cuando cierras un tablero de proyecto, todas las automatizaciones del flujo de trabajo configuradas se pausarán por defecto. +When you close a project board, any configured workflow automation will pause by default. -Si vuelves a abrir un tablero de proyecto, tienes la opción de *sincronizar* la automatización, lo que actualiza la posición de las tarjetas en el tablero de acuerdo con los parámetros de automatización configurados para el tablero. Para obtener más información, consulta "[Volver a abrir un tablero de proyecto cerrado](/articles/reopening-a-closed-project-board)" o "[Acerca de la automatización de los tableros de proyectos](/articles/about-automation-for-project-boards)". +If you reopen a project board, you have the option to *sync* automation, which updates the position of the cards on the board according to the automation settings configured for the board. For more information, see "[Reopening a closed project board](/articles/reopening-a-closed-project-board)" or "[About automation for project boards](/articles/about-automation-for-project-boards)." -1. Navega hasta la lista de tableros de proyectos en tu repositorio u organización o los que le pertenezcan a tu cuenta de usuario. -2. En la lista de proyectos, junto al tablero de proyectos que deseas cerrar, haz clic en {% octicon "chevron-down" aria-label="The chevron icon" %}. ![Icono de comillas angulares a la derecha del nombre del tablero de proyecto](/assets/images/help/projects/project-list-action-chevron.png) -3. Da clic en **Cerrar**. ![Menú desplegable para cerrar elementos en el tablero de proyecto](/assets/images/help/projects/close-project.png) +1. Navigate to the list of project boards in your repository or organization, or owned by your user account. +2. In the projects list, next to the project board you want to close, click {% octicon "chevron-down" aria-label="The chevron icon" %}. +![Chevron icon to the right of the project board's name](/assets/images/help/projects/project-list-action-chevron.png) +3. Click **Close**. +![Close item in the project board's drop-down menu](/assets/images/help/projects/close-project.png) -## Leer más +## Further reading -- "[Acerca de los tablero de proyecto](/articles/about-project-boards)" -- "[Eliminar un tablero de proyecto](/articles/deleting-a-project-board)" -- "[Inhabilitar tableros de proyectos en un repositorio](/articles/disabling-project-boards-in-a-repository)" -- "[Inhabilitar tableros de proyectos en tu organización](/articles/disabling-project-boards-in-a-repository)" -- [Permisos de tablero de proyecto para una organización](/articles/project-board-permissions-for-an-organization)" +- "[About project boards](/articles/about-project-boards)" +- "[Deleting a project board](/articles/deleting-a-project-board)" +- "[Disabling project boards in a repository](/articles/disabling-project-boards-in-a-repository)" +- "[Disabling project boards in your organization](/articles/disabling-project-boards-in-your-organization)" +- "[Project board permissions for an organization](/articles/project-board-permissions-for-an-organization)" diff --git a/translations/es-ES/content/issues/organizing-your-work-with-project-boards/managing-project-boards/creating-a-project-board.md b/translations/es-ES/content/issues/organizing-your-work-with-project-boards/managing-project-boards/creating-a-project-board.md index 5d522d186f..712cb6f12d 100644 --- a/translations/es-ES/content/issues/organizing-your-work-with-project-boards/managing-project-boards/creating-a-project-board.md +++ b/translations/es-ES/content/issues/organizing-your-work-with-project-boards/managing-project-boards/creating-a-project-board.md @@ -1,9 +1,9 @@ --- -title: Crear un tablero de proyecto -intro: 'Los tableros de proyecto se pueden usar para crear flujos de trabajo personalizados de acuerdo con tus necesidades, como hacer un seguimiento y priorizar trabajos con características específicas, hojas de ruta completas y hasta listas de verificación de lanzamientos.' +title: Creating a project board +intro: 'Project boards can be used to create customized workflows to suit your needs, like tracking and prioritizing specific feature work, comprehensive roadmaps, or even release checklists.' redirect_from: - /github/managing-your-work-on-github/managing-project-boards/creating-a-project-board - - /articles/creating-a-project/ + - /articles/creating-a-project - /articles/creating-a-project-board - /github/managing-your-work-on-github/creating-a-project-board versions: @@ -18,25 +18,25 @@ topics: - Project management type: how_to --- - {% data reusables.projects.project_boards_old %} {% data reusables.project-management.use-automated-template %} {% data reusables.project-management.copy-project-boards %} -{% data reusables.project-management.link-repos-to-project-board %} Para obtener más información, consulta "[Enlazar un repositorio a un tablero de proyecto](/articles/linking-a-repository-to-a-project-board)". +{% data reusables.project-management.link-repos-to-project-board %} For more information, see "[Linking a repository to a project board](/articles/linking-a-repository-to-a-project-board)." -Una vez que has creado tu tablero de proyecto, puedes agregarle propuestas, solicitudes de extracción y notas. Para obtener más información, consulta "[Agregar propuestas y solicitudes de extracción a un tablero de proyecto](/articles/adding-issues-and-pull-requests-to-a-project-board)" y "[Agregar notas a un tablero de proyecto](/articles/adding-notes-to-a-project-board)". +Once you've created your project board, you can add issues, pull requests, and notes to it. For more information, see "[Adding issues and pull requests to a project board](/articles/adding-issues-and-pull-requests-to-a-project-board)" and "[Adding notes to a project board](/articles/adding-notes-to-a-project-board)." -También puedes configurar automatizaciones de flujo de trabajo para mantener tu tablero de proyecto sincronizado con el estado de las propuestas y solicitudes de extracción. Para obtener más información, consulta "[Acerca de la automatización para tableros de proyecto](/articles/about-automation-for-project-boards)". +You can also configure workflow automations to keep your project board in sync with the status of issues and pull requests. For more information, see "[About automation for project boards](/articles/about-automation-for-project-boards)." {% data reusables.project-management.project-board-import-with-api %} -## Crear un tablero de proyecto propiedad de un usuario +## Creating a user-owned project board {% data reusables.profile.access_profile %} -2. En la parte superior de tu página de perfil, en la navegación principal, haz clic en {% octicon "project" aria-label="The project board icon" %} **Proyectos**. ![Pestaña Project (Proyecto)](/assets/images/help/projects/user-projects-tab.png) +2. On the top of your profile page, in the main navigation, click {% octicon "project" aria-label="The project board icon" %} **Projects**. +![Project tab](/assets/images/help/projects/user-projects-tab.png) {% data reusables.project-management.click-new-project %} {% data reusables.project-management.create-project-name-description %} {% data reusables.project-management.choose-template %} @@ -52,7 +52,7 @@ También puedes configurar automatizaciones de flujo de trabajo para mantener tu {% data reusables.project-management.edit-project-columns %} -## Crear un tablero de proyecto para toda la organización +## Creating an organization-wide project board {% data reusables.profile.access_org %} {% data reusables.user_settings.access_org %} @@ -72,10 +72,11 @@ También puedes configurar automatizaciones de flujo de trabajo para mantener tu {% data reusables.project-management.edit-project-columns %} -## Crear un tablero de proyecto para un repositorio +## Creating a repository project board {% data reusables.repositories.navigate-to-repo %} -2. En el nombre de tu repositorio, haz clic en {% octicon "project" aria-label="The project board icon" %} **Proyectos**. ![Pestaña Project (Proyecto)](/assets/images/help/projects/repo-tabs-projects.png) +2. Under your repository name, click {% octicon "project" aria-label="The project board icon" %} **Projects**. +![Project tab](/assets/images/help/projects/repo-tabs-projects.png) {% data reusables.project-management.click-new-project %} {% data reusables.project-management.create-project-name-description %} {% data reusables.project-management.choose-template %} @@ -89,10 +90,10 @@ También puedes configurar automatizaciones de flujo de trabajo para mantener tu {% data reusables.project-management.edit-project-columns %} -## Leer más +## Further reading -- "[Acerca de los tableros de proyectos](/articles/about-project-boards)" -- "[Editar un tablero de proyecto](/articles/editing-a-project-board)"{% ifversion fpt or ghec %} +- "[About projects boards](/articles/about-project-boards)" +- "[Editing a project board](/articles/editing-a-project-board)"{% ifversion fpt or ghec %} - "[Copying a project board](/articles/copying-a-project-board)"{% endif %} -- "[Cerrar un tablero de proyecto](/articles/closing-a-project-board)" -- "[Acerca de la automatización de los tableros de proyecto](/articles/about-automation-for-project-boards)" +- "[Closing a project board](/articles/closing-a-project-board)" +- "[About automation for project boards](/articles/about-automation-for-project-boards)" diff --git a/translations/es-ES/content/issues/organizing-your-work-with-project-boards/managing-project-boards/deleting-a-project-board.md b/translations/es-ES/content/issues/organizing-your-work-with-project-boards/managing-project-boards/deleting-a-project-board.md index 64ce70f218..1c13437734 100644 --- a/translations/es-ES/content/issues/organizing-your-work-with-project-boards/managing-project-boards/deleting-a-project-board.md +++ b/translations/es-ES/content/issues/organizing-your-work-with-project-boards/managing-project-boards/deleting-a-project-board.md @@ -1,9 +1,9 @@ --- -title: Eliminar un tablero de proyecto -intro: Puedes eliminar un tablero de proyecto existente si ya no necesitas acceder a su contenido. +title: Deleting a project board +intro: You can delete an existing project board if you no longer need access to its contents. redirect_from: - /github/managing-your-work-on-github/managing-project-boards/deleting-a-project-board - - /articles/deleting-a-project/ + - /articles/deleting-a-project - /articles/deleting-a-project-board - /github/managing-your-work-on-github/deleting-a-project-board versions: @@ -14,23 +14,23 @@ versions: topics: - Pull requests --- - {% data reusables.projects.project_boards_old %} {% tip %} -**Sugerencia**: Si deseas conservar el acceso a un tablero de proyecto que ya no necesitas o que ya está completo sin perder acceso a su contenido, puedes [cerrar el tablero de proyecto](/articles/closing-a-project-board) en lugar de eliminarlo. +**Tip**: If you'd like to retain access to a completed or unneeded project board without losing access to its contents, you can [close the project board](/articles/closing-a-project-board) instead of deleting it. {% endtip %} -1. Dirígete al tablero de proyecto que deseas eliminar. +1. Navigate to the project board you want to delete. {% data reusables.project-management.click-menu %} {% data reusables.project-management.click-edit-sidebar-menu-project-board %} -4. Haz clic en **Eliminar proyecto**. ![Botón Eliminar proyecto](/assets/images/help/projects/delete-project-button.png) -5. Para confirmar que deseas eliminar el tablero de proyecto, haz clic en **Aceptar**. +4. Click **Delete project**. +![Delete project button](/assets/images/help/projects/delete-project-button.png) +5. To confirm that you want to delete the project board, click **OK**. -## Leer más +## Further reading -- "[Cerrar un tablero de proyecto](/articles/closing-a-project-board)" -- "[Inhabilitar tableros de proyectos en un repositorio](/articles/disabling-project-boards-in-a-repository)" -- "[Inhabilitar tableros de proyectos en tu organización](/articles/disabling-project-boards-in-a-repository)" +- "[Closing a project board](/articles/closing-a-project-board)" +- "[Disabling project boards in a repository](/articles/disabling-project-boards-in-a-repository)" +- "[Disabling project boards in your organization](/articles/disabling-project-boards-in-your-organization)" diff --git a/translations/es-ES/content/issues/organizing-your-work-with-project-boards/managing-project-boards/editing-a-project-board.md b/translations/es-ES/content/issues/organizing-your-work-with-project-boards/managing-project-boards/editing-a-project-board.md index b2f96b96d8..e80b1eec6e 100644 --- a/translations/es-ES/content/issues/organizing-your-work-with-project-boards/managing-project-boards/editing-a-project-board.md +++ b/translations/es-ES/content/issues/organizing-your-work-with-project-boards/managing-project-boards/editing-a-project-board.md @@ -1,10 +1,10 @@ --- -title: Editar un tablero de proyecto -intro: Puedes editar el título y la descripción de un tablero de proyecto existente. +title: Editing a project board +intro: You can edit the title and description of an existing project board. redirect_from: - /github/managing-your-work-on-github/managing-project-boards/editing-a-project-board - - /articles/editing-a-project/ - - /articles/editing-and-deleting-a-project/ + - /articles/editing-a-project + - /articles/editing-and-deleting-a-project - /articles/editing-a-project-board - /github/managing-your-work-on-github/editing-a-project-board versions: @@ -15,22 +15,22 @@ versions: topics: - Pull requests --- - {% data reusables.projects.project_boards_old %} {% tip %} -**Sugerencia:** Para conocer detalles sobre cómo agregar, eliminar o editar columnas en tu tablero de proyecto, consulta "[Crear un tablero de proyecto](/articles/creating-a-project-board)". +**Tip:** For details on adding, removing, or editing columns in your project board, see "[Creating a project board](/articles/creating-a-project-board)." {% endtip %} -1. Dirígete al tablero de proyecto que deseas editar. +1. Navigate to the project board you want to edit. {% data reusables.project-management.click-menu %} -{% data reusables.project-management.click-edit-sidebar-menu-project-board %} -4. Modifica el nombre y la descripción del tablero de proyecto según sea necesario y luego haz clic en **Guardar proyecto**. ![Campos con el nombre y la descripción del tablero de proyecto y botón Guardar proyecto](/assets/images/help/projects/edit-project-board-save-button.png) +{% data reusables.project-management.click-edit-sidebar-menu-project-board %} +4. Modify the project board name and description as needed, then click **Save project**. +![Fields with the project board name and description, and Save project button](/assets/images/help/projects/edit-project-board-save-button.png) -## Leer más +## Further reading -- "[Acerca de los tablero de proyecto](/articles/about-project-boards)" -- "[Agregar propuestas y solicitudes de extracción a un tablero de proyecto](/articles/adding-issues-and-pull-requests-to-a-project-board)" -- "[Eliminar un tablero de proyecto](/articles/deleting-a-project-board)" +- "[About project boards](/articles/about-project-boards)" +- "[Adding issues and pull requests to a project board](/articles/adding-issues-and-pull-requests-to-a-project-board)" +- "[Deleting a project board](/articles/deleting-a-project-board)" diff --git a/translations/es-ES/content/issues/organizing-your-work-with-project-boards/managing-project-boards/reopening-a-closed-project-board.md b/translations/es-ES/content/issues/organizing-your-work-with-project-boards/managing-project-boards/reopening-a-closed-project-board.md index 463d222fc9..b290d300bc 100644 --- a/translations/es-ES/content/issues/organizing-your-work-with-project-boards/managing-project-boards/reopening-a-closed-project-board.md +++ b/translations/es-ES/content/issues/organizing-your-work-with-project-boards/managing-project-boards/reopening-a-closed-project-board.md @@ -1,6 +1,6 @@ --- -title: Reabrir un tablero de proyecto cerrado -intro: Puedes reabrir un tablero de proyecto cerrado y reiniciar cualquier automatización de flujo de trabajo que se haya configurado para el tablero de proyecto. +title: Reopening a closed project board +intro: You can reopen a closed project board and restart any workflow automation that was configured for the project board. redirect_from: - /github/managing-your-work-on-github/managing-project-boards/reopening-a-closed-project-board - /articles/reopening-a-closed-project-board @@ -12,21 +12,22 @@ versions: ghec: '*' topics: - Pull requests -shortTitle: Reabir el tablero de proyecto +shortTitle: Reopen project board --- - {% data reusables.projects.project_boards_old %} -Cuando cierras un tablero de proyecto, por defecto, se detiene cualquier automatización de flujo de trabajo que se haya configurado para el tablero de proyecto. Para obtener más información, consulta "[Cerrar un tablero de proyecto](/articles/closing-a-project-board)". +When you close a project board, any workflow automation that was configured for the project board will pause by default. For more information, see "[Closing a project board](/articles/closing-a-project-board)." -Cuando reabres un tablero de proyecto, tienes la opción de *sync* (sincronizar) automatización, lo cual actualiza la posición de las tarjetas en el tablero de acuerdo con los parámetros de automatización establecidos para el tablero. +When you reopen a project board, you have the option to *sync* automation, which updates the position of the cards on the board according to the automation settings configured for the board. -1. Navega hasta el tablero de proyecto que quieres reabrir. +1. Navigate to the project board you want to reopen. {% data reusables.project-management.click-menu %} -3. Elige la sincronización de la automatización para tu tablero de proyecto o reabre tu tablero de proyecto sin sincronizar. - - Para reabrir tu tablero de proyecto y sincronizar la automatización, haz clic en **Reopen and sync project** (Reabrir y sincronizar proyecto). ![Selecciona el botón "Reopen and resync project" (Reabrir y resincronizar proyecto)](/assets/images/help/projects/reopen-and-sync-project.png) - - Para reabrir tu tablero de proyecto sin sincronizar la automatización, utilizando el menú desplegable, haz clic en **Reopen only** (Solo reabrir). Luego, haz clic en **Reopen only** (Solo reabrir). ![Menú desplegable para reabrir tablero de proyecto cerrado](/assets/images/help/projects/reopen-closed-project-board-drop-down-menu.png) +3. Choose whether to sync automation for your project board or reopen your project board without syncing. + - To reopen your project board and sync automation, click **Reopen and sync project**. + ![Select "Reopen and resync project" button](/assets/images/help/projects/reopen-and-sync-project.png) + - To reopen your project board without syncing automation, using the reopen drop-down menu, click **Reopen only**. Then, click **Reopen only**. + ![Reopen closed project board drop-down menu](/assets/images/help/projects/reopen-closed-project-board-drop-down-menu.png) -## Leer más +## Further reading -- "[Configurar la automatización para los tableros de proyecto](/articles/configuring-automation-for-project-boards)" +- "[Configuring automation for project boards](/articles/configuring-automation-for-project-boards)" diff --git a/translations/es-ES/content/issues/organizing-your-work-with-project-boards/tracking-work-with-project-boards/adding-issues-and-pull-requests-to-a-project-board.md b/translations/es-ES/content/issues/organizing-your-work-with-project-boards/tracking-work-with-project-boards/adding-issues-and-pull-requests-to-a-project-board.md index 899b25ed84..6c67376231 100644 --- a/translations/es-ES/content/issues/organizing-your-work-with-project-boards/tracking-work-with-project-boards/adding-issues-and-pull-requests-to-a-project-board.md +++ b/translations/es-ES/content/issues/organizing-your-work-with-project-boards/tracking-work-with-project-boards/adding-issues-and-pull-requests-to-a-project-board.md @@ -1,9 +1,9 @@ --- -title: Agregar propuestas y solicitudes de extracción a un tablero de proyecto -intro: Puedes agregar propuestas y solicitudes de extracción a un tablero de proyecto en la forma de tarjetas y jerarquizarlas en columnas. +title: Adding issues and pull requests to a project board +intro: You can add issues and pull requests to a project board in the form of cards and triage them into columns. redirect_from: - /github/managing-your-work-on-github/tracking-the-progress-of-your-work-with-project-boards/adding-issues-and-pull-requests-to-a-project-board - - /articles/adding-issues-and-pull-requests-to-a-project/ + - /articles/adding-issues-and-pull-requests-to-a-project - /articles/adding-issues-and-pull-requests-to-a-project-board - /github/managing-your-work-on-github/adding-issues-and-pull-requests-to-a-project-board versions: @@ -13,61 +13,67 @@ versions: ghec: '*' topics: - Pull requests -shortTitle: Agrega propuestas & solicitudes de cambio a un tablero +shortTitle: Add issues & PRs to board --- - {% data reusables.projects.project_boards_old %} -Puedes agregar propuestas o tarjetas de solicitudes de extracción a un tablero de proyecto al: -- Arrastrar tarjetas desde la sección **Triage** (Jerarquizar) en la barra lateral. -- Escribir la propuesta o URL de solicitud de extracción en una tarjeta. -- Buscar las propuestas o solicitudes de extracción en la barra lateral de búsqueda del tablero de proyecto. +You can add issue or pull request cards to your project board by: +- Dragging cards from the **Triage** section in the sidebar. +- Typing the issue or pull request URL in a card. +- Searching for issues or pull requests in the project board search sidebar. -Puedes poner un máximo de 2500 tarjetas en cada columna del proyecto. Si una columna ha alcanzado un número máximo de tarjetas, ninguna tarjeta puede moverse a esa columna. +You can put a maximum of 2,500 cards into each project column. If a column has reached the maximum number of cards, no cards can be moved into that column. -![El cursor mueve la tarjeta de propuestas desde la barra lateral de clasificación hasta la columna del tablero](/assets/images/help/projects/add-card-from-sidebar.gif) +![Cursor moves issue card from triaging sidebar to project board column](/assets/images/help/projects/add-card-from-sidebar.gif) {% note %} -**Nota:** También puedes agregar notas a tu tablero de proyecto para servir como recordatorios de tarea, referencias a propuestas y solicitudes de extracción desde un repositorio en {% data variables.product.product_name %}, o agregar información relacionada con tu tablero de proyecto. Para obtener más información, consulta "[Agregar notas a un tablero de proyecto](/articles/adding-notes-to-a-project-board)". +**Note:** You can also add notes to your project board to serve as task reminders, references to issues and pull requests from any repository on {% data variables.product.product_name %}, or to add related information to your project board. For more information, see "[Adding notes to a project board](/articles/adding-notes-to-a-project-board)." {% endnote %} {% data reusables.project-management.edit-in-project %} -{% data reusables.project-management.link-repos-to-project-board %} Cuando buscas propuestas y solicitudes de extracción para agregar a tu tablero de proyecto, la búsqueda automáticamente llega a tus repositorios relacionados. Puedes eliminar estos calificadores para buscar dentro de todos los repositorios de la organización. Para obtener más información, consulta "[Vincular un repositorio con un tablero de proyecto](/articles/linking-a-repository-to-a-project-board)". +{% data reusables.project-management.link-repos-to-project-board %} When you search for issues and pull requests to add to your project board, the search automatically scopes to your linked repositories. You can remove these qualifiers to search within all organization repositories. For more information, see "[Linking a repository to a project board](/articles/linking-a-repository-to-a-project-board)." -## Agregar propuestas y solicitudes de extracción a un tablero de proyecto +## Adding issues and pull requests to a project board -1. Navegue hasta el tablero de proyecto donde deseas agregar propuestas y solicitudes de extracción. -2. En tu tablero de proyecto, haz clic en {% octicon "plus" aria-label="The plus icon" %} **Add cards** (Agregar tarjetas). ![Agregar botón de tarjetas](/assets/images/help/projects/add-cards-button.png) -3. Buscar propuestas y solicitudes de extracción para agregar a tu tablero de proyecto mediante calificadores de búsqueda. Para más información sobre la búsqueda de calificadores que puedes usar, consulta "[Buscar propuestas](/articles/searching-issues)". ![Buscar propuestas y solicitudes de extracción](/assets/images/help/issues/issues_search_bar.png) +1. Navigate to the project board where you want to add issues and pull requests. +2. In your project board, click {% octicon "plus" aria-label="The plus icon" %} **Add cards**. +![Add cards button](/assets/images/help/projects/add-cards-button.png) +3. Search for issues and pull requests to add to your project board using search qualifiers. For more information on search qualifiers you can use, see "[Searching issues](/articles/searching-issues)." + ![Search issues and pull requests](/assets/images/help/issues/issues_search_bar.png) {% tip %} **Tips:** - - También puedes agregar una propuesta o solicitud de extracción al escribir la URL en una tarjeta. - - Si estás trabajando en una característica específica, puedes aplicar una etiqueta a cada propuesta relacionada o solicitud de extracción para esa característica, y luego agregar tarjetas fácilmente a tu tablero de proyecto al buscar por el nombre de la etiqueta. Para obtener más información, consulta "[Aplicar etiquetas a propuestas y solicitudes de extracción](/articles/applying-labels-to-issues-and-pull-requests)". + - You can also add an issue or pull request by typing the URL in a card. + - If you're working on a specific feature, you can apply a label to each related issue or pull request for that feature, and then easily add cards to your project board by searching for the label name. For more information, see "[Apply labels to issues and pull requests](/articles/applying-labels-to-issues-and-pull-requests)." {% endtip %} -4. En la lista filtrada de propuestas y solicitudes de extracción, arrastra la tarjeta que te gustaría agregar a tu tablero de proyecto y colócala en la columna correcta. Como alternativa, puedes mover las tarjetas usando los atajos del teclado. {% data reusables.project-management.for-more-info-project-keyboard-shortcuts %} +4. From the filtered list of issues and pull requests, drag the card you'd like to add to your project board and drop it in the correct column. Alternatively, you can move cards using keyboard shortcuts. {% data reusables.project-management.for-more-info-project-keyboard-shortcuts %} {% tip %} - **Sugerencia:** Puedes arrastrar y soltar o usar los atajos del teclado para reordenar las tarjetas y moverlas entre las columnas. {% data reusables.project-management.for-more-info-project-keyboard-shortcuts %} + **Tip:** You can drag and drop or use keyboard shortcuts to reorder cards and move them between columns. {% data reusables.project-management.for-more-info-project-keyboard-shortcuts %} {% endtip %} -## Agregar propuestas y solicitudes de extracción a un tablero de proyecto de la barra lateral +## Adding issues and pull requests to a project board from the sidebar -1. En el lateral derecho de una propuesta o solicitud de extracción, haz clic en **Projects{% octicon "gear" aria-label="The Gear icon" %} (Proyectos**. ![Botón del tablero de proyecto en la barra lateral](/assets/images/help/projects/sidebar-project.png) -2. Da clic en la pestaña **Reciente**,**Repositorio**,**Usuario**, u **Organización** del tablero de proyecto que te gustaría agregar. ![Pestañas Recent (Reciente), Repository (Repositorio) y Organization (Organización)](/assets/images/help/projects/sidebar-project-tabs.png) -3. Escribe el nombre del proyecto en el campo **Filter projects** (Filtrar proyectos). ![Cuadro de búsqueda del tablero de proyecto](/assets/images/help/projects/sidebar-search-project.png) -4. Selecciona uno o más tableros de proyecto en donde quieras agregar la propuesta o solicitud de cambios. ![Tablero de proyecto seleccionado](/assets/images/help/projects/sidebar-select-project.png) -5. Haz clic en {% octicon "triangle-down" aria-label="The down triangle icon" %}, luego haz clic en la columna en la que quieras colocar tu propuesta o solicitud de extracción. La tarjeta se moverá al final de la columna del tablero de proyecto que selecciones. ![Menú Move card to column (Mover tarjeta a la columna)](/assets/images/help/projects/sidebar-select-project-board-column-menu.png) +1. On the right side of an issue or pull request, click **Projects {% octicon "gear" aria-label="The Gear icon" %}**. + ![Project board button in sidebar](/assets/images/help/projects/sidebar-project.png) +2. Click the **Recent**, **Repository**,**User**, or **Organization** tab for the project board you would like to add to. + ![Recent, Repository and Organization tabs](/assets/images/help/projects/sidebar-project-tabs.png) +3. Type the name of the project in **Filter projects** field. + ![Project board search box](/assets/images/help/projects/sidebar-search-project.png) +4. Select one or more project boards where you want to add the issue or pull request. + ![Selected project board](/assets/images/help/projects/sidebar-select-project.png) +5. Click {% octicon "triangle-down" aria-label="The down triangle icon" %}, then click the column where you want your issue or pull request. The card will move to the bottom of the project board column you select. + ![Move card to column menu](/assets/images/help/projects/sidebar-select-project-board-column-menu.png) -## Leer más +## Further reading -- "[Acerca de los tablero de proyecto](/articles/about-project-boards)" -- "[Editar un tablero de proyecto](/articles/editing-a-project-board)" -- "[Filtrar tarjetas en un tablero de proyecto](/articles/filtering-cards-on-a-project-board)" +- "[About project boards](/articles/about-project-boards)" +- "[Editing a project board](/articles/editing-a-project-board)" +- "[Filtering cards on a project board](/articles/filtering-cards-on-a-project-board)" diff --git a/translations/es-ES/content/issues/organizing-your-work-with-project-boards/tracking-work-with-project-boards/adding-notes-to-a-project-board.md b/translations/es-ES/content/issues/organizing-your-work-with-project-boards/tracking-work-with-project-boards/adding-notes-to-a-project-board.md index 8644af505e..2cf815d675 100644 --- a/translations/es-ES/content/issues/organizing-your-work-with-project-boards/tracking-work-with-project-boards/adding-notes-to-a-project-board.md +++ b/translations/es-ES/content/issues/organizing-your-work-with-project-boards/tracking-work-with-project-boards/adding-notes-to-a-project-board.md @@ -1,9 +1,9 @@ --- -title: Agregar notas a tu tablero de proyecto -intro: Puedes agregar notas a tu tablero de proyecto para que funcionen como recordatorios de tareas o para agregar información relacionada con el tablero de proyecto. +title: Adding notes to a project board +intro: You can add notes to a project board to serve as task reminders or to add information related to the project board. redirect_from: - /github/managing-your-work-on-github/tracking-the-progress-of-your-work-with-project-boards/adding-notes-to-a-project-board - - /articles/adding-notes-to-a-project/ + - /articles/adding-notes-to-a-project - /articles/adding-notes-to-a-project-board - /github/managing-your-work-on-github/adding-notes-to-a-project-board versions: @@ -13,66 +13,72 @@ versions: ghec: '*' topics: - Pull requests -shortTitle: Agregar notas al tablero +shortTitle: Add notes to board --- - {% data reusables.projects.project_boards_old %} {% tip %} **Tips:** -- Puedes dar formato a tu nota usando la sintaxis de Markdown. Por ejemplo, puedes usar encabezados, enlaces, listas de tareas o emojis. Para obtener más información, consulta "[Sintaxis de escritura y formato básicos](/articles/basic-writing-and-formatting-syntax)". -- Puedes arrastrar y soltar o usar los atajos del teclado para reordenar las tarjetas y moverlas entre las columnas. {% data reusables.project-management.for-more-info-project-keyboard-shortcuts %} -- Tu tablero de proyecto debe tener al menos una columna antes de que puedas agregar notas. Para obtener más información, consulta "[Crear un tablero de proyecto](/articles/creating-a-project-board)". +- You can format your note using Markdown syntax. For example, you can use headings, links, task lists, or emoji. For more information, see "[Basic writing and formatting syntax](/articles/basic-writing-and-formatting-syntax)." +- You can drag and drop or use keyboard shortcuts to reorder notes and move them between columns. {% data reusables.project-management.for-more-info-project-keyboard-shortcuts %} +- Your project board must have at least one column before you can add notes. For more information, see "[Creating a project board](/articles/creating-a-project-board)." {% endtip %} -Cuando agregas una URL para una propuesta, solicitud de extracción u otro tablero de proyecto para una nota, verás la vista previa en una tarjeta de resumen debajo de tu texto. +When you add a URL for an issue, pull request, or another project board to a note, you'll see a preview in a summary card below your text. -![Tarjetas de tableros de proyecto mostrando una vista previa de una propuesta y otro tablero de proyecto](/assets/images/help/projects/note-with-summary-card.png) +![Project board cards showing a preview of an issue and another project board](/assets/images/help/projects/note-with-summary-card.png) -## Agregar notas a tu tablero de proyecto +## Adding notes to a project board -1. Desplázate hasta el tablero de proyecto donde quieres agregar notas. -2. En la columna en la que deseas agregar una nota, haz clic en {% octicon "plus" aria-label="The plus icon" %}. ![Icono de adición en el encabezado de la columna](/assets/images/help/projects/add-note-button.png) -3. Escribe tu nota, luego haz clic en **Add** (Agregar). ![Campo para escribir una nota y botón Add card (Agregar tarjeta)](/assets/images/help/projects/create-and-add-note-button.png) +1. Navigate to the project board where you want to add notes. +2. In the column you want to add a note to, click {% octicon "plus" aria-label="The plus icon" %}. +![Plus icon in the column header](/assets/images/help/projects/add-note-button.png) +3. Type your note, then click **Add**. +![Field for typing a note and Add card button](/assets/images/help/projects/create-and-add-note-button.png) {% tip %} - **Sugerencia:** Puedes hacer referencia a una propuesta o solicitud de extracción en tu nota al escribir su URL en la tarjeta. + **Tip:** You can reference an issue or pull request in your note by typing its URL in the card. {% endtip %} -## Convertir una nota en una propuesta +## Converting a note to an issue -Si has creado una nota y consideras que no es suficiente para tus necesidades, puedes convertirla en una propuesta. +If you've created a note and find that it isn't sufficient for your needs, you can convert it to an issue. -Cuando conviertes una nota en una propuesta, la propuesta se crea automáticamente usando el contenido de la nota. La primera línea de la nota será el título de la propuesta y cualquier información adicional de la nota se agregará a la descripción de la propuesta. +When you convert a note to an issue, the issue is automatically created using the content from the note. The first line of the note will be the issue title and any additional content from the note will be added to the issue description. {% tip %} -**Sugerencia:** Puedes agregar el contenido en el cuerpo de tu nota para @mencionar a alguien, vincular otra propuesta o solicitud de extracción, y agregar un emoji. Estas características de formato Markdown de {% data variables.product.prodname_dotcom %} no son compatibles con las notas del tablero de proyecto, pero una vez que tu nota se convierte en una propuesta, aparecerán correctamente. Para obtener más información sobre cómo usar estas características, consulta "[Acerca de la escritura y el formato en {% data variables.product.prodname_dotcom %}](/articles/about-writing-and-formatting-on-github)". +**Tip:** You can add content in the body of your note to @mention someone, link to another issue or pull request, and add emoji. These {% data variables.product.prodname_dotcom %} Flavored Markdown features aren't supported within project board notes, but once your note is converted to an issue, they'll appear correctly. For more information on using these features, see "[About writing and formatting on {% data variables.product.prodname_dotcom %}](/articles/about-writing-and-formatting-on-github)." {% endtip %} -1. Desplázate hasta la nota que deseas convertir en propuesta. +1. Navigate to the note that you want to convert to an issue. {% data reusables.project-management.project-note-more-options %} -3. Haz clic en **Convert to issue** (Convertir en propuesta). ![Botón para convertir en propuesta](/assets/images/help/projects/convert-to-issue.png) -4. Si la tarjeta está en un tablero de proyecto en toda la organización, en el menú desplegable, elige el repositorio en el que deseas agregar la propuesta. ![Menú desplegable enumerando los repositorios donde puedes crear la propuesta](/assets/images/help/projects/convert-note-choose-repository.png) -5. Opcionalmente, edita el título de la propuesta completada previamente, y escribe el cuerpo de la propuesta. ![Campos para título y cuerpo de la propuesta](/assets/images/help/projects/convert-note-issue-title-body.png) -6. Haz clic en **Convert to issue** (Convertir en propuesta). -7. La nota se convertirá automáticamente en una propuesta. En el tablero de proyecto, la nueva tarjeta de propuesta estará en la misma ubicación que la nota anterior. +3. Click **Convert to issue**. + ![Convert to issue button](/assets/images/help/projects/convert-to-issue.png) +4. If the card is on an organization-wide project board, in the drop-down menu, choose the repository you want to add the issue to. + ![Drop-down menu listing repositories where you can create the issue](/assets/images/help/projects/convert-note-choose-repository.png) +5. Optionally, edit the pre-filled issue title, and type an issue body. + ![Fields for issue title and body](/assets/images/help/projects/convert-note-issue-title-body.png) +6. Click **Convert to issue**. +7. The note is automatically converted to an issue. In the project board, the new issue card will be in the same location as the previous note. -## Editar o eliminar una nota +## Editing and removing a note -1. Desplázate hasta la nota que deseas editar o eliminar. +1. Navigate to the note that you want to edit or remove. {% data reusables.project-management.project-note-more-options %} -3. Para editar los contenidos de la nota, haz clic en **Edit note** (Editar nota). ![Botón para editar notas](/assets/images/help/projects/edit-note.png) -4. Para eliminar los contenidos de las notas, haz clic en **Delete note** (Eliminar nota). ![Botón para eliminar notas](/assets/images/help/projects/delete-note.png) +3. To edit the contents of the note, click **Edit note**. + ![Edit note button](/assets/images/help/projects/edit-note.png) +4. To delete the contents of the notes, click **Delete note**. + ![Delete note button](/assets/images/help/projects/delete-note.png) -## Leer más +## Further reading -- "[Acerca de los tablero de proyecto](/articles/about-project-boards)" -- "[Crear un tablero de proyecto](/articles/creating-a-project-board)" -- "[Editar un tablero de proyecto](/articles/editing-a-project-board)" -- "[Agregar propuestas y solicitudes de extracción a un tablero de proyecto](/articles/adding-issues-and-pull-requests-to-a-project-board)" +- "[About project boards](/articles/about-project-boards)" +- "[Creating a project board](/articles/creating-a-project-board)" +- "[Editing a project board](/articles/editing-a-project-board)" +- "[Adding issues and pull requests to a project board](/articles/adding-issues-and-pull-requests-to-a-project-board)" diff --git a/translations/es-ES/content/issues/tracking-your-work-with-issues/about-issues.md b/translations/es-ES/content/issues/tracking-your-work-with-issues/about-issues.md index c2fdc6aa2a..ebd5ac6cf6 100644 --- a/translations/es-ES/content/issues/tracking-your-work-with-issues/about-issues.md +++ b/translations/es-ES/content/issues/tracking-your-work-with-issues/about-issues.md @@ -1,10 +1,10 @@ --- -title: Acerca de las propuestas -intro: 'Utiliza {% data variables.product.prodname_github_issues %} para rastrear ideas, retroalimentación, tareas o errores para trabajar en {% data variables.product.company_short %}.' +title: About issues +intro: 'Use {% data variables.product.prodname_github_issues %} to track ideas, feedback, tasks, or bugs for work on {% data variables.product.company_short %}.' redirect_from: - /github/managing-your-work-on-github/managing-your-work-with-issues-and-pull-requests/about-issues - - /articles/creating-issues/ - - /articles/about-issues/ + - /articles/creating-issues + - /articles/about-issues - /github/managing-your-work-on-github/about-issues - /issues/tracking-your-work-with-issues/creating-issues/about-issues versions: @@ -17,39 +17,38 @@ topics: - Issues - Project management --- +## Integrated with GitHub -## Integrado con GitHub +Issues let you track your work on {% data variables.product.company_short %}, where development happens. When you mention an issue in another issue or pull request, the issue's timeline reflects the cross-reference so that you can keep track of related work. To indicate that work is in progress, you can link an issue to a pull request. When the pull request merges, the linked issue automatically closes. -Las propuestas te permiten rastrear tu trabajo en {% data variables.product.company_short %}, donde sucede el desarrollo. Cuando mencionas una propuesta en otra propuesta o solicitud de cambios, la línea de tiempo de la propuesta refleja la referencia cruzada para que puedas rastrear el trabajo relacionado. Para indicar que el trabajo está en curso, puedes enlazar una propeusta a una solicitud de cambios. Cuando la solicitud de cambios se fusiona, la propuesta enlazada se cierra automáticamente. +## Quickly create issues -## Crea propuestas rápidamente +Issues can be created in a variety of ways, so you can choose the most convenient method for your workflow. For example, you can create an issue from a repository,{% ifversion fpt or ghec %} an item in a task list,{% endif %} a note in a project, a comment in an issue or pull request, a specific line of code, or a URL query. You can also create an issue from your platform of choice: through the web UI, {% data variables.product.prodname_desktop %}, {% data variables.product.prodname_cli %}, GraphQL and REST APIs, or {% data variables.product.prodname_mobile %}. For more information, see "[Creating an issue](/issues/tracking-your-work-with-issues/creating-issues/creating-an-issue)." -Las propuestas pueden crearse de varias formas, así que puedes elegir el método más conveniente para tu flujo de trabajo. Por ejemplo, puedes crear una propuesta desde un repositorio,{% ifversion fpt or ghec %} un elemento en una lista de tareas,{% endif %} una nota en un proyecto, un comentario en una propuesta o solicitud de cambios, una línea específica de código o una consulta de URL. También puedes crear una propuesta desde tu plataforma de elección: a través de la UI web, {% data variables.product.prodname_desktop %}, {% data variables.product.prodname_cli %}, las API de GraphQL y de REST o desde {% data variables.product.prodname_mobile %}. Para obtener más información, consulta la sección "[Crear una propuesta](/issues/tracking-your-work-with-issues/creating-issues/creating-an-issue)". +## Track work -## Rastrea el trabajo +You can organize and prioritize issues with projects. {% ifversion fpt or ghec %}To track issues as part of a larger issue, you can use task lists.{% endif %} To categorize related issues, you can use labels and milestones. -Puedes organizar y priorizar las propuestas con los proyectos. {% ifversion fpt or ghec %}Para rastrear las propuestas como parte de una propuesta más grande, puedes utilizar las listas de tareas.{% endif %} Para categorizar las propuestas relacionadas, puedes utilizar etiquetas e hitos. +For more information about projects, see {% ifversion fpt or ghec %}"[About projects (beta)](/issues/trying-out-the-new-projects-experience/about-projects)" and {% endif %}"[Organizing your work with project boards](/issues/organizing-your-work-with-project-boards)." {% ifversion fpt or ghec %}For more information about task lists, see "[About task lists](/issues/tracking-your-work-with-issues/creating-issues/about-task-lists)." {% endif %}For more information about labels and milestones, see "[Using labels and milestones to track work](/issues/using-labels-and-milestones-to-track-work)." -Para obtener más información sobre los proyectos, consulta las secciones {% ifversion fpt or ghec %}"[Acerca de los proyectos (beta)](/issues/trying-out-the-new-projects-experience/about-projects)" y {% endif %}"[Organizar tu trabajo con tableros de proyecto](/issues/organizing-your-work-with-project-boards)". {% ifversion fpt or ghec %}Para obtener más información sobre las listas de tareas, consulta la sección "[Acerca de las listas de tareas](/issues/tracking-your-work-with-issues/creating-issues/about-task-lists)". {% endif %}Para obtener más información sobre las etiquetas y los hitos, consulta la sección "[Utilizar etiquetas e hitos para rastrear el trabajo](/issues/using-labels-and-milestones-to-track-work)". +## Stay up to date -## Mantente actualizado +To stay updated on the most recent comments in an issue, you can subscribe to an issue to receive notifications about the latest comments. To quickly find links to recently updated issues you're subscribed to, visit your dashboard. For more information, see {% ifversion fpt or ghes or ghae or ghec %}"[About notifications](/github/managing-subscriptions-and-notifications-on-github/about-notifications){% else %}"[About notifications](/github/receiving-notifications-about-activity-on-github/about-notifications){% endif %}" and "[About your personal dashboard](/articles/about-your-personal-dashboard)." -Para mantenerte actualizado sobre la mayoría de los comentarios recientes de una propuesta, puedes suscribirte a ella para recibir notificaciones sobre las confirmaciones más recientes. Para encontrar rápidamente los enlaces a los informes de problemas recientemente actualizados a los cuales te has suscrito, visita tu tablero. Para obtener más información, consulta la sección {% ifversion fpt or ghes or ghae or ghec %}"[Acerca de las notificaciones](/github/managing-subscriptions-and-notifications-on-github/about-notifications){% else %}"[Acerca de las notificaciónes](/github/receiving-notifications-about-activity-on-github/about-notifications){% endif %}" y "[Acerca de tu tablero personal](/articles/about-your-personal-dashboard)". +## Community management -## Administración de comunidad +To help contributors open meaningful issues that provide the information that you need, you can use {% ifversion fpt or ghec %}issue forms and {% endif %}issue templates. For more information, see "[Using templates to encourage useful issues and pull requests](/communities/using-templates-to-encourage-useful-issues-and-pull-requests)." -Para ayudar a que los colaboradores abran propuestas significativas que proporcionen la información que necesiten, puedes utilizar {% ifversion fpt or ghec %}formatos de propuestas y {% endif %}plantillas de propuestas. Para obtener más información, consulta la sección "[Utilizar plantillas para fomentar las propuestas y solicitudes de cambio útiles](/communities/using-templates-to-encourage-useful-issues-and-pull-requests)". +{% ifversion fpt or ghec %}To maintain a healthy community, you can report comments that violate {% data variables.product.prodname_dotcom %}'s [Community Guidelines](/free-pro-team@latest/github/site-policy/github-community-guidelines). For more information, see "[Reporting abuse or spam](/communities/maintaining-your-safety-on-github/reporting-abuse-or-spam)."{% endif %} -{% ifversion fpt or ghec %}Para mantener una comunidad saludable, puedes reportar comentrios que violen los [Lineamientos comunitarios](/free-pro-team@latest/github/site-policy/github-community-guidelines) de {% data variables.product.prodname_dotcom %}. Para obtener más información, consulta "[Informar abuso o spam](/communities/maintaining-your-safety-on-github/reporting-abuse-or-spam)".{% endif %} +## Efficient communication -## Comunicación eficiente +You can @mention collaborators who have access to your repository in an issue to draw their attention to a comment. To link related issues in the same repository, you can type `#` followed by part of the issue title and then clicking the issue that you want to link. To communicate responsibility, you can assign issues. If you find yourself frequently typing the same comment, you can use saved replies. +{% ifversion fpt or ghec %} For more information, see "[Basic writing and formatting syntax](/github/writing-on-github/getting-started-with-writing-and-formatting-on-github/basic-writing-and-formatting-syntax)" and "[Assigning issues and pull requests to other GitHub users](/issues/tracking-your-work-with-issues/assigning-issues-and-pull-requests-to-other-github-users)." -Puedes @mencionar colaboradores que tengan acceso a tu repositorio en una propuesta para dirigir su atención a un cometnario. Para enlazar las propuestas relacionadas en el mismo repositorio, puedes teclear `#` seguido de parte del título de la propuesta y luego hacer clic en la propueta que quieras enlazar. Para comunicar la responsabilidad, puedes asignar propuestas. Si frecuentemente te encuentras tecleando el mismo comentario, puedes utilizar las respuestas guardadas. -{% ifversion fpt or ghec %} Para obtener más información, consulta las secciones "[Sintaxis básica para escritura y formato](/github/writing-on-github/getting-started-with-writing-and-formatting-on-github/basic-writing-and-formatting-syntax)" y "[Asignar propuestas y solicitudes de cambio a otros usuarios de GitHub](/issues/tracking-your-work-with-issues/assigning-issues-and-pull-requests-to-other-github-users)". +## Comparing issues and discussions -## Comparar propuestas y debates +Some conversations are more suitable for {% data variables.product.prodname_discussions %}. {% data reusables.discussions.you-can-use-discussions %} For guidance on when to use an issue or a discussion, see "[Communicating on GitHub](/github/getting-started-with-github/quickstart/communicating-on-github)." -Algunas conversaciones son más adecuadas para los {% data variables.product.prodname_discussions %}. {% data reusables.discussions.you-can-use-discussions %} Para orientarte sobre cuándo utilizar una propuesta o debate, consulta la sección "[Comuinicarte en GitHub](/github/getting-started-with-github/quickstart/communicating-on-github)". - -Cuando una conversación en una propuesta se adecua mejor para un debate, puedes intentar convertir la propuesta en debate. +When a conversation in an issue is better suited for a discussion, you can convert the issue to a discussion. {% endif %} diff --git a/translations/es-ES/content/issues/tracking-your-work-with-issues/creating-an-issue.md b/translations/es-ES/content/issues/tracking-your-work-with-issues/creating-an-issue.md index cb346ba181..d4ad5f88ae 100644 --- a/translations/es-ES/content/issues/tracking-your-work-with-issues/creating-an-issue.md +++ b/translations/es-ES/content/issues/tracking-your-work-with-issues/creating-an-issue.md @@ -91,7 +91,7 @@ You can open a new issue from a specific line or lines of code in a file or pull {% data reusables.repositories.navigate-to-repo %} 1. Locate the code you want to reference in an issue: - To open an issue about code in a file, navigate to the file. - - To open an issue about code in a pull request, navigate to the pull request and click {% octicon "diff" aria-label="The file diff icon" %} **Files changed**. Then, browse to the file that contains the code you want include in your comment, and click **View**. + - To open an issue about code in a pull request, navigate to the pull request and click {% octicon "diff" aria-label="The file diff icon" %} **Files changed**. Then, browse to the file that contains the code you want included in your comment, and click **View**. {% data reusables.repositories.choose-line-or-range %} 4. To the left of the code range, click {% octicon "kebab-horizontal" aria-label="The horizontal kebab octicon" %}. In the drop-down menu, click **Reference in new issue**. ![Kebab menu with option to open a new issue from a selected line](/assets/images/help/repository/open-new-issue-specific-line.png) diff --git a/translations/es-ES/content/issues/tracking-your-work-with-issues/filtering-and-searching-issues-and-pull-requests.md b/translations/es-ES/content/issues/tracking-your-work-with-issues/filtering-and-searching-issues-and-pull-requests.md index 6f847a5927..2b2ad52ec4 100644 --- a/translations/es-ES/content/issues/tracking-your-work-with-issues/filtering-and-searching-issues-and-pull-requests.md +++ b/translations/es-ES/content/issues/tracking-your-work-with-issues/filtering-and-searching-issues-and-pull-requests.md @@ -234,4 +234,4 @@ For example, if you filter on issues assigned to Hubot, and sort on the oldest o ## Further reading -- "[Searching issues and pull requests](/articles/searching-issues)"" +- "[Searching issues and pull requests](/articles/searching-issues)" diff --git a/translations/es-ES/content/issues/tracking-your-work-with-issues/linking-a-pull-request-to-an-issue.md b/translations/es-ES/content/issues/tracking-your-work-with-issues/linking-a-pull-request-to-an-issue.md index 739677adb9..8eca5faf19 100644 --- a/translations/es-ES/content/issues/tracking-your-work-with-issues/linking-a-pull-request-to-an-issue.md +++ b/translations/es-ES/content/issues/tracking-your-work-with-issues/linking-a-pull-request-to-an-issue.md @@ -3,8 +3,8 @@ title: Linking a pull request to an issue intro: You can link a pull request to an issue to show that a fix is in progress and to automatically close the issue when the pull request is merged. redirect_from: - /github/managing-your-work-on-github/managing-your-work-with-issues-and-pull-requests/linking-a-pull-request-to-an-issue - - /articles/closing-issues-via-commit-message/ - - /articles/closing-issues-via-commit-messages/ + - /articles/closing-issues-via-commit-message + - /articles/closing-issues-via-commit-messages - /articles/closing-issues-using-keywords - /github/managing-your-work-on-github/closing-issues-using-keywords - /github/managing-your-work-on-github/linking-a-pull-request-to-an-issue diff --git a/translations/es-ES/content/issues/tracking-your-work-with-issues/planning-and-tracking-work-for-your-team-or-project.md b/translations/es-ES/content/issues/tracking-your-work-with-issues/planning-and-tracking-work-for-your-team-or-project.md index 9295f49206..a25ffa5e3e 100644 --- a/translations/es-ES/content/issues/tracking-your-work-with-issues/planning-and-tracking-work-for-your-team-or-project.md +++ b/translations/es-ES/content/issues/tracking-your-work-with-issues/planning-and-tracking-work-for-your-team-or-project.md @@ -1,6 +1,6 @@ --- -title: Planear y rastrear el trabajo para tu equipo o proyecto -intro: 'Lo básico para utilizar las herramientas de planeación y rastreo de {% data variables.product.prodname_dotcom %} para dministrar el trabajo en un equipo o proyecto.' +title: Planning and tracking work for your team or project +intro: 'The essentials for using {% data variables.product.prodname_dotcom %}''s planning and tracking tools to manage work on a team or project.' versions: fpt: '*' ghes: '*' @@ -11,112 +11,111 @@ topics: - Project management - Projects --- +## Introduction +You can use {% data variables.product.prodname_dotcom %} repositories, issues, project boards, and other tools to plan and track your work, whether working on an individual project or cross-functional team. -## Introducción -Puedes utilizar los repositorios de {% data variables.product.prodname_dotcom %}, las propuestas, los tableros de proyecto y otras herramientas para rastrear y planear tu trabajo, ya sea que trabajes en un proyecto individual o en un equipo inter-funcional. +In this guide, you will learn how to create and set up a repository for collaborating with a group of people, create issue templates{% ifversion fpt or ghec %} and forms{% endif %}, open issues and use task lists to break down work, and establish a project board for organizing and tracking issues. -En esta guía, aprenderás cómo crear y configurar un repositorio para colaborar con un grupo de personas, crear plantillas de propuestas{% ifversion fpt or ghec %} y formatos {% endif %}, abrir propuestas y utilizar las listas de tareas para dividir el trabajo y establecer un tablero de proyecto para organizar y rastrear las propuestas. +## Creating a repository +When starting a new project, initiative, or feature, the first step is to create a repository. Repositories contain all of your project's files and give you a place to collaborate with others and manage your work. For more information, see "[Creating a new repository](/github/creating-cloning-and-archiving-repositories/creating-a-repository-on-github/creating-a-new-repository)." -## Crear un repositorio -Cuando comienzas un proyecto, inciativa o característica nuevos, el primer paso es crear un repositorio. Los repositorios contienen todos los archivos de tu proyecto y te proporcionan un lugar para colaborar con otros y administrar tu trabajo. Para obtener más información, consulta la sección "[Crear un nuevo repositorio](/github/creating-cloning-and-archiving-repositories/creating-a-repository-on-github/creating-a-new-repository)." +You can set up repositories for different purposes based on your needs. The following are some common use cases: -Puedes configurar repositorios para propósitos diferentes con base en tus necesidades. Los siguientes son algunos casos de uso común: +- **Product repositories**: Larger organizations that track their work and goals around specific products may have one or more repositories containing the code and other files. These repositories can also be used for documentation, reporting on product health or future plans for the product. +- **Project repositories**: You can create a repository for an individual project you are working on, or for a project you are collaborating on with others. For an organization that tracks work for short-lived initiatives or projects, such as a consulting firm, there is a need to report on the health of a project and move people between different projects based on skills and needs. Code for the project is often contained in a single repository. +- **Team repositories**: For an organization that groups people into teams, and brings projects to them, such as a dev tools team, code may be scattered across many repositories for the different work they need to track. In this case it may be helpful to have a team-specific repository as one place to track all the work the team is involved in. +- **Personal repositories**: You can create a personal repository to track all your work in one place, plan future tasks, or even add notes or information you want to save. You can also add collaborators if you want to share this information with others. -- **Repositorios de producto**: Las organizaciones más grandes que rastrean su trbaajo y metas en productos específicos tienen uno o más repositorios que contienen el código y otros archivos. Estos repositorios también pueden utilizarse para documentación, reportes sobre la salud de los productos o planes futuros para estos. -- **Repositorios de proyecto**: Puedes crear un repositorios para un proyecto individual en el cual estés trabajando o para uno en el que estés colaborando con otras personas. Para una organización que rastrea el trabajo para iniciativas o proyectos de vida corta, tales como una firma de consultores, se necesita reportar la salud de un proyecto y mover a las personas entre proyectos diferentes con base en sus habilidades y necesidades. El código del proyecto a menudo se contiene en un solo repositorio. -- **Repositorios de equipo**: Para una organización que agrupa a las personas en equipos y les da proyectos, tales como un equipo de herramientas de desarrollo, el código puede repartirse en muchos repositorios para lso diferentes trabajos que tienen que rastrear. En este caso, puede se útil tener un repositorio específico para cada equipo como lugar único para rastrear todo el trabajo en el que se involucra dicho equipo. -- **Repositoris personales**: Puedes crear un repositorio personal para rastrear todo tu tabajo en un solo lugar, planear tareas a futuro o incluso agregar notas o información que quieras guardar. También puedes agregar colaboradores si quieres compartir esta información con otros. +You can create multiple, separate repositories if you want different access permissions for the source code and for tracking issues and discussions. For more information, see "[Creating an issues-only repository](/github/creating-cloning-and-archiving-repositories/creating-a-repository-on-github/creating-an-issues-only-repository)." -Puedes crear repositorios múltiples y separados si quieres tener permisos de acceso diferentes para el código fuente y para rastrear propuestas y debates. Para obtener más información, consulta la sección "[Crear un repositorio solo para propuestas](/github/creating-cloning-and-archiving-repositories/creating-a-repository-on-github/creating-an-issues-only-repository)". +For the following examples in this guide, we will be using an example repository called Project Octocat. +## Communicating repository information +You can create a README.md file for your repository to introduce your team or project and communicate important information about it. A README is often the first item a visitor to your repository will see, so you can also provide information on how users or contributors can get started with the project and how to contact the team. For more information, see "[About READMEs](/github/creating-cloning-and-archiving-repositories/creating-a-repository-on-github/about-readmes)." -Para los ejemplos siguientes en esta guía, utilizaremos un repositorio de ejemplo llamado Proyecto Octocat. -## Comunicar la información del repositorio -Puedes crear un archivo de README.md para tu repositorio e introducir tu equipo o proyecto y comunicar información importante sobre este. A menudo, un README es el primer elemento que verá un visitante de tu repositorio, así que también puedes proporcionar información de cómo los usuarios o contribuyentes pueden iniciar con el proyecto y de cómo contactar al equipo. Para obtener más información, consulta "[Acerca de los README](/github/creating-cloning-and-archiving-repositories/creating-a-repository-on-github/about-readmes)". +You can also create a CONTRIBUTING.md file specifically to contain guidelines on how users or contributors can contribute and interact with the team or project, such as how to open a bug fix issue or request an improvement. For more information, see "[Setting guidelines for repository contributors](/communities/setting-up-your-project-for-healthy-contributions/setting-guidelines-for-repository-contributors)." +### README example +We can create a README.md to introduce our new project, Project Octocat. -También puedes crear un archivo de CONTRIBUTING.md, específicamente para que contenga los lineamientos sobre cómo los usuarios o contribuyentes pueden interactuar o contribuir con el proyecto, con instrucciones tales como cómo abrir una propuesta para arreglar un error o cómo solicitar una mejora. Para obtener más información, consulta "[Establecer pautas para los colaboradores del repositorio](/communities/setting-up-your-project-for-healthy-contributions/setting-guidelines-for-repository-contributors)". -### Ejemplo de README -Podemos crear un README.md para introducir nuestro proyecto nuevo al Proyecto Octocat. +![Creating README example](/assets/images/help/issues/quickstart-creating-readme.png) +## Creating issue templates -![Ejemplo de cómo crear un README](/assets/images/help/issues/quickstart-creating-readme.png) -## Crear plantillas de reporte de problemas +You can use issues to track the different types of work that your cross-functional team or project covers, as well as gather information from those outside of your project. The following are a few common use cases for issues. -Puedes utilizar las propuestas para rastrear los tipos de trabajo diferentes que tu equipo o proyecto inter-funcional cubre, así como para recopilar información de aquellos fuera de tu proyecto. Los siguientes son algunos casos de uso comunes para las propuestas. +- Release tracking: You can use an issue to track the progress for a release or the steps to complete the day of a launch. +- Large initiatives: You can use an issue to track progress on a large initiative or project, which is then linked to the smaller issues. +- Feature requests: Your team or users can create issues to request an improvement to your product or project. +- Bugs: Your team or users can create issues to report a bug. -- Liberar el rastreo: Puedes utilizar una propuesta para rastrear el progreso para un lanzamiento o para los pasos a completar el día del lanzamiento. -- Iniciativas grandes: Puedes utilizar una propuesta para rastrear el progreso en un proyecto de iniciativa grande, el cual se enlaza a propuestas más pequeñas. -- Solicitudes de características: Tu equipo o usuarios pueden crear propuestas para solicitar una mejora en tu producto o proyecto. -- Errores: Tu equipo o usuarios pueden crear propuestas para reportar un error. +Depending on the type of repository and project you are working on, you may prioritize certain types of issues over others. Once you have identified the most common issue types for your team, you can create issue templates {% ifversion fpt or ghec %}and forms{% endif %} for your repository. Issue templates {% ifversion fpt or ghec %}and forms{% endif %} allow you to create a standardized list of templates that a contributor can choose from when they open an issue in your repository. For more information, see "[Configuring issue templates for your repository](/communities/using-templates-to-encourage-useful-issues-and-pull-requests/configuring-issue-templates-for-your-repository)." -Dependiendo del tipo de repositorio y proyecto en el que estés trabajando, podrías priorizar ciertos tipos de propuestas osbre otras. Una vez que hayas identificado los tipos de propuesta más comunes para tu equipo, puedes crear plantillas de propuestas {% ifversion fpt or ghec %} y formatos{% endif %} para tu repositorio. Las plantillas de propuestas {% ifversion fpt or ghec %}y formatos{% endif %} te permiten crear una lista estandarizada de plantillas de las cuales puede elegir un contribuyente para abrir una propuesta en tu repositorio. Para obtener más información, consulta "[Configurar plantillas de propuestas para tu repositorio](/communities/using-templates-to-encourage-useful-issues-and-pull-requests/configuring-issue-templates-for-your-repository)". +### Issue template example +Below we are creating an issue template for reporting a bug in Project Octocat. -### Ejemplo de plantilla de propuesta -A continuación, creamos una plantilla de propuesta para reportar un error en el Proyecto Octocat. +![Creating issue template example](/assets/images/help/issues/quickstart-creating-issue-template.png) -![Ejemplo de cómo crear una plantilla de propuesta](/assets/images/help/issues/quickstart-creating-issue-template.png) +Now that we created the bug report issue template, you are able to select it when creating a new issue in Project Octocat. -Ahora que creamos la plantilla de propuestas para reportes de errores, puedes seleccionarla cuando crees una propuesta nueva en el proyecto Octocat. +![Choosing issue template example](/assets/images/help/issues/quickstart-issue-creation-menu-with-template.png) -![Ejemplo de elegir la plantilla de una propuesta](/assets/images/help/issues/quickstart-issue-creation-menu-with-template.png) +## Opening issues and using task lists to track work +You can organize and track your work by creating issues. For more information, see "[Creating an issue](/issues/tracking-your-work-with-issues/creating-issues/creating-an-issue)." +### Issue example +Here is an example of an issue created for a large initiative, front-end work, in Project Octocat. -## Abrir propuestas y utilizar las listas de tareas para rastrear el trabajo -Puedes organizar y rastrear tu trabajo creando propuestas. Para obtener más información, consulta la sección "[Crear una propuesta](/issues/tracking-your-work-with-issues/creating-issues/creating-an-issue)". -### Ejemplo de propuesta -Aquí tienes un ejemplo de una propuesta que se creó para un trabajo de cara al usuario de una iniciativa grande en el proyecto Octocat. +![Creating large initiative issue example](/assets/images/help/issues/quickstart-create-large-initiative-issue.png) +### Task list example -![Ejemplo de creación de propuesta para una iniciativa grande](/assets/images/help/issues/quickstart-create-large-initiative-issue.png) -### Ejemplo de lista de tareas +You can use task lists to break larger issues down into smaller tasks and to track issues as part of a larger goal. {% ifversion fpt or ghec %} Task lists have additional functionality when added to the body of an issue. You can see the number of tasks completed out of the total at the top of the issue, and if someone closes an issue linked in the task list, the checkbox will automatically be marked as complete.{% endif %} For more information, see "[About task lists](/issues/tracking-your-work-with-issues/creating-issues/about-task-lists)." -Puedes utilizar listas de tareas para dividir propuestas más grandes en otras más pequeñas y para rastrear propuestas como parte de una meta más grande. {% ifversion fpt or ghec %} Las listas de tareas tienen una funcionalidad adicional cuando se agregan al cuerpo de una propuesta. Puedes ver la cantidad de tareas que se completaron en comparación con las tareas totales en la parte superior de la propuesta y, si alguien cierra una propuesta que esté enlazada en la lista de tareas, la casilla de verificación se marcará automáticamente como completa.{% endif %} Para obtener más información, consulta la sección "[Acerca de las listas de tareas](/issues/tracking-your-work-with-issues/creating-issues/about-task-lists)". +Below we have added a task list to our Project Octocat issue, breaking it down into smaller issues. -Debajo, agregamos una lista de tareas a nuestra propuesta del Proyecto Octocat, dividiéndola en propuestas más pequeñas. +![Adding task list to issue example](/assets/images/help/issues/quickstart-add-task-list-to-issue.png) -![Agregar una lista de tareas a un ejemplo de propuesta](/assets/images/help/issues/quickstart-add-task-list-to-issue.png) +## Making decisions as a team +You can use issues and discussions to communicate and make decisions as a team on planned improvements or priorities for your project. Issues are useful when you create them for discussion of specific details, such as bug or performance reports, planning for the next quarter, or design for a new initiative. Discussions are useful for open-ended brainstorming or feedback, outside the codebase and across repositories. For more information, see "[Which discussion tool should I use?](/github/getting-started-with-github/quickstart/communicating-on-github#which-discussion-tool-should-i-use)." -## Tomar deciciones como equipo -Puedes utilizar las propuestas y debates para comunicarte y hacer decisiones como equipo sobre las mejoras planeadas o sobre las prioridades de tu proyecto. Las propuestas son útiles cuando las creas para debatir detalles específicos, tales como reportes de rendimiento o de errores, planeaciones para el siguiente trimestre o diseño para una iniciativa nueva. Los debates son útiles para la lluvia de ideas abierta o para la retroalmientación, fuera de la base de código y a través de los repositorios. Para obtener más información, consulta la sección "[¿Qué herramienta de debate debería utilizar?](/github/getting-started-with-github/quickstart/communicating-on-github#which-discussion-tool-should-i-use)". +As a team, you can also communicate updates on day-to-day tasks within issues so that everyone knows the status of work. For example, you can create an issue for a large feature that multiple people are working on, and each team member can add updates with their status or open questions in that issue. +### Issue example with project collaborators +Here is an example of project collaborators giving a status update on their work on the Project Octocat issue. -Como equipo, puedes comunicar actualziaciones sobre las tareas del día a día dentro de las propuestas para que todos sepan el estado del trabajo. Por ejemplo, puedes crear una propuesta para una característica grande en la que estén trabajando varias personas y cada miembro puede agregar actualizaciones con su estado o preguntas abiertas en esa propuesta. -### Ejemplo de propuesta con colaboradores de proyecto -Aquí tienes un ejemplo de los colaboradores de proyecto dando una actualización de estado sobre su trabajo en la propuesta del Proyecto Octocat. +![Collaborating on issue example](/assets/images/help/issues/quickstart-collaborating-on-issue.png) +## Using labels to highlight project goals and status +You can create labels for a repository to categorize issues, pull requests, and discussions. {% data variables.product.prodname_dotcom %} also provides default labels for every new repository that you can edit or delete. Labels are useful for keeping track of project goals, bugs, types of work, and the status of an issue. -![Colaborar con el ejemplo de propuesta](/assets/images/help/issues/quickstart-collaborating-on-issue.png) -## Utilizar etiquetas para resaltar las metas y el estado del proyecto -Puedes crear etiquetas para que un repositorio categorice las propuestas, solicitudes de cambio y debates. {% data variables.product.prodname_dotcom %} también proporciona etiquetas predeterminadas para cada repositorio nuevo que puedas editar o borrar. Las etiquetas sirven para rastrear las metas del proyecto, los errores, los tipos de trabajo y el estado de una propuesta. +For more information, see "[Creating a label](/issues/using-labels-and-milestones-to-track-work/managing-labels#creating-a-label)." -Para obtener más información, consulta "[Crear una etiqueta](/issues/using-labels-and-milestones-to-track-work/managing-labels#creating-a-label)". +Once you have created a label in a repository, you can apply it on any issue, pull request or discussion in the repository. You can then filter issues and pull requests by label to find all associated work. For example, find all the front end bugs in your project by filtering for issues with the `front-end` and `bug` labels. For more information, see "[Filtering and searching issues and pull requests](/issues/tracking-your-work-with-issues/filtering-and-searching-issues-and-pull-requests)." +### Label example +Below is an example of a `front-end` label that we created and added to the issue. -Una vez que hayas creado una etiqueta en un repositorio, puedes aplicarla a cualquier propuesta, solicitud de cambos o debate en este. Puedes entonces filtrar las propuestas y solicitudes de cambio por etiqueta para encontrar todo el trabajo asociado. Por ejemplo, encuentra los errores de cara al usuario en tu proyecto filtrando las propuestas con las etiquetas `front-end` y `bug`. Para obtener más información, consulta la sección "[Filtrar y buscar las propuestas y solicitudes de cambio](/issues/tracking-your-work-with-issues/filtering-and-searching-issues-and-pull-requests)". -### Ejemplo de etiqueta -A continuación se encuentra un ejemplo de una etiqueta de `front-end` que creamos y agregamos a la propuesta. - -![Agregar una etiqueta a un ejemplo de propuesta](/assets/images/help/issues/quickstart-add-label-to-issue.png) -## Agregar propuestas a un tablero de proyecto -{% ifversion fpt or ghec %}Puedes utilizar proyectos en {% data variables.product.prodname_dotcom %}, actualmente en el beta público limitado, para planear y rastrear el trabajo de tu equipo. Un proyecto es una hoja de cálculo personalizada que se integra con tus propuestas y solicitudes de cambvios en {% data variables.product.prodname_dotcom %} y que se actualiza automáticamente con la información de {% data variables.product.prodname_dotcom %}. Puedes personalziar el diseño si filtras, clasificas y agrupas tus propuestas y solicitudes de cambios. Para inciar con los proyectos, consulta la [Guía de inicio rápido para los proyectos (beta)](/issues/trying-out-the-new-projects-experience/quickstart)". -### Ejemplo de proyecto (beta) +![Adding a label to an issue example](/assets/images/help/issues/quickstart-add-label-to-issue.png) +## Adding issues to a project board +{% ifversion fpt or ghec %}You can use projects on {% data variables.product.prodname_dotcom %}, currently in limited public beta, to plan and track the work for your team. A project is a customizable spreadsheet that integrates with your issues and pull requests on {% data variables.product.prodname_dotcom %}, automatically staying up-to-date with the information on {% data variables.product.prodname_dotcom %}. You can customize the layout by filtering, sorting, and grouping your issues and PRs. To get started with projects, see "[Quickstart for projects (beta)](/issues/trying-out-the-new-projects-experience/quickstart)." +### Project (beta) example Here is the table layout of an example project, populated with the Project Octocat issues we have created. ![Projects (beta) table layout example](/assets/images/help/issues/quickstart-projects-table-view.png) -También podemos ver el mismo proyecto como un tablero. +We can also view the same project as a board. ![Projects (beta) board layout example](/assets/images/help/issues/quickstart-projects-board-view.png) {% endif %} -También puedes {% ifversion fpt or ghec %} utilizar los tableros de proyecto existentes{% else %} utilizar{% endif %}los tableros de proyecto en {% data variables.product.prodname_dotcom %} para planear y rastrear tu trabajo o el de tu equipo. Los tableros de proyecto están compuestos por propuestas, solicitudes de extracción y notas que se categorizan como tarjetas en columnas a tu elección. Puedes crear tableros de proyecto para presentar trabajo, planes de alto nivel o incluso listas de verificación. Para obtener más información, consulta "[Acerca de los tableros de proyectos](/issues/organizing-your-work-with-project-boards/managing-project-boards/about-project-boards)." -### Ejemplo del trablero de proyecto -A continuación, se presenta un tablero de proyecto para nuestro ejemplo del Proyecto Octocat, con la propuesta que creamos y las propuestas más pequeñas en las que lo dividimos agregadas a este. +You can {% ifversion fpt or ghec %} also use the existing{% else %} use{% endif %} project boards on {% data variables.product.prodname_dotcom %} to plan and track your or your team's work. Project boards are made up of issues, pull requests, and notes that are categorized as cards in columns of your choosing. You can create project boards for feature work, high-level roadmaps, or even release checklists. For more information, see "[About project boards](/issues/organizing-your-work-with-project-boards/managing-project-boards/about-project-boards)." +### Project board example +Below is a project board for our example Project Octocat with the issue we created, and the smaller issues we broke it down into, added to it. -![Ejemplo del trablero de proyecto](/assets/images/help/issues/quickstart-project-board.png) -## Pasos siguientes +![Project board example](/assets/images/help/issues/quickstart-project-board.png) +## Next steps -Ya aprendiste sobre las herramientas que ofrece {% data variables.product.prodname_dotcom %} para planear y rastrear tu trabajo e iniciaste en la configuración de un equipo inter-funcional o repositorio de proyecto. Aquí te mostramos algunos recursos útiles para seguir personalizando tu repositorio y organizar tu trabajo. +You have now learned about the tools {% data variables.product.prodname_dotcom %} offers for planning and tracking your work, and made a start in setting up your cross-functional team or project repository! Here are some helpful resources for further customizing your repository and organizing your work. -- Consulta la sección "[Acerca de los repositorios](/github/creating-cloning-and-archiving-repositories/creating-a-repository-on-github/about-repositories)" para aprender más sobre cómo crear los repositorios -- "[Rastrear tu trabajo con propuestas](/issues/tracking-your-work-with-issues)" para aprender más sobre los tipos diferentes de crear y administrar las propuestas -- "[Acerca de las propuestas y solicitudes de cambios](/communities/using-templates-to-encourage-useful-issues-and-pull-requests/about-issue-and-pull-request-templates)" para aprender más sobre las plantillas de propuestas -- "[Administrar etiquetas](/issues/using-labels-and-milestones-to-track-work/managing-labels)" para aprender cómo crear, editar y borrar etiquetas -- "[Acerca de las listas de tareas](/issues/tracking-your-work-with-issues/creating-issues/about-task-lists)" para aprender más sobre las tareas -{% ifversion fpt or ghec %} - "[Acerca de los proyectos (beta)](/issues/trying-out-the-new-projects-experience/about-projects)" para aprender más sobre la experiencia de los proyectos nuevos, actualmente en beta público limitado -- "[Personalizar tus vistas de proyecto (beta)](/issues/trying-out-the-new-projects-experience/customizing-your-project-views)" para aprender cómo personalizar las vistas de los proyectos, actualmente en beta público limitado{% endif %} -- "[Acerca de los tableros de proyecto](/issues/organizing-your-work-with-project-boards/managing-project-boards/about-project-boards)" para aprender cómo administrar los tableros de proyecto +- "[About repositories](/github/creating-cloning-and-archiving-repositories/creating-a-repository-on-github/about-repositories)" for learning more about creating repositories +- "[Tracking your work with issues](/issues/tracking-your-work-with-issues)" for learning more about different ways to create and manage issues +- "[About issues and pull request templates](/communities/using-templates-to-encourage-useful-issues-and-pull-requests/about-issue-and-pull-request-templates)" for learning more about issue templates +- "[Managing labels](/issues/using-labels-and-milestones-to-track-work/managing-labels)" for learning how to create, edit and delete labels +- "[About task lists](/issues/tracking-your-work-with-issues/creating-issues/about-task-lists)" for learning more about task lists +{% ifversion fpt or ghec %} - "[About projects (beta)](/issues/trying-out-the-new-projects-experience/about-projects)" for learning more about the new projects experience, currently in limited public beta +- "[Customizing your project (beta) views](/issues/trying-out-the-new-projects-experience/customizing-your-project-views)" for learning how to customize views for projects, currently in limited public beta{% endif %} +- "[About project boards](/issues/organizing-your-work-with-project-boards/managing-project-boards/about-project-boards)" for learning how to manage project boards diff --git a/translations/es-ES/content/issues/trying-out-the-new-projects-experience/creating-a-project.md b/translations/es-ES/content/issues/trying-out-the-new-projects-experience/creating-a-project.md index e68a41f2ed..c3e5acb974 100644 --- a/translations/es-ES/content/issues/trying-out-the-new-projects-experience/creating-a-project.md +++ b/translations/es-ES/content/issues/trying-out-the-new-projects-experience/creating-a-project.md @@ -82,7 +82,7 @@ You can archive an item to keep the context about the item in the project but re 1. Select the item(s) to archive or delete. To select multiple items, do one of the following: - `cmd + click` (Mac) or `ctrl + click` (Windows/Linux) each item. - - Select an item then `shift + arrow-up` or `shift + arrow-down` to select additional items above or below the intitially selected item. + - Select an item then `shift + arrow-up` or `shift + arrow-down` to select additional items above or below the initially selected item. - Select an item then `shift + click` another item to select all items between the two items. - Enter `cmd + a` (Mac) or `ctrl + a` (Windows/Linux) to select all items in a column in a board layout or all items in a table layout. 2. To archive all selected items, enter `e`. To delete all selected items, enter `del`. Alternatively, select the {% octicon "triangle-down" aria-label="the item menu" %} (in table layout) or the {% octicon "kebab-horizontal" aria-label="the item menu" %} (in board layout), then select the desired action. diff --git a/translations/es-ES/content/issues/trying-out-the-new-projects-experience/using-the-api-to-manage-projects.md b/translations/es-ES/content/issues/trying-out-the-new-projects-experience/using-the-api-to-manage-projects.md index 07843a55d9..4b00391366 100644 --- a/translations/es-ES/content/issues/trying-out-the-new-projects-experience/using-the-api-to-manage-projects.md +++ b/translations/es-ES/content/issues/trying-out-the-new-projects-experience/using-the-api-to-manage-projects.md @@ -310,7 +310,7 @@ gh api graphql -f query=' ``` {% endcli %} -A project may contain items that a user does not have permission to view. In this case, the response will include redacted item. +A project may contain items that a user does not have permission to view. In this case, the response will include a redacted item. ```shell { @@ -373,7 +373,7 @@ The response will contain the node ID of the newly created item. } ``` -If you try add an item that already exists, the existing item ID is returned instead. +If you try to add an item that already exists, the existing item ID is returned instead. ### Updating a custom text, number, or date field diff --git a/translations/es-ES/content/issues/using-labels-and-milestones-to-track-work/creating-and-editing-milestones-for-issues-and-pull-requests.md b/translations/es-ES/content/issues/using-labels-and-milestones-to-track-work/creating-and-editing-milestones-for-issues-and-pull-requests.md index 1510b752a7..c008e01a7b 100644 --- a/translations/es-ES/content/issues/using-labels-and-milestones-to-track-work/creating-and-editing-milestones-for-issues-and-pull-requests.md +++ b/translations/es-ES/content/issues/using-labels-and-milestones-to-track-work/creating-and-editing-milestones-for-issues-and-pull-requests.md @@ -1,9 +1,9 @@ --- -title: Crear y editar hitos para propuestas y solicitudes de extracción -intro: Puedes crear un hito para hacer un seguimiento del progreso en grupos de propuestas o solicitudes de extracción en un repositorio. +title: Creating and editing milestones for issues and pull requests +intro: You can create a milestone to track progress on groups of issues or pull requests in a repository. redirect_from: - /github/managing-your-work-on-github/tracking-the-progress-of-your-work-with-milestones/creating-and-editing-milestones-for-issues-and-pull-requests - - /articles/creating-milestones-for-issues-and-pull-requests/ + - /articles/creating-milestones-for-issues-and-pull-requests - /articles/creating-and-editing-milestones-for-issues-and-pull-requests - /github/managing-your-work-on-github/creating-and-editing-milestones-for-issues-and-pull-requests versions: @@ -15,30 +15,32 @@ topics: - Pull requests - Issues - Project management -shortTitle: Crear & editar hitos +shortTitle: Create & edit milestones type: how_to --- +{% data reusables.repositories.navigate-to-repo %} +{% data reusables.repositories.sidebar-issue-pr %} +{% data reusables.project-management.milestones %} +4. Choose one of these options: + - To create a new milestone, click **New Milestone**. + ![New milestone button](/assets/images/help/repository/new-milestone.png) + - To edit a milestone, next to the milestone you want to edit, click **Edit**. + ![Edit milestone option](/assets/images/help/repository/edit-milestone.png) +5. Type the milestone's title, description, or other changes, and click **Create milestone** or **Save changes**. Milestones will render Markdown syntax. For more information about Markdown syntax, see "[Basic writing and formatting syntax](/github/writing-on-github/basic-writing-and-formatting-syntax)." + +## Deleting milestones + +When you delete milestones, issues and pull requests are not affected. {% data reusables.repositories.navigate-to-repo %} {% data reusables.repositories.sidebar-issue-pr %} {% data reusables.project-management.milestones %} -4. Elige una de las siguientes opciones: - - Para crear un nuevo hito, haz clic en **Nuevo hito**. ![Botón Nuevo hito](/assets/images/help/repository/new-milestone.png) - - Para editar un hito, haz clic en **Editar** junto al hito que deseas editar. ![Opción Editar hito](/assets/images/help/repository/edit-milestone.png) -5. Escribe el título, la descripción y los demás cambios del hito, y luego haz clic en **Create milestone** (Crear hito) o **Save changes** (Guardar cambios). Los hitos interpretarán la sintaxis del lenguaje de marcado. Para obtener más información sobre la sintaxis de marcado, consulta la sección "[Sintaxis de marcado y formateado básica](/github/writing-on-github/basic-writing-and-formatting-syntax)". +4. Next to the milestone you want to delete, click **Delete**. +![Delete milestone option](/assets/images/help/repository/delete-milestone.png) -## Eliminar hitos +## Further reading -Cuando eliminas hitos, las propuestas y las solicitudes de extracción no se ven afectadas. - -{% data reusables.repositories.navigate-to-repo %} -{% data reusables.repositories.sidebar-issue-pr %} -{% data reusables.project-management.milestones %} -4. Junto al hito que deseas eliminar, haz clic en **Eliminar**. ![Opción Eliminar hito](/assets/images/help/repository/delete-milestone.png) - -## Leer más - -- "[Acerca de los hitos](/articles/about-milestones)" -- "[Asociar hitos con propuestas y solicitudes de extracción](/articles/associating-milestones-with-issues-and-pull-requests)" -- "[Ver el progreso de tus hitos](/articles/viewing-your-milestone-s-progress)" -- "[Filtrar propuestas y solicitudes de extracción por hitos](/articles/filtering-issues-and-pull-requests-by-milestone)" +- "[About milestones](/articles/about-milestones)" +- "[Associating milestones with issues and pull requests](/articles/associating-milestones-with-issues-and-pull-requests)" +- "[Viewing your milestone's progress](/articles/viewing-your-milestone-s-progress)" +- "[Filtering issues and pull requests by milestone](/articles/filtering-issues-and-pull-requests-by-milestone)" diff --git a/translations/es-ES/content/issues/using-labels-and-milestones-to-track-work/managing-labels.md b/translations/es-ES/content/issues/using-labels-and-milestones-to-track-work/managing-labels.md index a979d00eea..f5f9e3b136 100644 --- a/translations/es-ES/content/issues/using-labels-and-milestones-to-track-work/managing-labels.md +++ b/translations/es-ES/content/issues/using-labels-and-milestones-to-track-work/managing-labels.md @@ -1,6 +1,6 @@ --- -title: Administrar las etiquetas -intro: 'Puedes clasificar {% ifversion fpt or ghec %}propuestas, solicitudes de cambio y debates{% else %}propuestas y solicitudes de cambio{% endif %} si creas, editas, aplicas y borras las etiquetas.' +title: Managing labels +intro: 'You can classify {% ifversion fpt or ghec %}issues, pull requests, and discussions{% else %}issues and pull requests{% endif %} by creating, editing, applying, and deleting labels.' permissions: '{% data reusables.enterprise-accounts.emu-permission-repo %}' redirect_from: - /github/managing-your-work-on-github/managing-your-work-with-issues-and-pull-requests/managing-labels @@ -12,7 +12,7 @@ redirect_from: - /articles/creating-and-editing-labels-for-issues-and-pull-requests - /articles/creating-a-label - /github/managing-your-work-on-github/creating-a-label - - /articles/customizing-issue-labels/ + - /articles/customizing-issue-labels - /articles/applying-labels-to-issues-and-pull-requests - /github/managing-your-work-on-github/applying-labels-to-issues-and-pull-requests - /articles/editing-a-label @@ -31,57 +31,58 @@ topics: - Project management type: how_to --- - ## Acerca de las etiquetas +## About labels -Puedes administrar tu trabajo en {% data variables.product.product_name %} si creas etiquetas para categorizar {% ifversion fpt or ghec %}propuestas, solicitudes de cambio, y debates{% else %}propuestas y solicitudes de cambio{% endif %}. Puedes aplicar etiquetas en el repositorio en el que éstas se hayan creado. Una vez que exista una etiqueta, puedes utilizarla en cualquier {% ifversion fpt or ghec %}propuesta, solicitud de cambio o debate{% else %}propuesta o solicitud de cambio{% endif %} dentro del repositorio. +You can manage your work on {% data variables.product.product_name %} by creating labels to categorize {% ifversion fpt or ghec %}issues, pull requests, and discussions{% else %}issues and pull requests{% endif %}. You can apply labels in the repository the label was created in. Once a label exists, you can use the label on any {% ifversion fpt or ghec %}issue, pull request, or discussion{% else %}issue or pull request{% endif %} within that repository. -## Acerca de las etiquetas predeterminadas +## About default labels -{% data variables.product.product_name %} ofrece etiquetas predeterminadas en cada repositorio nuevo. Puedes usar estas etiquetas predeterminadas para ayudar a crear un flujo de trabajo estándar en un repositorio. +{% data variables.product.product_name %} provides default labels in every new repository. You can use these default labels to help create a standard workflow in a repository. -| Etiqueta | Descripción | -| ------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| `error` | Indica un problema inesperado o un comportamiento no intencionado{% ifversion fpt or ghes or ghec %} -| `documentación` | Indica una necesidad de mejoras o adiciones a la documentación{% endif %} -| `duplicado` | Indica {% ifversion fpt or ghec %}propuestas, solicitudes de cambio o debates{% else %}propuestas o solicitudes de cambio{% endif %}similares. | -| `mejora` | Indica solicitudes de nueva función | -| `primera buena propuesta` | Indica una buena propuesta para los colaboradores por primera vez | -| `se busca ayuda` | Indica que un mantenedor necesita ayuda en una propuesta o solicitud de extracción | -| `no válida` | Indica que ya no es relevante una {% ifversion fpt or ghec %}propuesta, solicitud de cambios, o debate{% else %}propuesta o solicitud de cambios{% endif %} -| `pregunta` | Sindica que una {% ifversion fpt or ghec %}propuesta, solicitud de cambios o debate{% else %}propuesta o solicitud de cambios{% endif %} necesita más información | -| `wontfix` | Indica que el trabajo no continuará en una {% ifversion fpt or ghec %}propuesta, solicitud de cambios o debate{% else %}propuesta o solicitud de cambios{% endif %} +Label | Description +--- | --- +`bug` | Indicates an unexpected problem or unintended behavior{% ifversion fpt or ghes or ghec %} +`documentation` | Indicates a need for improvements or additions to documentation{% endif %} +`duplicate` | Indicates similar {% ifversion fpt or ghec %}issues, pull requests, or discussions{% else %}issues or pull requests{% endif %} +`enhancement` | Indicates new feature requests +`good first issue` | Indicates a good issue for first-time contributors +`help wanted` | Indicates that a maintainer wants help on an issue or pull request +`invalid` | Indicates that an {% ifversion fpt or ghec %}issue, pull request, or discussion{% else %}issue or pull request{% endif %} is no longer relevant +`question` | Indicates that an {% ifversion fpt or ghec %}issue, pull request, or discussion{% else %}issue or pull request{% endif %} needs more information +`wontfix` | Indicates that work won't continue on an {% ifversion fpt or ghec %}issue, pull request, or discussion{% else %}issue or pull request{% endif %} -Las etiquetas predeterminadas se incluyen en todos los repositorios nuevos cuando se crea el repositorio, pero luego puedes editarlas o eliminarlas. +Default labels are included in every new repository when the repository is created, but you can edit or delete the labels later. -Las propuestas con la etiqueta `good first issue` se utilizan para llenar la página de `contribute` del repositorio. Para encontrar un ejemplo de página de `contribute`, consulta [github/docs/contribute](https://github.com/github/docs/contribute). +Issues with the `good first issue` label are used to populate the repository's `contribute` page. For an example of a `contribute` page, see [github/docs/contribute](https://github.com/github/docs/contribute). {% ifversion fpt or ghes or ghec %} -Los propietarios de la organización pueden personalizar las etiquetas predeterminadas para los repositorios de la organización. Para obtener más información, consulta "[Administrar etiquetas predeterminadas para los repositorios en tu organización](/articles/managing-default-labels-for-repositories-in-your-organization)". +Organization owners can customize the default labels for repositories in their organization. For more information, see "[Managing default labels for repositories in your organization](/articles/managing-default-labels-for-repositories-in-your-organization)." {% endif %} -## Crear una etiqueta +## Creating a label -Cualquiera con acceso de escritura en un repositorio puede crear una etiqueta. +Anyone with write access to a repository can create a label. {% data reusables.repositories.navigate-to-repo %} {% data reusables.repositories.sidebar-issue-pr %} {% data reusables.project-management.labels %} -4. A la derecha del campo de búsqueda, haz clic en **Nueva etiqueta**. +4. To the right of the search field, click **New label**. {% data reusables.project-management.name-label %} {% data reusables.project-management.label-description %} {% data reusables.project-management.label-color-randomizer %} {% data reusables.project-management.create-label %} -## Aplicar una etiqueta +## Applying a label -Cualquiera con acceso de clasificación en un repositorio puede aplicar y descartar etiquetas. +Anyone with triage access to a repository can apply and dismiss labels. -1. Navega a la {% ifversion fpt or ghec %}propuesta, solicitud de cambios o debate{% else %}propuesta o solicitud de cambios{% endif %}. -1. En la barra lateral derecha, a la derecha de "Etiquetas", haz clic en {% octicon "gear" aria-label="The gear icon" %} y luego en la etiqueta. ![Menú desplegable de "Labels"](/assets/images/help/issues/labels-drop-down.png) +1. Navigate to the {% ifversion fpt or ghec %}issue, pull request, or discussion{% else %}issue or pull request{% endif %}. +1. In the right sidebar, to the right of "Labels", click {% octicon "gear" aria-label="The gear icon" %}, then click a label. + !["Labels" drop-down menu](/assets/images/help/issues/labels-drop-down.png) -## Editar una etiqueta +## Editing a label -Cualquiera con acceso de escritura en un repositorio puede editar las etiquetas existentes. +Anyone with write access to a repository can edit existing labels. {% data reusables.repositories.navigate-to-repo %} {% data reusables.repositories.sidebar-issue-pr %} @@ -92,18 +93,18 @@ Cualquiera con acceso de escritura en un repositorio puede editar las etiquetas {% data reusables.project-management.label-color-randomizer %} {% data reusables.project-management.save-label %} -## Eliminar una etiqueta +## Deleting a label -Cualquiera con acceso de escritura en un repositorio puede borrar las etiquetas existentes. +Anyone with write access to a repository can delete existing labels. -El borrar una etiqueta la eliminará de las propuestas y soilcitudes de cambios. +Deleting a label will remove the label from issues and pull requests. {% data reusables.repositories.navigate-to-repo %} {% data reusables.repositories.sidebar-issue-pr %} {% data reusables.project-management.labels %} {% data reusables.project-management.delete-label %} -## Leer más -- "[Filtrar y buscar propuestas y solicitudes de cambios](/issues/tracking-your-work-with-issues/filtering-and-searching-issues-and-pull-requests)"{% ifversion fpt or ghes or ghec %} -- "[Administrar las etiquetas predeterminadas para los repositorios de tu organización](/articles/managing-default-labels-for-repositories-in-your-organization)"{% endif %}{% ifversion fpt or ghec %} -- "[Fomentar las contribuciones sanas a tu proyecto con etiquetas](/communities/setting-up-your-project-for-healthy-contributions/encouraging-helpful-contributions-to-your-project-with-labels)"{% endif %} +## Further reading +- "[Filtering and searching issues and pull requests](/issues/tracking-your-work-with-issues/filtering-and-searching-issues-and-pull-requests)"{% ifversion fpt or ghes or ghec %} +- "[Managing default labels for repositories in your organization](/articles/managing-default-labels-for-repositories-in-your-organization)"{% endif %}{% ifversion fpt or ghec %} +- "[Encouraging helpful contributions to your project with labels](/communities/setting-up-your-project-for-healthy-contributions/encouraging-helpful-contributions-to-your-project-with-labels)"{% endif %} diff --git a/translations/es-ES/content/organizations/collaborating-with-groups-in-organizations/about-organizations.md b/translations/es-ES/content/organizations/collaborating-with-groups-in-organizations/about-organizations.md index a8af117ca4..d5073f08ca 100644 --- a/translations/es-ES/content/organizations/collaborating-with-groups-in-organizations/about-organizations.md +++ b/translations/es-ES/content/organizations/collaborating-with-groups-in-organizations/about-organizations.md @@ -14,7 +14,7 @@ topics: - Teams --- -{% data reusables.organizations.about-organizations %} +{% data reusables.organizations.about-organizations %} For more information about account types, see "[Types of {% data variables.product.prodname_dotcom %} accounts](/get-started/learning-about-github/types-of-github-accounts)." {% data reusables.organizations.organizations_include %} diff --git a/translations/es-ES/content/organizations/collaborating-with-groups-in-organizations/about-your-organizations-news-feed.md b/translations/es-ES/content/organizations/collaborating-with-groups-in-organizations/about-your-organizations-news-feed.md index e6ffdbf9b4..1301ef95bc 100644 --- a/translations/es-ES/content/organizations/collaborating-with-groups-in-organizations/about-your-organizations-news-feed.md +++ b/translations/es-ES/content/organizations/collaborating-with-groups-in-organizations/about-your-organizations-news-feed.md @@ -2,7 +2,7 @@ title: About your organization’s news feed intro: You can use your organization's news feed to keep up with recent activity on repositories owned by that organization. redirect_from: - - /articles/news-feed/ + - /articles/news-feed - /articles/about-your-organization-s-news-feed - /articles/about-your-organizations-news-feed - /github/setting-up-and-managing-organizations-and-teams/about-your-organizations-news-feed diff --git a/translations/es-ES/content/organizations/collaborating-with-groups-in-organizations/accessing-your-organizations-settings.md b/translations/es-ES/content/organizations/collaborating-with-groups-in-organizations/accessing-your-organizations-settings.md index e7d9c16a67..373c0c390d 100644 --- a/translations/es-ES/content/organizations/collaborating-with-groups-in-organizations/accessing-your-organizations-settings.md +++ b/translations/es-ES/content/organizations/collaborating-with-groups-in-organizations/accessing-your-organizations-settings.md @@ -1,15 +1,15 @@ --- -title: Acceder a los parámetros de tu organización +title: Accessing your organization's settings redirect_from: - - /articles/who-can-access-organization-billing-information-and-account-settings/ - - /articles/managing-the-organization-s-settings/ - - /articles/who-can-see-billing-information-account-settings/ - - /articles/who-can-see-billing-information-and-access-account-settings/ - - /articles/managing-an-organization-s-settings/ + - /articles/who-can-access-organization-billing-information-and-account-settings + - /articles/managing-the-organization-s-settings + - /articles/who-can-see-billing-information-account-settings + - /articles/who-can-see-billing-information-and-access-account-settings + - /articles/managing-an-organization-s-settings - /articles/accessing-your-organization-s-settings - /articles/accessing-your-organizations-settings - /github/setting-up-and-managing-organizations-and-teams/accessing-your-organizations-settings -intro: 'La página de los parámetros de la cuenta de la organización brinda varias maneras de administrar la cuenta, como parámetros de facturación, miembros del equipo y repositorio.' +intro: 'The organization account settings page provides several ways to manage the account, such as billing, team membership, and repository settings.' versions: fpt: '*' ghes: '*' @@ -18,14 +18,13 @@ versions: topics: - Organizations - Teams -shortTitle: Acceder a la configuración de organización +shortTitle: Access organization settings --- - {% ifversion fpt or ghec %} {% tip %} -**Sugerencia:** Solo los propietarios de la organización y los gerentes de facturación pueden ver y cambiar la información de facturación y la configuración de la cuenta para una organización. {% data reusables.organizations.new-org-permissions-more-info %} +**Tip:** Only organization owners and billing managers can see and change the billing information and account settings for an organization. {% data reusables.organizations.new-org-permissions-more-info %} {% endtip %} diff --git a/translations/es-ES/content/organizations/collaborating-with-groups-in-organizations/index.md b/translations/es-ES/content/organizations/collaborating-with-groups-in-organizations/index.md index 1be260e567..bd2e17c6b1 100644 --- a/translations/es-ES/content/organizations/collaborating-with-groups-in-organizations/index.md +++ b/translations/es-ES/content/organizations/collaborating-with-groups-in-organizations/index.md @@ -1,8 +1,8 @@ --- -title: Colaborar con grupos en organizaciones -intro: Los grupos de personas pueden colaborar en muchos proyectos a la vez en cuentas d ela organización. +title: Collaborating with groups in organizations +intro: Groups of people can collaborate across many projects at the same time in organization accounts. redirect_from: - - /articles/creating-a-new-organization-account/ + - /articles/creating-a-new-organization-account - /articles/collaborating-with-groups-in-organizations - /github/setting-up-and-managing-organizations-and-teams/collaborating-with-groups-in-organizations versions: @@ -21,6 +21,6 @@ children: - /customizing-your-organizations-profile - /about-your-organizations-news-feed - /viewing-insights-for-your-organization -shortTitle: Colaborar con grupos +shortTitle: Collaborate with groups --- diff --git a/translations/es-ES/content/organizations/index.md b/translations/es-ES/content/organizations/index.md index 6cb7a68d70..aebcbe659d 100644 --- a/translations/es-ES/content/organizations/index.md +++ b/translations/es-ES/content/organizations/index.md @@ -1,9 +1,9 @@ --- -title: Organizaciones y equipos -shortTitle: Organizaciones -intro: 'Colaborar en muchos proyectos mientras se administra el acceso a proyectos y datos, y se personalizan las configuraciones para tu organización.' +title: Organizations and teams +shortTitle: Organizations +intro: Collaborate across many projects while managing access to projects and data and customizing settings for your organization. redirect_from: - - /articles/about-improved-organization-permissions/ + - /articles/about-improved-organization-permissions - /categories/setting-up-and-managing-organizations-and-teams - /github/setting-up-and-managing-organizations-and-teams versions: diff --git a/translations/es-ES/content/organizations/keeping-your-organization-secure/index.md b/translations/es-ES/content/organizations/keeping-your-organization-secure/index.md index 9a2071f8ea..01d2dd4043 100644 --- a/translations/es-ES/content/organizations/keeping-your-organization-secure/index.md +++ b/translations/es-ES/content/organizations/keeping-your-organization-secure/index.md @@ -1,8 +1,8 @@ --- -title: Mantener segura tu organización -intro: 'Los propietarios de la organización tienen varias funciones que los ayudan a mantener seguros los proyectos y los datos. Si eres el propietario de una organización, deberás revisar frecuentemente las bitácoras de auditoría de la misma{% ifversion not ghae %}, los estados de 2FA de los miembros,{% endif %} y la configuración de las aplicaciones para garantizar que no haya ocurrido ningún tipo de actividad maliciosa o no autorizada.' +title: Keeping your organization secure +intro: 'Organization owners have several features to help them keep their projects and data secure. If you''re the owner of an organization, you should regularly review your organization''s audit log{% ifversion not ghae %}, member 2FA status,{% endif %} and application settings to ensure that no unauthorized or malicious activity has occurred.' redirect_from: - - /articles/preventing-unauthorized-access-to-organization-information/ + - /articles/preventing-unauthorized-access-to-organization-information - /articles/keeping-your-organization-secure - /github/setting-up-and-managing-organizations-and-teams/keeping-your-organization-secure versions: @@ -22,6 +22,6 @@ children: - /restricting-email-notifications-for-your-organization - /reviewing-the-audit-log-for-your-organization - /reviewing-your-organizations-installed-integrations -shortTitle: Seguridad organizacional +shortTitle: Organization security --- diff --git a/translations/es-ES/content/organizations/keeping-your-organization-secure/managing-security-and-analysis-settings-for-your-organization.md b/translations/es-ES/content/organizations/keeping-your-organization-secure/managing-security-and-analysis-settings-for-your-organization.md index 89c5918d0c..3053a0a101 100644 --- a/translations/es-ES/content/organizations/keeping-your-organization-secure/managing-security-and-analysis-settings-for-your-organization.md +++ b/translations/es-ES/content/organizations/keeping-your-organization-secure/managing-security-and-analysis-settings-for-your-organization.md @@ -18,7 +18,7 @@ shortTitle: Manage security & analysis ## About management of security and analysis settings -{% data variables.product.prodname_dotcom %} can help secure the repositories in your organization. You can manage the security and analysis features for all existing or new repositories that members create in your organization. {% ifversion fpt or ghec %}If you have a license for {% data variables.product.prodname_GH_advanced_security %} then you can also manage access to these features. {% data reusables.advanced-security.more-info-ghas %}{% endif %} +{% data variables.product.prodname_dotcom %} can help secure the repositories in your organization. You can manage the security and analysis features for all existing or new repositories that members create in your organization. {% ifversion ghec %}If you have a license for {% data variables.product.prodname_GH_advanced_security %} then you can also manage access to these features. {% data reusables.advanced-security.more-info-ghas %}{% endif %}{% ifversion fpt %}Organizations that use {% data variables.product.prodname_ghe_cloud %} with a license for {% data variables.product.prodname_GH_advanced_security %} can also manage access to these features. For more information, see [the {% data variables.product.prodname_ghe_cloud %} documentation](/enterprise-cloud@latest/organizations/keeping-your-organization-secure/managing-security-and-analysis-settings-for-your-organization).{% endif %} {% data reusables.security.some-security-and-analysis-features-are-enabled-by-default %} {% data reusables.security.security-and-analysis-features-enable-read-only %} @@ -31,7 +31,7 @@ shortTitle: Manage security & analysis The page that's displayed allows you to enable or disable all security and analysis features for the repositories in your organization. -{% ifversion fpt or ghec %}If your organization belongs to an enterprise with a license for {% data variables.product.prodname_GH_advanced_security %}, the page will also contain options to enable and disable {% data variables.product.prodname_advanced_security %} features. Any repositories that use {% data variables.product.prodname_GH_advanced_security %} are listed at the bottom of the page.{% endif %} +{% ifversion ghec %}If your organization belongs to an enterprise with a license for {% data variables.product.prodname_GH_advanced_security %}, the page will also contain options to enable and disable {% data variables.product.prodname_advanced_security %} features. Any repositories that use {% data variables.product.prodname_GH_advanced_security %} are listed at the bottom of the page.{% endif %} {% ifversion ghes > 3.0 %}If you have a license for {% data variables.product.prodname_GH_advanced_security %}, the page will also contain options to enable and disable {% data variables.product.prodname_advanced_security %} features. Any repositories that use {% data variables.product.prodname_GH_advanced_security %} are listed at the bottom of the page.{% endif %} @@ -39,20 +39,28 @@ The page that's displayed allows you to enable or disable all security and analy ## Enabling or disabling a feature for all existing repositories -You can enable or disable features for all repositories. {% ifversion fpt or ghec %}The impact of your changes on repositories in your organization is determined by their visibility: +You can enable or disable features for all repositories. +{% ifversion fpt or ghec %}The impact of your changes on repositories in your organization is determined by their visibility: - **Dependency graph** - Your changes affect only private repositories because the feature is always enabled for public repositories. - **{% data variables.product.prodname_dependabot_alerts %}** - Your changes affect all repositories. - **{% data variables.product.prodname_dependabot_security_updates %}** - Your changes affect all repositories. +{%- ifversion ghec %} - **{% data variables.product.prodname_GH_advanced_security %}** - Your changes affect only private repositories because {% data variables.product.prodname_GH_advanced_security %} and the related features are always enabled for public repositories. -- **{% data variables.product.prodname_secret_scanning_caps %}** - Your changes affect only private repositories where {% data variables.product.prodname_GH_advanced_security %} is also enabled. {% data variables.product.prodname_secret_scanning_caps %} is always enabled for public repositories.{% endif %} +- **{% data variables.product.prodname_secret_scanning_caps %}** - Your changes affect only private repositories where {% data variables.product.prodname_GH_advanced_security %} is also enabled. {% data variables.product.prodname_secret_scanning_caps %} is always enabled for public repositories. +{% endif %} + +{% endif %} {% data reusables.advanced-security.note-org-enable-uses-seats %} 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 "Configure security and analysis features", to the right of the feature, click **Disable all** or **Enable all**. {% ifversion fpt or ghes > 3.0 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 or ghec %} - !["Enable all" or "Disable all" button for "Configure security and analysis" features](/assets/images/help/organizations/security-and-analysis-disable-or-enable-all-ghas-dotcom.png) +2. Under "Configure security and analysis features", to the right of the feature, click **Disable all** or **Enable all**. {% ifversion ghes > 3.0 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 %} + !["Enable all" or "Disable all" button for "Configure security and analysis" features](/assets/images/help/organizations/security-and-analysis-disable-or-enable-all-fpt.png) + {% endif %} + {% ifversion ghec %} + !["Enable all" or "Disable all" button for "Configure security and analysis" features](/assets/images/help/organizations/security-and-analysis-disable-or-enable-all-ghas-ghec.png) {% endif %} {% ifversion ghes > 3.2 %} !["Enable all" or "Disable all" button for "Configure security and analysis" features](/assets/images/enterprise/3.3/organizations/security-and-analysis-disable-or-enable-all-ghas.png) @@ -95,10 +103,13 @@ You can enable or disable features for all repositories. {% ifversion fpt or ghe 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 "Configure security and analysis features", to the right of the feature, enable or disable the feature by default for new repositories{% ifversion fpt or ghec %}, or all new private repositories,{% endif %} in your organization. - {% ifversion fpt or ghec %} - ![Checkbox for enabling or disabling a feature for new repositories](/assets/images/help/organizations/security-and-analysis-enable-or-disable-feature-checkbox-dotcom.png) + {% ifversion fpt %} + ![Checkbox for enabling or disabling a feature for new repositories](/assets/images/help/organizations/security-and-analysis-enable-or-disable-feature-checkbox-fpt.png) {% endif %} - {% ifversion ghes > 3.2 %} + {% ifversion ghec %} + ![Checkbox for enabling or disabling a feature for new repositories](/assets/images/help/organizations/security-and-analysis-enable-or-disable-feature-checkbox-ghec.png) + {% endif %} + {% ifversion ghes > 3.2 %} ![Checkbox for enabling or disabling a feature for new repositories](/assets/images/enterprise/3.3/organizations/security-and-analysis-enable-or-disable-feature-checkbox.png) {% endif %} {% ifversion ghes = 3.1 or ghes = 3.2 %} @@ -111,7 +122,8 @@ You can enable or disable features for all repositories. {% ifversion fpt or ghe ![Checkbox for enabling or disabling a feature for new repositories](/assets/images/enterprise/github-ae/organizations/security-and-analysis-enable-or-disable-secret-scanning-checkbox-ghae.png) {% endif %} -{% ifversion fpt or ghec or ghes > 3.2 %} +{% ifversion ghec or ghes > 3.2 %} + ## Allowing {% data variables.product.prodname_dependabot %} to access private dependencies @@ -134,7 +146,7 @@ To allow {% data variables.product.prodname_dependabot %} to access a private {% !["X" button to remove a repository](/assets/images/help/organizations/dependabot-private-repository-list.png) {% endif %} -{% ifversion fpt or ghes > 3.0 or ghec %} +{% ifversion ghes > 3.0 or ghec %} ## Removing access to {% data variables.product.prodname_GH_advanced_security %} from individual repositories in an organization @@ -157,8 +169,8 @@ You can manage access to {% data variables.product.prodname_GH_advanced_security ## Further reading -- "[Securing your repository](/code-security/getting-started/securing-your-repository)" -- "[About secret scanning](/github/administering-a-repository/about-secret-scanning)"{% ifversion fpt or ghec %} -- "[Keeping your dependencies updated automatically](/github/administering-a-repository/keeping-your-dependencies-updated-automatically)"{% endif %}{% ifversion not ghae %} +- "[Securing your repository](/code-security/getting-started/securing-your-repository)"{% ifversion not fpt %} +- "[About secret scanning](/github/administering-a-repository/about-secret-scanning)"{% endif %}{% ifversion not ghae %} - "[About the dependency graph](/github/visualizing-repository-data-with-graphs/about-the-dependency-graph)" -- "[Managing vulnerabilities in your project's dependencies](/github/managing-security-vulnerabilities/managing-vulnerabilities-in-your-projects-dependencies)"{% endif %} +- "[Managing vulnerabilities in your project's dependencies](/github/managing-security-vulnerabilities/managing-vulnerabilities-in-your-projects-dependencies)"{% endif %}{% ifversion fpt or ghec or ghes > 3.2 %} +- "[Keeping your dependencies updated automatically](/github/administering-a-repository/keeping-your-dependencies-updated-automatically)"{% endif %} diff --git a/translations/es-ES/content/organizations/keeping-your-organization-secure/restricting-email-notifications-for-your-organization.md b/translations/es-ES/content/organizations/keeping-your-organization-secure/restricting-email-notifications-for-your-organization.md index 65657e2c0a..609f0b67d1 100644 --- a/translations/es-ES/content/organizations/keeping-your-organization-secure/restricting-email-notifications-for-your-organization.md +++ b/translations/es-ES/content/organizations/keeping-your-organization-secure/restricting-email-notifications-for-your-organization.md @@ -4,7 +4,7 @@ intro: 'To prevent organization information from leaking into personal email acc product: '{% data reusables.gated-features.restrict-email-domain %}' permissions: Organization owners can restrict email notifications for an organization. redirect_from: - - /articles/restricting-email-notifications-about-organization-activity-to-an-approved-email-domain/ + - /articles/restricting-email-notifications-about-organization-activity-to-an-approved-email-domain - /articles/restricting-email-notifications-to-an-approved-domain - /github/setting-up-and-managing-organizations-and-teams/restricting-email-notifications-to-an-approved-domain - /organizations/keeping-your-organization-secure/restricting-email-notifications-to-an-approved-domain diff --git a/translations/es-ES/content/organizations/keeping-your-organization-secure/reviewing-the-audit-log-for-your-organization.md b/translations/es-ES/content/organizations/keeping-your-organization-secure/reviewing-the-audit-log-for-your-organization.md index 08a2b3eb70..621972fd3c 100644 --- a/translations/es-ES/content/organizations/keeping-your-organization-secure/reviewing-the-audit-log-for-your-organization.md +++ b/translations/es-ES/content/organizations/keeping-your-organization-secure/reviewing-the-audit-log-for-your-organization.md @@ -68,13 +68,13 @@ To search for specific events, use the `action` qualifier in your query. Actions | [`repo`](#repo-category-actions) | Contains activities related to the repositories owned by your organization.{% ifversion fpt or ghec %} | [`repository_advisory`](#repository_advisory-category-actions) | Contains repository-level activities related to security advisories in the {% data variables.product.prodname_advisory_database %}. For more information, see "[About {% data variables.product.prodname_dotcom %} Security Advisories](/github/managing-security-vulnerabilities/about-github-security-advisories)." | [`repository_content_analysis`](#repository_content_analysis-category-actions) | Contains all activities related to [enabling or disabling data use for a private repository](/articles/about-github-s-use-of-your-data).{% endif %}{% ifversion fpt or ghec %} -| [`repository_dependency_graph`](#repository_dependency_graph-category-actions) | Contains repository-level activities related to enabling or disabling the dependency graph for a {% ifversion fpt or ghec %}private {% endif %}repository. For more information, see "[About the dependency graph](/github/visualizing-repository-data-with-graphs/about-the-dependency-graph)."{% endif %} -| [`repository_secret_scanning`](#repository_secret_scanning-category-actions) | Contains repository-level activities related to secret scanning. For more information, see "[About secret scanning](/github/administering-a-repository/about-secret-scanning)." {% ifversion fpt or ghes or ghae-issue-4864 or ghec %} +| [`repository_dependency_graph`](#repository_dependency_graph-category-actions) | Contains repository-level activities related to enabling or disabling the dependency graph for a {% ifversion fpt or ghec %}private {% endif %}repository. For more information, see "[About the dependency graph](/github/visualizing-repository-data-with-graphs/about-the-dependency-graph)."{% endif %}{% ifversion ghes or ghae or ghec %} +| [`repository_secret_scanning`](#repository_secret_scanning-category-actions) | Contains repository-level activities related to secret scanning. For more information, see "[About secret scanning](/github/administering-a-repository/about-secret-scanning)." {% endif %}{% ifversion fpt or ghes or ghae-issue-4864 or ghec %} | [`repository_vulnerability_alert`](#repository_vulnerability_alert-category-actions) | Contains all activities related to [{% data variables.product.prodname_dependabot_alerts %} for vulnerable dependencies](/github/managing-security-vulnerabilities/about-alerts-for-vulnerable-dependencies).{% endif %}{% ifversion fpt or ghec %} | [`repository_vulnerability_alerts`](#repository_vulnerability_alerts-category-actions) | Contains repository-level configuration activities for {% data variables.product.prodname_dependabot_alerts %}.{% endif %}{% ifversion ghec %} -| [`role`](#role-category-actions) | Contains all activities related to [custom repository roles](/organizations/managing-peoples-access-to-your-organization-with-roles/managing-custom-repository-roles-for-an-organization).{% endif %} +| [`role`](#role-category-actions) | Contains all activities related to [custom repository roles](/organizations/managing-peoples-access-to-your-organization-with-roles/managing-custom-repository-roles-for-an-organization).{% endif %}{% ifversion ghes or ghae or ghec %} | [`secret_scanning`](#secret_scanning-category-actions) | Contains organization-level configuration activities for secret scanning in existing repositories. For more information, see "[About secret scanning](/github/administering-a-repository/about-secret-scanning)." -| [`secret_scanning_new_repos`](#secret_scanning_new_repos-category-actions) | Contains organization-level configuration activities for secret scanning for new repositories created in the organization. {% ifversion fpt or ghec %} +| [`secret_scanning_new_repos`](#secret_scanning_new_repos-category-actions) | Contains organization-level configuration activities for secret scanning for new repositories created in the organization. {% endif %}{% ifversion fpt or ghec %} | [`sponsors`](#sponsors-category-actions) | Contains all events related to sponsor buttons (see "[Displaying a sponsor button in your repository](/articles/displaying-a-sponsor-button-in-your-repository)"){% endif %} | [`team`](#team-category-actions) | Contains all activities related to teams in your organization. | [`team_discussions`](#team_discussions-category-actions) | Contains activities related to managing team discussions for an organization.{% ifversion fpt or ghec or ghes > 3.1 or ghae %} @@ -550,7 +550,7 @@ For more information, see "[Managing the publication of {% data variables.produc | `update_require_code_owner_review ` | Triggered when enforcement of required Code Owner review is updated on a branch. | `dismiss_stale_reviews ` | Triggered when enforcement of dismissing stale pull requests is updated on a branch. | `update_signature_requirement_enforcement_level ` | Triggered when enforcement of required commit signing is updated on a branch. -| `update_pull_request_reviews_enforcement_level ` | Triggered when enforcement of required pull request reviews is updated on a branch. +| `update_pull_request_reviews_enforcement_level ` | Triggered when enforcement of required pull request reviews is updated on a branch. Can be one of `0`(deactivated), `1`(non-admins), `2`(everyone). | `update_required_status_checks_enforcement_level ` | Triggered when enforcement of required status checks is updated on a branch. | `update_strict_required_status_checks_policy` | Triggered when the requirement for a branch to be up to date before merging is changed. | `rejected_ref_update ` | Triggered when a branch update attempt is rejected. @@ -662,15 +662,15 @@ For more information, see "[Managing the publication of {% data variables.produc | `disable` | Triggered when a repository owner or person with admin access to the repository disables the dependency graph for a {% ifversion fpt or ghec %}private {% endif %}repository. For more information, see "[About the dependency graph](/github/visualizing-repository-data-with-graphs/about-the-dependency-graph)." | `enable` | Triggered when a repository owner or person with admin access to the repository enables the dependency graph for a {% ifversion fpt or ghec %}private {% endif %}repository. -{% endif %} +{% endif %}{% ifversion ghec or ghes or ghae %} ### `repository_secret_scanning` category actions | Action | Description |------------------|------------------- -| `disable` | Triggered when a repository owner or person with admin access to the repository disables secret scanning for a {% ifversion fpt or ghec %}private {% endif %}repository. For more information, see "[About secret scanning](/github/administering-a-repository/about-secret-scanning)." -| `enable` | Triggered when a repository owner or person with admin access to the repository enables secret scanning for a {% ifversion fpt or ghec %}private {% endif %}repository. +| `disable` | Triggered when a repository owner or person with admin access to the repository disables secret scanning for a {% ifversion ghec %}private or internal {% endif %}repository. For more information, see "[About secret scanning](/github/administering-a-repository/about-secret-scanning)." +| `enable` | Triggered when a repository owner or person with admin access to the repository enables secret scanning for a {% ifversion ghec %}private or internal {% endif %}repository. -{% ifversion fpt or ghes or ghae-issue-4864 or ghec %} +{% endif %}{% ifversion fpt or ghes or ghae-issue-4864 or ghec %} ### `repository_vulnerability_alert` category actions | Action | Description @@ -697,20 +697,21 @@ For more information, see "[Managing the publication of {% data variables.produc |`update` | Triggered when an organization owner edits an existing custom repository role. For more information, see "[Managing custom repository roles for an organization](/organizations/managing-peoples-access-to-your-organization-with-roles/managing-custom-repository-roles-for-an-organization)." {% endif %} - +{% ifversion ghec or ghes or ghae %} ### `secret_scanning` category actions | Action | Description |------------------|------------------- -| `disable` | Triggered when an organization owner disables secret scanning for all existing{% ifversion fpt or ghec %}, private{% endif %} repositories. For more information, see "[About secret scanning](/github/administering-a-repository/about-secret-scanning)." -| `enable` | Triggered when an organization owner enables secret scanning for all existing{% ifversion fpt or ghec %}, private{% endif %} repositories. +| `disable` | Triggered when an organization owner disables secret scanning for all existing{% ifversion ghec %}, private or internal{% endif %} repositories. For more information, see "[About secret scanning](/github/administering-a-repository/about-secret-scanning)." +| `enable` | Triggered when an organization owner enables secret scanning for all existing{% ifversion ghec %}, private or internal{% endif %} repositories. ### `secret_scanning_new_repos` category actions | Action | Description |------------------|------------------- -| `disable` | Triggered when an organization owner disables secret scanning for all new {% ifversion fpt or ghec %}private {% endif %}repositories. For more information, see "[About secret scanning](/github/administering-a-repository/about-secret-scanning)." -| `enable` | Triggered when an organization owner enables secret scanning for all new {% ifversion fpt or ghec %}private {% endif %}repositories. +| `disable` | Triggered when an organization owner disables secret scanning for all new {% ifversion ghec %}private or internal {% endif %}repositories. For more information, see "[About secret scanning](/github/administering-a-repository/about-secret-scanning)." +| `enable` | Triggered when an organization owner enables secret scanning for all new {% ifversion ghec %}private or internal {% endif %}repositories. +{% endif %} {% ifversion fpt or ghec %} ### `sponsors` category actions diff --git a/translations/es-ES/content/organizations/managing-access-to-your-organizations-repositories/index.md b/translations/es-ES/content/organizations/managing-access-to-your-organizations-repositories/index.md index 99c028cd4b..94a30b7368 100644 --- a/translations/es-ES/content/organizations/managing-access-to-your-organizations-repositories/index.md +++ b/translations/es-ES/content/organizations/managing-access-to-your-organizations-repositories/index.md @@ -1,8 +1,8 @@ --- -title: Administrar el acceso a los repositorios de tu organización -intro: Los propietarios de la organización pueden administrar el acceso individual y de equipo a los repositorios de una organización. Los mantenedores del equipo también pueden administrar el acceso a un repositorio de equipo. +title: Managing access to your organization's repositories +intro: Organization owners can manage individual and team access to the organization's repositories. Team maintainers can also manage a team's repository access. redirect_from: - - /articles/permission-levels-for-an-organization-repository/ + - /articles/permission-levels-for-an-organization-repository - /articles/managing-access-to-your-organization-s-repositories - /articles/managing-access-to-your-organizations-repositories - /github/setting-up-and-managing-organizations-and-teams/managing-access-to-your-organizations-repositories @@ -26,6 +26,6 @@ children: - /converting-an-organization-member-to-an-outside-collaborator - /converting-an-outside-collaborator-to-an-organization-member - /reinstating-a-former-outside-collaborators-access-to-your-organization -shortTitle: Administrar el acceso a los repositorios +shortTitle: Manage access to repositories --- diff --git a/translations/es-ES/content/organizations/managing-access-to-your-organizations-repositories/managing-an-individuals-access-to-an-organization-repository.md b/translations/es-ES/content/organizations/managing-access-to-your-organizations-repositories/managing-an-individuals-access-to-an-organization-repository.md index ae55c3dd9a..4e2c599dd2 100644 --- a/translations/es-ES/content/organizations/managing-access-to-your-organizations-repositories/managing-an-individuals-access-to-an-organization-repository.md +++ b/translations/es-ES/content/organizations/managing-access-to-your-organizations-repositories/managing-an-individuals-access-to-an-organization-repository.md @@ -2,7 +2,7 @@ title: Managing an individual's access to an organization repository intro: You can manage a person's access to a repository owned by your organization. redirect_from: - - /articles/managing-an-individual-s-access-to-an-organization-repository-early-access-program/ + - /articles/managing-an-individual-s-access-to-an-organization-repository-early-access-program - /articles/managing-an-individual-s-access-to-an-organization-repository - /articles/managing-an-individuals-access-to-an-organization-repository - /github/setting-up-and-managing-organizations-and-teams/managing-an-individuals-access-to-an-organization-repository diff --git a/translations/es-ES/content/organizations/managing-access-to-your-organizations-repositories/managing-team-access-to-an-organization-repository.md b/translations/es-ES/content/organizations/managing-access-to-your-organizations-repositories/managing-team-access-to-an-organization-repository.md index ed598dccd4..51d2c0a079 100644 --- a/translations/es-ES/content/organizations/managing-access-to-your-organizations-repositories/managing-team-access-to-an-organization-repository.md +++ b/translations/es-ES/content/organizations/managing-access-to-your-organizations-repositories/managing-team-access-to-an-organization-repository.md @@ -2,7 +2,7 @@ title: Managing team access to an organization repository intro: 'You can give a team access to a repository, remove a team''s access to a repository, or change a team''s permission level for a repository.' redirect_from: - - /articles/managing-team-access-to-an-organization-repository-early-access-program/ + - /articles/managing-team-access-to-an-organization-repository-early-access-program - /articles/managing-team-access-to-an-organization-repository - /github/setting-up-and-managing-organizations-and-teams/managing-team-access-to-an-organization-repository versions: diff --git a/translations/es-ES/content/organizations/managing-access-to-your-organizations-repositories/repository-roles-for-an-organization.md b/translations/es-ES/content/organizations/managing-access-to-your-organizations-repositories/repository-roles-for-an-organization.md index 87dda915f4..62a0509814 100644 --- a/translations/es-ES/content/organizations/managing-access-to-your-organizations-repositories/repository-roles-for-an-organization.md +++ b/translations/es-ES/content/organizations/managing-access-to-your-organizations-repositories/repository-roles-for-an-organization.md @@ -3,7 +3,7 @@ title: Repository roles for an organization intro: 'You can customize access to each repository in your organization by assigning granular roles, giving people access to the features and tasks they need.' miniTocMaxHeadingLevel: 3 redirect_from: - - /articles/repository-permission-levels-for-an-organization-early-access-program/ + - /articles/repository-permission-levels-for-an-organization-early-access-program - /articles/repository-permission-levels-for-an-organization - /github/setting-up-and-managing-organizations-and-teams/repository-permission-levels-for-an-organization - /organizations/managing-access-to-your-organizations-repositories/repository-permission-levels-for-an-organization @@ -103,7 +103,7 @@ Some of the features listed below are limited to organizations using {% data var | Edit a repository's description | | | | **X** | **X** |{% ifversion fpt or ghae or ghec %} | [View and install packages](/packages/publishing-and-managing-packages) | **X** | **X** | **X** | **X** | **X** | | [Publish packages](/packages/publishing-and-managing-packages/publishing-a-package) | | | **X** | **X** | **X** | -| {% ifversion fpt or ghes > 3.0 or ghec %}[Delete and restore packages](/packages/learn-github-packages/deleting-and-restoring-a-package){% elsif ghes < 3.1 or ghae %}[Delete packages](/packages/learn-github-packages/deleting-a-package){% endif %} | | | | | **X** | {% endif %} +| {% ifversion fpt or ghes > 3.0 or ghec or ghae %}[Delete and restore packages](/packages/learn-github-packages/deleting-and-restoring-a-package){% elsif ghes < 3.1 %}[Delete packages](/packages/learn-github-packages/deleting-a-package){% endif %} | | | | | **X** | {% endif %} | Manage [topics](/articles/classifying-your-repository-with-topics) | | | | **X** | **X** | | Enable wikis and restrict wiki editors | | | | **X** | **X** | | Enable project boards | | | | **X** | **X** | @@ -141,7 +141,7 @@ Some of the features listed below are limited to organizations using {% data var | [Lock and unlock discussions](/discussions/managing-discussions-for-your-community/moderating-discussions) | | **X** | **X** | **X** | **X** | | [Individually convert issues to discussions](/discussions/managing-discussions-for-your-community/moderating-discussions) | | **X** | **X** | **X** | **X** | | [Create new discussions and comment on existing discussions](/discussions/collaborating-with-your-community-using-discussions/participating-in-a-discussion) | **X** | **X** | **X** | **X** | **X** | -| [Delete a discussion](/discussions/managing-discussions-for-your-community/managing-discussions-in-your-repository#deleting-a-discussion) | | | | **X** | **X** |{% endif %}{% ifversion fpt or ghec %} +| [Delete a discussion](/discussions/managing-discussions-for-your-community/managing-discussions-in-your-repository#deleting-a-discussion) | | **X** | | **X** | **X** |{% endif %}{% ifversion fpt or ghec %} | Create [codespaces](/codespaces/about-codespaces) | | | **X** | **X** | **X** |{% endif %} ### Access requirements for security features @@ -151,18 +151,18 @@ In this section, you can find the access required for security features, such as | Repository action | Read | Triage | Write | Maintain | Admin | |:---|:---:|:---:|:---:|:---:|:---:| {% ifversion fpt or ghes or ghae-issue-4864 or ghec %} | Receive [{% data variables.product.prodname_dependabot_alerts %} for vulnerable dependencies](/code-security/supply-chain-security/about-alerts-for-vulnerable-dependencies) in a repository | | | | | **X** | -| [Dismiss {% data variables.product.prodname_dependabot_alerts %}](/code-security/supply-chain-security/viewing-and-updating-vulnerable-dependencies-in-your-repository) | | | | | **X** | +| [Dismiss {% data variables.product.prodname_dependabot_alerts %}](/code-security/supply-chain-security/viewing-and-updating-vulnerable-dependencies-in-your-repository) | | | | | **X** |{% endif %}{% ifversion ghes or ghae-issue-4864 or ghec %} | [Designate additional people or teams to receive security alerts](/github/administering-a-repository/managing-security-and-analysis-settings-for-your-repository#granting-access-to-security-alerts) | | | | | **X** |{% endif %}{% ifversion fpt or ghec %} -| Create [security advisories](/code-security/security-advisories/about-github-security-advisories) | | | | | **X** |{% endif %} -| Manage access to {% data variables.product.prodname_GH_advanced_security %} features (see "[Managing security and analysis settings for your organization](/organizations/keeping-your-organization-secure/managing-security-and-analysis-settings-for-your-organization)") | | | | | **X** |{% ifversion fpt or ghec %} -| [Enable the dependency graph](/code-security/supply-chain-security/exploring-the-dependencies-of-a-repository) for a private repository | | | | | **X** |{% endif %}{% ifversion fpt or ghes > 3.1 or ghae-issue-4864 or ghec %} +| Create [security advisories](/code-security/security-advisories/about-github-security-advisories) | | | | | **X** |{% endif %}{% ifversion ghes or ghae or ghec %} +| Manage access to {% data variables.product.prodname_GH_advanced_security %} features (see "[Managing security and analysis settings for your organization](/organizations/keeping-your-organization-secure/managing-security-and-analysis-settings-for-your-organization)") | | | | | **X** |{% endif %}{% ifversion fpt or ghec %} +| [Enable the dependency graph](/code-security/supply-chain-security/exploring-the-dependencies-of-a-repository) for a private repository | | | | | **X** |{% endif %}{% ifversion ghes > 3.1 or ghae-issue-4864 or ghec %} | [View dependency reviews](/code-security/supply-chain-security/about-dependency-review) | **X** | **X** | **X** | **X** | **X** |{% endif %} | [View {% data variables.product.prodname_code_scanning %} alerts on pull requests](/github/finding-security-vulnerabilities-and-errors-in-your-code/triaging-code-scanning-alerts-in-pull-requests) | **X** | **X** | **X** | **X** | **X** | | [List, dismiss, and delete {% data variables.product.prodname_code_scanning %} alerts](/github/finding-security-vulnerabilities-and-errors-in-your-code/managing-code-scanning-alerts-for-your-repository) | | | **X** | **X** | **X** |{% ifversion fpt or ghes > 3.0 or ghae or ghec %} -| [View {% data variables.product.prodname_secret_scanning %} alerts in a repository](/github/administering-a-repository/managing-alerts-from-secret-scanning) | | | **X**{% ifversion not ghae %}[1]{% endif %} | **X**{% ifversion not ghae %}[1]{% endif %} | **X** | +| [View {% data variables.product.prodname_secret_scanning %} alerts in a repository](/github/administering-a-repository/managing-alerts-from-secret-scanning) | | | **X**{% ifversion not ghae %}[1]{% endif %} | **X**{% ifversion not ghae %}[1]{% endif %} | **X** |{% endif %}{% ifversion ghes > 3.0 or ghae or ghec %} | [Resolve, revoke, or re-open {% data variables.product.prodname_secret_scanning %} alerts](/github/administering-a-repository/managing-alerts-from-secret-scanning) | | | **X**{% ifversion not ghae %}[1]{% endif %} | **X**{% ifversion not ghae %}[1]{% endif %} | **X** |{% endif %}{% ifversion ghes = 3.0 %} | [View {% data variables.product.prodname_secret_scanning %} alerts in a repository](/github/administering-a-repository/managing-alerts-from-secret-scanning) | | | | | **X** | -| [Resolve, revoke, or re-open {% data variables.product.prodname_secret_scanning %} alerts](/github/administering-a-repository/managing-alerts-from-secret-scanning) | | | | | **X** |{% endif %}{% ifversion fpt or ghes or ghae-issue-4864 or ghec %} +| [Resolve, revoke, or re-open {% data variables.product.prodname_secret_scanning %} alerts](/github/administering-a-repository/managing-alerts-from-secret-scanning) | | | | | **X** |{% endif %}{% ifversion ghes or ghae-issue-4864 or ghec %} | [Designate additional people or teams to receive {% data variables.product.prodname_secret_scanning %} alerts](/github/administering-a-repository/managing-security-and-analysis-settings-for-your-repository#granting-access-to-security-alerts) in repositories | | | | | **X** |{% endif %} {% ifversion fpt or ghes > 3.0 or ghae or ghec %} diff --git a/translations/es-ES/content/organizations/managing-git-access-to-your-organizations-repositories/index.md b/translations/es-ES/content/organizations/managing-git-access-to-your-organizations-repositories/index.md index 0ce1b03d5f..ddff241ba3 100644 --- a/translations/es-ES/content/organizations/managing-git-access-to-your-organizations-repositories/index.md +++ b/translations/es-ES/content/organizations/managing-git-access-to-your-organizations-repositories/index.md @@ -1,9 +1,9 @@ --- -title: Administrar el acceso de Git a los repositorios de tu organización -intro: Puedes agregar una autoridad de certificados (CA) SSH a tu organización y permitir que los miembros accedan a los repositorios de la organización sobre Git mediante claves firmadas por la CA SSH. +title: Managing Git access to your organization's repositories +intro: You can add an SSH certificate authority (CA) to your organization and allow members to access the organization's repositories over Git using keys signed by the SSH CA. product: '{% data reusables.gated-features.ssh-certificate-authorities %}' redirect_from: - - /articles/managing-git-access-to-your-organizations-repositories-using-ssh-certificate-authorities/ + - /articles/managing-git-access-to-your-organizations-repositories-using-ssh-certificate-authorities - /articles/managing-git-access-to-your-organizations-repositories - /github/setting-up-and-managing-organizations-and-teams/managing-git-access-to-your-organizations-repositories versions: @@ -17,6 +17,6 @@ topics: children: - /about-ssh-certificate-authorities - /managing-your-organizations-ssh-certificate-authorities -shortTitle: Administrar el acceso a Git +shortTitle: Manage Git access --- diff --git a/translations/es-ES/content/organizations/managing-membership-in-your-organization/can-i-create-accounts-for-people-in-my-organization.md b/translations/es-ES/content/organizations/managing-membership-in-your-organization/can-i-create-accounts-for-people-in-my-organization.md index c08a2a1e4e..fcbc84c3ef 100644 --- a/translations/es-ES/content/organizations/managing-membership-in-your-organization/can-i-create-accounts-for-people-in-my-organization.md +++ b/translations/es-ES/content/organizations/managing-membership-in-your-organization/can-i-create-accounts-for-people-in-my-organization.md @@ -2,7 +2,7 @@ title: Can I create accounts for people in my organization? intro: 'While you can add users to an organization you''ve created, you can''t create personal user accounts on behalf of another person.' redirect_from: - - /articles/can-i-create-accounts-for-those-in-my-organization/ + - /articles/can-i-create-accounts-for-those-in-my-organization - /articles/can-i-create-accounts-for-people-in-my-organization - /github/setting-up-and-managing-organizations-and-teams/can-i-create-accounts-for-people-in-my-organization versions: diff --git a/translations/es-ES/content/organizations/managing-membership-in-your-organization/exporting-member-information-for-your-organization.md b/translations/es-ES/content/organizations/managing-membership-in-your-organization/exporting-member-information-for-your-organization.md index 6df920f16c..b364a65fcc 100644 --- a/translations/es-ES/content/organizations/managing-membership-in-your-organization/exporting-member-information-for-your-organization.md +++ b/translations/es-ES/content/organizations/managing-membership-in-your-organization/exporting-member-information-for-your-organization.md @@ -13,7 +13,14 @@ topics: shortTitle: Export member information --- -You can export information about members in your organization. This is useful if you want to perform an audit of users within the organization. The exported information includes username and display name details, and whether the membership is public or private. +You can export information about members in your organization. This is useful if you want to perform an audit of users within the organization. + +The exported information includes: +- Username and display name details +- Whether the user has two-factor authentication enabled +- Whether the membership is public or private +- Whether the user is an organization owner or member +- Datetime of the user's last activity (for a full list of relevant activity, see "[Managing dormant users](/admin/user-management/managing-users-in-your-enterprise/managing-dormant-users)") You can get member information directly from the {% data variables.product.product_name %} user interface, or using APIs. This article explains how to obtain member information from within {% data variables.product.product_name %}. diff --git a/translations/es-ES/content/organizations/managing-membership-in-your-organization/index.md b/translations/es-ES/content/organizations/managing-membership-in-your-organization/index.md index 344036e617..1216f530f7 100644 --- a/translations/es-ES/content/organizations/managing-membership-in-your-organization/index.md +++ b/translations/es-ES/content/organizations/managing-membership-in-your-organization/index.md @@ -2,7 +2,7 @@ title: Managing membership in your organization intro: 'After you create your organization, you can {% ifversion fpt %}invite people to become{% else %}add people as{% endif %} members of the organization. You can also remove members of the organization, and reinstate former members.' redirect_from: - - /articles/removing-a-user-from-your-organization/ + - /articles/removing-a-user-from-your-organization - /articles/managing-membership-in-your-organization - /github/setting-up-and-managing-organizations-and-teams/managing-membership-in-your-organization versions: diff --git a/translations/es-ES/content/organizations/managing-membership-in-your-organization/inviting-users-to-join-your-organization.md b/translations/es-ES/content/organizations/managing-membership-in-your-organization/inviting-users-to-join-your-organization.md index fac88da5ef..31b090c1f3 100644 --- a/translations/es-ES/content/organizations/managing-membership-in-your-organization/inviting-users-to-join-your-organization.md +++ b/translations/es-ES/content/organizations/managing-membership-in-your-organization/inviting-users-to-join-your-organization.md @@ -3,7 +3,7 @@ title: Inviting users to join your organization intro: 'You can invite anyone to become a member of your organization using their username or email address for {% data variables.product.product_location %}.' permissions: Organization owners can invite users to join an organization. redirect_from: - - /articles/adding-or-inviting-members-to-a-team-in-an-organization/ + - /articles/adding-or-inviting-members-to-a-team-in-an-organization - /articles/inviting-users-to-join-your-organization - /github/setting-up-and-managing-organizations-and-teams/inviting-users-to-join-your-organization versions: diff --git a/translations/es-ES/content/organizations/managing-organization-settings/renaming-an-organization.md b/translations/es-ES/content/organizations/managing-organization-settings/renaming-an-organization.md index 9fd78a8735..30bd57d2b3 100644 --- a/translations/es-ES/content/organizations/managing-organization-settings/renaming-an-organization.md +++ b/translations/es-ES/content/organizations/managing-organization-settings/renaming-an-organization.md @@ -2,7 +2,7 @@ title: Renaming an organization intro: 'If your project or company has changed names, you can update the name of your organization to match.' redirect_from: - - /articles/what-happens-when-i-change-my-organization-s-name/ + - /articles/what-happens-when-i-change-my-organization-s-name - /articles/renaming-an-organization - /github/setting-up-and-managing-organizations-and-teams/renaming-an-organization versions: diff --git a/translations/es-ES/content/organizations/managing-organization-settings/setting-permissions-for-adding-outside-collaborators.md b/translations/es-ES/content/organizations/managing-organization-settings/setting-permissions-for-adding-outside-collaborators.md index 47ece27016..44b80ce85d 100644 --- a/translations/es-ES/content/organizations/managing-organization-settings/setting-permissions-for-adding-outside-collaborators.md +++ b/translations/es-ES/content/organizations/managing-organization-settings/setting-permissions-for-adding-outside-collaborators.md @@ -1,9 +1,9 @@ --- -title: Configurar permisos para agregar colaboradores externos -intro: 'Para proteger los datos de tu organización y la cantidad de licencias pagadas que se utilizan en ella, puedes permitir que únicamente los propietarios inviten colaboradores externos a los repositorios que le pertenezcan.' +title: Setting permissions for adding outside collaborators +intro: 'To protect your organization''s data and the number of paid licenses used in your organization, you can allow only owners to invite outside collaborators to organization repositories.' product: '{% data reusables.gated-features.restrict-add-collaborator %}' redirect_from: - - /articles/restricting-the-ability-to-add-outside-collaborators-to-organization-repositories/ + - /articles/restricting-the-ability-to-add-outside-collaborators-to-organization-repositories - /articles/setting-permissions-for-adding-outside-collaborators - /github/setting-up-and-managing-organizations-and-teams/setting-permissions-for-adding-outside-collaborators versions: @@ -14,15 +14,16 @@ versions: topics: - Organizations - Teams -shortTitle: Configurar la política de colaboradores +shortTitle: Set collaborator policy --- -Los propietarios de la organización y los miembros con privilegios administrativos en los repositorios pueden invitar colaboradores externos para trabajar en ellos. También puedes restringir los permisos de invitación de colaboradores externos para que solo los propietarios de la organización puedan emitirlos. +Organization owners, and members with admin privileges for a repository, can invite outside collaborators to work on the repository. You can also restrict outside collaborator invite permissions to only organization owners. {% data reusables.organizations.outside-collaborators-use-seats %} {% data reusables.profile.access_org %} {% data reusables.profile.org_settings %} {% data reusables.organizations.member-privileges %} -5. En "Repository invitations" (Invitaciones al repositorio), selecciona **Allow members to invite outside collaborators to repositories for this organization** (Permitir que los miembros inviten colaboradores externos a los repositorios para esta organización). ![Casilla para permitir que los miembros inviten colaboradores externos a los repositorios de la organización](/assets/images/help/organizations/repo-invitations-checkbox-updated.png) -6. Haz clic en **Save ** (guardar). +5. Under "Repository invitations", select **Allow members to invite outside collaborators to repositories for this organization**. + ![Checkbox to allow members to invite outside collaborators to organization repositories](/assets/images/help/organizations/repo-invitations-checkbox-updated.png) +6. Click **Save**. diff --git a/translations/es-ES/content/organizations/managing-organization-settings/setting-permissions-for-deleting-or-transferring-repositories.md b/translations/es-ES/content/organizations/managing-organization-settings/setting-permissions-for-deleting-or-transferring-repositories.md index a50cc96b72..5309271e6e 100644 --- a/translations/es-ES/content/organizations/managing-organization-settings/setting-permissions-for-deleting-or-transferring-repositories.md +++ b/translations/es-ES/content/organizations/managing-organization-settings/setting-permissions-for-deleting-or-transferring-repositories.md @@ -1,8 +1,8 @@ --- -title: Configurar permisos para eliminar o transferir repositorios en tu organización -intro: 'Puedes permitir que los miembros de una organización con permisos de administrador accedan a un repositorio para eliminar o transferir el repositorio, o limitar la capacidad para borrar o transferir repositorios únicamente a los propietarios de la organización.' +title: Setting permissions for deleting or transferring repositories +intro: 'You can allow organization members with admin permissions to a repository to delete or transfer the repository, or limit the ability to delete or transfer repositories to organization owners only.' redirect_from: - - /articles/setting-permissions-for-deleting-or-transferring-repositories-in-your-organization/ + - /articles/setting-permissions-for-deleting-or-transferring-repositories-in-your-organization - /articles/setting-permissions-for-deleting-or-transferring-repositories - /github/setting-up-and-managing-organizations-and-teams/setting-permissions-for-deleting-or-transferring-repositories versions: @@ -13,13 +13,14 @@ versions: topics: - Organizations - Teams -shortTitle: Configurar la política de administración del repositorio +shortTitle: Set repo management policy --- -Los propietarios pueden configurar permisos para eliminar o transferir repositorios en una organización. +Owners can set permissions for deleting or transferring repositories in an organization. {% data reusables.profile.access_org %} {% data reusables.profile.org_settings %} {% data reusables.organizations.member-privileges %} -5. Dentro de "Repository deletion and transfer" (Eliminación o transferencia de repositorios), selecciona o deselecciona **Allow members to delete or transfer repositories for this organization (Permitir que los miembros puedan eliminar o transferir repositorios para esta organización)**. ![Casilla de verificación para permitir que los miembros eliminen repositorios](/assets/images/help/organizations/disallow-members-to-delete-repositories.png) -6. Haz clic en **Save ** (guardar). +5. Under "Repository deletion and transfer", select or deselect **Allow members to delete or transfer repositories for this organization**. +![Checkbox to allow members to delete repositories](/assets/images/help/organizations/disallow-members-to-delete-repositories.png) +6. Click **Save**. diff --git a/translations/es-ES/content/organizations/managing-organization-settings/transferring-organization-ownership.md b/translations/es-ES/content/organizations/managing-organization-settings/transferring-organization-ownership.md index 6bf986400f..da79cb679b 100644 --- a/translations/es-ES/content/organizations/managing-organization-settings/transferring-organization-ownership.md +++ b/translations/es-ES/content/organizations/managing-organization-settings/transferring-organization-ownership.md @@ -1,8 +1,8 @@ --- -title: Transferir la propiedad de la organización -intro: 'Para hacer que alguna otra persona sea propietaria de una cuenta de organización, puedes agregar un propietario nuevo{% ifversion fpt or ghec %}, asegurar que la información de facturación esté actualizada{% endif %} y luego eliminarte de la cuenta.' +title: Transferring organization ownership +intro: 'To make someone else the owner of an organization account, you must add a new owner{% ifversion fpt or ghec %}, ensure that the billing information is updated,{% endif %} and then remove yourself from the account.' redirect_from: - - /articles/needs-polish-how-do-i-give-ownership-to-an-organization-to-someone-else/ + - /articles/needs-polish-how-do-i-give-ownership-to-an-organization-to-someone-else - /articles/transferring-organization-ownership - /github/setting-up-and-managing-organizations-and-teams/transferring-organization-ownership versions: @@ -13,26 +13,25 @@ versions: topics: - Organizations - Teams -shortTitle: Transferir la propiedad +shortTitle: Transfer ownership --- - {% ifversion fpt or ghec %} {% note %} -**Nota:**{% data reusables.enterprise-accounts.invite-organization %} +**Note:** {% data reusables.enterprise-accounts.invite-organization %} {% endnote %}{% endif %} -1. Si eres el único miembro con privilegios de *propietario*, otorga el rol de propietario a otro miembro de la organización. Para obtener más información, consulta "[Designar a un propietario de la organización](/organizations/managing-peoples-access-to-your-organization-with-roles/maintaining-ownership-continuity-for-your-organization#appointing-an-organization-owner)". -2. Contáctacte con el propietario nuevo y asegúrate de que pueda [acceder a los parámetros de la organización](/articles/accessing-your-organization-s-settings). +1. If you're the only member with *owner* privileges, give another organization member the owner role. For more information, see "[Appointing an organization owner](/organizations/managing-peoples-access-to-your-organization-with-roles/maintaining-ownership-continuity-for-your-organization#appointing-an-organization-owner)." +2. Contact the new owner and make sure he or she is able to [access the organization's settings](/articles/accessing-your-organization-s-settings). {% ifversion fpt or ghec %} -3. Si actualmente eres responsable de pagarle a GitHub en tu organización, también tendrás que hacer que el propietario nuevo o un [gerente de facturación](/articles/adding-a-billing-manager-to-your-organization/) actualice la información de pago de la organización. Para obtener más información, consulta "[Agregar o editar un método de pago](/articles/adding-or-editing-a-payment-method)". +3. If you are currently responsible for paying for GitHub in your organization, you'll also need to have the new owner or a [billing manager](/articles/adding-a-billing-manager-to-your-organization/) update the organization's payment information. For more information, see "[Adding or editing a payment method](/articles/adding-or-editing-a-payment-method)." {% warning %} - **Advertencia**: Eliminarte de la organización **no** actualiza la información de facturación archivada para la cuenta de la organización. El propietario nuevo o un gerente de facturación debe actualizar la información de facturación archivada para eliminar tu información de tarjeta de crédito o de PayPal. + **Warning**: Removing yourself from the organization **does not** update the billing information on file for the organization account. The new owner or a billing manager must update the billing information on file to remove your credit card or PayPal information. {% endwarning %} {% endif %} -4. [Eliminarte](/articles/removing-yourself-from-an-organization) de la organización. +4. [Remove yourself](/articles/removing-yourself-from-an-organization) from the organization. diff --git a/translations/es-ES/content/organizations/managing-peoples-access-to-your-organization-with-roles/managing-security-managers-in-your-organization.md b/translations/es-ES/content/organizations/managing-peoples-access-to-your-organization-with-roles/managing-security-managers-in-your-organization.md index ad751c6219..ad9f8d0d00 100644 --- a/translations/es-ES/content/organizations/managing-peoples-access-to-your-organization-with-roles/managing-security-managers-in-your-organization.md +++ b/translations/es-ES/content/organizations/managing-peoples-access-to-your-organization-with-roles/managing-security-managers-in-your-organization.md @@ -21,10 +21,14 @@ permissions: Organization owners can assign the security manager role. Members of a team with the security manager role have only the permissions required to effectively manage security for the organization. - Read access on all repositories in the organization, in addition to any existing repository access -- Write access on all security alerts in the organization -- Access to the organization's security overview -- The ability to configure security settings at the organization level, including the ability to enable or disable {% data variables.product.prodname_GH_advanced_security %} -- The ability to configure security settings at the repository level, including the ability to enable or disable {% data variables.product.prodname_GH_advanced_security %} +- Write access on all security alerts in the organization {% ifversion not fpt %} +- Access to the organization's security overview {% endif %} +- The ability to configure security settings at the organization level{% ifversion not fpt %}, including the ability to enable or disable {% data variables.product.prodname_GH_advanced_security %}{% endif %} +- The ability to configure security settings at the repository level{% ifversion not fpt %}, including the ability to enable or disable {% data variables.product.prodname_GH_advanced_security %}{% endif %} + +{% ifversion fpt %} +Additional functionality, including a security overview for the organization, is available in organizations that use {% data variables.product.prodname_ghe_cloud %} with {% data variables.product.prodname_advanced_security %}. For more information, see the [{% data variables.product.prodname_ghe_cloud %} documentation](/enterprise-cloud@latest/organizations/managing-peoples-access-to-your-organization-with-roles/managing-security-managers-in-your-organization). +{% endif %} If a team has the security manager role, people with admin access to the team and a specific repository can change the team's level of access to that repository but cannot remove the access. For more information, see "[Managing team access to an organization repository](/organizations/managing-access-to-your-organizations-repositories/managing-team-access-to-an-organization-repository){% ifversion ghes %}."{% else %} and "[Managing teams and people with access to your repository](/repositories/managing-your-repositorys-settings-and-features/managing-repository-settings/managing-teams-and-people-with-access-to-your-repository)."{% endif %} @@ -36,16 +40,18 @@ You can assign the security manager role to a maximum of 10 teams in your organi {% data reusables.profile.access_org %} {% data reusables.profile.org_settings %} {% data reusables.organizations.security-and-analysis %} -1. Under **Security managers**, search for and select the team to give the role. Each team you select will appear in a list below the search bar. ![Add security manager](/assets/images/help/organizations/add-security-managers.png) +1. Under **Security managers**, search for and select the team to give the role. Each team you select will appear in a list below the search bar. + ![Add security manager](/assets/images/help/organizations/add-security-managers.png) ## Removing the security manager role from a team in your organization {% warning %} -**Warning:** Removing the security manager role from a team will remove the team's ability to manage security alerts and settings across the organization, but the team will retain read access to repositories that was granted when the role was assigned. You must remove any unwanted read access manually. Para obtener más información, consulta la sección "[Administrar el acceso de un equipo a un repositorio organizacional](/organizations/managing-access-to-your-organizations-repositories/managing-team-access-to-an-organization-repository#removing-a-teams-access-to-a-repository)." +**Warning:** Removing the security manager role from a team will remove the team's ability to manage security alerts and settings across the organization, but the team will retain read access to repositories that was granted when the role was assigned. You must remove any unwanted read access manually. For more information, see "[Managing team access to an organization repository](/organizations/managing-access-to-your-organizations-repositories/managing-team-access-to-an-organization-repository#removing-a-teams-access-to-a-repository)." {% endwarning %} {% data reusables.profile.access_org %} {% data reusables.profile.org_settings %} {% data reusables.organizations.security-and-analysis %} -1. Under **Security managers**, to the right of the team you want to remove as security managers, click {% octicon "x" aria-label="The X icon" %}. ![Remove security managers](/assets/images/help/organizations/remove-security-managers.png) +1. Under **Security managers**, to the right of the team you want to remove as security managers, click {% octicon "x" aria-label="The X icon" %}. + ![Remove security managers](/assets/images/help/organizations/remove-security-managers.png) diff --git a/translations/es-ES/content/organizations/managing-peoples-access-to-your-organization-with-roles/roles-in-an-organization.md b/translations/es-ES/content/organizations/managing-peoples-access-to-your-organization-with-roles/roles-in-an-organization.md index 58b849aac4..a62d2b892d 100644 --- a/translations/es-ES/content/organizations/managing-peoples-access-to-your-organization-with-roles/roles-in-an-organization.md +++ b/translations/es-ES/content/organizations/managing-peoples-access-to-your-organization-with-roles/roles-in-an-organization.md @@ -2,7 +2,7 @@ title: Roles in an organization intro: Organization owners can assign roles to individuals and teams giving them different sets of permissions in the organization. redirect_from: - - /articles/permission-levels-for-an-organization-early-access-program/ + - /articles/permission-levels-for-an-organization-early-access-program - /articles/permission-levels-for-an-organization - /github/setting-up-and-managing-organizations-and-teams/permission-levels-for-an-organization - /organizations/managing-peoples-access-to-your-organization-with-roles/permission-levels-for-an-organization diff --git a/translations/es-ES/content/organizations/managing-saml-single-sign-on-for-your-organization/index.md b/translations/es-ES/content/organizations/managing-saml-single-sign-on-for-your-organization/index.md index 4a825c5770..668ba3b7bc 100644 --- a/translations/es-ES/content/organizations/managing-saml-single-sign-on-for-your-organization/index.md +++ b/translations/es-ES/content/organizations/managing-saml-single-sign-on-for-your-organization/index.md @@ -2,7 +2,7 @@ title: Managing SAML single sign-on for your organization intro: Organization owners can manage organization members' identities and access to the organization with SAML single sign-on (SSO). redirect_from: - - /articles/managing-member-identity-and-access-in-your-organization-with-saml-single-sign-on/ + - /articles/managing-member-identity-and-access-in-your-organization-with-saml-single-sign-on - /articles/managing-saml-single-sign-on-for-your-organization - /github/setting-up-and-managing-organizations-and-teams/managing-saml-single-sign-on-for-your-organization versions: diff --git a/translations/es-ES/content/organizations/migrating-to-improved-organization-permissions/converting-an-admin-team-to-improved-organization-permissions.md b/translations/es-ES/content/organizations/migrating-to-improved-organization-permissions/converting-an-admin-team-to-improved-organization-permissions.md index 861713d54e..02f92675b7 100644 --- a/translations/es-ES/content/organizations/migrating-to-improved-organization-permissions/converting-an-admin-team-to-improved-organization-permissions.md +++ b/translations/es-ES/content/organizations/migrating-to-improved-organization-permissions/converting-an-admin-team-to-improved-organization-permissions.md @@ -2,7 +2,7 @@ title: Converting an admin team to improved organization permissions intro: 'If your organization was created after September 2015, your organization has improved organization permissions by default. Organizations created before September 2015 may need to migrate older Owners and Admin teams to the improved permissions model. Members of legacy admin teams automatically retain the ability to create repositories until those teams are migrated to the improved organization permissions model.' redirect_from: - - /articles/converting-your-previous-admin-team-to-the-improved-organization-permissions/ + - /articles/converting-your-previous-admin-team-to-the-improved-organization-permissions - /articles/converting-an-admin-team-to-improved-organization-permissions - /github/setting-up-and-managing-organizations-and-teams/converting-an-admin-team-to-improved-organization-permissions versions: diff --git a/translations/es-ES/content/organizations/migrating-to-improved-organization-permissions/converting-an-owners-team-to-improved-organization-permissions.md b/translations/es-ES/content/organizations/migrating-to-improved-organization-permissions/converting-an-owners-team-to-improved-organization-permissions.md index 793e787fff..2d483eed91 100644 --- a/translations/es-ES/content/organizations/migrating-to-improved-organization-permissions/converting-an-owners-team-to-improved-organization-permissions.md +++ b/translations/es-ES/content/organizations/migrating-to-improved-organization-permissions/converting-an-owners-team-to-improved-organization-permissions.md @@ -1,9 +1,9 @@ --- -title: Convertir un equipo de Propietarios a los permisos de organización mejorados -intro: 'Si tu organización fue creada después de septiembre de 2015, tu organización ha mejorado los permisos de la organización por defecto. Las organizaciones creadas antes de septiembre de 2015 pueden necesitar migrar a los antiguos equipos de propietarios y administradores al modelo mejorado de permisos. El "Propietario" ahora tiene un rol administrativo otorgado a los miembros individuales de tu organización. Los miembros de tu equipo de Propietarios heredado automáticamente reciben los privilegios del propietario.' +title: Converting an Owners team to improved organization permissions +intro: 'If your organization was created after September 2015, your organization has improved organization permissions by default. Organizations created before September 2015 may need to migrate older Owners and Admin teams to the improved permissions model. The "Owner" is now an administrative role given to individual members of your organization. Members of your legacy Owners team are automatically given owner privileges.' redirect_from: - - /articles/converting-your-previous-owners-team-to-the-improved-organization-permissions-early-access-program/ - - /articles/converting-your-previous-owners-team-to-the-improved-organization-permissions/ + - /articles/converting-your-previous-owners-team-to-the-improved-organization-permissions-early-access-program + - /articles/converting-your-previous-owners-team-to-the-improved-organization-permissions - /articles/converting-an-owners-team-to-improved-organization-permissions - /github/setting-up-and-managing-organizations-and-teams/converting-an-owners-team-to-improved-organization-permissions versions: @@ -13,19 +13,19 @@ versions: topics: - Organizations - Teams -shortTitle: Convertir el equipo de propietarios +shortTitle: Convert Owners team --- -Tienes algunas opciones para convertir tu equipo de Propietarios heredado: +You have a few options to convert your legacy Owners team: -- Coloca un nuevo nombre al equipo que denote que los miembros tienen un estado especial en la organización. -- Elimina el equipo luego de asegurarte de que todos los miembros han sido agregados a los equipos que garantizan las acciones necesarias a los repositorios de la organización. +- Give the team a new name that denotes the members have a special status in the organization. +- Delete the team after ensuring all members have been added to teams that grant necessary access to the organization's repositories. -## Proporcionar al equipo de Propietarios un nuevo nombre +## Give the Owners team a new name {% tip %} - **Nota:** Dado que "admin" es un término para los miembros de la organización con [acceso específico a determinados repositorios](/articles/repository-permission-levels-for-an-organization) en la organización, te recomendamos evitar ese término en cualquier nombre de equipo sobre el que puedas decidir. + **Note:** Because "admin" is a term for organization members with specific [access to certain repositories](/articles/repository-permission-levels-for-an-organization) in the organization, we recommend you avoid that term in any team name you decide on. {% endtip %} @@ -33,17 +33,19 @@ Tienes algunas opciones para convertir tu equipo de Propietarios heredado: {% data reusables.user_settings.access_org %} {% data reusables.organizations.owners-team %} {% data reusables.organizations.convert-owners-team-confirm %} -5. En el campo de nombre del equipo, escoge un nuevo nombre para el equipo Propietarios. Por ejemplo: - - Si muy pocos miembros de tu organización fuesen miembros del equipo Propietarios, puedes designarlo como equipo "Central". - - Si todos los miembros de tu organización fuesen miembros del equipo Propietarios de manera que puedan [@mencionar equipos](/articles/basic-writing-and-formatting-syntax/#mentioning-people-and-teams), puedes designar al equipo como "Empleados". ![El campo de nombre del equipo, con el equipo Propietarios con el nuevo nombre Central](/assets/images/help/teams/owners-team-new-name.png) -6. Debajo de la descripción del equipo, haz clic en **Save and continue** (Guardar y continuar). ![El botón para guardar y continuar](/assets/images/help/teams/owners-team-save-and-continue.png) -7. Opcionalmente, [puedes hacer que el equipo sea *público*](/articles/changing-team-visibility). +5. In the team name field, choose a new name for the Owners team. For example: + - If very few members of your organization were members of the Owners team, you might name the team "Core". + - If all members of your organization were members of the Owners team so that they could [@mention teams](/articles/basic-writing-and-formatting-syntax/#mentioning-people-and-teams), you might name the team "Employees". + ![The team name field, with the Owners team renamed to Core](/assets/images/help/teams/owners-team-new-name.png) +6. Under the team description, click **Save and continue**. +![The Save and continue button](/assets/images/help/teams/owners-team-save-and-continue.png) +7. Optionally, [make the team *public*](/articles/changing-team-visibility). -## Eliminar el equipo de Propietarios heredado +## Delete the legacy Owners team {% warning %} -**Advertencia**: Si hay miembros del equipo de Propietarios heredado que no son miembros de otros equipos, la eliminación del equipo eliminará a esos miembros de la organización. Antes de eliminar el equipo, asegúrate de que los miembros ya sean miembros directos de la organización, o que tengan acceso de colaborador a los repositorios necesarios. +**Warning:** If there are members of your Owners team who are not members of other teams, deleting the team will remove those members from the organization. Before deleting the team, ensure members are already direct members of the organization, or have collaborator access to necessary repositories. {% endwarning %} @@ -51,4 +53,5 @@ Tienes algunas opciones para convertir tu equipo de Propietarios heredado: {% data reusables.user_settings.access_org %} {% data reusables.organizations.owners-team %} {% data reusables.organizations.convert-owners-team-confirm %} -5. En la parte inferior de la página, revisa la advertencia y haz clic en **Delete the Owners team** (Eliminar el equipo de Propietarios). ![Enlace para eliminar el equipo de Propietarios](/assets/images/help/teams/owners-team-delete.png) +5. At the bottom of the page, review the warning and click **Delete the Owners team**. + ![Link for deleting the Owners team](/assets/images/help/teams/owners-team-delete.png) diff --git a/translations/es-ES/content/organizations/migrating-to-improved-organization-permissions/index.md b/translations/es-ES/content/organizations/migrating-to-improved-organization-permissions/index.md index 2ae57d78dd..510cc6c4d7 100644 --- a/translations/es-ES/content/organizations/migrating-to-improved-organization-permissions/index.md +++ b/translations/es-ES/content/organizations/migrating-to-improved-organization-permissions/index.md @@ -1,10 +1,10 @@ --- -title: Migrar a permisos de organización mejorados -intro: 'Si tu organización fue creada después de septiembre de 2015, tu organización incluye los permisos de la organización mejorados por defecto. Es posible que las organizaciones creadas antes de septiembre de 2015 necesiten migrar a los antiguos equipos de administradores para el modelo mejorado de permisos de la organización.' +title: Migrating to improved organization permissions +intro: 'If your organization was created after September 2015, your organization includes improved organization permissions by default. Organizations created before September 2015 may need to migrate older Owners and Admin teams to the improved organization permissions model.' redirect_from: - - /articles/improved-organization-permissions/ - - /articles/github-direct-organization-membership-pre-release-guide/ - - /articles/migrating-your-organization-to-improved-organization-permissions/ + - /articles/improved-organization-permissions + - /articles/github-direct-organization-membership-pre-release-guide + - /articles/migrating-your-organization-to-improved-organization-permissions - /articles/migrating-to-improved-organization-permissions - /github/setting-up-and-managing-organizations-and-teams/migrating-to-improved-organization-permissions versions: @@ -18,6 +18,6 @@ children: - /converting-an-owners-team-to-improved-organization-permissions - /converting-an-admin-team-to-improved-organization-permissions - /migrating-admin-teams-to-improved-organization-permissions -shortTitle: Migrarse a los permisos mejorados +shortTitle: Migrate to improved permissions --- diff --git a/translations/es-ES/content/organizations/migrating-to-improved-organization-permissions/migrating-admin-teams-to-improved-organization-permissions.md b/translations/es-ES/content/organizations/migrating-to-improved-organization-permissions/migrating-admin-teams-to-improved-organization-permissions.md index b25dc825a5..e5965cfefd 100644 --- a/translations/es-ES/content/organizations/migrating-to-improved-organization-permissions/migrating-admin-teams-to-improved-organization-permissions.md +++ b/translations/es-ES/content/organizations/migrating-to-improved-organization-permissions/migrating-admin-teams-to-improved-organization-permissions.md @@ -2,7 +2,7 @@ title: Migrating admin teams to improved organization permissions intro: 'If your organization was created after September 2015, your organization has improved organization permissions by default. Organizations created before September 2015 may need to migrate older Owners and Admin teams to the improved permissions model. Members of legacy admin teams automatically retain the ability to create repositories until those teams are migrated to the improved organization permissions model.' redirect_from: - - /articles/migrating-your-previous-admin-teams-to-the-improved-organization-permissions/ + - /articles/migrating-your-previous-admin-teams-to-the-improved-organization-permissions - /articles/migrating-admin-teams-to-improved-organization-permissions - /github/setting-up-and-managing-organizations-and-teams/migrating-admin-teams-to-improved-organization-permissions versions: diff --git a/translations/es-ES/content/organizations/organizing-members-into-teams/adding-organization-members-to-a-team.md b/translations/es-ES/content/organizations/organizing-members-into-teams/adding-organization-members-to-a-team.md index 9389c6d0bf..a6dac889cb 100644 --- a/translations/es-ES/content/organizations/organizing-members-into-teams/adding-organization-members-to-a-team.md +++ b/translations/es-ES/content/organizations/organizing-members-into-teams/adding-organization-members-to-a-team.md @@ -1,8 +1,8 @@ --- -title: Agregar miembros de la organización a un equipo -intro: 'Las personas con permisos de propietario o mantenedor del equipo pueden agregar miembros de la organización a los equipos. Las personas con permisos de propietario también pueden {% ifversion fpt or ghec %} invitar a personas que no son miembros {% else %}a incorporar a personas que no son miembros a{% endif %} un equipo y la organización.' +title: Adding organization members to a team +intro: 'People with owner or team maintainer permissions can add organization members to teams. People with owner permissions can also {% ifversion fpt or ghec %}invite non-members to join{% else %}add non-members to{% endif %} a team and the organization.' redirect_from: - - /articles/adding-organization-members-to-a-team-early-access-program/ + - /articles/adding-organization-members-to-a-team-early-access-program - /articles/adding-organization-members-to-a-team - /github/setting-up-and-managing-organizations-and-teams/adding-organization-members-to-a-team versions: @@ -13,7 +13,7 @@ versions: topics: - Organizations - Teams -shortTitle: Agregar miembros a un equipo +shortTitle: Add members to a team --- {% data reusables.organizations.team-synchronization %} @@ -22,13 +22,14 @@ shortTitle: Agregar miembros a un equipo {% data reusables.user_settings.access_org %} {% data reusables.organizations.specific_team %} {% data reusables.organizations.team_members_tab %} -6. Encima de la lista de los miembros del equipo, haz clic en **Add a member** (Agregar un miembro). ![Botón Add member (Agregar miembro)](/assets/images/help/teams/add-member-button.png) +6. Above the list of team members, click **Add a member**. +![Add member button](/assets/images/help/teams/add-member-button.png) {% data reusables.organizations.invite_to_team %} {% data reusables.organizations.review-team-repository-access %} {% ifversion fpt or ghec %}{% data reusables.organizations.cancel_org_invite %}{% endif %} -## Leer más +## Further reading -- [Acerca de los equipos](/articles/about-teams)" -- "[Administrar el acceso del equipo al repositorio de una organización](/articles/managing-team-access-to-an-organization-repository)" +- "[About teams](/articles/about-teams)" +- "[Managing team access to an organization repository](/articles/managing-team-access-to-an-organization-repository)" diff --git a/translations/es-ES/content/organizations/organizing-members-into-teams/assigning-the-team-maintainer-role-to-a-team-member.md b/translations/es-ES/content/organizations/organizing-members-into-teams/assigning-the-team-maintainer-role-to-a-team-member.md index b49f48c60b..457c1d5b7f 100644 --- a/translations/es-ES/content/organizations/organizing-members-into-teams/assigning-the-team-maintainer-role-to-a-team-member.md +++ b/translations/es-ES/content/organizations/organizing-members-into-teams/assigning-the-team-maintainer-role-to-a-team-member.md @@ -1,8 +1,8 @@ --- title: Assigning the team maintainer role to a team member -intro: You can give a team member the ability to manage team membership and settings by assigning the team maintainer role. +intro: 'You can give a team member the ability to manage team membership and settings by assigning the team maintainer role.' redirect_from: - - /articles/giving-team-maintainer-permissions-to-an-organization-member-early-access-program/ + - /articles/giving-team-maintainer-permissions-to-an-organization-member-early-access-program - /articles/giving-team-maintainer-permissions-to-an-organization-member - /github/setting-up-and-managing-organizations-and-teams/giving-team-maintainer-permissions-to-an-organization-member - /organizations/managing-peoples-access-to-your-organization-with-roles/giving-team-maintainer-permissions-to-an-organization-member @@ -22,21 +22,21 @@ permissions: Organization owners can promote team members to team maintainers. People with the team maintainer role can manage team membership and settings. -- [Cambiar el nombre y la descripción del equipo](/articles/renaming-a-team) -- [Cambiar la visibilidad del equipo](/articles/changing-team-visibility) -- [Solicitar agregar un equipo hijo](/articles/requesting-to-add-a-child-team) -- [Solicitar agregar o cambiar un equipo padre](/articles/requesting-to-add-or-change-a-parent-team) -- [Configurar la imagen de perfil del equipo](/articles/setting-your-team-s-profile-picture) -- [Editar debates de equipo](/articles/managing-disruptive-comments/#editing-a-comment) -- [Eliminar debates de equipo](/articles/managing-disruptive-comments/#deleting-a-comment) -- [Agregar a miembros de la organización al equipo](/articles/adding-organization-members-to-a-team) -- [Eliminar a miembros de la organización del equipo](/articles/removing-organization-members-from-a-team) -- Eliminar el acceso del equipo a los repositorios {% ifversion fpt or ghes or ghae or ghec %} -- [Administrar una tarea de revisión de código para el equipo](/organizations/organizing-members-into-teams/managing-code-review-assignment-for-your-team){% endif %}{% ifversion fpt or ghec %} -- [Administrar los recordatorios programados para las solicitudes de extracción](/organizations/organizing-members-into-teams/managing-scheduled-reminders-for-your-team){% endif %} +- [Change the team's name and description](/articles/renaming-a-team) +- [Change the team's visibility](/articles/changing-team-visibility) +- [Request to add a child team](/articles/requesting-to-add-a-child-team) +- [Request to add or change a parent team](/articles/requesting-to-add-or-change-a-parent-team) +- [Set the team profile picture](/articles/setting-your-team-s-profile-picture) +- [Edit team discussions](/articles/managing-disruptive-comments/#editing-a-comment) +- [Delete team discussions](/articles/managing-disruptive-comments/#deleting-a-comment) +- [Add organization members to the team](/articles/adding-organization-members-to-a-team) +- [Remove organization members from the team](/articles/removing-organization-members-from-a-team) +- Remove the team's access to repositories{% ifversion fpt or ghes or ghae or ghec %} +- [Manage code review assignment for the team](/organizations/organizing-members-into-teams/managing-code-review-assignment-for-your-team){% endif %}{% ifversion fpt or ghec %} +- [Manage scheduled reminders for pull requests](/organizations/organizing-members-into-teams/managing-scheduled-reminders-for-your-team){% endif %} -## Promover un miembro de la organización a mantenedor del equipo +## Promoting an organization member to team maintainer Before you can promote an organization member to team maintainer, the person must already be a member of the team. @@ -44,6 +44,9 @@ Before you can promote an organization member to team maintainer, the person mus {% data reusables.user_settings.access_org %} {% data reusables.organizations.specific_team %} {% data reusables.organizations.team_members_tab %} -4. Selecciona la persona o las personas que desees promover a mantenedor del equipo. ![Casilla junto al miembro de la organización](/assets/images/help/teams/team-member-check-box.png) -5. Por encima de la lista de miembros del equipo, utiliza el menú desplegable y haz clic en **Change role...** (Cambiar rol). ![Menú desplegable con opción para cambiar el rol](/assets/images/help/teams/bulk-edit-drop-down.png) -6. Selecciona un rol nuevo y haz clic en **Change role** (Cambiar rol). ![Botones Radio para los roles de Mantenedor o Miembro](/assets/images/help/teams/team-role-modal.png) +4. Select the person or people you'd like to promote to team maintainer. +![Check box next to organization member](/assets/images/help/teams/team-member-check-box.png) +5. Above the list of team members, use the drop-down menu and click **Change role...**. +![Drop-down menu with option to change role](/assets/images/help/teams/bulk-edit-drop-down.png) +6. Select a new role and click **Change role**. +![Radio buttons for Maintainer or Member roles](/assets/images/help/teams/team-role-modal.png) diff --git a/translations/es-ES/content/organizations/organizing-members-into-teams/creating-a-team.md b/translations/es-ES/content/organizations/organizing-members-into-teams/creating-a-team.md index 9224f9ceec..7422a82371 100644 --- a/translations/es-ES/content/organizations/organizing-members-into-teams/creating-a-team.md +++ b/translations/es-ES/content/organizations/organizing-members-into-teams/creating-a-team.md @@ -2,7 +2,7 @@ title: Creating a team intro: You can create independent or nested teams to manage repository permissions and mentions for groups of people. redirect_from: - - /articles/creating-a-team-early-access-program/ + - /articles/creating-a-team-early-access-program - /articles/creating-a-team - /github/setting-up-and-managing-organizations-and-teams/creating-a-team versions: diff --git a/translations/es-ES/content/organizations/organizing-members-into-teams/index.md b/translations/es-ES/content/organizations/organizing-members-into-teams/index.md index e3c495fc00..ebe04edd68 100644 --- a/translations/es-ES/content/organizations/organizing-members-into-teams/index.md +++ b/translations/es-ES/content/organizations/organizing-members-into-teams/index.md @@ -2,14 +2,14 @@ title: Organizing members into teams intro: You can group organization members into teams that reflect your company or group's structure with cascading access permissions and mentions. redirect_from: - - /articles/setting-up-teams-improved-organization-permissions/ - - /articles/setting-up-teams-for-accessing-organization-repositories/ - - /articles/creating-teams/ - - /articles/adding-people-to-teams-in-an-organization/ - - /articles/removing-a-member-from-a-team-in-your-organization/ - - /articles/setting-up-teams/ - - /articles/maintaining-teams-improved-organization-permissions/ - - /articles/maintaining-teams/ + - /articles/setting-up-teams-improved-organization-permissions + - /articles/setting-up-teams-for-accessing-organization-repositories + - /articles/creating-teams + - /articles/adding-people-to-teams-in-an-organization + - /articles/removing-a-member-from-a-team-in-your-organization + - /articles/setting-up-teams + - /articles/maintaining-teams-improved-organization-permissions + - /articles/maintaining-teams - /articles/organizing-members-into-teams - /github/setting-up-and-managing-organizations-and-teams/organizing-members-into-teams versions: diff --git a/translations/es-ES/content/organizations/organizing-members-into-teams/moving-a-team-in-your-organizations-hierarchy.md b/translations/es-ES/content/organizations/organizing-members-into-teams/moving-a-team-in-your-organizations-hierarchy.md index 6a41b6bf0c..6386e39cc6 100644 --- a/translations/es-ES/content/organizations/organizing-members-into-teams/moving-a-team-in-your-organizations-hierarchy.md +++ b/translations/es-ES/content/organizations/organizing-members-into-teams/moving-a-team-in-your-organizations-hierarchy.md @@ -1,8 +1,8 @@ --- -title: Mover un equipo en la jerarquía de tu organización -intro: 'Los mantenedores del equipo y los propietarios de la organización pueden anidar un equipo bajo un equipo padre, o cambiar o eliminar un equipo padre de un equipo anidado.' +title: Moving a team in your organization’s hierarchy +intro: 'Team maintainers and organization owners can nest a team under a parent team, or change or remove a nested team''s parent.' redirect_from: - - /articles/changing-a-team-s-parent/ + - /articles/changing-a-team-s-parent - /articles/moving-a-team-in-your-organization-s-hierarchy - /articles/moving-a-team-in-your-organizations-hierarchy - /github/setting-up-and-managing-organizations-and-teams/moving-a-team-in-your-organizations-hierarchy @@ -14,31 +14,34 @@ versions: topics: - Organizations - Teams -shortTitle: Mover un equipo +shortTitle: Move a team --- -Los propietarios de la organización pueden cambiar el padre de cualquier equipo. Los mantenedores del equipo pueden cambiar el equipo padre de un equipo si son mantenedores tanto en el equipo hijo como en el equipo padre. Los mantenedores del equipo sin permisos de mantenedor en el equipo hijo puede solicitar agregar un equipo padre o hijo. Para obtener más información, consulta "[Solicitar agregar o cambiar un equipo padre](/articles/requesting-to-add-or-change-a-parent-team)" y "[Solicitar agregar un equipo hijo](/articles/requesting-to-add-a-child-team)." +Organization owners can change the parent of any team. Team maintainers can change a team's parent if they are maintainers in both the child team and the parent team. Team maintainers without maintainer permissions in the child team can request to add a parent or child team. For more information, see "[Requesting to add or change a parent team](/articles/requesting-to-add-or-change-a-parent-team)" and "[Requesting to add a child team](/articles/requesting-to-add-a-child-team)." {% data reusables.organizations.child-team-inherits-permissions %} {% tip %} **Tips:** -- No puedes cambiar el equipo padre de un equipo a un equipo secreto. Para obtener más información, consulta "[Acerca de los equipos](/articles/about-teams)". -- No puedes anidar un equipo padre debajo de uno de sus equipos hijos. +- You cannot change a team's parent to a secret team. For more information, see "[About teams](/articles/about-teams)." +- You cannot nest a parent team beneath one of its child teams. {% endtip %} {% data reusables.profile.access_org %} {% data reusables.user_settings.access_org %} {% data reusables.organizations.teams %} -4. En la lista de equipos, haz clic en el nombre del equipo cuyo padre deseas cambiar. ![Lista de los equipos de la organización](/assets/images/help/teams/click-team-name.png) +4. In the list of teams, click the name of the team whose parent you'd like to change. + ![List of the organization's teams](/assets/images/help/teams/click-team-name.png) {% data reusables.organizations.team_settings %} -6. Utiliza el menú desplegable para elegir un equipo padre, o para eliminar un equipo padre existente, selecciona **Clear selected value (Borrar el valor seleccionado)**. ![Menú desplegable que enumera los equipos de la organización](/assets/images/help/teams/choose-parent-team.png) -7. Da clic en **Actualizar**. +6. Use the drop-down menu to choose a parent team, or to remove an existing parent, select **Clear selected value**. + ![Drop-down menu listing the organization's teams](/assets/images/help/teams/choose-parent-team.png) +7. Click **Update**. {% data reusables.repositories.changed-repository-access-permissions %} -9. Haz clic en **Confirm new parent team (Confirmar nuevo equipo padre)**. ![Casilla modal para información acerca de los cambios en los permisos de acceso del repositorio](/assets/images/help/teams/confirm-new-parent-team.png) +9. Click **Confirm new parent team**. + ![Modal box with information about the changes in repository access permissions](/assets/images/help/teams/confirm-new-parent-team.png) -## Leer más +## Further reading -- [Acerca de los equipos](/articles/about-teams)" +- "[About teams](/articles/about-teams)" diff --git a/translations/es-ES/content/organizations/organizing-members-into-teams/removing-organization-members-from-a-team.md b/translations/es-ES/content/organizations/organizing-members-into-teams/removing-organization-members-from-a-team.md index f26282c7f8..aba9635cbe 100644 --- a/translations/es-ES/content/organizations/organizing-members-into-teams/removing-organization-members-from-a-team.md +++ b/translations/es-ES/content/organizations/organizing-members-into-teams/removing-organization-members-from-a-team.md @@ -1,8 +1,8 @@ --- -title: Eliminar de un equipo a miembros de la organización -intro: 'Las personas con permisos de *propietario* o *mantenedor del equipo* pueden eliminar de un equipo a miembros del equipo. Puede que se deba hacer esto si una persona no necesita más el acceso a un repositorio que otorga el equipo, o si una persona no se dedica más a los proyectos de un equipo.' +title: Removing organization members from a team +intro: 'People with *owner* or *team maintainer* permissions can remove team members from a team. This may be necessary if a person no longer needs access to a repository the team grants, or if a person is no longer focused on a team''s projects.' redirect_from: - - /articles/removing-organization-members-from-a-team-early-access-program/ + - /articles/removing-organization-members-from-a-team-early-access-program - /articles/removing-organization-members-from-a-team - /github/setting-up-and-managing-organizations-and-teams/removing-organization-members-from-a-team versions: @@ -13,13 +13,15 @@ versions: topics: - Organizations - Teams -shortTitle: Eliminar a los miembros +shortTitle: Remove members --- -{% data reusables.repositories.deleted_forks_from_private_repositories_warning %} +{% data reusables.repositories.deleted_forks_from_private_repositories_warning %} {% data reusables.profile.access_org %} {% data reusables.user_settings.access_org %} {% data reusables.organizations.specific_team %} -4. Selecciona la persona o las personas que quieres eliminar. ![Casilla junto al miembro de la organización](/assets/images/help/teams/team-member-check-box.png) -5. Arriba de la lista de miembros del equipo, utiliza el menú desplegable y haz clic en **Remove from team** (Eliminar del equipo). ![Menú desplegable con opción para cambiar el rol](/assets/images/help/teams/bulk-edit-drop-down.png) +4. Select the person or people you'd like to remove. + ![Check box next to organization member](/assets/images/help/teams/team-member-check-box.png) +5. Above the list of team members, use the drop-down menu and click **Remove from team**. + ![Drop-down menu with option to change role](/assets/images/help/teams/bulk-edit-drop-down.png) diff --git a/translations/es-ES/content/organizations/restricting-access-to-your-organizations-data/about-oauth-app-access-restrictions.md b/translations/es-ES/content/organizations/restricting-access-to-your-organizations-data/about-oauth-app-access-restrictions.md index 58dc5062de..9e952acc4d 100644 --- a/translations/es-ES/content/organizations/restricting-access-to-your-organizations-data/about-oauth-app-access-restrictions.md +++ b/translations/es-ES/content/organizations/restricting-access-to-your-organizations-data/about-oauth-app-access-restrictions.md @@ -1,8 +1,8 @@ --- -title: Acerca de las restricciones de acceso a App OAuth -intro: 'Las organizaciones pueden elegir qué {% data variables.product.prodname_oauth_apps %} tienen acceso a sus repositorios y otros recursos al activar las restricciones de acceso a {% data variables.product.prodname_oauth_app %}.' +title: About OAuth App access restrictions +intro: 'Organizations can choose which {% data variables.product.prodname_oauth_apps %} have access to their repositories and other resources by enabling {% data variables.product.prodname_oauth_app %} access restrictions.' redirect_from: - - /articles/about-third-party-application-restrictions/ + - /articles/about-third-party-application-restrictions - /articles/about-oauth-app-access-restrictions - /github/setting-up-and-managing-organizations-and-teams/about-oauth-app-access-restrictions versions: @@ -11,58 +11,58 @@ versions: topics: - Organizations - Teams -shortTitle: Acceso a las Apps de OAuth +shortTitle: OAuth App access --- -## Acerca de las restricciones de acceso a App OAuth +## About OAuth App access restrictions -Cuando las restricciones de acceso a {% data variables.product.prodname_oauth_app %} están activadas, los miembros de la organización no pueden autorizar el acceso de {% data variables.product.prodname_oauth_app %} a los recursos de la organización. Los miembros de la organización pueden solicitar la aprobación de los propietarios para las {% data variables.product.prodname_oauth_apps %} que quieran usar y los propietarios de la organización reciben una notificación de solicitudes pendientes. +When {% data variables.product.prodname_oauth_app %} access restrictions are enabled, organization members cannot authorize {% data variables.product.prodname_oauth_app %} access to organization resources. Organization members can request owner approval for {% data variables.product.prodname_oauth_apps %} they'd like to use, and organization owners receive a notification of pending requests. {% data reusables.organizations.oauth_app_restrictions_default %} {% tip %} -**Sugerencia**: Cuando una organización no ha configurado las restricciones de acceso a {% data variables.product.prodname_oauth_app %}, cualquier {% data variables.product.prodname_oauth_app %} autorizada por un miembro de la organización también puede acceder a los recursos privados de la organización. +**Tip**: When an organization has not set up {% data variables.product.prodname_oauth_app %} access restrictions, any {% data variables.product.prodname_oauth_app %} authorized by an organization member can also access the organization's private resources. {% endtip %} {% ifversion fpt %} -Para proteger los recursos de tu organización aún más, puedes mejorar a {% data variables.product.prodname_ghe_cloud %}, lo cual incluye características de seguridad como el inicio de sesión único de SAML. {% data reusables.enterprise.link-to-ghec-trial %} +To further protect your organization's resources, you can upgrade to {% data variables.product.prodname_ghe_cloud %}, which includes security features like SAML single sign-on. {% data reusables.enterprise.link-to-ghec-trial %} {% endif %} -## Configurar las restricciones de acceso a {% data variables.product.prodname_oauth_app %} +## Setting up {% data variables.product.prodname_oauth_app %} access restrictions -Cuando el propietario de una organización configura las restricciones de acceso a {% data variables.product.prodname_oauth_app %} por primera vez: +When an organization owner sets up {% data variables.product.prodname_oauth_app %} access restrictions for the first time: -- Las **Aplicaciones que son propiedad de la organización** automáticamente ganan acceso a los recursos de la organización. -- Las **{% data variables.product.prodname_oauth_apps %}s** inmediatamente pierden acceso a los recursos de la organización. -- Las **claves SSH creadas antes de febrero de 2014** inmediatamente pierden acceso a los recursos de la organización (esto incluye claves de implementación y usuarios). -- Las **Llaves SSH que creen las {% data variables.product.prodname_oauth_apps %} durante o después de febrero de 2014** perdieron acceso a los recursos de la organización inmediatamente. -- Las **entregas de gancho de los repositorios privados de una organización** ya no se enviarán a {% data variables.product.prodname_oauth_apps %} no aprobadas. -- El **acceso de la API** a los recursos privados de la organización no está disponible para las {% data variables.product.prodname_oauth_apps %} no aprobadas. Además, no hay acciones de creación, actualización ni eliminación privilegiadas en los recursos públicos de la organización. -- Los **enlaces creados por los usuarios y los enlaces creados antes de mayo de 2014** no se verán afectados. -- Las **bifurcaciones privadas de los repositorios que son propiedad de una organización** están sujetas a las restricciones de acceso de la organización. +- **Applications that are owned by the organization** are automatically given access to the organization's resources. +- **{% data variables.product.prodname_oauth_apps %}** immediately lose access to the organization's resources. +- **SSH keys created before February 2014** immediately lose access to the organization's resources (this includes user and deploy keys). +- **SSH keys created by {% data variables.product.prodname_oauth_apps %} during or after February 2014** immediately lose access to the organization's resources. +- **Hook deliveries from private organization repositories** will no longer be sent to unapproved {% data variables.product.prodname_oauth_apps %}. +- **API access** to private organization resources is not available for unapproved {% data variables.product.prodname_oauth_apps %}. In addition, there are no privileged create, update, or delete actions on public organization resources. +- **Hooks created by users and hooks created before May 2014** will not be affected. +- **Private forks of organization-owned repositories** are subject to the organization's access restrictions. -## Resolver las fallas de acceso a SSH +## Resolving SSH access failures -Cuando una clave SSH creada antes de febrero de 2014 pierde acceso a una organización con las restricciones de acceso a {% data variables.product.prodname_oauth_app %} activadas, los subsiguientes intentos de acceso a SSH fallarán. Los usuarios se encontrarán con un mensaje de error que los redirecciona a una URL donde pueden aprobar la clave o cargar una clave de confianza en su lugar. +When an SSH key created before February 2014 loses access to an organization with {% data variables.product.prodname_oauth_app %} access restrictions enabled, subsequent SSH access attempts will fail. Users will encounter an error message directing them to a URL where they can approve the key or upload a trusted key in its place. ## Webhooks -Cuando se le otorga acceso a la organización a una {% data variables.product.prodname_oauth_app %} una vez que las restricciones están activadas, cualquier webhook preexistente creado por esa {% data variables.product.prodname_oauth_app %} retomará el despacho. +When an {% data variables.product.prodname_oauth_app %} is granted access to the organization after restrictions are enabled, any pre-existing webhooks created by that {% data variables.product.prodname_oauth_app %} will resume dispatching. -Cuando una organización elimina el acceso de una {% data variables.product.prodname_oauth_app %} previamente aprobada, cualquier webhook preexistente creado por esa aplicación ya no será despachado (estos enlaces de desactivarán, pero no se eliminarán). +When an organization removes access from a previously-approved {% data variables.product.prodname_oauth_app %}, any pre-existing webhooks created by that application will no longer be dispatched (these hooks will be disabled, but not deleted). -## Volver a activar las restricciones de acceso +## Re-enabling access restrictions -Si una organización desactiva las restricciones de aplicación de acceso de {% data variables.product.prodname_oauth_app %}, y más tarde las vuelve a activar, automáticamente se le otorga acceso a los recursos de la organización a la {% data variables.product.prodname_oauth_app %} previamente aprobada . +If an organization disables {% data variables.product.prodname_oauth_app %} access application restrictions, and later re-enables them, previously approved {% data variables.product.prodname_oauth_app %} are automatically granted access to the organization's resources. -## Leer más +## Further reading -- "[Activar las restricciones de acceso de {% data variables.product.prodname_oauth_app %} para tu organización](/articles/enabling-oauth-app-access-restrictions-for-your-organization)" -- "[Aprobar las {% data variables.product.prodname_oauth_apps %} para tu organización ](/articles/approving-oauth-apps-for-your-organization)" -- "[Revisar las integraciones instaladas de tu organización](/articles/reviewing-your-organization-s-installed-integrations)" -- "[Denegar el acceso a una {% data variables.product.prodname_oauth_app %} anteriormente aprobada para tu organización](/articles/denying-access-to-a-previously-approved-oauth-app-for-your-organization)" -- "[Desactivar las restricciones de acceso de {% data variables.product.prodname_oauth_app %} para tu organización](/articles/disabling-oauth-app-access-restrictions-for-your-organization)" -- "[Solicitar la aprobación de una organización para las {% data variables.product.prodname_oauth_apps %}](/articles/requesting-organization-approval-for-oauth-apps)" -- "[Autorizar las {% data variables.product.prodname_oauth_apps %}](/github/authenticating-to-github/keeping-your-account-and-data-secure/authorizing-oauth-apps)" +- "[Enabling {% data variables.product.prodname_oauth_app %} access restrictions for your organization](/articles/enabling-oauth-app-access-restrictions-for-your-organization)" +- "[Approving {% data variables.product.prodname_oauth_apps %} for your organization](/articles/approving-oauth-apps-for-your-organization)" +- "[Reviewing your organization's installed integrations](/articles/reviewing-your-organization-s-installed-integrations)" +- "[Denying access to a previously approved {% data variables.product.prodname_oauth_app %} for your organization](/articles/denying-access-to-a-previously-approved-oauth-app-for-your-organization)" +- "[Disabling {% data variables.product.prodname_oauth_app %} access restrictions for your organization](/articles/disabling-oauth-app-access-restrictions-for-your-organization)" +- "[Requesting organization approval for {% data variables.product.prodname_oauth_apps %}](/articles/requesting-organization-approval-for-oauth-apps)" +- "[Authorizing {% data variables.product.prodname_oauth_apps %}](/github/authenticating-to-github/keeping-your-account-and-data-secure/authorizing-oauth-apps)" diff --git a/translations/es-ES/content/organizations/restricting-access-to-your-organizations-data/approving-oauth-apps-for-your-organization.md b/translations/es-ES/content/organizations/restricting-access-to-your-organizations-data/approving-oauth-apps-for-your-organization.md index 190c58aabc..c945c1acab 100644 --- a/translations/es-ES/content/organizations/restricting-access-to-your-organizations-data/approving-oauth-apps-for-your-organization.md +++ b/translations/es-ES/content/organizations/restricting-access-to-your-organizations-data/approving-oauth-apps-for-your-organization.md @@ -1,8 +1,8 @@ --- -title: Aprobar aplicaciones OAuth para tu organización -intro: 'Cuando un miembro de la organización solicita a {% data variables.product.prodname_oauth_app %} que acceda a los recursos de la organización, los propietarios de la organización pueden aprobar o rechazar la solicitud.' +title: Approving OAuth Apps for your organization +intro: 'When an organization member requests {% data variables.product.prodname_oauth_app %} access to organization resources, organization owners can approve or deny the request.' redirect_from: - - /articles/approving-third-party-applications-for-your-organization/ + - /articles/approving-third-party-applications-for-your-organization - /articles/approving-oauth-apps-for-your-organization - /github/setting-up-and-managing-organizations-and-teams/approving-oauth-apps-for-your-organization versions: @@ -11,17 +11,18 @@ versions: topics: - Organizations - Teams -shortTitle: Aprobar Apps de OAuth +shortTitle: Approve OAuth Apps --- - -Cuando las restricciones de acceso a {% data variables.product.prodname_oauth_app %} están habilitadas, los miembros de la organización deben [solicitar la aprobación](/articles/requesting-organization-approval-for-oauth-apps) de un propietario de la organización antes de que puedan autorizar una {% data variables.product.prodname_oauth_app %} que tiene acceso a los recursos de la organización. +When {% data variables.product.prodname_oauth_app %} access restrictions are enabled, organization members must [request approval](/articles/requesting-organization-approval-for-oauth-apps) from an organization owner before they can authorize an {% data variables.product.prodname_oauth_app %} that has access to the organization's resources. {% data reusables.profile.access_org %} {% data reusables.profile.org_settings %} {% data reusables.organizations.oauth_app_access %} -5. Junto a la aplicación que quieres aprobar, haz clic en **Review** (Revisar). ![Enlace de revisión de solicitud](/assets/images/help/settings/settings-third-party-approve-review.png) -6. Una vez que revises la información sobre la aplicación solicitada, haz clic en **Grant access** (Otorgar acceso). ![Botón para otorgar acceso](/assets/images/help/settings/settings-third-party-approve-grant.png) +5. Next to the application you'd like to approve, click **Review**. +![Review request link](/assets/images/help/settings/settings-third-party-approve-review.png) +6. After you review the information about the requested application, click **Grant access**. +![Grant access button](/assets/images/help/settings/settings-third-party-approve-grant.png) -## Leer más +## Further reading -- "[Acerca de las restricciones de acceso a {% data variables.product.prodname_oauth_app %}](/articles/about-oauth-app-access-restrictions)" +- "[About {% data variables.product.prodname_oauth_app %} access restrictions](/articles/about-oauth-app-access-restrictions)" diff --git a/translations/es-ES/content/organizations/restricting-access-to-your-organizations-data/denying-access-to-a-previously-approved-oauth-app-for-your-organization.md b/translations/es-ES/content/organizations/restricting-access-to-your-organizations-data/denying-access-to-a-previously-approved-oauth-app-for-your-organization.md index 77a70b4d2a..da3f557b72 100644 --- a/translations/es-ES/content/organizations/restricting-access-to-your-organizations-data/denying-access-to-a-previously-approved-oauth-app-for-your-organization.md +++ b/translations/es-ES/content/organizations/restricting-access-to-your-organizations-data/denying-access-to-a-previously-approved-oauth-app-for-your-organization.md @@ -1,8 +1,8 @@ --- -title: Denegar el acceso a una App OAuth anteriormente aprobada para tu organización -intro: 'Si una organización ya no requiere una {% data variables.product.prodname_oauth_app %} previamente autorizada, los propietarios pueden eliminar el acceso de la aplicación a los recursos de la organización.' +title: Denying access to a previously approved OAuth App for your organization +intro: 'If an organization no longer requires a previously authorized {% data variables.product.prodname_oauth_app %}, owners can remove the application''s access to the organization''s resources.' redirect_from: - - /articles/denying-access-to-a-previously-approved-application-for-your-organization/ + - /articles/denying-access-to-a-previously-approved-application-for-your-organization - /articles/denying-access-to-a-previously-approved-oauth-app-for-your-organization - /github/setting-up-and-managing-organizations-and-teams/denying-access-to-a-previously-approved-oauth-app-for-your-organization versions: @@ -11,11 +11,13 @@ versions: topics: - Organizations - Teams -shortTitle: Negar una App de OAuth +shortTitle: Deny OAuth App --- {% data reusables.profile.access_org %} {% data reusables.profile.org_settings %} {% data reusables.organizations.oauth_app_access %} -5. Junto a la aplicación que deseas inhabilitar, haz clic en {% octicon "pencil" aria-label="The edit icon" %}. ![Icono Editar](/assets/images/help/settings/settings-third-party-deny-edit.png) -6. Haz clic en **Denegar acceso**. ![Botón Denegar confirmación](/assets/images/help/settings/settings-third-party-deny-confirm.png) +5. Next to the application you'd like to disable, click {% octicon "pencil" aria-label="The edit icon" %}. + ![Edit icon](/assets/images/help/settings/settings-third-party-deny-edit.png) +6. Click **Deny access**. + ![Deny confirmation button](/assets/images/help/settings/settings-third-party-deny-confirm.png) diff --git a/translations/es-ES/content/organizations/restricting-access-to-your-organizations-data/disabling-oauth-app-access-restrictions-for-your-organization.md b/translations/es-ES/content/organizations/restricting-access-to-your-organizations-data/disabling-oauth-app-access-restrictions-for-your-organization.md index 16d3032abe..4931bc44cc 100644 --- a/translations/es-ES/content/organizations/restricting-access-to-your-organizations-data/disabling-oauth-app-access-restrictions-for-your-organization.md +++ b/translations/es-ES/content/organizations/restricting-access-to-your-organizations-data/disabling-oauth-app-access-restrictions-for-your-organization.md @@ -1,8 +1,8 @@ --- -title: Inhabilitar las restricciones de acceso de las App OAuth para tu organización -intro: 'Los propietarios de la organización pueden inhabilitar las restricciones de las {% data variables.product.prodname_oauth_apps %} que tienen acceso a los recursos de la organización.' +title: Disabling OAuth App access restrictions for your organization +intro: 'Organization owners can disable restrictions on the {% data variables.product.prodname_oauth_apps %} that have access to the organization''s resources.' redirect_from: - - /articles/disabling-third-party-application-restrictions-for-your-organization/ + - /articles/disabling-third-party-application-restrictions-for-your-organization - /articles/disabling-oauth-app-access-restrictions-for-your-organization - /github/setting-up-and-managing-organizations-and-teams/disabling-oauth-app-access-restrictions-for-your-organization versions: @@ -11,17 +11,19 @@ versions: topics: - Organizations - Teams -shortTitle: Inhabilitar las Apps de OAuth +shortTitle: Disable OAuth App --- {% danger %} -**Advertencia**: Cuando inhabilitas las restricciones de acceso de {% data variables.product.prodname_oauth_app %} para tu organización, cualquier miembro de la organización autorizará automáticamente el acceso de {% data variables.product.prodname_oauth_app %} a los recursos privados de la organización cuando aprueben una aplicación para el uso en los parámetros de su cuenta personal. +**Warning**: When you disable {% data variables.product.prodname_oauth_app %} access restrictions for your organization, any organization member will automatically authorize {% data variables.product.prodname_oauth_app %} access to the organization's private resources when they approve an application for use in their personal account settings. {% enddanger %} {% data reusables.profile.access_org %} {% data reusables.profile.org_settings %} {% data reusables.organizations.oauth_app_access %} -5. Haz clic en **Eliminar restricciones**. ![Botón Eliminar restricciones](/assets/images/help/settings/settings-third-party-remove-restrictions.png) -6. Revisa la información acerca de la inhabilitación de las restricciones de las aplicaciones de terceros y luego haz clic en **Sí, eliminar las restricciones de las aplicaciones**. ![Botón de eliminar confirmación](/assets/images/help/settings/settings-third-party-confirm-disable.png) +5. Click **Remove restrictions**. + ![Remove restrictions button](/assets/images/help/settings/settings-third-party-remove-restrictions.png) +6. After you review the information about disabling third-party application restrictions, click **Yes, remove application restrictions**. + ![Remove confirmation button](/assets/images/help/settings/settings-third-party-confirm-disable.png) diff --git a/translations/es-ES/content/organizations/restricting-access-to-your-organizations-data/enabling-oauth-app-access-restrictions-for-your-organization.md b/translations/es-ES/content/organizations/restricting-access-to-your-organizations-data/enabling-oauth-app-access-restrictions-for-your-organization.md index 4ae814f3b7..5ad4a078f8 100644 --- a/translations/es-ES/content/organizations/restricting-access-to-your-organizations-data/enabling-oauth-app-access-restrictions-for-your-organization.md +++ b/translations/es-ES/content/organizations/restricting-access-to-your-organizations-data/enabling-oauth-app-access-restrictions-for-your-organization.md @@ -1,8 +1,8 @@ --- -title: Habilitar las restricciones de acceso de las App OAuth para tu organización -intro: 'Los propietarios de la organización pueden habilitar las restricciones de acceso a {% data variables.product.prodname_oauth_app %} para prevenir que las aplicaciones no confiables accedan a los recursos organizacionales mientras permiten que los miembros de dicha organización utilicen las {% data variables.product.prodname_oauth_apps %} para sus cuentas personales.' +title: Enabling OAuth App access restrictions for your organization +intro: 'Organization owners can enable {% data variables.product.prodname_oauth_app %} access restrictions to prevent untrusted apps from accessing the organization''s resources while allowing organization members to use {% data variables.product.prodname_oauth_apps %} for their personal accounts.' redirect_from: - - /articles/enabling-third-party-application-restrictions-for-your-organization/ + - /articles/enabling-third-party-application-restrictions-for-your-organization - /articles/enabling-oauth-app-access-restrictions-for-your-organization - /github/setting-up-and-managing-organizations-and-teams/enabling-oauth-app-access-restrictions-for-your-organization versions: @@ -11,22 +11,24 @@ versions: topics: - Organizations - Teams -shortTitle: Habilitar las Apps de OAuth +shortTitle: Enable OAuth App --- {% data reusables.organizations.oauth_app_restrictions_default %} {% warning %} -**Advertencias**: -- Habilitar las restricciones de acceso de las {% data variables.product.prodname_oauth_app %} revocará los accesos de la organización a todas las {% data variables.product.prodname_oauth_apps %} y claves SSH que hayan sido previamente autorizadas. Para obtener más información, consulta "[Acerca de las restricciones de acceso a {% data variables.product.prodname_oauth_app %}](/articles/about-oauth-app-access-restrictions)". -- Una vez que hayas configurado las restricciones de acceso de {% data variables.product.prodname_oauth_app %}, asegúrate de autorizar nuevamente toda {% data variables.product.prodname_oauth_app %} que requiera acceso a los datos privados de la organización de manera continua. Todos los miembros de la organización deberán crear nuevas claves SSH y la organización deberá crear nuevas llaves de implementación, según sea necesario. -- Cuando se habilitan las restricciones de acceso de {% data variables.product.prodname_oauth_app %}, las aplicaciones pueden usar un token de OAuth para acceder a información acerca de transacciones en {% data variables.product.prodname_marketplace %}. +**Warnings**: +- Enabling {% data variables.product.prodname_oauth_app %} access restrictions will revoke organization access for all previously authorized {% data variables.product.prodname_oauth_apps %} and SSH keys. For more information, see "[About {% data variables.product.prodname_oauth_app %} access restrictions](/articles/about-oauth-app-access-restrictions)." +- Once you've set up {% data variables.product.prodname_oauth_app %} access restrictions, make sure to re-authorize any {% data variables.product.prodname_oauth_app %} that require access to the organization's private data on an ongoing basis. All organization members will need to create new SSH keys, and the organization will need to create new deploy keys as needed. +- When {% data variables.product.prodname_oauth_app %} access restrictions are enabled, applications can use an OAuth token to access information about {% data variables.product.prodname_marketplace %} transactions. {% endwarning %} {% data reusables.profile.access_org %} {% data reusables.profile.org_settings %} {% data reusables.organizations.oauth_app_access %} -5. En "Política de acceso de aplicaciones de terceros", haz clic en **Configurar restricciones de acceso de aplicaciones**. ![Botón Configurar restricciones](/assets/images/help/settings/settings-third-party-set-up-restrictions.png) -6. Luego de revisar la información acerca de las restricciones de acceso de las aplicaciones de terceros, haz clic en **Restringir el acceso de aplicaciones de terceros**. ![Botón Confirmar restricciones](/assets/images/help/settings/settings-third-party-restrict-confirm.png) +5. Under "Third-party application access policy," click **Setup application access restrictions**. + ![Set up restrictions button](/assets/images/help/settings/settings-third-party-set-up-restrictions.png) +6. After you review the information about third-party access restrictions, click **Restrict third-party application access**. + ![Restriction confirmation button](/assets/images/help/settings/settings-third-party-restrict-confirm.png) diff --git a/translations/es-ES/content/packages/learn-github-packages/about-permissions-for-github-packages.md b/translations/es-ES/content/packages/learn-github-packages/about-permissions-for-github-packages.md index e746043111..761cda09ec 100644 --- a/translations/es-ES/content/packages/learn-github-packages/about-permissions-for-github-packages.md +++ b/translations/es-ES/content/packages/learn-github-packages/about-permissions-for-github-packages.md @@ -47,7 +47,7 @@ To use or manage a package hosted by a package registry, you must use a token wi For example: - To download and install packages from a repository, your token must have the `read:packages` scope, and your user account must have read permission. -- {% ifversion fpt or ghes > 3.0 or ghec %}To delete a package on {% data variables.product.product_name %}, your token must at least have the `delete:packages` and `read:packages` scope. The `repo` scope is also required for repo-scoped packages.{% elsif ghes < 3.1 %}To delete a specified version of a private package on {% data variables.product.product_name %}, your token must have the `delete:packages` and `repo` scope. Public packages cannot be deleted.{% elsif ghae %}To delete a specified version of a package on {% data variables.product.product_name %}, your token must have the `delete:packages` and `repo` scope.{% endif %} For more information, see "{% ifversion fpt or ghes > 3.0 or ghec %}[Deleting and restoring a package](/packages/learn-github-packages/deleting-and-restoring-a-package){% elsif ghes < 3.1 or ghae %}[Deleting a package](/packages/learn-github-packages/deleting-a-package){% endif %}." +- {% ifversion fpt or ghes > 3.0 or ghec %}To delete a package on {% data variables.product.product_name %}, your token must at least have the `delete:packages` and `read:packages` scope. The `repo` scope is also required for repo-scoped packages.{% elsif ghes < 3.1 %}To delete a specified version of a private package on {% data variables.product.product_name %}, your token must have the `delete:packages` and `repo` scope. Public packages cannot be deleted.{% elsif ghae %}To delete a specified version of a package on {% data variables.product.product_name %}, your token must have the `delete:packages` and `repo` scope.{% endif %} For more information, see "{% ifversion fpt or ghes > 3.0 or ghec or ghae %}[Deleting and restoring a package](/packages/learn-github-packages/deleting-and-restoring-a-package){% elsif ghes < 3.1 %}[Deleting a package](/packages/learn-github-packages/deleting-a-package){% endif %}." | Scope | Description | Required permission | | --- | --- | --- | diff --git a/translations/es-ES/content/packages/learn-github-packages/deleting-a-package.md b/translations/es-ES/content/packages/learn-github-packages/deleting-a-package.md index 76b036acfb..b1e3ac1230 100644 --- a/translations/es-ES/content/packages/learn-github-packages/deleting-a-package.md +++ b/translations/es-ES/content/packages/learn-github-packages/deleting-a-package.md @@ -1,35 +1,38 @@ --- -title: Eliminar un paquete -intro: 'Puedes borrar una versión de un paquete {% ifversion not ghae %}privado{% endif %} público que utilice GraphQL o en {% data variables.product.product_name %}.' +title: Deleting a package +intro: 'You can delete a version of a {% ifversion not ghae %}private{% endif %} package using GraphQL or on {% data variables.product.product_name %}.' product: '{% data reusables.gated-features.packages %}' versions: ghes: '>=2.22 <3.1' - ghae: '*' --- {% data reusables.package_registry.packages-ghes-release-stage %} {% data reusables.package_registry.packages-ghae-release-stage %} -{% ifversion not ghae %}En este momento, el {% data variables.product.prodname_registry %} en {% data variables.product.product_location %} no es compatible con el borrado de paquetes públicos.{% endif %} +{% ifversion not ghae %}At this time, {% data variables.product.prodname_registry %} on {% data variables.product.product_location %} does not support deleting public packages.{% endif %} -Solo puedes borrar una versión específica de un paquete {% ifversion not ghae %}privado {% endif %} en {% data variables.product.product_name %} o con la API de GraphQL. Para eliminar un paquete {% ifversion not ghae %}privado {% endif %}completo para que no aparezca en {% data variables.product.product_name %}, primero debes borrar todas las versiones de este. +You can only delete a specified version of a {% ifversion not ghae %}private {% endif %}package on {% data variables.product.product_name %} or with the GraphQL API. To remove an entire {% ifversion not ghae %}private {% endif %}package from appearing on {% data variables.product.product_name %}, you must delete every version of the package first. -## Borrar una versión de un paquete {% ifversion not ghae %}privado {% endif %} en {% data variables.product.product_name %} +## Deleting a version of a {% ifversion not ghae %}private {% endif %}package on {% data variables.product.product_name %} -Para borrar una versión de un paquete {% ifversion not ghae %}privado {% endif %}, debes tener permisos administrativos en el repositorio. +To delete a {% ifversion not ghae %}private {% endif %}package version, you must have admin permissions in the repository. {% data reusables.repositories.navigate-to-repo %} {% data reusables.package_registry.packages-from-code-tab %} -3. Haz clic en el nombre del paquete que deseas eliminar. ![Nombre del paquete](/assets/images/help/package-registry/select-pkg-cloud.png) -4. A la derecha, usa el menú desplegable **Edit package (Editar paquete)** y selecciona "Manage versions" (Administrar versiones). ![Nombre del paquete](/assets/images/help/package-registry/manage-versions.png) -5. A la derecha de la versión que deseas eliminar, haz clic en **Delete (Eliminar)**. ![Botón para eliminar paquete](/assets/images/help/package-registry/delete-package-button.png) -6. Para confirmar la eliminación, escribe el nombre del paquete y haz clic en **I understand the consequences, delete this version (Comprendo las consecuencias, eliminar esta versión)**. ![Botón para confirmar la eliminación del paquete](/assets/images/help/package-registry/confirm-package-deletion.png) +3. Click the name of the package that you want to delete. + ![Package name](/assets/images/help/package-registry/select-pkg-cloud.png) +4. On the right, use the **Edit package** drop-down and select "Manage versions". + ![Package name](/assets/images/help/package-registry/manage-versions.png) +5. To the right of the version you want to delete, click **Delete**. + ![Delete package button](/assets/images/help/package-registry/delete-package-button.png) +6. To confirm deletion, type the package name and click **I understand the consequences, delete this version**. + ![Confirm package deletion button](/assets/images/help/package-registry/confirm-package-deletion.png) -## Borrar una versión de un paquete {% ifversion not ghae %}privado {% endif %}con GraphQL +## Deleting a version of a {% ifversion not ghae %}private {% endif %}package with GraphQL -Usa la mutación `deletePackageVersion` en la API de GraphQL. Debes usar un token con ámbitos `read:packages`, `delete:packages` y `repo`. Para obtener más información acerca de los tokens, consulta "[Acerca de {% data variables.product.prodname_registry %}](/packages/publishing-and-managing-packages/about-github-packages#authenticating-to-github-packages)". +Use the `deletePackageVersion` mutation in the GraphQL API. You must use a token with the `read:packages`, `delete:packages`, and `repo` scopes. For more information about tokens, see "[About {% data variables.product.prodname_registry %}](/packages/publishing-and-managing-packages/about-github-packages#authenticating-to-github-packages)." -Aquí hay un comando cURL de ejemplo para eliminar una versión de paquete con el ID de versión del paquete de `MDIyOlJlZ2lzdHJ5UGFja2FnZVZlcnNpb243MTExNg`, mediante un token de acceso personal. +Here is an example cURL command to delete a package version with the package version ID of `MDIyOlJlZ2lzdHJ5UGFja2FnZVZlcnNpb243MTExNg`, using a personal access token. ```shell curl -X POST \ @@ -39,8 +42,8 @@ curl -X POST \ HOSTNAME/graphql ``` -Para encontrar todos los paquetes {% ifversion not ghae %}privados {% endif %} que publicaste en el {% data variables.product.prodname_registry %} junto con las ID de versión de estos, puedes utilizar la conexión de `packages` a través del objeto `repository`. Necesitarás un token con los ámbitos `read:packages` y `repo`. Necesitarás un token con los ámbitos `read:packages` y `repo`. +To find all of the {% ifversion not ghae %}private {% endif %}packages you have published to {% data variables.product.prodname_registry %}, along with the version IDs for the packages, you can use the `packages` connection through the `repository` object. You will need a token with the `read:packages` and `repo` scopes. For more information, see the [`packages`](/graphql/reference/objects#repository) connection or the [`PackageOwner`](/graphql/reference/interfaces#packageowner) interface. -Para obtener más información acerca de la mutación `deletePackageVersion`, consulta "[`deletePackageVersion`](/graphql/reference/mutations#deletepackageversion)". +For more information about the `deletePackageVersion` mutation, see "[`deletePackageVersion`](/graphql/reference/mutations#deletepackageversion)." -No puedes eliminar un paquete completo, pero si eliminas todas las versiones de un paquete, dejará de aparecer en {% data variables.product.product_name %}. +You cannot delete an entire package, but if you delete every version of a package, the package will no longer show on {% data variables.product.product_name %}. diff --git a/translations/es-ES/content/packages/learn-github-packages/deleting-and-restoring-a-package.md b/translations/es-ES/content/packages/learn-github-packages/deleting-and-restoring-a-package.md index ddd7a0adcc..26d0725a9b 100644 --- a/translations/es-ES/content/packages/learn-github-packages/deleting-and-restoring-a-package.md +++ b/translations/es-ES/content/packages/learn-github-packages/deleting-and-restoring-a-package.md @@ -11,6 +11,7 @@ versions: fpt: '*' ghes: '>=3.1' ghec: '*' + ghae: '*' shortTitle: Delete & restore a package --- @@ -36,6 +37,7 @@ On {% data variables.product.prodname_dotcom %}, you can also restore an entire - You restore the package within 30 days of its deletion. - The same package namespace is still available and not used for a new package. +{% ifversion fpt or ghec or ghes %} ## Packages API support {% ifversion fpt or ghec %} @@ -44,7 +46,7 @@ You can use the REST API to manage your packages. For more information, see the {% endif %} -For packages that inherit their permissions and access from repositories, you can use GraphQL to delete a specific package version.{% ifversion fpt or ghec %} The {% data variables.product.prodname_registry %} GraphQL API does not support containers or Docker images that use the package namespace `https://ghcr.io/OWNER/PACKAGE-NAME`. For more information about GraphQL support, see "[Deleting a version of a repository-scoped package with GraphQL](#deleting-a-version-of-a-repository-scoped-package-with-graphql)." +For packages that inherit their permissions and access from repositories, you can use GraphQL to delete a specific package version.{% ifversion fpt or ghec %} The {% data variables.product.prodname_registry %} GraphQL API does not support containers or Docker images that use the package namespace `https://ghcr.io/OWNER/PACKAGE-NAME`.{% endif %} For more information about GraphQL support, see "[Deleting a version of a repository-scoped package with GraphQL](#deleting-a-version-of-a-repository-scoped-package-with-graphql)." {% endif %} @@ -63,7 +65,7 @@ Repository-scoped packages on {% data variables.product.prodname_registry %} inc {% ifversion fpt or ghec %} To delete a package that has granular permissions separate from a repository, such as container images stored at `https://ghcr.io/OWNER/PACKAGE-NAME`, you must have admin access to the package. - +For more information, see "[About permissions for {% data variables.product.prodname_registry %}](/packages/learn-github-packages/about-permissions-for-github-packages)." {% endif %} @@ -82,14 +84,14 @@ To delete a version of a repository-scoped package, you must have admin permissi 6. To confirm deletion, type the package name and click **I understand the consequences, delete this version**. ![Confirm package deletion button](/assets/images/help/package-registry/package-version-deletion-confirmation.png) +{% ifversion fpt or ghec or ghes %} ### Deleting a version of a repository-scoped package with GraphQL For packages that inherit their permissions and access from repositories, you can use the GraphQL to delete a specific package version. {% ifversion fpt or ghec %} -GraphQL is not supported for containers or Docker images at `ghcr.io`. +For containers or Docker images at `ghcr.io`, GraphQL is not supported but you can use the REST API. For more information, see the "[{% data variables.product.prodname_registry %} API](/rest/reference/packages)." {% endif %} - Use the `deletePackageVersion` mutation in the GraphQL API. You must use a token with the `read:packages`, `delete:packages`, and `repo` scopes. For more information about tokens, see "[About {% data variables.product.prodname_registry %}](/packages/publishing-and-managing-packages/about-github-packages#authenticating-to-github-packages)." @@ -109,6 +111,8 @@ For more information about the `deletePackageVersion` mutation, see "[`deletePac You cannot directly delete an entire package using GraphQL, but if you delete every version of a package, the package will no longer show on {% data variables.product.product_name %}. +{% endif %} + {% ifversion fpt or ghec %} ### Deleting a version of a user-scoped package on {% data variables.product.prodname_dotcom %} @@ -124,12 +128,12 @@ To review who can delete a package version, see "[Required permissions](#require 6. To confirm deletion, type the package name and click **I understand the consequences, delete this version**. ![Confirm package deletion button](/assets/images/help/package-registry/confirm-container-package-version-deletion.png) -### Deleting a version of an organization-scoped package on GitHub +### Deleting a version of an organization-scoped package on {% data variables.product.prodname_dotcom %} To delete a specific version of an organization-scoped package on {% data variables.product.prodname_dotcom %}, such as for a Docker image at `ghcr.io`, use these steps. To delete an entire package, see "[Deleting an entire organization-scoped package on {% data variables.product.prodname_dotcom %}](#deleting-an-entire-organization-scoped-package-on-github)." -To review who can delete a package version, see "[Required permissions](#required-permissions-to-delete-or-restore-a-package)." +To review who can delete a package version, see "[Required permissions to delete or restore a package](#required-permissions-to-delete-or-restore-a-package)." {% data reusables.package_registry.package-settings-from-org-level %} {% data reusables.package_registry.package-settings-option %} @@ -189,10 +193,16 @@ You can restore a deleted package or version if: For example, if you have a deleted rubygem package named `octo-package` that was scoped to the repo `octo-repo-owner/octo-repo`, then you can only restore the package if the package namespace `rubygem.pkg.github.com/octo-repo-owner/octo-repo/octo-package` is still available, and 30 days have not yet passed. -You must also meet one of these permission requirements: +{% ifversion fpt or ghec %} +To restore a deleted package, you must also meet one of these permission requirements: - For repository-scoped packages: You have admin permissions to the repository that owns the deleted package.{% ifversion fpt or ghec %} - For user-account scoped packages: Your user account owns the deleted package. - For organization-scoped packages: You have admin permissions to the deleted package in the organization that owns the package.{% endif %} +{% endif %} + +{% ifversion ghae or ghes %} +To delete a package, you must also have admin permissions to the repository that owns the deleted package. +{% endif %} For more information, see "[Required permissions](#required-permissions-to-delete-or-restore-a-package)." @@ -200,7 +210,7 @@ Once the package is restored, the package will use the same namespace it did bef ### Restoring a package in an organization -You can restore a deleted package through your organization account settings, as long as the package was in one of your repositories{% ifversion fpt or ghec %} or had granular permissions and was scoped to your organization account{% endif %}. + You can restore a deleted package through your organization account settings, as long as the package was in a repository owned by the organizaton{% ifversion fpt or ghec %} or had granular permissions and was scoped to your organization account{% endif %}. To review who can restore a package in an organization, see "[Required permissions](#required-permissions-to-delete-or-restore-a-package)." diff --git a/translations/es-ES/content/packages/learn-github-packages/introduction-to-github-packages.md b/translations/es-ES/content/packages/learn-github-packages/introduction-to-github-packages.md index 63268fe2a2..aa1182e2f8 100644 --- a/translations/es-ES/content/packages/learn-github-packages/introduction-to-github-packages.md +++ b/translations/es-ES/content/packages/learn-github-packages/introduction-to-github-packages.md @@ -112,7 +112,7 @@ You can delete a version of a private package in the {% data variables.product.p You can delete a version of a package in the {% data variables.product.product_name %} user interface or using the GraphQL API. {% endif %} -When you use the GraphQL API to query and delete private packages, you must use the same token you use to authenticate to {% data variables.product.prodname_registry %}. For more information, see "{% ifversion fpt or ghes > 3.0 or ghec %}[Deleting and restoring a package](/packages/learn-github-packages/deleting-and-restoring-a-package){% elsif ghes < 3.1 or ghae %}[Deleting a package](/packages/learn-github-packages/deleting-a-package){% endif %}" and "[Forming calls with GraphQL]({% ifversion ghec %}/free-pro-team@latest{% endif %}/graphql/guides/forming-calls-with-graphql)." +When you use the GraphQL API to query and delete private packages, you must use the same token you use to authenticate to {% data variables.product.prodname_registry %}. For more information, see "{% ifversion fpt or ghes > 3.0 or ghec or ghae %}[Deleting and restoring a package](/packages/learn-github-packages/deleting-and-restoring-a-package){% elsif ghes < 3.1 %}[Deleting a package](/packages/learn-github-packages/deleting-a-package){% endif %}" and "[Forming calls with GraphQL]({% ifversion ghec %}/free-pro-team@latest{% endif %}/graphql/guides/forming-calls-with-graphql)." You can configure webhooks to subscribe to package-related events, such as when a package is published or updated. For more information, see the "[`package` webhook event](/webhooks/event-payloads/#package)." diff --git a/translations/es-ES/content/packages/working-with-a-github-packages-registry/working-with-the-apache-maven-registry.md b/translations/es-ES/content/packages/working-with-a-github-packages-registry/working-with-the-apache-maven-registry.md index a494c22c11..74d94bffcf 100644 --- a/translations/es-ES/content/packages/working-with-a-github-packages-registry/working-with-the-apache-maven-registry.md +++ b/translations/es-ES/content/packages/working-with-a-github-packages-registry/working-with-the-apache-maven-registry.md @@ -191,4 +191,4 @@ To install an Apache Maven package from {% data variables.product.prodname_regis ## Further reading - "[Working with the Gradle registry](/packages/working-with-a-github-packages-registry/working-with-the-gradle-registry)" -- "{% ifversion fpt or ghes > 3.0 or ghec %}[Deleting and restoring a package](/packages/learn-github-packages/deleting-and-restoring-a-package){% elsif ghes < 3.1 or ghae %}[Deleting a package](/packages/learn-github-packages/deleting-a-package){% endif %}" +- "{% ifversion fpt or ghes > 3.0 or ghec or ghae %}[Deleting and restoring a package](/packages/learn-github-packages/deleting-and-restoring-a-package){% elsif ghes < 3.1 %}[Deleting a package](/packages/learn-github-packages/deleting-a-package){% endif %}" diff --git a/translations/es-ES/content/packages/working-with-a-github-packages-registry/working-with-the-docker-registry.md b/translations/es-ES/content/packages/working-with-a-github-packages-registry/working-with-the-docker-registry.md index e27195ffd4..4abbabae70 100644 --- a/translations/es-ES/content/packages/working-with-a-github-packages-registry/working-with-the-docker-registry.md +++ b/translations/es-ES/content/packages/working-with-a-github-packages-registry/working-with-the-docker-registry.md @@ -263,6 +263,6 @@ $ docker pull HOSTNAME/OWNER/REPOSITORY/IMAGE_NAME:TAG_NAME ## Further reading -- "{% ifversion fpt or ghes > 3.0 or ghec %}[Deleting and restoring a package](/packages/learn-github-packages/deleting-and-restoring-a-package){% elsif ghes < 3.1 or ghae %}[Deleting a package](/packages/learn-github-packages/deleting-a-package){% endif %}" +- "{% ifversion fpt or ghes > 3.0 or ghec or ghae %}[Deleting and restoring a package](/packages/learn-github-packages/deleting-and-restoring-a-package){% elsif ghes < 3.1 %}[Deleting a package](/packages/learn-github-packages/deleting-a-package){% endif %}" {% endif %} diff --git a/translations/es-ES/content/packages/working-with-a-github-packages-registry/working-with-the-gradle-registry.md b/translations/es-ES/content/packages/working-with-a-github-packages-registry/working-with-the-gradle-registry.md index 92f12983f8..3db0070fdb 100644 --- a/translations/es-ES/content/packages/working-with-a-github-packages-registry/working-with-the-gradle-registry.md +++ b/translations/es-ES/content/packages/working-with-a-github-packages-registry/working-with-the-gradle-registry.md @@ -216,4 +216,4 @@ To use a published package from {% data variables.product.prodname_registry %}, ## Further reading - "[Working with the Apache Maven registry](/packages/working-with-a-github-packages-registry/working-with-the-apache-maven-registry)" -- "{% ifversion fpt or ghes > 3.0 or ghec %}[Deleting and restoring a package](/packages/learn-github-packages/deleting-and-restoring-a-package){% elsif ghes < 3.1 or ghae %}[Deleting a package](/packages/learn-github-packages/deleting-a-package){% endif %}" +- "{% ifversion fpt or ghes > 3.0 or ghec or ghae %}[Deleting and restoring a package](/packages/learn-github-packages/deleting-and-restoring-a-package){% elsif ghes < 3.1 %}[Deleting a package](/packages/learn-github-packages/deleting-a-package){% endif %}" diff --git a/translations/es-ES/content/packages/working-with-a-github-packages-registry/working-with-the-npm-registry.md b/translations/es-ES/content/packages/working-with-a-github-packages-registry/working-with-the-npm-registry.md index 6f606db0cb..1163c54a5f 100644 --- a/translations/es-ES/content/packages/working-with-a-github-packages-registry/working-with-the-npm-registry.md +++ b/translations/es-ES/content/packages/working-with-a-github-packages-registry/working-with-the-npm-registry.md @@ -27,7 +27,7 @@ If you publish over 1,000 npm package versions to {% data variables.product.prod In the future, to improve performance of the service, you won't be able to publish more than 1,000 versions of a package on {% data variables.product.prodname_dotcom %}. Any versions published before hitting this limit will still be readable. -If you reach this limit, consider deleting package versions or contact Support for help. When this limit is enforced, our documentation will be updated with a way to work around this limit. For more information, see "{% ifversion fpt or ghes > 3.0 or ghec %}[Deleting and restoring a package](/packages/learn-github-packages/deleting-and-restoring-a-package){% elsif ghes < 3.1 or ghae %}[Deleting a package](/packages/learn-github-packages/deleting-a-package){% endif %}" or "[Contacting Support](/packages/learn-github-packages/about-github-packages#contacting-support)." +If you reach this limit, consider deleting package versions or contact Support for help. When this limit is enforced, our documentation will be updated with a way to work around this limit. For more information, see "{% ifversion fpt or ghes > 3.0 or ghec or ghae %}[Deleting and restoring a package](/packages/learn-github-packages/deleting-and-restoring-a-package){% elsif ghes < 3.1 %}[Deleting a package](/packages/learn-github-packages/deleting-a-package){% endif %}" or "[Contacting Support](/packages/learn-github-packages/about-github-packages#contacting-support)." ## Authenticating to {% data variables.product.prodname_registry %} @@ -215,4 +215,4 @@ If your instance has subdomain isolation disabled: ## Further reading -- "{% ifversion fpt or ghes > 3.0 or ghec %}[Deleting and restoring a package](/packages/learn-github-packages/deleting-and-restoring-a-package){% elsif ghes < 3.1 or ghae %}[Deleting a package](/packages/learn-github-packages/deleting-a-package){% endif %}" +- "{% ifversion fpt or ghes > 3.0 or ghec or ghae %}[Deleting and restoring a package](/packages/learn-github-packages/deleting-and-restoring-a-package){% elsif ghes < 3.1 %}[Deleting a package](/packages/learn-github-packages/deleting-a-package){% endif %}" diff --git a/translations/es-ES/content/packages/working-with-a-github-packages-registry/working-with-the-nuget-registry.md b/translations/es-ES/content/packages/working-with-a-github-packages-registry/working-with-the-nuget-registry.md index 347a099de3..24357fc223 100644 --- a/translations/es-ES/content/packages/working-with-a-github-packages-registry/working-with-the-nuget-registry.md +++ b/translations/es-ES/content/packages/working-with-a-github-packages-registry/working-with-the-nuget-registry.md @@ -233,4 +233,4 @@ Your NuGet package may fail to push if the `RepositoryUrl` in *.csproj* is not s ## Further reading -- "{% ifversion fpt or ghes > 3.0 or ghec %}[Deleting and restoring a package](/packages/learn-github-packages/deleting-and-restoring-a-package){% elsif ghes < 3.1 or ghae %}[Deleting a package](/packages/learn-github-packages/deleting-a-package){% endif %}" +- "{% ifversion fpt or ghes > 3.0 or ghec or ghae %}[Deleting and restoring a package](/packages/learn-github-packages/deleting-and-restoring-a-package){% elsif ghes < 3.1 %}[Deleting a package](/packages/learn-github-packages/deleting-a-package){% endif %}" diff --git a/translations/es-ES/content/packages/working-with-a-github-packages-registry/working-with-the-rubygems-registry.md b/translations/es-ES/content/packages/working-with-a-github-packages-registry/working-with-the-rubygems-registry.md index 7afbca5c42..22d46ba47a 100644 --- a/translations/es-ES/content/packages/working-with-a-github-packages-registry/working-with-the-rubygems-registry.md +++ b/translations/es-ES/content/packages/working-with-a-github-packages-registry/working-with-the-rubygems-registry.md @@ -153,4 +153,4 @@ You can use gems from {% data variables.product.prodname_registry %} much like y ## Further reading -- "{% ifversion fpt or ghes > 3.0 or ghec %}[Deleting and restoring a package](/packages/learn-github-packages/deleting-and-restoring-a-package){% elsif ghes < 3.1 or ghae %}[Deleting a package](/packages/learn-github-packages/deleting-a-package){% endif %}" +- "{% ifversion fpt or ghes > 3.0 or ghec or ghae %}[Deleting and restoring a package](/packages/learn-github-packages/deleting-and-restoring-a-package){% elsif ghes < 3.1 %}[Deleting a package](/packages/learn-github-packages/deleting-a-package){% endif %}" diff --git a/translations/es-ES/content/pages/configuring-a-custom-domain-for-your-github-pages-site/about-custom-domains-and-github-pages.md b/translations/es-ES/content/pages/configuring-a-custom-domain-for-your-github-pages-site/about-custom-domains-and-github-pages.md index 1326fe9a6b..8b423a877c 100644 --- a/translations/es-ES/content/pages/configuring-a-custom-domain-for-your-github-pages-site/about-custom-domains-and-github-pages.md +++ b/translations/es-ES/content/pages/configuring-a-custom-domain-for-your-github-pages-site/about-custom-domains-and-github-pages.md @@ -2,9 +2,9 @@ title: About custom domains and GitHub Pages intro: '{% data variables.product.prodname_pages %} supports using custom domains, or changing the root of your site''s URL from the default, like `octocat.github.io`, to any domain you own.' redirect_from: - - /articles/about-custom-domains-for-github-pages-sites/ - - /articles/about-supported-custom-domains/ - - /articles/custom-domain-redirects-for-your-github-pages-site/ + - /articles/about-custom-domains-for-github-pages-sites + - /articles/about-supported-custom-domains + - /articles/custom-domain-redirects-for-your-github-pages-site - /articles/about-custom-domains-and-github-pages - /github/working-with-github-pages/about-custom-domains-and-github-pages product: '{% data reusables.gated-features.pages %}' @@ -58,7 +58,7 @@ An apex domain is configured with an `A`, `ALIAS`, or `ANAME` record through you ## Securing the custom domain for your {% data variables.product.prodname_pages %} site -{% data reusables.pages.secure-your-domain %} For more information, see "[Verifying your custom domain for {% data variables.product.prodname_pages %}](/pages/configuring-a-custom-domain-for-your-github-pages-site/verifying-your-custom-domain-for-github-pages)" and "[Managing a custom domain for your {% data variables.product.prodname_pages %} site](/articles/managing-a-custom-domain-for-your-github-pages-site)." +{% data reusables.pages.secure-your-domain %} For more information, see "[Verifying your custom domain for {% data variables.product.prodname_pages %}](/pages/configuring-a-custom-domain-for-your-github-pages-site/verifying-your-custom-domain-for-github-pages)" and "[Managing a custom domain for your {% data variables.product.prodname_pages %} site](/articles/managing-a-custom-domain-for-your-github-pages-site)." There are a couple of reasons your site might be automatically disabled. diff --git a/translations/es-ES/content/pages/configuring-a-custom-domain-for-your-github-pages-site/index.md b/translations/es-ES/content/pages/configuring-a-custom-domain-for-your-github-pages-site/index.md index c51ebbe4fe..df8f8b376f 100644 --- a/translations/es-ES/content/pages/configuring-a-custom-domain-for-your-github-pages-site/index.md +++ b/translations/es-ES/content/pages/configuring-a-custom-domain-for-your-github-pages-site/index.md @@ -2,13 +2,13 @@ title: Configuring a custom domain for your GitHub Pages site intro: 'You can customize the domain name of your {% data variables.product.prodname_pages %} site.' redirect_from: - - /articles/tips-for-configuring-an-a-record-with-your-dns-provider/ - - /articles/adding-or-removing-a-custom-domain-for-your-github-pages-site/ - - /articles/configuring-an-a-record-with-your-dns-provider/ - - /articles/using-a-custom-domain-with-github-pages/ - - /articles/tips-for-configuring-a-cname-record/ - - /articles/setting-up-a-custom-domain-with-pages/ - - /articles/setting-up-a-custom-domain-with-github-pages/ + - /articles/tips-for-configuring-an-a-record-with-your-dns-provider + - /articles/adding-or-removing-a-custom-domain-for-your-github-pages-site + - /articles/configuring-an-a-record-with-your-dns-provider + - /articles/using-a-custom-domain-with-github-pages + - /articles/tips-for-configuring-a-cname-record + - /articles/setting-up-a-custom-domain-with-pages + - /articles/setting-up-a-custom-domain-with-github-pages - /articles/configuring-a-custom-domain-for-your-github-pages-site - /github/working-with-github-pages/configuring-a-custom-domain-for-your-github-pages-site product: '{% data reusables.gated-features.pages %}' @@ -24,4 +24,3 @@ children: - /troubleshooting-custom-domains-and-github-pages shortTitle: Configure a custom domain --- - diff --git a/translations/es-ES/content/pages/configuring-a-custom-domain-for-your-github-pages-site/managing-a-custom-domain-for-your-github-pages-site.md b/translations/es-ES/content/pages/configuring-a-custom-domain-for-your-github-pages-site/managing-a-custom-domain-for-your-github-pages-site.md index e656dccca5..025d260cef 100644 --- a/translations/es-ES/content/pages/configuring-a-custom-domain-for-your-github-pages-site/managing-a-custom-domain-for-your-github-pages-site.md +++ b/translations/es-ES/content/pages/configuring-a-custom-domain-for-your-github-pages-site/managing-a-custom-domain-for-your-github-pages-site.md @@ -2,13 +2,13 @@ title: Managing a custom domain for your GitHub Pages site intro: 'You can set up or update certain DNS records and your repository settings to point the default domain for your {% data variables.product.prodname_pages %} site to a custom domain.' redirect_from: - - /articles/quick-start-setting-up-a-custom-domain/ - - /articles/setting-up-an-apex-domain/ - - /articles/setting-up-a-www-subdomain/ - - /articles/setting-up-a-custom-domain/ - - /articles/setting-up-an-apex-domain-and-www-subdomain/ - - /articles/adding-a-cname-file-to-your-repository/ - - /articles/setting-up-your-pages-site-repository/ + - /articles/quick-start-setting-up-a-custom-domain + - /articles/setting-up-an-apex-domain + - /articles/setting-up-a-www-subdomain + - /articles/setting-up-a-custom-domain + - /articles/setting-up-an-apex-domain-and-www-subdomain + - /articles/adding-a-cname-file-to-your-repository + - /articles/setting-up-your-pages-site-repository - /articles/managing-a-custom-domain-for-your-github-pages-site - /github/working-with-github-pages/managing-a-custom-domain-for-your-github-pages-site product: '{% data reusables.gated-features.pages %}' @@ -139,7 +139,7 @@ After you configure the apex domain, you must configure a CNAME record with your ## Securing your custom domain -{% data reusables.pages.secure-your-domain %} For more information, see "[Verifying your custom domain for {% data variables.product.prodname_pages %}](/pages/configuring-a-custom-domain-for-your-github-pages-site/verifying-your-custom-domain-for-github-pages)." +{% data reusables.pages.secure-your-domain %} For more information, see "[Verifying your custom domain for {% data variables.product.prodname_pages %}](/pages/configuring-a-custom-domain-for-your-github-pages-site/verifying-your-custom-domain-for-github-pages)." ## Further reading diff --git a/translations/es-ES/content/pages/configuring-a-custom-domain-for-your-github-pages-site/troubleshooting-custom-domains-and-github-pages.md b/translations/es-ES/content/pages/configuring-a-custom-domain-for-your-github-pages-site/troubleshooting-custom-domains-and-github-pages.md index ef31967c41..892a5af812 100644 --- a/translations/es-ES/content/pages/configuring-a-custom-domain-for-your-github-pages-site/troubleshooting-custom-domains-and-github-pages.md +++ b/translations/es-ES/content/pages/configuring-a-custom-domain-for-your-github-pages-site/troubleshooting-custom-domains-and-github-pages.md @@ -2,9 +2,9 @@ title: Troubleshooting custom domains and GitHub Pages intro: 'You can check for common errors to resolve issues with custom domains or HTTPS for your {% data variables.product.prodname_pages %} site.' redirect_from: - - /articles/my-custom-domain-isn-t-working/ - - /articles/custom-domain-isn-t-working/ - - /articles/troubleshooting-custom-domains/ + - /articles/my-custom-domain-isn-t-working + - /articles/custom-domain-isn-t-working + - /articles/troubleshooting-custom-domains - /articles/troubleshooting-custom-domains-and-github-pages - /github/working-with-github-pages/troubleshooting-custom-domains-and-github-pages product: '{% data reusables.gated-features.pages %}' diff --git a/translations/es-ES/content/pages/getting-started-with-github-pages/about-github-pages.md b/translations/es-ES/content/pages/getting-started-with-github-pages/about-github-pages.md index dd40cb5a26..80fb7f8cb7 100644 --- a/translations/es-ES/content/pages/getting-started-with-github-pages/about-github-pages.md +++ b/translations/es-ES/content/pages/getting-started-with-github-pages/about-github-pages.md @@ -2,12 +2,12 @@ title: About GitHub Pages intro: 'You can use {% data variables.product.prodname_pages %} to host a website about yourself, your organization, or your project directly from a repository on {% ifversion ghae %}{% data variables.product.product_name %}{% else %}{% data variables.product.product_location %}{% endif %}.' redirect_from: - - /articles/what-are-github-pages/ - - /articles/what-is-github-pages/ - - /articles/user-organization-and-project-pages/ - - /articles/using-a-static-site-generator-other-than-jekyll/ - - /articles/mime-types-on-github-pages/ - - /articles/should-i-rename-usernamegithubcom-repositories-to-usernamegithubio/ + - /articles/what-are-github-pages + - /articles/what-is-github-pages + - /articles/user-organization-and-project-pages + - /articles/using-a-static-site-generator-other-than-jekyll + - /articles/mime-types-on-github-pages + - /articles/should-i-rename-usernamegithubcom-repositories-to-usernamegithubio - /articles/about-github-pages - /github/working-with-github-pages/about-github-pages product: '{% data reusables.gated-features.pages %}' diff --git a/translations/es-ES/content/pages/getting-started-with-github-pages/adding-a-theme-to-your-github-pages-site-with-the-theme-chooser.md b/translations/es-ES/content/pages/getting-started-with-github-pages/adding-a-theme-to-your-github-pages-site-with-the-theme-chooser.md index 311190850d..6f568026a7 100644 --- a/translations/es-ES/content/pages/getting-started-with-github-pages/adding-a-theme-to-your-github-pages-site-with-the-theme-chooser.md +++ b/translations/es-ES/content/pages/getting-started-with-github-pages/adding-a-theme-to-your-github-pages-site-with-the-theme-chooser.md @@ -1,9 +1,9 @@ --- -title: Agregar un tema a tu sitio de Páginas de GitHub con el selector de tema -intro: 'Puedes añadir un tema a tu sitio de {% data variables.product.prodname_pages %} para personalizar la apariencia de tu sitio.' +title: Adding a theme to your GitHub Pages site with the theme chooser +intro: 'You can add a theme to your {% data variables.product.prodname_pages %} site to customize your site’s look and feel.' redirect_from: - - /articles/creating-a-github-pages-site-with-the-jekyll-theme-chooser/ - - /articles/adding-a-jekyll-theme-to-your-github-pages-site-with-the-jekyll-theme-chooser/ + - /articles/creating-a-github-pages-site-with-the-jekyll-theme-chooser + - /articles/adding-a-jekyll-theme-to-your-github-pages-site-with-the-jekyll-theme-chooser - /articles/adding-a-theme-to-your-github-pages-site-with-the-theme-chooser - /github/working-with-github-pages/adding-a-theme-to-your-github-pages-site-with-the-theme-chooser product: '{% data reusables.gated-features.pages %}' @@ -12,37 +12,40 @@ versions: ghec: '*' topics: - Pages -shortTitle: Agregar un tema al sitio de Páginas +shortTitle: Add theme to a Pages site --- -Las personas con permisos de administración para un repositorio pueden usar el selector de temas para agregar un tema al sitio de {% data variables.product.prodname_pages %}. +People with admin permissions for a repository can use the theme chooser to add a theme to a {% data variables.product.prodname_pages %} site. -## Acerca del selector de temas +## About the theme chooser -El selector de temas agrega un tema de Jekyll a tu repositorio. Para obtener más información acerca de Jekyll, consulta "[Acerca de las {% data variables.product.prodname_pages %} y Jekyll](/articles/about-github-pages-and-jekyll)". +The theme chooser adds a Jekyll theme to your repository. For more information about Jekyll, see "[About {% data variables.product.prodname_pages %} and Jekyll](/articles/about-github-pages-and-jekyll)." -La forma en que funciona el selector de temas depende de si tu repositorio es público o privado. - - Si las {% data variables.product.prodname_pages %} ya están habilitadas para tu repositorio, el selector de temas agregará tu tema a la fuente de publicación actual. - - Si tu repositorio es público y {% data variables.product.prodname_pages %} se encuentra inhabilitado para éste, mediante el selector de temas podrás habilitar {% data variables.product.prodname_pages %} y configurar la rama predeterminada como tu fuente de publicación. - - Si tu repositorio es público, y las {% data variables.product.prodname_pages %} están inhabilitadas para tu repositorio, debes habilitar las {% data variables.product.prodname_pages %} configurando una fuente de publicación antes de poder usar el selector de temas. +How the theme chooser works depends on whether your repository is public or private. + - If {% data variables.product.prodname_pages %} is already enabled for your repository, the theme chooser will add your theme to the current publishing source. + - If your repository is public and {% data variables.product.prodname_pages %} is disabled for your repository, using the theme chooser will enable {% data variables.product.prodname_pages %} and configure the default branch as your publishing source. + - If your repository is private and {% data variables.product.prodname_pages %} is disabled for your repository, you must enable {% data variables.product.prodname_pages %} by configuring a publishing source before you can use the theme chooser. -Para obtener más información acerca de las fuentes de publicación, consulta "[Acerca de las {% data variables.product.prodname_pages %}](/articles/about-github-pages#publishing-sources-for-github-pages-sites)". +For more information about publishing sources, see "[About {% data variables.product.prodname_pages %}](/articles/about-github-pages#publishing-sources-for-github-pages-sites)." -Si antes agregaste manualmente un tema de Jekyll a tu repositorio, puede que esos archivos se apliquen incluso después de que uses el selector de temas. Para evitar conflictos, elimina todas las carpetas y archivos de temas agregados manualmente antes de usar el selector de temas. Para obtener más información, consulta "[Agregar un tema a tu sitio de {% data variables.product.prodname_pages %} con Jekyll](/articles/adding-a-theme-to-your-github-pages-site-using-jekyll)". +If you manually added a Jekyll theme to your repository in the past, those files may be applied even after you use the theme chooser. To avoid conflicts, remove all manually added theme folders and files before using the theme chooser. For more information, see "[Adding a theme to your {% data variables.product.prodname_pages %} site using Jekyll](/articles/adding-a-theme-to-your-github-pages-site-using-jekyll)." -## Agregar un tema con el selector de temas +## Adding a theme with the theme chooser {% data reusables.pages.navigate-site-repo %} {% data reusables.repositories.sidebar-settings %} {% data reusables.pages.sidebar-pages %} -3. Debajo de "{% data variables.product.prodname_pages %}", haz clic en **Choose a theme** (Elegir un tema) o **Change theme** (Cambiar tema). ![Elija un botón del tema](/assets/images/help/pages/choose-a-theme.png) -4. Para elegir un tema, haz clic en el tema que quieras y luego haz clic en **Select theme** (Seleccionar tema). ![Opciones de temas y botón Select theme (Seleccionar tema)](/assets/images/help/pages/select-theme.png) -5. Puede que se te solicite que edites el archivo *README.md* de tu sitio. - - Para editar el archivo más tarde, haz clic en **Cancel** (Cancelar). ![Enlace de cancelación al editar un archivo](/assets/images/help/pages/cancel-edit.png) - - Para editar el archivo ahora, consulta la sección "[Editar archivos](/repositories/working-with-files/managing-files/editing-files)". +3. Under "{% data variables.product.prodname_pages %}," click **Choose a theme** or **Change theme**. + ![Choose a theme button](/assets/images/help/pages/choose-a-theme.png) +4. On the top of the page, click the theme you want, then click **Select theme**. + ![Theme options and Select theme button](/assets/images/help/pages/select-theme.png) +5. You may be prompted to edit your site's *README.md* file. + - To edit the file later, click **Cancel**. + ![Cancel link when editing a file](/assets/images/help/pages/cancel-edit.png) + - To edit the file now, see "[Editing files](/repositories/working-with-files/managing-files/editing-files)." -El tema elegido se aplicará automáticamente a los archivos markdown de tu repositorio. Para aplicar el tema a los archivos HTML de tu repositorio, debes agregar el texto preliminar de YAML que especifica un diseño para cada archivo. Para obtener más información, consulta "[Texto preliminar](https://jekyllrb.com/docs/front-matter/)" en el sitio de Jekyll. +Your chosen theme will automatically apply to markdown files in your repository. To apply your theme to HTML files in your repository, you need to add YAML front matter that specifies a layout to each file. For more information, see "[Front Matter](https://jekyllrb.com/docs/front-matter/)" on the Jekyll site. -## Leer más +## Further reading -- [Temas](https://jekyllrb.com/docs/themes/) en el sitio de Jekyll +- [Themes](https://jekyllrb.com/docs/themes/) on the Jekyll site diff --git a/translations/es-ES/content/pages/getting-started-with-github-pages/configuring-a-publishing-source-for-your-github-pages-site.md b/translations/es-ES/content/pages/getting-started-with-github-pages/configuring-a-publishing-source-for-your-github-pages-site.md index 3ada8ce82d..5e931e4862 100644 --- a/translations/es-ES/content/pages/getting-started-with-github-pages/configuring-a-publishing-source-for-your-github-pages-site.md +++ b/translations/es-ES/content/pages/getting-started-with-github-pages/configuring-a-publishing-source-for-your-github-pages-site.md @@ -2,7 +2,7 @@ title: Configuring a publishing source for your GitHub Pages site intro: 'If you use the default publishing source for your {% data variables.product.prodname_pages %} site, your site will publish automatically. You can also choose to publish your site from a different branch or folder.' redirect_from: - - /articles/configuring-a-publishing-source-for-github-pages/ + - /articles/configuring-a-publishing-source-for-github-pages - /articles/configuring-a-publishing-source-for-your-github-pages-site - /github/working-with-github-pages/configuring-a-publishing-source-for-your-github-pages-site product: '{% data reusables.gated-features.pages %}' @@ -38,3 +38,17 @@ Before you configure a publishing source, make sure the branch you want to use a {% data reusables.pages.admin-must-push %} If you choose the `docs` folder on any branch as your publishing source, then later remove the `/docs` folder from that branch in your repository, your site won't build and you'll get a page build error message for a missing `/docs` folder. For more information, see "[Troubleshooting Jekyll build errors for {% data variables.product.prodname_pages %} sites](/articles/troubleshooting-jekyll-build-errors-for-github-pages-sites#missing-docs-folder)." + +{% ifversion fpt %} + +Your {% data variables.product.prodname_pages %} site will always be deployed with a {% data variables.product.prodname_actions %} workflow run, even if you've configured your {% data variables.product.prodname_pages %} site to be built using a different CI tool. Most external CI workflows "deploy" to GitHub Pages by committing the build output to the `gh-pages` branch of the repository, and typically include a `.nojekyll` file. When this happens, the {% data variables.product.prodname_actions %} worfklow will detect the state that the branch does not need a build step, and will execute only the steps necessary to deploy the site to {% data variables.product.prodname_pages %} servers. + +To find potential errors with either the build or deployment, you can check the workflow run for your {% data variables.product.prodname_pages %} site by reviewing your repository's workflow runs. For more information, see "[Viewing workflow run history](/actions/monitoring-and-troubleshooting-workflows/viewing-workflow-run-history)." For more information about how to re-run the workflow in case of an error, see "[Re-running workflows and jobs](/actions/managing-workflow-runs/re-running-workflows-and-jobs)." + +{% note %} + +{% data reusables.pages.pages-builds-with-github-actions-public-beta %} + +{% endnote %} + +{% endif %} diff --git a/translations/es-ES/content/pages/getting-started-with-github-pages/creating-a-custom-404-page-for-your-github-pages-site.md b/translations/es-ES/content/pages/getting-started-with-github-pages/creating-a-custom-404-page-for-your-github-pages-site.md index 864887aa34..e2a6857bc7 100644 --- a/translations/es-ES/content/pages/getting-started-with-github-pages/creating-a-custom-404-page-for-your-github-pages-site.md +++ b/translations/es-ES/content/pages/getting-started-with-github-pages/creating-a-custom-404-page-for-your-github-pages-site.md @@ -1,8 +1,8 @@ --- -title: Crear una página 404 personalizada para tu sitio de Páginas de GitHub -intro: Puedes mostrar una página personalizada de error 404 cuando se intente acceder a páginas que no existen en tu sitio. +title: Creating a custom 404 page for your GitHub Pages site +intro: You can display a custom 404 error page when people try to access nonexistent pages on your site. redirect_from: - - /articles/custom-404-pages/ + - /articles/custom-404-pages - /articles/creating-a-custom-404-page-for-your-github-pages-site - /github/working-with-github-pages/creating-a-custom-404-page-for-your-github-pages-site product: '{% data reusables.gated-features.pages %}' @@ -13,25 +13,26 @@ versions: ghec: '*' topics: - Pages -shortTitle: Crear una página personalizada de error 404 +shortTitle: Create custom 404 page --- {% data reusables.pages.navigate-site-repo %} {% data reusables.pages.navigate-publishing-source %} {% data reusables.files.add-file %} -3. En el campo para el nombre de archivo, escribe `404.html` o `404.md`. ![Campo File name (Nombre de archivo)](/assets/images/help/pages/404-file-name.png) -4. Si denominaste tu archivo `404.md`, agrega el siguiente texto preliminar de YAML al comienzo del archivo: +3. In the file name field, type `404.html` or `404.md`. + ![File name field](/assets/images/help/pages/404-file-name.png) +4. If you named your file `404.md`, add the following YAML front matter to the beginning of the file: ```yaml --- permalink: /404.html --- ``` -5. Debajo del texto preliminar de YAML, si aparece, agrega el contenido que quieras mostrar en tu página 404. +5. Below the YAML front matter, if present, add the content you want to display on your 404 page. {% data reusables.files.write_commit_message %} {% data reusables.files.choose-commit-email %} {% data reusables.files.choose_commit_branch %} {% data reusables.files.propose_new_file %} -## Leer más +## Further reading -- [Texto preliminar](http://jekyllrb.com/docs/frontmatter) en la documentación de Jekyll +- [Front matter](http://jekyllrb.com/docs/frontmatter) in the Jekyll documentation diff --git a/translations/es-ES/content/pages/getting-started-with-github-pages/creating-a-github-pages-site.md b/translations/es-ES/content/pages/getting-started-with-github-pages/creating-a-github-pages-site.md index 8e9752d823..fd7bb21e9a 100644 --- a/translations/es-ES/content/pages/getting-started-with-github-pages/creating-a-github-pages-site.md +++ b/translations/es-ES/content/pages/getting-started-with-github-pages/creating-a-github-pages-site.md @@ -2,10 +2,10 @@ title: Creating a GitHub Pages site intro: 'You can create a {% data variables.product.prodname_pages %} site in a new or existing repository.' redirect_from: - - /articles/creating-pages-manually/ - - /articles/creating-project-pages-manually/ - - /articles/creating-project-pages-from-the-command-line/ - - /articles/creating-project-pages-using-the-command-line/ + - /articles/creating-pages-manually + - /articles/creating-project-pages-manually + - /articles/creating-project-pages-from-the-command-line + - /articles/creating-project-pages-using-the-command-line - /articles/creating-a-github-pages-site - /github/working-with-github-pages/creating-a-github-pages-site product: '{% data reusables.gated-features.pages %}' @@ -53,6 +53,7 @@ shortTitle: Create a GitHub Pages site {% data reusables.pages.sidebar-pages %}{% ifversion fpt or ghec %} {% data reusables.pages.choose-visibility %}{% endif %} {% data reusables.pages.visit-site %} +{% data reusables.pages.check-workflow-run %} {% data reusables.pages.admin-must-push %} diff --git a/translations/es-ES/content/pages/getting-started-with-github-pages/index.md b/translations/es-ES/content/pages/getting-started-with-github-pages/index.md index 2ee4dc1f14..b391a4458c 100644 --- a/translations/es-ES/content/pages/getting-started-with-github-pages/index.md +++ b/translations/es-ES/content/pages/getting-started-with-github-pages/index.md @@ -1,9 +1,9 @@ --- -title: Comenzar con Páginas de GitHub -intro: 'Puedes configurar un sitio básico de {% data variables.product.prodname_pages %} para ti, para tu organización o para tu proyecto.' +title: Getting started with GitHub Pages +intro: 'You can set up a basic {% data variables.product.prodname_pages %} site for yourself, your organization, or your project.' redirect_from: - /categories/github-pages-basics - - /articles/additional-customizations-for-github-pages/ + - /articles/additional-customizations-for-github-pages - /articles/getting-started-with-github-pages - /github/working-with-github-pages/getting-started-with-github-pages product: '{% data reusables.gated-features.pages %}' @@ -24,6 +24,6 @@ children: - /securing-your-github-pages-site-with-https - /using-submodules-with-github-pages - /unpublishing-a-github-pages-site -shortTitle: Empezar +shortTitle: Get started --- diff --git a/translations/es-ES/content/pages/getting-started-with-github-pages/securing-your-github-pages-site-with-https.md b/translations/es-ES/content/pages/getting-started-with-github-pages/securing-your-github-pages-site-with-https.md index aed802a177..b0a0606bd7 100644 --- a/translations/es-ES/content/pages/getting-started-with-github-pages/securing-your-github-pages-site-with-https.md +++ b/translations/es-ES/content/pages/getting-started-with-github-pages/securing-your-github-pages-site-with-https.md @@ -1,6 +1,6 @@ --- -title: Asegurar tu sitio de Páginas de GitHub con HTTPS -intro: 'HTTPS agrega una capa de encriptación que evita que otros se entrometan o manipulen el tráfico en tu sitio. Puedes aplicar HTTPS en tu sitio {% data variables.product.prodname_pages %} para redirigir de forma transparente todas las solicitudes de HTTP a HTTPS.' +title: Securing your GitHub Pages site with HTTPS +intro: 'HTTPS adds a layer of encryption that prevents others from snooping on or tampering with traffic to your site. You can enforce HTTPS for your {% data variables.product.prodname_pages %} site to transparently redirect all HTTP requests to HTTPS.' product: '{% data reusables.gated-features.pages %}' redirect_from: - /articles/securing-your-github-pages-site-with-https @@ -10,14 +10,14 @@ versions: ghec: '*' topics: - Pages -shortTitle: Asegurar el sitio con HTTPS +shortTitle: Secure site with HTTPS --- -Las personas con permisos de administración para un repositorio pueden aplicar HTTPS para un sitio de {% data variables.product.prodname_pages %}. +People with admin permissions for a repository can enforce HTTPS for a {% data variables.product.prodname_pages %} site. -## Acerca de HTTPS y de las {% data variables.product.prodname_pages %} +## About HTTPS and {% data variables.product.prodname_pages %} -Todos los sitios {% data variables.product.prodname_pages %}, incluidos los sitios que están correctamente configurados con un dominio personalizado, admiten HTTPS y la aplicación de HTTPS. Para obtener más información acerca de los dominios personalizados, consulta "[Acerca de los dominios personalizados y de las {% data variables.product.prodname_pages %}](/articles/about-custom-domains-and-github-pages)" y "[Solución de problemas de los dominios personalizados y de las {% data variables.product.prodname_pages %}](/articles/troubleshooting-custom-domains-and-github-pages#https-errors)". +All {% data variables.product.prodname_pages %} sites, including sites that are correctly configured with a custom domain, support HTTPS and HTTPS enforcement. For more information about custom domains, see "[About custom domains and {% data variables.product.prodname_pages %}](/articles/about-custom-domains-and-github-pages)" and "[Troubleshooting custom domains and {% data variables.product.prodname_pages %}](/articles/troubleshooting-custom-domains-and-github-pages#https-errors)." {% data reusables.pages.no_sensitive_data_pages %} @@ -25,39 +25,46 @@ Todos los sitios {% data variables.product.prodname_pages %}, incluidos los siti {% note %} -**Nota:** El RFC3280 indica que la longitud máxima del nombre común debe ser de 64 caracteres. Por lo tanto, todo el nombre de dominio de tu sitio de {% data variables.product.prodname_pages %} debe ser menor a 64 caracteres de longitud para que se cree un certificado exitosamente. +**Note:** RFC3280 states that the maximum length of the common name should be 64 characters. Therefore, the entire domain name of your {% data variables.product.prodname_pages %} site must be less than 64 characters long for a certificate to be successfully created. {% endnote %} -## Aplicar HTTPS en tu sitio {% data variables.product.prodname_pages %} +## Enforcing HTTPS for your {% data variables.product.prodname_pages %} site {% data reusables.pages.navigate-site-repo %} {% data reusables.repositories.sidebar-settings %} {% data reusables.pages.sidebar-pages %} -3. Debajo de "{% data variables.product.prodname_pages %}", selecciona **Enforce HTTPS** (Aplicar HTTPS). ![Aplicar casilla de verificación de HTTPS](/assets/images/help/pages/enforce-https-checkbox.png) +3. Under "{% data variables.product.prodname_pages %}," select **Enforce HTTPS**. + ![Enforce HTTPS checkbox](/assets/images/help/pages/enforce-https-checkbox.png) -## Resolver problemas con contenido mixto +## Troubleshooting certificate provisioning ("Certificate not yet created" error") -Si habilitas HTTPS para tu sitio de {% data variables.product.prodname_pages %}, pero el HTML de tu sitio sigue referenciando imágenes, CSS o JavaScript a través de HTTP, significa que tu sitio está ofreciendo *contenido mixto*. Ofrecer contenido mixto puede hacer que tu sitio sea menos seguro y generar problemas al cargar activos. +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. -Para eliminar el contenido mixto de tu sitio, asegúrate de que todos tus activos se ofrezcan mediante HTTPS cambiando `http://` por `https://` en el HTML de tu sitio. +The process may take some time. If the process has not completed several minutes after you clicked **Save**, try clicking **Remove** next to your custom domain name. Retype the domain name and click **Save** again. This will cancel and restart the provisioning process. -Normalmente, los activos se encuentran en las siguientes ubicaciones: -- Si tu sitio usa Jekyll, es probable que tus archivos HTML se encuentren en la carpeta de *_layouts*. -- Habitualmente, CSS se encuentra en la sección `` de tu archivo HTML. -- Habitualmente, JavaScript se encuentra en la sección `` o simplemente antes de la etiqueta de cierre ``. -- Las imágenes se suelen encontrar en la sección ``. +## Resolving problems with mixed content + +If you enable HTTPS for your {% data variables.product.prodname_pages %} site but your site's HTML still references images, CSS, or JavaScript over HTTP, then your site is serving *mixed content*. Serving mixed content may make your site less secure and cause trouble loading assets. + +To remove your site's mixed content, make sure all your assets are served over HTTPS by changing `http://` to `https://` in your site's HTML. + +Assets are commonly found in the following locations: +- If your site uses Jekyll, your HTML files will probably be found in the *_layouts* folder. +- CSS is usually found in the `` section of your HTML file. +- JavaScript is usually found in the `` section or just before the closing `` tag. +- Images are often found in the `` section. {% tip %} -**Sugerencia:** Si no puedes encontrar tus activos en los archivos fuente de tu sitio, prueba buscando los archivos fuente de tu sitio para `http` en el editor de texto o en {% data variables.product.product_name %}. +**Tip:** If you can't find your assets in your site's source files, try searching your site's source files for `http` in your text editor or on {% data variables.product.product_name %}. {% endtip %} -### Ejemplos de activos referenciados en un archivo HTML +### Examples of assets referenced in an HTML file -| Tipo de activo | HTTP | HTTPS | -|:--------------:|:----------------------------------------------------------------------------------------------------------------:|:------------------------------------------------------------------------------------------------------------------:| -| CSS | `` | `` | -| JavaScript | `` | `` | -| Image | `Logo` | `Logo` | +| Asset type | HTTP | HTTPS | +|:----------:|:-----------------------------------------:|:---------------------------------:| +| CSS | `` | `` +| JavaScript | `` | `` +| Image | `Logo` | `Logo` diff --git a/translations/es-ES/content/pages/getting-started-with-github-pages/unpublishing-a-github-pages-site.md b/translations/es-ES/content/pages/getting-started-with-github-pages/unpublishing-a-github-pages-site.md index da3ac1ff7d..bcc60251c3 100644 --- a/translations/es-ES/content/pages/getting-started-with-github-pages/unpublishing-a-github-pages-site.md +++ b/translations/es-ES/content/pages/getting-started-with-github-pages/unpublishing-a-github-pages-site.md @@ -1,11 +1,11 @@ --- -title: Anular la publicación de un sitio de Páginas de GitHub -intro: 'Puedes publicar tu sitio de {% data variables.product.prodname_pages %} para que éste deje de estar disponible.' +title: Unpublishing a GitHub Pages site +intro: 'You can unpublish your {% data variables.product.prodname_pages %} site so that the site is no longer available.' redirect_from: - - /articles/how-do-i-unpublish-a-project-page/ - - /articles/unpublishing-a-project-page/ - - /articles/unpublishing-a-project-pages-site/ - - /articles/unpublishing-a-user-pages-site/ + - /articles/how-do-i-unpublish-a-project-page + - /articles/unpublishing-a-project-page + - /articles/unpublishing-a-project-pages-site + - /articles/unpublishing-a-user-pages-site - /articles/unpublishing-a-github-pages-site - /github/working-with-github-pages/unpublishing-a-github-pages-site product: '{% data reusables.gated-features.pages %}' @@ -17,21 +17,22 @@ versions: ghec: '*' topics: - Pages -shortTitle: Dejar de publicar el sitio de las páginas +shortTitle: Unpublish Pages site --- -## Anular la publicación de un sitio de proyecto +## Unpublishing a project site {% data reusables.repositories.navigate-to-repo %} -2. Si existe una rama de `gh-pages` en el repositorio, elimina la rama de `gh-pages`. Para obtener más información, consulta "[Crear y eliminar ramas dentro de tu repositorio](/articles/creating-and-deleting-branches-within-your-repository#deleting-a-branch)". -3. Si tu fuente de publicación fue la rama `gh-pages`, {% ifversion fpt or ghec %}pasa al paso 6{% else %}tu sitio ahora se dejó de publicar y puedes saltar al resto de los pasos{% endif %}. +2. If a `gh-pages` branch exists in the repository, delete the `gh-pages` branch. For more information, see "[Creating and deleting branches within your repository](/articles/creating-and-deleting-branches-within-your-repository#deleting-a-branch)." +3. If the `gh-pages` branch was your publishing source, {% ifversion fpt or ghec %}skip to step 6{% else %}your site is now unpublished and you can skip the remaining steps{% endif %}. {% data reusables.repositories.sidebar-settings %} {% data reusables.pages.sidebar-pages %} -5. Debajo de "{% data variables.product.prodname_pages %}", usa el menú desplegable **Source** (Fuente) y seleccionar **None** (Ninguno). ![Menú desplegable para seleccionar una fuente de publicación](/assets/images/help/pages/publishing-source-drop-down.png) +5. Under "{% data variables.product.prodname_pages %}", use the **Source** drop-down menu and select **None.** + ![Drop down menu to select a publishing source](/assets/images/help/pages/publishing-source-drop-down.png) {% data reusables.pages.update_your_dns_settings %} -## Anular la publicación de un sitio de usuario o de organización +## Unpublishing a user or organization site {% data reusables.repositories.navigate-to-repo %} -2. Borra la rama que estás utilizando como fuente de publicación, o borra todo el repositorio. Para obtener más información, consulta "[Crear y eliminar ramas dentro de tu repositorio](/articles/creating-and-deleting-branches-within-your-repository#deleting-a-branch)" y "[Eliminar un repositorio](/articles/deleting-a-repository)". +2. Delete the branch that you're using as a publishing source, or delete the entire repository. For more information, see "[Creating and deleting branches within your repository](/articles/creating-and-deleting-branches-within-your-repository#deleting-a-branch)" and "[Deleting a repository](/articles/deleting-a-repository)." {% data reusables.pages.update_your_dns_settings %} diff --git a/translations/es-ES/content/pages/getting-started-with-github-pages/using-submodules-with-github-pages.md b/translations/es-ES/content/pages/getting-started-with-github-pages/using-submodules-with-github-pages.md index 22f4e21b47..a29e68ab61 100644 --- a/translations/es-ES/content/pages/getting-started-with-github-pages/using-submodules-with-github-pages.md +++ b/translations/es-ES/content/pages/getting-started-with-github-pages/using-submodules-with-github-pages.md @@ -1,8 +1,8 @@ --- -title: Usar submódulos con las Páginas de GitHub -intro: 'Puedes usar submódulos con las {% data variables.product.prodname_pages %} para incluir otros proyectos en el código de tu sitio.' +title: Using submodules with GitHub Pages +intro: 'You can use submodules with {% data variables.product.prodname_pages %} to include other projects in your site''s code.' redirect_from: - - /articles/using-submodules-with-pages/ + - /articles/using-submodules-with-pages - /articles/using-submodules-with-github-pages - /github/working-with-github-pages/using-submodules-with-github-pages product: '{% data reusables.gated-features.pages %}' @@ -11,16 +11,16 @@ versions: ghec: '*' topics: - Pages -shortTitle: Utilizar submódulos con páginas +shortTitle: Use submodules with Pages --- -Si el repositorio para tu sitio de {% data variables.product.prodname_pages %} contiene submódulos, sus contenidos se extraerán automáticamente cuando se compile tu sitio. +If the repository for your {% data variables.product.prodname_pages %} site contains submodules, their contents will automatically be pulled in when your site is built. -Solo puedes usar submódulos que apunten a los repositorios públicos, porque el servidor de {% data variables.product.prodname_pages %} no puede acceder a los repositorios privados. +You can only use submodules that point to public repositories, because the {% data variables.product.prodname_pages %} server cannot access private repositories. -Utiliza la URL de solo lectura `https://` para tus submódulos, incluidos los submódulos anidados. Puedes hacer este cambio en tu archivo _.gitmodules_. +Use the `https://` read-only URL for your submodules, including nested submodules. You can make this change in your _.gitmodules_ file. -## Leer más +## Further reading -- "[Heramientas Git - Submódulos](https://git-scm.com/book/en/Git-Tools-Submodules)" del libro _Pro Git_ -- "[Solucionar problemas de errores de construcción de Jekyll para sitios de {% data variables.product.prodname_pages %}](/articles/troubleshooting-jekyll-build-errors-for-github-pages-sites)" +- "[Git Tools - Submodules](https://git-scm.com/book/en/Git-Tools-Submodules)" from the _Pro Git_ book +- "[Troubleshooting Jekyll build errors for {% data variables.product.prodname_pages %} sites](/articles/troubleshooting-jekyll-build-errors-for-github-pages-sites)" diff --git a/translations/es-ES/content/pages/index.md b/translations/es-ES/content/pages/index.md index a07911e622..ac99f2500e 100644 --- a/translations/es-ES/content/pages/index.md +++ b/translations/es-ES/content/pages/index.md @@ -3,12 +3,11 @@ title: GitHub Pages Documentation shortTitle: GitHub Pages intro: 'You can create a website directly from a repository on {% ifversion ghae %}{% data variables.product.product_name %}{% else %}{% data variables.product.product_location %}{% endif %}.' redirect_from: - - /categories/20/articles/ - - /categories/95/articles/ - - /categories/github-pages-features/ - - /pages/ - - /categories/96/articles/ - - /categories/github-pages-troubleshooting/ + - /categories/20/articles + - /categories/95/articles + - /categories/github-pages-features + - /categories/96/articles + - /categories/github-pages-troubleshooting - /categories/working-with-github-pages - /github/working-with-github-pages product: '{% data reusables.gated-features.pages %}' @@ -25,4 +24,3 @@ children: - /setting-up-a-github-pages-site-with-jekyll - /configuring-a-custom-domain-for-your-github-pages-site --- - diff --git a/translations/es-ES/content/pages/setting-up-a-github-pages-site-with-jekyll/about-github-pages-and-jekyll.md b/translations/es-ES/content/pages/setting-up-a-github-pages-site-with-jekyll/about-github-pages-and-jekyll.md index 4cef579a69..8df4d200f5 100644 --- a/translations/es-ES/content/pages/setting-up-a-github-pages-site-with-jekyll/about-github-pages-and-jekyll.md +++ b/translations/es-ES/content/pages/setting-up-a-github-pages-site-with-jekyll/about-github-pages-and-jekyll.md @@ -7,15 +7,15 @@ redirect_from: - /articles/configuring-jekyll-plugins - /articles/using-syntax-highlighting-on-github-pages - /articles/files-that-start-with-an-underscore-are-missing - - /articles/sitemaps-for-github-pages/ - - /articles/search-engine-optimization-for-github-pages/ - - /articles/repository-metadata-on-github-pages/ - - /articles/atom-rss-feeds-for-github-pages/ - - /articles/redirects-on-github-pages/ - - /articles/emoji-on-github-pages/ - - /articles/mentions-on-github-pages/ - - /articles/using-jekyll-plugins-with-github-pages/ - - /articles/adding-jekyll-plugins-to-a-github-pages-site/ + - /articles/sitemaps-for-github-pages + - /articles/search-engine-optimization-for-github-pages + - /articles/repository-metadata-on-github-pages + - /articles/atom-rss-feeds-for-github-pages + - /articles/redirects-on-github-pages + - /articles/emoji-on-github-pages + - /articles/mentions-on-github-pages + - /articles/using-jekyll-plugins-with-github-pages + - /articles/adding-jekyll-plugins-to-a-github-pages-site - /articles/about-github-pages-and-jekyll - /github/working-with-github-pages/about-github-pages-and-jekyll product: '{% data reusables.gated-features.pages %}' diff --git a/translations/es-ES/content/pages/setting-up-a-github-pages-site-with-jekyll/about-jekyll-build-errors-for-github-pages-sites.md b/translations/es-ES/content/pages/setting-up-a-github-pages-site-with-jekyll/about-jekyll-build-errors-for-github-pages-sites.md index 0a8646cfee..c5b53d6108 100644 --- a/translations/es-ES/content/pages/setting-up-a-github-pages-site-with-jekyll/about-jekyll-build-errors-for-github-pages-sites.md +++ b/translations/es-ES/content/pages/setting-up-a-github-pages-site-with-jekyll/about-jekyll-build-errors-for-github-pages-sites.md @@ -2,8 +2,8 @@ title: About Jekyll build errors for GitHub Pages sites intro: 'If Jekyll encounters an error building your {% data variables.product.prodname_pages %} site locally or on {% data variables.product.product_name %}, you''ll receive an error message with more information.' redirect_from: - - /articles/viewing-jekyll-build-error-messages/ - - /articles/generic-jekyll-build-failures/ + - /articles/viewing-jekyll-build-error-messages + - /articles/generic-jekyll-build-failures - /articles/about-jekyll-build-errors-for-github-pages-sites - /github/working-with-github-pages/about-jekyll-build-errors-for-github-pages-sites product: '{% data reusables.gated-features.pages %}' @@ -36,15 +36,34 @@ If Jekyll does attempt to build your site and encounters an error, you will rece For more information about troubleshooting build errors, see "[Troubleshooting Jekyll build errors for {% data variables.product.prodname_pages %} sites](/articles/troubleshooting-jekyll-build-errors-for-github-pages-sites)." -## Viewing Jekyll build error messages +{% ifversion fpt %} +## Viewing Jekyll build error messages with {% data variables.product.prodname_actions %} + +By default, your {% data variables.product.prodname_pages %} site is built and deployed with a {% data variables.product.prodname_actions %} workflow run unless you've configured your {% data variables.product.prodname_pages %} site to use a different CI tool. To find potential build errors, you can check the workflow run for your {% data variables.product.prodname_pages %} site by reviewing your repository's workflow runs. For more information, see "[Viewing workflow run history](/actions/monitoring-and-troubleshooting-workflows/viewing-workflow-run-history)." For more information about how to re-run the workflow in case of an error, see "[Re-running workflows and jobs](/actions/managing-workflow-runs/re-running-workflows-and-jobs)." +{% note %} + +{% data reusables.pages.pages-builds-with-github-actions-public-beta %} + +{% endnote %} +{% endif %} + +## Viewing your repository's build failures on {% data variables.product.product_name %} + +You can see build failures (but not build warnings) for your site on {% data variables.product.product_name %} in the **Settings** tab of your site's repository. + +## Viewing Jekyll build error messages locally We recommend testing your site locally, which allows you to see build error messages on the command line, and addressing any build failures before pushing changes to {% data variables.product.product_name %}. For more information, see "[Testing your {% data variables.product.prodname_pages %} site locally with Jekyll](/articles/testing-your-github-pages-site-locally-with-jekyll)." +## Viewing Jekyll build error messages in your pull request + When you create a pull request to update your publishing source on {% data variables.product.product_name %}, you can see build error messages on the **Checks** tab of the pull request. For more information, see "[About status checks](/pull-requests/collaborating-with-pull-requests/collaborating-on-repositories-with-code-quality-features/about-status-checks)." +## Viewing Jekyll build errors by email + When you push changes to your publishing source on {% data variables.product.product_name %}, {% data variables.product.prodname_pages %} will attempt to build your site. If the build fails, you'll receive an email at your primary email address. You'll also receive emails for build warnings. {% data reusables.pages.build-failure-email-server %} -You can see build failures (but not build warnings) for your site on {% data variables.product.product_name %} in the **Settings** tab of your site's repository. +## Viewing Jekyll build error messages in your pull request with a third-party CI service You can configure a third-party service, such as [Travis CI](https://travis-ci.org/), to display error messages after each commit. diff --git a/translations/es-ES/content/pages/setting-up-a-github-pages-site-with-jekyll/adding-a-theme-to-your-github-pages-site-using-jekyll.md b/translations/es-ES/content/pages/setting-up-a-github-pages-site-with-jekyll/adding-a-theme-to-your-github-pages-site-using-jekyll.md index 1df9bf611d..e93f69bfd4 100644 --- a/translations/es-ES/content/pages/setting-up-a-github-pages-site-with-jekyll/adding-a-theme-to-your-github-pages-site-using-jekyll.md +++ b/translations/es-ES/content/pages/setting-up-a-github-pages-site-with-jekyll/adding-a-theme-to-your-github-pages-site-using-jekyll.md @@ -1,9 +1,9 @@ --- -title: Agregar un tema a tu sitio de Páginas de GitHub con Jekyll -intro: Puedes personalizar tu sitio Jekyll agregando y personalizando un tema. +title: Adding a theme to your GitHub Pages site using Jekyll +intro: You can personalize your Jekyll site by adding and customizing a theme. redirect_from: - - /articles/customizing-css-and-html-in-your-jekyll-theme/ - - /articles/adding-a-jekyll-theme-to-your-github-pages-site/ + - /articles/customizing-css-and-html-in-your-jekyll-theme + - /articles/adding-a-jekyll-theme-to-your-github-pages-site - /articles/adding-a-theme-to-your-github-pages-site-using-jekyll - /github/working-with-github-pages/adding-a-theme-to-your-github-pages-site-using-jekyll product: '{% data reusables.gated-features.pages %}' @@ -14,28 +14,30 @@ versions: ghec: '*' topics: - Pages -shortTitle: Agregar un tema al sitio de páginas +shortTitle: Add theme to Pages site --- -Las personas con permisos de escritura para un repositorio pueden agregar un tema a un sitio de {% data variables.product.prodname_pages %} con Jekyll. +People with write permissions for a repository can add a theme to a {% data variables.product.prodname_pages %} site using Jekyll. {% data reusables.pages.test-locally %} -## Agregar un tema +## Adding a theme {% data reusables.pages.navigate-site-repo %} {% data reusables.pages.navigate-publishing-source %} -2. Navega hasta *_config.yml*. +2. Navigate to *_config.yml*. {% data reusables.repositories.edit-file %} -4. Agrega una nueva línea al archivo para el nombre del tema. - - Para utilizar un tema compatible, teclea `theme: THEME-NAME`, reemplazando _THEME-NAME_ con el nombre del tema como se muestra en el archivo README del repositorio del tema. Para conocer la lista de temas compatibles, consulta "[Temas compatibles](https://pages.github.com/themes/)" en el sitio de {% data variables.product.prodname_pages %}. ![Tema compatible en el archivo de configuración](/assets/images/help/pages/add-theme-to-config-file.png) - - Para usar cualquier otro tema de Jekyll alojado en {% data variables.product.prodname_dotcom %}, escribe `remote_theme: THEME-NAME`, reemplazando THEME-NAME por el nombre del tema, tal como se muestra en el README del repositorio del tema. ![Tema no compatible en el archivo de configuración](/assets/images/help/pages/add-remote-theme-to-config-file.png) +4. Add a new line to the file for the theme name. + - To use a supported theme, type `theme: THEME-NAME`, replacing _THEME-NAME_ with the name of the theme as shown in the README of the theme's repository. For a list of supported themes, see "[Supported themes](https://pages.github.com/themes/)" on the {% data variables.product.prodname_pages %} site. + ![Supported theme in config file](/assets/images/help/pages/add-theme-to-config-file.png) + - To use any other Jekyll theme hosted on {% data variables.product.prodname_dotcom %}, type `remote_theme: THEME-NAME`, replacing THEME-NAME with the name of the theme as shown in the README of the theme's repository. + ![Unsupported theme in config file](/assets/images/help/pages/add-remote-theme-to-config-file.png) {% data reusables.files.write_commit_message %} {% data reusables.files.choose-commit-email %} {% data reusables.files.choose_commit_branch %} {% data reusables.files.propose_file_change %} -## Personalizar el CSS de tu tema +## Customizing your theme's CSS {% data reusables.pages.best-with-supported-themes %} @@ -43,31 +45,31 @@ Las personas con permisos de escritura para un repositorio pueden agregar un tem {% data reusables.pages.navigate-site-repo %} {% data reusables.pages.navigate-publishing-source %} -1. Crea un archivo nuevo denominado _/assets/css/style.scss_. -2. Agrega el siguiente contenido en la parte superior del archivo: +1. Create a new file called _/assets/css/style.scss_. +2. Add the following content to the top of the file: ```scss --- --- @import "{{ site.theme }}"; ``` -3. Agrega cualquier CSS o Sass personalizado que quieras (incluidas importaciones) inmediatamente después de la línea `@import`. +3. Add any custom CSS or Sass (including imports) you'd like immediately after the `@import` line. -## Personalizar el diseño HTML de tu tema +## Customizing your theme's HTML layout {% data reusables.pages.best-with-supported-themes %} {% data reusables.pages.theme-customization-help %} -1. En {% data variables.product.prodname_dotcom %}, desplázate hasta el repositorio fuente de tu tema. Por ejemplo, el repositorio fuente para Minima es https://github.com/jekyll/minima. -2. En la carpeta *_layouts*, desplázate hasta el archivo _default.html_ de tu tema. -3. Copia los contenidos del archivo. +1. On {% data variables.product.prodname_dotcom %}, navigate to your theme's source repository. For example, the source repository for Minima is https://github.com/jekyll/minima. +2. In the *_layouts* folder, navigate to your theme's _default.html_ file. +3. Copy the contents of the file. {% data reusables.pages.navigate-site-repo %} {% data reusables.pages.navigate-publishing-source %} -6. Crea un archivo denominado *_layouts/default.html*. -7. Pega el contenido del diseño personalizado que copiaste anteriormente. -8. Personaliza el diseño como desees. +6. Create a file called *_layouts/default.html*. +7. Paste the default layout content you copied earlier. +8. Customize the layout as you'd like. -## Leer más +## Further reading -- "[Crear archivos nuevos](/articles/creating-new-files)" +- "[Creating new files](/articles/creating-new-files)" diff --git a/translations/es-ES/content/pages/setting-up-a-github-pages-site-with-jekyll/creating-a-github-pages-site-with-jekyll.md b/translations/es-ES/content/pages/setting-up-a-github-pages-site-with-jekyll/creating-a-github-pages-site-with-jekyll.md index a39718836b..43c4262281 100644 --- a/translations/es-ES/content/pages/setting-up-a-github-pages-site-with-jekyll/creating-a-github-pages-site-with-jekyll.md +++ b/translations/es-ES/content/pages/setting-up-a-github-pages-site-with-jekyll/creating-a-github-pages-site-with-jekyll.md @@ -119,6 +119,7 @@ $ git remote add origin https://HOSTNAME/USER/REPOSITORY Configuration file: /Users/octocat/my-site/_config.yml @@ -48,17 +48,17 @@ Antes de que puedas usar Jekyll para probar un sitio, debes hacer lo siguiente: > Server address: http://127.0.0.1:4000/ > Server running... press ctrl-c to stop. ``` -3. Para previsualizar tu sitio, en tu navegador web, navega hasta `http://localhost:4000`. +3. To preview your site, in your web browser, navigate to `http://localhost:4000`. -## Actualizar la gema de {% data variables.product.prodname_pages %} +## Updating the {% data variables.product.prodname_pages %} gem -Jekyll es un proyecto de código abierto activo que se actualiza de manera frecuente. Si la gema de `github-pages` de tu computadora está desactualizada con respecto a la gema de `github-pages` del servidor de {% data variables.product.prodname_pages %}, tu sitio puede verse diferente cuando se compile localmente en comparación a cómo se vea cuando se publique en {% data variables.product.product_name %}. Para evitar esto, actualiza de manera regular la gema de `github-pages` en tu computadora. +Jekyll is an active open source project that is updated frequently. If the `github-pages` gem on your computer is out of date with the `github-pages` gem on the {% data variables.product.prodname_pages %} server, your site may look different when built locally than when published on {% data variables.product.product_name %}. To avoid this, regularly update the `github-pages` gem on your computer. {% data reusables.command_line.open_the_multi_os_terminal %} -2. Actualiza la gema de `github-pages`. - - Si instalaste Bundler, ejecuta `bundle update github-pages`. - - Si no tienes instalado Bundler, ejecuta `gem update github-pages`. +2. Update the `github-pages` gem. + - If you installed Bundler, run `bundle update github-pages`. + - If you don't have Bundler installed, run `gem update github-pages`. -## Leer más +## Further reading -- [{% data variables.product.prodname_pages %}](http://jekyllrb.com/docs/github-pages/) en la documentación de Jekyll +- [{% data variables.product.prodname_pages %}](http://jekyllrb.com/docs/github-pages/) in the Jekyll documentation diff --git a/translations/es-ES/content/pages/setting-up-a-github-pages-site-with-jekyll/troubleshooting-jekyll-build-errors-for-github-pages-sites.md b/translations/es-ES/content/pages/setting-up-a-github-pages-site-with-jekyll/troubleshooting-jekyll-build-errors-for-github-pages-sites.md index 1c37b0c00b..6f54aa966b 100644 --- a/translations/es-ES/content/pages/setting-up-a-github-pages-site-with-jekyll/troubleshooting-jekyll-build-errors-for-github-pages-sites.md +++ b/translations/es-ES/content/pages/setting-up-a-github-pages-site-with-jekyll/troubleshooting-jekyll-build-errors-for-github-pages-sites.md @@ -1,28 +1,28 @@ --- -title: Solucionar problemas de errores de compilación de Jekyll para sitios de Páginas de GitHub -intro: 'Puedes usar los mensajes de error de compilación de Jekyll para solucionar los problemas de tu sitio de {% data variables.product.prodname_pages %}.' +title: Troubleshooting Jekyll build errors for GitHub Pages sites +intro: 'You can use Jekyll build error messages to troubleshoot problems with your {% data variables.product.prodname_pages %} site.' redirect_from: - - /articles/page-build-failed-missing-docs-folder/ - - /articles/page-build-failed-invalid-submodule/ - - /articles/page-build-failed-missing-submodule/ - - /articles/page-build-failed-markdown-errors/ - - /articles/page-build-failed-config-file-error/ - - /articles/page-build-failed-unknown-tag-error/ - - /articles/page-build-failed-tag-not-properly-terminated/ - - /articles/page-build-failed-tag-not-properly-closed/ - - /articles/page-build-failed-file-does-not-exist-in-includes-directory/ - - /articles/page-build-failed-file-is-a-symlink/ - - /articles/page-build-failed-symlink-does-not-exist-within-your-sites-repository/ - - /articles/page-build-failed-file-is-not-properly-utf-8-encoded/ - - /articles/page-build-failed-invalid-post-date/ - - /articles/page-build-failed-invalid-sass-or-scss/ - - /articles/page-build-failed-invalid-highlighter-language/ - - /articles/page-build-failed-relative-permalinks-configured/ - - /articles/page-build-failed-syntax-error-in-for-loop/ - - /articles/page-build-failed-invalid-yaml-in-data-file/ - - /articles/page-build-failed-date-is-not-a-valid-datetime/ - - /articles/troubleshooting-github-pages-builds/ - - /articles/troubleshooting-jekyll-builds/ + - /articles/page-build-failed-missing-docs-folder + - /articles/page-build-failed-invalid-submodule + - /articles/page-build-failed-missing-submodule + - /articles/page-build-failed-markdown-errors + - /articles/page-build-failed-config-file-error + - /articles/page-build-failed-unknown-tag-error + - /articles/page-build-failed-tag-not-properly-terminated + - /articles/page-build-failed-tag-not-properly-closed + - /articles/page-build-failed-file-does-not-exist-in-includes-directory + - /articles/page-build-failed-file-is-a-symlink + - /articles/page-build-failed-symlink-does-not-exist-within-your-sites-repository + - /articles/page-build-failed-file-is-not-properly-utf-8-encoded + - /articles/page-build-failed-invalid-post-date + - /articles/page-build-failed-invalid-sass-or-scss + - /articles/page-build-failed-invalid-highlighter-language + - /articles/page-build-failed-relative-permalinks-configured + - /articles/page-build-failed-syntax-error-in-for-loop + - /articles/page-build-failed-invalid-yaml-in-data-file + - /articles/page-build-failed-date-is-not-a-valid-datetime + - /articles/troubleshooting-github-pages-builds + - /articles/troubleshooting-jekyll-builds - /articles/troubleshooting-jekyll-build-errors-for-github-pages-sites - /github/working-with-github-pages/troubleshooting-jekyll-build-errors-for-github-pages-sites product: '{% data reusables.gated-features.pages %}' @@ -33,161 +33,161 @@ versions: ghec: '*' topics: - Pages -shortTitle: Solucionar los errores de Jekyll +shortTitle: Troubleshoot Jekyll errors --- -## Solucionar problemas de errores de compilación +## Troubleshooting build errors -Si Jekyll encuentra un error al compilar tu sitio de {% data variables.product.prodname_pages %} localmente o en {% data variables.product.product_name %}, puede usar los mensajes de error para solucionar los problemas. Para obtener más información acerca de los mensajes de error y de cómo verlos, consulta "[Acerca de los errores de compilación de Jekyll para sitios de {% data variables.product.prodname_pages %}](/articles/about-jekyll-build-errors-for-github-pages-sites)". +If Jekyll encounters an error building your {% data variables.product.prodname_pages %} site locally or on {% data variables.product.product_name %}, you can use error messages to troubleshoot. For more information about error messages and how to view them, see "[About Jekyll build errors for {% data variables.product.prodname_pages %} sites](/articles/about-jekyll-build-errors-for-github-pages-sites)." -Si recibiste un mensaje de error genérico, revisa los problemas comunes. -- Estás usando plugins no compatibles. Para obtener más información, consulta "[Acerca de las {% data variables.product.prodname_pages %} y Jekyll](/articles/about-github-pages-and-jekyll#plugins)".{% ifversion fpt or ghec %} -- Tu repositorio ha excedido nuestros límites de tamaño del repositorio. Para obtener más información, consulta "[¿Cuál es mi cuota de disco?](/articles/what-is-my-disk-quota)"{% endif %} -- Cambiaste el parámetro `fuente` de tu archivo *_config.yml*. {% data variables.product.prodname_pages %} reemplaza este parámetro durante el proceso de compilación. -- Un nombre de archivo en tu fuente de publicación contiene dos puntos (`:`), los cuales no se admiten. +If you received a generic error message, check for common issues. +- You're using unsupported plugins. For more information, see "[About {% data variables.product.prodname_pages %} and Jekyll](/articles/about-github-pages-and-jekyll#plugins)."{% ifversion fpt or ghec %} +- Your repository has exceeded our repository size limits. For more information, see "[What is my disk quota?](/articles/what-is-my-disk-quota)"{% endif %} +- You changed the `source` setting in your *_config.yml* file. {% data variables.product.prodname_pages %} overrides this setting during the build process. +- A filename in your publishing source contains a colon (`:`) which is not supported. -Si recibiste un mensaje de error específico, revisa la información de solución de problemas para el mensaje de error que aparece a continuación. +If you received a specific error message, review the troubleshooting information for the error message below. -Después de haber corregido los errores, sube los cambios a la fuente de publicación de tu sitio para activar otra compilación en {% data variables.product.product_name %}. +After you've fixed any errors, push the changes to your site's publishing source to trigger another build on {% data variables.product.product_name %}. -## Error de archivo de configuración +## Config file error -Este error significa que su sitio no se pudo compilar porque el archivo *_config.yml* contiene errores de sintaxis. +This error means that your site failed to build because the *_config.yml* file contains syntax errors. -Para solucionar el problema, asegúrate de que tu archivo *_config.yml* respete estas reglas: +To troubleshoot, make sure that your *_config.yml* file follows these rules: {% data reusables.pages.yaml-rules %} {% data reusables.pages.yaml-linter %} -## La fecha no es una fecha válida +## Date is not a valid datetime -Este error significa que una de las páginas de tu sitio incluye una fecha inválida. +This error means that one of the pages on your site includes an invalid datetime. -Para solucionar el problema, busca el archivo en el mensaje de error y los diseños del archivo para encontrar llamadas a cualquier filtro Liquid relacionado con la fecha. Asegúrate de que todas las variables ingresadas en los filtros Liquid relacionados con la fecha contengan valores en todos los casos y nunca ingreses `nil` o `""`. Para obtener más información, consulta "[Filtros Liquid](https://help.shopify.com/en/themes/liquid/filters)" en la documentación de Liquid. +To troubleshoot, search the file in the error message and the file's layouts for calls to any date-related Liquid filters. Make sure that any variables passed into date-related Liquid filters have values in all cases and never pass `nil` or `""`. For more information, see "[Liquid filters](https://help.shopify.com/en/themes/liquid/filters)" in the Liquid documentation. -## El archivo no existe en el directorio includes +## File does not exist in includes directory -Este error significa que tu código hace referencia a un archivo que no existe en el directorio *_includes*. +This error means that your code references a file that doesn't exist in your *_includes* directory. -{% data reusables.pages.search-for-includes %} Si alguno de los archivos a los que has hecho referencia no se encuentra en el directorio *_includes*, copia o mueve los archivos al directorio *_includes*. +{% data reusables.pages.search-for-includes %} If any of the files you've referenced aren't in the *_includes* directory, copy or move the files into the *_includes* directory. -## El archivo es un enlace simbólico +## File is a symlink -Este error significa que tu código hace referencia a un archivo simbólico que no existe en la fuente de publicación de tu sitio. +This error means that your code references a symlinked file that does not exist in the publishing source for your site. -{% data reusables.pages.search-for-includes %} Si alguno de los archivos a los que has hecho referencia es un enlace simbólico, copia o mueve los archivos al directorio *_includes*. +{% data reusables.pages.search-for-includes %} If any of the files you've referenced are symlinked, copy or move the files into the *_includes* directory. -## El archivo no está correctamente codificado en UTF-8 +## File is not properly UTF-8 encoded -Este error significa que usaste caracteres no latinos, como `日本語`, sin decirle a la computadora que esperara estos símbolos. +This error means that you used non-Latin characters, like `日本語`, without telling the computer to expect these symbols. -Para solucionar el problema, fuerza la codificación en UTF-8 agregando la siguiente línea a tu archivo *_config.yml*: +To troubleshoot, force UTF-8 encoding by adding the following line to your *_config.yml* file: ```yaml -codificación: UTF-8 +encoding: UTF-8 ``` -## Lenguaje de resaltado inválido +## Invalid highlighter language -Este error significa que has especificado un resaltador de sintaxis distinto de [Rouge](https://github.com/jneen/rouge) o [Pygments](http://pygments.org/) en tu archivo de configuración. +This error means that you specified any syntax highlighter other than [Rouge](https://github.com/jneen/rouge) or [Pygments](http://pygments.org/) in your configuration file. -Para solucionar el problema, actualiza tu archivo *_config.yml* para especificar [Rouge](https://github.com/jneen/rouge) o [Pygments](http://pygments.org/). Para obtener más información, consulta "[Acerca de las {% data variables.product.product_name %} y Jekyll](/articles/about-github-pages-and-jekyll#syntax-highlighting)". +To troubleshoot, update your *_config.yml* file to specify [Rouge](https://github.com/jneen/rouge) or [Pygments](http://pygments.org/). For more information, see "[About {% data variables.product.product_name %} and Jekyll](/articles/about-github-pages-and-jekyll#syntax-highlighting)." -## Fecha de publicación inválida +## Invalid post date -Este error significa que una publicación en tu sitio contiene una fecha inválida en el nombre de archivo o en el asunto de la parte delantera de YAML. +This error means that a post on your site contains an invalid date in the filename or YAML front matter. -Para solucionar el problema, asegúrate de que todas las fechas tengan el formato de AAAA-MM-DD HH:MM:SS para UTC y que sean fechas del calendario reales. Para especificar una zona horaria con un desplazamiento desde UTC, utiliza el formato AAAA-MM-DD HH:MM:SS +/-TTTT, como `2014-04-18 11:30:00 +0800`. +To troubleshoot, make sure all dates are formatted as YYYY-MM-DD HH:MM:SS for UTC and are actual calendar dates. To specify a time zone with an offset from UTC, use the format YYYY-MM-DD HH:MM:SS +/-TTTT, like `2014-04-18 11:30:00 +0800`. -Si especificas un formato de fecha en tu archivo *_config.yml*, asegúrate de que tenga el formato correcto. +If you specify a date format in your *_config.yml* file, make sure the format is correct. -## Sass o SCSS inválido +## Invalid Sass or SCSS -Este error significa que tu repositorio contiene un archivo Sass o SCSS con contenido inválido. +This error means your repository contains a Sass or SCSS file with invalid content. -Para solucionar el problema, revisa el número de línea incluido en el mensaje de error para el Sass o SCSS inválido. Para ayudar a prevenir errores futuros, instala un limpiador de Sass o SCSS para tu editor de texto favorito. +To troubleshoot, review the line number included in the error message for invalid Sass or SCSS. To help prevent future errors, install a Sass or SCSS linter for your favorite text editor. -## Submódulo inválido +## Invalid submodule -Este error significa que tu repositorio incluye un submódulo que no se ha iniciado correctamente. +This error means that your repository includes a submodule that hasn't been properly initialized. {% data reusables.pages.remove-submodule %} -Si quieres usar el submódulo, asegúrate de usar `https://` cuando hagas referencia al submódulo (no `http://`) y que el submódulo esté en un repositorio público. +If do you want to use the submodule, make sure you use `https://` when referencing the submodule (not `http://`) and that the submodule is in a public repository. -## YAML inválido en el archivo de datos +## Invalid YAML in data file -Este error significa que uno o más archivos en la carpeta *_data* contiene un YAML inválido. +This error means that one of more files in the *_data* folder contains invalid YAML. -Para solucionar el problema, asegúrate de que tu archivo YAML de la carpeta *_data* respete estas reglas: +To troubleshoot, make sure the YAML files in your *_data* folder follow these rules: {% data reusables.pages.yaml-rules %} {% data reusables.pages.yaml-linter %} -Para obtener más información sobre los archivos de datos de Jekyll, consulta "[Archivos de datos](https://jekyllrb.com/docs/datafiles/)" en la documentación de Jekyll. +For more information about Jekyll data files, see "[Data Files](https://jekyllrb.com/docs/datafiles/)" in the Jekyll documentation. -## Errores de Markdown +## Markdown errors -Este error significa que tu repositorio contiene errores de Markdown. +This error means that your repository contains Markdown errors. -Para solucionar el problema, asegúrate de estar usando un procesador Markdown compatible. Para obtener más información, consulta "[Configurar un procesador Markdown para tu sitio de {% data variables.product.prodname_pages %} usando Jekyll](/articles/setting-a-markdown-processor-for-your-github-pages-site-using-jekyll)". +To troubleshoot, make sure you are using a supported Markdown processor. For more information, see "[Setting a Markdown processor for your {% data variables.product.prodname_pages %} site using Jekyll](/articles/setting-a-markdown-processor-for-your-github-pages-site-using-jekyll)." -Luego asegúrate de que el archivo del mensaje de error utilice una sintaxis Markdown válida. Para obtener más información, consulta "[Markdown: sintaxis](https://daringfireball.net/projects/markdown/syntax)" en Daring Fireball. +Then, make sure the file in the error message uses valid Markdown syntax. For more information, see "[Markdown: Syntax](https://daringfireball.net/projects/markdown/syntax)" on Daring Fireball. -## Falta carpeta de docs +## Missing docs folder -Este error significa que has elegido la carpeta `docs` en una rama como tu fuente de publicación, pero no hay una carpeta `docs` en la raíz de tu repositorio en esa rama. +This error means that you have chosen the `docs` folder on a branch as your publishing source, but there is no `docs` folder in the root of your repository on that branch. -Para solucionar el problema, si tu carpeta `docs` se movió accidentalmente, trata de volver a mover la carpeta `docs` a la raíz de tu repositorio en la rama que elegiste como tu fuente de publicación. Si la carpeta `docs` se eliminó accidentalmente, también puedes hacer lo siguiente: -- Usar Git para revertir o deshacer la eliminación. Para obtener más información, consulta "[git-revert](https://git-scm.com/docs/git-revert.html)" en la documentación de Git. -- Crea una carpeta de `docs` nueva en la raíz de tu repositorio en la rama que elegiste para ser tu fuente de publicación y agrega los archivos fuente de tu sitio a la carpeta. Para obtener más información, consulta "[Crear nuevos archivos](/articles/creating-new-files)." -- Cambiar tu fuente de publicación. Para obtener más información, consulta "[Configurar una fuente de publicación para {% data variables.product.prodname_pages %}](/articles/configuring-a-publishing-source-for-github-pages)". +To troubleshoot, if your `docs` folder was accidentally moved, try moving the `docs` folder back to the root of your repository on the branch you chose for your publishing source. If the `docs` folder was accidentally deleted, you can either: +- Use Git to revert or undo the deletion. For more information, see "[git-revert](https://git-scm.com/docs/git-revert.html)" in the Git documentation. +- Create a new `docs` folder in the root of your repository on the branch you chose for your publishing source and add your site's source files to the folder. For more information, see "[Creating new files](/articles/creating-new-files)." +- Change your publishing source. For more information, see "[Configuring a publishing source for {% data variables.product.prodname_pages %}](/articles/configuring-a-publishing-source-for-github-pages)." -## Falta submódulo +## Missing submodule -Este error significa que tu repositorio incluye un submódulo que no existe o no se ha iniciado correctamente. +This error means that your repository includes a submodule that doesn't exist or hasn't been properly initialized. {% data reusables.pages.remove-submodule %} -Si quieres utilizar un submódulo, inicia el submódulo. Para obtener más información, consulta "[Herramientas Git - Submódulos](https://git-scm.com/book/en/v2/Git-Tools-Submodules)" en el libro _Pro Git_. +If you do want to use a submodule, initialize the submodule. For more information, see "[Git Tools - Submodules](https://git-scm.com/book/en/v2/Git-Tools-Submodules)" in the _Pro Git_ book. -## Enlaces permanentes relativos configurados +## Relative permalinks configured -Este error significa que tienes enlaces permanentes relativos que no son compatibles con {% data variables.product.prodname_pages %} en tu archivo *_config.yml*. +This errors means that you have relative permalinks, which are not supported by {% data variables.product.prodname_pages %}, in your *_config.yml* file. -Los enlaces permanentes son URL permanentes que hacen referencia a una página particular en tu sitio. Los enlaces permanentes absolutos comienzan con la raíz del sitio, mientras que los enlaces permanentes relativos comienzan con la carpeta que contiene la página referenciada. {% data variables.product.prodname_pages %} y Jekyll ya no admiten enlaces permanentes relativos. Para obtener más información acerca de los enlaces permanentes, consulta "[Enlaces permanentes](https://jekyllrb.com/docs/permalinks/)" en la documentación de Jekyll. +Permalinks are permanent URLs that reference a particular page on your site. Absolute permalinks begin with the root of the site, while relative permalinks begin with the folder containing the referenced page. {% data variables.product.prodname_pages %} and Jekyll no longer support relative permalinks. For more information about permalinks, see "[Permalinks](https://jekyllrb.com/docs/permalinks/)" in the Jekyll documentation. -Para solucionar el problema, elimina la línea `relativa_permalinks` de tu archivo *_config.yml* y vuelve a formatear cualquier enlace permanente relativo de tu sitio con enlaces permanentes absolutos. Para obtener más información, consulta la sección "[Editar archivos](/repositories/working-with-files/managing-files/editing-files)". +To troubleshoot, remove the `relative_permalinks` line from your *_config.yml* file and reformat any relative permalinks in your site with absolute permalinks. For more information, see "[Editing files](/repositories/working-with-files/managing-files/editing-files)." -## El enlace simbólico no existe dentro del repositorio de tu sitio +## Symlink does not exist within your site's repository -Este error significa que tu sitio incluye un enlace simbólico (symlink) que no existe en la fuente de publicación de tu sitio. Para obtener más información acerca de los enlaces simbólicos, consulta "[Enlace simbólico](https://en.wikipedia.org/wiki/Symbolic_link)" en Wikipedia. +This error means that your site includes a symbolic link (symlink) that does not exist in the publishing source for your site. For more information about symlinks, see "[Symbolic link](https://en.wikipedia.org/wiki/Symbolic_link)" on Wikipedia. -Para solucionar el problema, determina si el archivo en el mensaje de error se utiliza para compilar tu sitio. De lo contrario, o si no quieres que el archivo sea un enlace simbólico, elimina el archivo. Si el archivo de enlace simbólico se necesita para compilar tu sitio, asegúrate de que el archivo o el directorio al que hace referencia el enlace simbólico esté en la fuente de publicación de tu sitio. Para incluir activos externos, considera usar {% ifversion fpt or ghec %}`submódulo de git` o {% endif %}un administrador de paquetes de terceros como [Bower](https://bower.io/).{% ifversion fpt or ghec %} Para obtener más información, consulta "[Usar submódulos con las {% data variables.product.prodname_pages %}](/articles/using-submodules-with-github-pages)".{% endif %} +To troubleshoot, determine if the file in the error message is used to build your site. If not, or if you don't want the file to be a symlink, delete the file. If the symlinked file is necessary to build your site, make sure the file or directory the symlink references is in the publishing source for your site. To include external assets, consider using {% ifversion fpt or ghec %}`git submodule` or {% endif %}a third-party package manager such as [Bower](https://bower.io/).{% ifversion fpt or ghec %} For more information, see "[Using submodules with {% data variables.product.prodname_pages %}](/articles/using-submodules-with-github-pages)."{% endif %} -## Error de sintaxis en el bucle 'for' +## Syntax error in 'for' loop -Este error significa que tu código incluye una sintaxis inválida en una declaración de bucle `for` de Liquid. +This error means that your code includes invalid syntax in a Liquid `for` loop declaration. -Para solucionar el problema, asegúrate de que todos los bucles `for` en el archivo del mensaje de error tengan una sintaxis adecuada. Para obtener más información acerca de la sintaxis adecuada para los bucles `for`, consulta "[Etiquetas de iteración](https://help.shopify.com/en/themes/liquid/tags/iteration-tags#for)" en la documentación de Liquid. +To troubleshoot, make sure all `for` loops in the file in the error message have proper syntax. For more information about proper syntax for `for` loops, see "[Iteration tags](https://help.shopify.com/en/themes/liquid/tags/iteration-tags#for)" in the Liquid documentation. -## Etiqueta no cerrada correctamente +## Tag not properly closed -Este mensaje de error significa que tu código incluye una etiqueta lógica que no está correctamente cerrada. Por ejemplo, {% raw %}`{% capture example_variable %}` debe estar cerrada con `{% endcapture %}`{% endraw %}. +This error message means that your code includes a logic tag that is not properly closed. For example, {% raw %}`{% capture example_variable %}` must be closed by `{% endcapture %}`{% endraw %}. -Para solucionar el problema, asegúrate de que todas las etiquetas lógicas en el archivo del mensaje de error estén correctamente cerradas. Para obtener más información, consulta "[Etiquetas de Liquid](https://help.shopify.com/en/themes/liquid/tags)" en la documentación de Liquid. +To troubleshoot, make sure all logic tags in the file in the error message are properly closed. For more information, see "[Liquid tags](https://help.shopify.com/en/themes/liquid/tags)" in the Liquid documentation. -## Etiqueta no finalizada correctamente +## Tag not properly terminated -Este error significa que tu código incluye una etiqueta de salida que no está correctamente finalizada. Por ejemplo, {% raw %}`{{ page.title }` en lugar de `{{ page.title }}`{% endraw %}. +This error means that your code includes an output tag that is not properly terminated. For example, {% raw %}`{{ page.title }` instead of `{{ page.title }}`{% endraw %}. -Para solucionar el problema, asegúrate de que todas las etiquetas de salida en el archivo del mensaje de error finalicen con `}}`. Para obtener más información, consulta "[Objetos de Liquid](https://help.shopify.com/en/themes/liquid/objects)" en la documentación de Liquid. +To troubleshoot, make sure all output tags in the file in the error message are terminated with `}}`. For more information, see "[Liquid objects](https://help.shopify.com/en/themes/liquid/objects)" in the Liquid documentation. -## Error de etiqueta desconocido +## Unknown tag error -Este error significa que tu código contiene una etiqueta de Liquid no reconocida. +This error means that your code contains an unrecognized Liquid tag. -Para solucionar el problema, asegúrate de que todas las etiquetas de Liquid en el archivo del mensaje de error coincidan con las variables predeterminadas de Jekyll y que no haya ningún error de escritura en los nombres de las etiquetas. Para encontrar una lista de variables predeterminadas, consulta la sección "[Variables](https://jekyllrb.com/docs/variables/)" en la documentación de Jekyll. +To troubleshoot, make sure all Liquid tags in the file in the error message match Jekyll's default variables and there are no typos in the tag names. For a list of default variables, see "[Variables](https://jekyllrb.com/docs/variables/)" in the Jekyll documentation. -Los plugins no compatibles son una fuente común de etiquetas no reconocidas. Si usas un plugin no compatible en tu sitio cuando lo generas localmente y subes tus archivos estáticos a {% data variables.product.product_name %}, asegúrate de que el plugin no esté introduciendo etiquetas que no están en las variables predeterminadas de Jekyll. Para obtener una lista de plugin compatibles, consulta "[Acerca de las {% data variables.product.prodname_pages %} y Jekyll](/articles/about-github-pages-and-jekyll#plugins)". +Unsupported plugins are a common source of unrecognized tags. If you use an unsupported plugin in your site by generating your site locally and pushing your static files to {% data variables.product.product_name %}, make sure the plugin is not introducing tags that are not in Jekyll's default variables. For a list of supported plugins, see "[About {% data variables.product.prodname_pages %} and Jekyll](/articles/about-github-pages-and-jekyll#plugins)." diff --git a/translations/es-ES/content/pull-requests/collaborating-with-pull-requests/addressing-merge-conflicts/index.md b/translations/es-ES/content/pull-requests/collaborating-with-pull-requests/addressing-merge-conflicts/index.md index 44678e584b..c9264010b1 100644 --- a/translations/es-ES/content/pull-requests/collaborating-with-pull-requests/addressing-merge-conflicts/index.md +++ b/translations/es-ES/content/pull-requests/collaborating-with-pull-requests/addressing-merge-conflicts/index.md @@ -2,7 +2,7 @@ title: Addressing merge conflicts intro: 'If your changes have merge conflicts with the base branch, you must address the merge conflicts before you can merge your pull request''s changes.' redirect_from: - - /github/collaborating-with-issues-and-pull-requests/addressing-merge-conflicts/ + - /github/collaborating-with-issues-and-pull-requests/addressing-merge-conflicts - /articles/addressing-merge-conflicts - /github/collaborating-with-pull-requests/addressing-merge-conflicts versions: diff --git a/translations/es-ES/content/pull-requests/collaborating-with-pull-requests/addressing-merge-conflicts/resolving-a-merge-conflict-using-the-command-line.md b/translations/es-ES/content/pull-requests/collaborating-with-pull-requests/addressing-merge-conflicts/resolving-a-merge-conflict-using-the-command-line.md index bfd0602a92..7354246bea 100644 --- a/translations/es-ES/content/pull-requests/collaborating-with-pull-requests/addressing-merge-conflicts/resolving-a-merge-conflict-using-the-command-line.md +++ b/translations/es-ES/content/pull-requests/collaborating-with-pull-requests/addressing-merge-conflicts/resolving-a-merge-conflict-using-the-command-line.md @@ -3,7 +3,7 @@ title: Resolving a merge conflict using the command line intro: You can resolve merge conflicts using the command line and a text editor. redirect_from: - /github/collaborating-with-issues-and-pull-requests/addressing-merge-conflicts/resolving-a-merge-conflict-using-the-command-line - - /articles/resolving-a-merge-conflict-from-the-command-line/ + - /articles/resolving-a-merge-conflict-from-the-command-line - /articles/resolving-a-merge-conflict-using-the-command-line - /github/collaborating-with-issues-and-pull-requests/resolving-a-merge-conflict-using-the-command-line - /github/collaborating-with-pull-requests/addressing-merge-conflicts/resolving-a-merge-conflict-using-the-command-line diff --git a/translations/es-ES/content/pull-requests/collaborating-with-pull-requests/collaborating-on-repositories-with-code-quality-features/about-status-checks.md b/translations/es-ES/content/pull-requests/collaborating-with-pull-requests/collaborating-on-repositories-with-code-quality-features/about-status-checks.md index f0b3bb65b3..a578538671 100644 --- a/translations/es-ES/content/pull-requests/collaborating-with-pull-requests/collaborating-on-repositories-with-code-quality-features/about-status-checks.md +++ b/translations/es-ES/content/pull-requests/collaborating-with-pull-requests/collaborating-on-repositories-with-code-quality-features/about-status-checks.md @@ -3,7 +3,7 @@ title: About status checks intro: Status checks let you know if your commits meet the conditions set for the repository you're contributing to. redirect_from: - /github/collaborating-with-issues-and-pull-requests/collaborating-on-repositories-with-code-quality-features/about-status-checks - - /articles/about-statuses/ + - /articles/about-statuses - /articles/about-status-checks - /github/collaborating-with-issues-and-pull-requests/about-status-checks - /github/collaborating-with-pull-requests/collaborating-on-repositories-with-code-quality-features/about-status-checks diff --git a/translations/es-ES/content/pull-requests/collaborating-with-pull-requests/collaborating-on-repositories-with-code-quality-features/index.md b/translations/es-ES/content/pull-requests/collaborating-with-pull-requests/collaborating-on-repositories-with-code-quality-features/index.md index ef4da4c419..04a027d1a8 100644 --- a/translations/es-ES/content/pull-requests/collaborating-with-pull-requests/collaborating-on-repositories-with-code-quality-features/index.md +++ b/translations/es-ES/content/pull-requests/collaborating-with-pull-requests/collaborating-on-repositories-with-code-quality-features/index.md @@ -2,8 +2,8 @@ title: Collaborating on repositories with code quality features intro: 'Workflow quality features like statuses, {% ifversion ghes %}pre-receive hooks, {% endif %}protected branches, and required status checks help collaborators make contributions that meet conditions set by organization and repository administrators.' redirect_from: - - /github/collaborating-with-issues-and-pull-requests/collaborating-on-repositories-with-code-quality-features/ - - /articles/collaborating-on-repositories-with-code-quality-features-enabled/ + - /github/collaborating-with-issues-and-pull-requests/collaborating-on-repositories-with-code-quality-features + - /articles/collaborating-on-repositories-with-code-quality-features-enabled - /articles/collaborating-on-repositories-with-code-quality-features - /github/collaborating-with-pull-requests/collaborating-on-repositories-with-code-quality-features versions: diff --git a/translations/es-ES/content/pull-requests/collaborating-with-pull-requests/getting-started/about-collaborative-development-models.md b/translations/es-ES/content/pull-requests/collaborating-with-pull-requests/getting-started/about-collaborative-development-models.md index 19d228c570..4edfc60e28 100644 --- a/translations/es-ES/content/pull-requests/collaborating-with-pull-requests/getting-started/about-collaborative-development-models.md +++ b/translations/es-ES/content/pull-requests/collaborating-with-pull-requests/getting-started/about-collaborative-development-models.md @@ -3,7 +3,7 @@ title: About collaborative development models intro: The way you use pull requests depends on the type of development model you use in your project. You can use the fork and pull model or the shared repository model. redirect_from: - /github/collaborating-with-issues-and-pull-requests/getting-started/about-collaborative-development-models - - /articles/types-of-collaborative-development-models/ + - /articles/types-of-collaborative-development-models - /articles/about-collaborative-development-models - /github/collaborating-with-issues-and-pull-requests/about-collaborative-development-models - /github/collaborating-with-pull-requests/getting-started/about-collaborative-development-models diff --git a/translations/es-ES/content/pull-requests/collaborating-with-pull-requests/getting-started/index.md b/translations/es-ES/content/pull-requests/collaborating-with-pull-requests/getting-started/index.md index bf0ccff210..1fef23a997 100644 --- a/translations/es-ES/content/pull-requests/collaborating-with-pull-requests/getting-started/index.md +++ b/translations/es-ES/content/pull-requests/collaborating-with-pull-requests/getting-started/index.md @@ -3,7 +3,7 @@ title: Getting started shortTitle: Getting started intro: 'Learn about the {% data variables.product.prodname_dotcom %} flow and different ways to collaborate on and discuss your projects.' redirect_from: - - /github/collaborating-with-issues-and-pull-requests/getting-started/ + - /github/collaborating-with-issues-and-pull-requests/getting-started - /github/collaborating-with-issues-and-pull-requests/overview - /github/collaborating-with-pull-requests/getting-started versions: diff --git a/translations/es-ES/content/pull-requests/collaborating-with-pull-requests/incorporating-changes-from-a-pull-request/about-pull-request-merges.md b/translations/es-ES/content/pull-requests/collaborating-with-pull-requests/incorporating-changes-from-a-pull-request/about-pull-request-merges.md index 5e6f9ca772..cdec1046a8 100644 --- a/translations/es-ES/content/pull-requests/collaborating-with-pull-requests/incorporating-changes-from-a-pull-request/about-pull-request-merges.md +++ b/translations/es-ES/content/pull-requests/collaborating-with-pull-requests/incorporating-changes-from-a-pull-request/about-pull-request-merges.md @@ -3,7 +3,7 @@ title: About pull request merges intro: 'You can [merge pull requests](/pull-requests/collaborating-with-pull-requests/incorporating-changes-from-a-pull-request/merging-a-pull-request) by retaining all the commits in a feature branch, squashing all commits into a single commit, or by rebasing individual commits from the `head` branch onto the `base` branch.' redirect_from: - /github/collaborating-with-issues-and-pull-requests/incorporating-changes-from-a-pull-request/about-pull-request-merges - - /articles/about-pull-request-merge-squashing/ + - /articles/about-pull-request-merge-squashing - /articles/about-pull-request-merges - /github/collaborating-with-issues-and-pull-requests/about-pull-request-merges - /github/collaborating-with-pull-requests/incorporating-changes-from-a-pull-request/about-pull-request-merges diff --git a/translations/es-ES/content/pull-requests/collaborating-with-pull-requests/incorporating-changes-from-a-pull-request/index.md b/translations/es-ES/content/pull-requests/collaborating-with-pull-requests/incorporating-changes-from-a-pull-request/index.md index 69810de580..cf9dabb2ea 100644 --- a/translations/es-ES/content/pull-requests/collaborating-with-pull-requests/incorporating-changes-from-a-pull-request/index.md +++ b/translations/es-ES/content/pull-requests/collaborating-with-pull-requests/incorporating-changes-from-a-pull-request/index.md @@ -2,7 +2,7 @@ title: Incorporating changes from a pull request intro: 'You can propose changes to your work on {% data variables.product.product_name %} through pull requests. Learn how to create, manage, and merge pull requests.' redirect_from: - - /github/collaborating-with-issues-and-pull-requests/incorporating-changes-from-a-pull-request/ + - /github/collaborating-with-issues-and-pull-requests/incorporating-changes-from-a-pull-request - /articles/incorporating-changes-from-a-pull-request - /github/collaborating-with-pull-requests/incorporating-changes-from-a-pull-request versions: diff --git a/translations/es-ES/content/pull-requests/collaborating-with-pull-requests/index.md b/translations/es-ES/content/pull-requests/collaborating-with-pull-requests/index.md index 778d7d9fad..0b40a80858 100644 --- a/translations/es-ES/content/pull-requests/collaborating-with-pull-requests/index.md +++ b/translations/es-ES/content/pull-requests/collaborating-with-pull-requests/index.md @@ -2,12 +2,12 @@ title: Collaborating with pull requests intro: 'Track and discuss changes in issues, then propose and review changes in pull requests.' redirect_from: - - /github/collaborating-with-issues-and-pull-requests/ - - /categories/63/articles/ - - /categories/collaborating/ - - /categories/collaborating-on-projects-using-pull-requests/ - - /categories/collaborating-on-projects-using-issues-and-pull-requests/ - - /categories/collaborating-with-issues-and-pull-requests/ + - /github/collaborating-with-issues-and-pull-requests + - /categories/63/articles + - /categories/collaborating + - /categories/collaborating-on-projects-using-pull-requests + - /categories/collaborating-on-projects-using-issues-and-pull-requests + - /categories/collaborating-with-issues-and-pull-requests - /github/collaborating-with-pull-requests versions: fpt: '*' diff --git a/translations/es-ES/content/pull-requests/collaborating-with-pull-requests/proposing-changes-to-your-work-with-pull-requests/about-branches.md b/translations/es-ES/content/pull-requests/collaborating-with-pull-requests/proposing-changes-to-your-work-with-pull-requests/about-branches.md index b14dec6166..60c225594f 100644 --- a/translations/es-ES/content/pull-requests/collaborating-with-pull-requests/proposing-changes-to-your-work-with-pull-requests/about-branches.md +++ b/translations/es-ES/content/pull-requests/collaborating-with-pull-requests/proposing-changes-to-your-work-with-pull-requests/about-branches.md @@ -3,7 +3,7 @@ title: About branches intro: 'Use a branch to isolate development work without affecting other branches in the repository. Each repository has one default branch, and can have multiple other branches. You can merge a branch into another branch using a pull request.' redirect_from: - /github/collaborating-with-issues-and-pull-requests/proposing-changes-to-your-work-with-pull-requests/about-branches - - /articles/working-with-protected-branches/ + - /articles/working-with-protected-branches - /articles/about-branches - /github/collaborating-with-issues-and-pull-requests/about-branches - /github/collaborating-with-pull-requests/proposing-changes-to-your-work-with-pull-requests/about-branches diff --git a/translations/es-ES/content/pull-requests/collaborating-with-pull-requests/proposing-changes-to-your-work-with-pull-requests/about-pull-requests.md b/translations/es-ES/content/pull-requests/collaborating-with-pull-requests/proposing-changes-to-your-work-with-pull-requests/about-pull-requests.md index 04002cc4a8..a488f3afd5 100644 --- a/translations/es-ES/content/pull-requests/collaborating-with-pull-requests/proposing-changes-to-your-work-with-pull-requests/about-pull-requests.md +++ b/translations/es-ES/content/pull-requests/collaborating-with-pull-requests/proposing-changes-to-your-work-with-pull-requests/about-pull-requests.md @@ -3,7 +3,7 @@ title: About pull requests intro: 'Pull requests let you tell others about changes you''ve pushed to a branch in a repository on {% data variables.product.product_name %}. Once a pull request is opened, you can discuss and review the potential changes with collaborators and add follow-up commits before your changes are merged into the base branch.' redirect_from: - /github/collaborating-with-issues-and-pull-requests/proposing-changes-to-your-work-with-pull-requests/about-pull-requests - - /articles/using-pull-requests/ + - /articles/using-pull-requests - /articles/about-pull-requests - /github/collaborating-with-issues-and-pull-requests/about-pull-requests - /github/collaborating-with-pull-requests/proposing-changes-to-your-work-with-pull-requests/about-pull-requests diff --git a/translations/es-ES/content/pull-requests/collaborating-with-pull-requests/proposing-changes-to-your-work-with-pull-requests/creating-and-deleting-branches-within-your-repository.md b/translations/es-ES/content/pull-requests/collaborating-with-pull-requests/proposing-changes-to-your-work-with-pull-requests/creating-and-deleting-branches-within-your-repository.md index f3bf58b413..aeff18cc0b 100644 --- a/translations/es-ES/content/pull-requests/collaborating-with-pull-requests/proposing-changes-to-your-work-with-pull-requests/creating-and-deleting-branches-within-your-repository.md +++ b/translations/es-ES/content/pull-requests/collaborating-with-pull-requests/proposing-changes-to-your-work-with-pull-requests/creating-and-deleting-branches-within-your-repository.md @@ -3,7 +3,7 @@ title: Creating and deleting branches within your repository intro: 'You can create or delete branches directly on {% data variables.product.product_name %}.' redirect_from: - /github/collaborating-with-issues-and-pull-requests/proposing-changes-to-your-work-with-pull-requests/creating-and-deleting-branches-within-your-repository - - /articles/deleting-branches-in-a-pull-request/ + - /articles/deleting-branches-in-a-pull-request - /articles/creating-and-deleting-branches-within-your-repository - /github/collaborating-with-issues-and-pull-requests/creating-and-deleting-branches-within-your-repository versions: diff --git a/translations/es-ES/content/pull-requests/collaborating-with-pull-requests/proposing-changes-to-your-work-with-pull-requests/index.md b/translations/es-ES/content/pull-requests/collaborating-with-pull-requests/proposing-changes-to-your-work-with-pull-requests/index.md index 8c9f586bfa..6a5e87fe5c 100644 --- a/translations/es-ES/content/pull-requests/collaborating-with-pull-requests/proposing-changes-to-your-work-with-pull-requests/index.md +++ b/translations/es-ES/content/pull-requests/collaborating-with-pull-requests/proposing-changes-to-your-work-with-pull-requests/index.md @@ -2,7 +2,7 @@ title: Proposing changes to your work with pull requests intro: 'After you add changes to a topic branch or fork, you can open a pull request to ask your collaborators or the repository administrator to review your changes before merging them into the project.' redirect_from: - - /github/collaborating-with-issues-and-pull-requests/proposing-changes-to-your-work-with-pull-requests/ + - /github/collaborating-with-issues-and-pull-requests/proposing-changes-to-your-work-with-pull-requests - /articles/proposing-changes-to-your-work-with-pull-requests - /github/collaborating-with-pull-requests/proposing-changes-to-your-work-with-pull-requests versions: diff --git a/translations/es-ES/content/pull-requests/collaborating-with-pull-requests/reviewing-changes-in-pull-requests/commenting-on-a-pull-request.md b/translations/es-ES/content/pull-requests/collaborating-with-pull-requests/reviewing-changes-in-pull-requests/commenting-on-a-pull-request.md index 0382b361f4..81e0efb039 100644 --- a/translations/es-ES/content/pull-requests/collaborating-with-pull-requests/reviewing-changes-in-pull-requests/commenting-on-a-pull-request.md +++ b/translations/es-ES/content/pull-requests/collaborating-with-pull-requests/reviewing-changes-in-pull-requests/commenting-on-a-pull-request.md @@ -2,9 +2,9 @@ title: Commenting on a pull request redirect_from: - /github/collaborating-with-issues-and-pull-requests/reviewing-changes-in-pull-requests/commenting-on-a-pull-request - - /articles/adding-commit-comments/ - - /articles/commenting-on-the-diff-of-a-pull-request/ - - /articles/commenting-on-differences-between-files/ + - /articles/adding-commit-comments + - /articles/commenting-on-the-diff-of-a-pull-request + - /articles/commenting-on-differences-between-files - /articles/commenting-on-a-pull-request - /github/collaborating-with-issues-and-pull-requests/commenting-on-a-pull-request - /github/collaborating-with-pull-requests/reviewing-changes-in-pull-requests/commenting-on-a-pull-request diff --git a/translations/es-ES/content/pull-requests/collaborating-with-pull-requests/reviewing-changes-in-pull-requests/filtering-files-in-a-pull-request.md b/translations/es-ES/content/pull-requests/collaborating-with-pull-requests/reviewing-changes-in-pull-requests/filtering-files-in-a-pull-request.md index 39aa8788be..bd7a9b087f 100644 --- a/translations/es-ES/content/pull-requests/collaborating-with-pull-requests/reviewing-changes-in-pull-requests/filtering-files-in-a-pull-request.md +++ b/translations/es-ES/content/pull-requests/collaborating-with-pull-requests/reviewing-changes-in-pull-requests/filtering-files-in-a-pull-request.md @@ -3,7 +3,7 @@ title: Filtering files in a pull request intro: 'To help you quickly review changes in a large pull request, you can filter changed files.' redirect_from: - /github/collaborating-with-issues-and-pull-requests/reviewing-changes-in-pull-requests/filtering-files-in-a-pull-request - - /articles/filtering-files-in-a-pull-request-by-file-type/ + - /articles/filtering-files-in-a-pull-request-by-file-type - /articles/filtering-files-in-a-pull-request - /github/collaborating-with-issues-and-pull-requests/filtering-files-in-a-pull-request - /github/collaborating-with-pull-requests/reviewing-changes-in-pull-requests/filtering-files-in-a-pull-request diff --git a/translations/es-ES/content/pull-requests/collaborating-with-pull-requests/reviewing-changes-in-pull-requests/index.md b/translations/es-ES/content/pull-requests/collaborating-with-pull-requests/reviewing-changes-in-pull-requests/index.md index f495e7b218..94e8467a8d 100644 --- a/translations/es-ES/content/pull-requests/collaborating-with-pull-requests/reviewing-changes-in-pull-requests/index.md +++ b/translations/es-ES/content/pull-requests/collaborating-with-pull-requests/reviewing-changes-in-pull-requests/index.md @@ -1,8 +1,8 @@ --- title: Reviewing changes in pull requests redirect_from: - - /github/collaborating-with-issues-and-pull-requests/reviewing-changes-in-pull-requests/ - - /articles/reviewing-and-discussing-changes-in-pull-requests/ + - /github/collaborating-with-issues-and-pull-requests/reviewing-changes-in-pull-requests + - /articles/reviewing-and-discussing-changes-in-pull-requests - /articles/reviewing-changes-in-pull-requests - /github/collaborating-with-pull-requests/reviewing-changes-in-pull-requests intro: 'After a pull request has been opened, you can review and discuss the set of proposed changes.' diff --git a/translations/es-ES/content/pull-requests/collaborating-with-pull-requests/reviewing-changes-in-pull-requests/reviewing-proposed-changes-in-a-pull-request.md b/translations/es-ES/content/pull-requests/collaborating-with-pull-requests/reviewing-changes-in-pull-requests/reviewing-proposed-changes-in-a-pull-request.md index 8babad4362..35a425283f 100644 --- a/translations/es-ES/content/pull-requests/collaborating-with-pull-requests/reviewing-changes-in-pull-requests/reviewing-proposed-changes-in-a-pull-request.md +++ b/translations/es-ES/content/pull-requests/collaborating-with-pull-requests/reviewing-changes-in-pull-requests/reviewing-proposed-changes-in-a-pull-request.md @@ -30,7 +30,7 @@ You can review changes in a pull request one file at a time. While reviewing the {% data reusables.repositories.sidebar-pr %} {% data reusables.repositories.choose-pr-review %} {% data reusables.repositories.changed-files %} -{% ifversion fpt or ghec or ghes > 3.2 or ghae %} +{% ifversion fpt or ghec or ghes > 3.3 or ghae %} You can change the format of the diff view in this tab by clicking {% octicon "gear" aria-label="The Settings gear" %} and choosing the unified or split view. The choice you make will apply when you view the diff for other pull requests. diff --git a/translations/es-ES/content/pull-requests/collaborating-with-pull-requests/working-with-forks/about-forks.md b/translations/es-ES/content/pull-requests/collaborating-with-pull-requests/working-with-forks/about-forks.md index 6e91cda0c6..f9a5eda3a6 100644 --- a/translations/es-ES/content/pull-requests/collaborating-with-pull-requests/working-with-forks/about-forks.md +++ b/translations/es-ES/content/pull-requests/collaborating-with-pull-requests/working-with-forks/about-forks.md @@ -31,7 +31,7 @@ If you're a member of a {% data variables.product.prodname_emu_enterprise %}, th Deleting a fork will not delete the original upstream repository. You can make any changes you want to your fork—add collaborators, rename files, generate {% data variables.product.prodname_pages %}—with no effect on the original.{% ifversion fpt or ghec %} You cannot restore a deleted forked repository. For more information, see "[Restoring a deleted repository](/articles/restoring-a-deleted-repository)."{% endif %} -In open source projects, forks are often used to iterate on ideas or changes before they are offered back to the upstream repository. When you make changes in your user-owned fork and open a pull request that compares your work to the upstream repository, you can give anyone with push access to the upstream repository permission to push changes to your pull request branch. This speeds up collaboration by allowing repository maintainers the ability to make commits or run tests locally to your pull request branch from a user-owned fork before merging. You cannot give push permissions to a fork owned by an organization. +In open source projects, forks are often used to iterate on ideas or changes before they are offered back to the upstream repository. When you make changes in your user-owned fork and open a pull request that compares your work to the upstream repository, you can give anyone with push access to the upstream repository permission to push changes to your pull request branch (including deleting the branch). This speeds up collaboration by allowing repository maintainers the ability to make commits or run tests locally to your pull request branch from a user-owned fork before merging. You cannot give push permissions to a fork owned by an organization. {% data reusables.repositories.private_forks_inherit_permissions %} diff --git a/translations/es-ES/content/pull-requests/collaborating-with-pull-requests/working-with-forks/index.md b/translations/es-ES/content/pull-requests/collaborating-with-pull-requests/working-with-forks/index.md index 5a79c30660..19207dd1b4 100644 --- a/translations/es-ES/content/pull-requests/collaborating-with-pull-requests/working-with-forks/index.md +++ b/translations/es-ES/content/pull-requests/collaborating-with-pull-requests/working-with-forks/index.md @@ -2,9 +2,9 @@ title: Working with forks intro: 'Forks are often used in open source development on {% data variables.product.product_name %}.' redirect_from: - - /github/collaborating-with-issues-and-pull-requests/working-with-forks/ + - /github/collaborating-with-issues-and-pull-requests/working-with-forks - /articles/working-with-forks - - /github/collaborating-with-pull-requests/working-with-forks/ + - /github/collaborating-with-pull-requests/working-with-forks versions: fpt: '*' ghes: '*' diff --git a/translations/es-ES/content/pull-requests/collaborating-with-pull-requests/working-with-forks/what-happens-to-forks-when-a-repository-is-deleted-or-changes-visibility.md b/translations/es-ES/content/pull-requests/collaborating-with-pull-requests/working-with-forks/what-happens-to-forks-when-a-repository-is-deleted-or-changes-visibility.md index 9d9b203f5a..2a067051d5 100644 --- a/translations/es-ES/content/pull-requests/collaborating-with-pull-requests/working-with-forks/what-happens-to-forks-when-a-repository-is-deleted-or-changes-visibility.md +++ b/translations/es-ES/content/pull-requests/collaborating-with-pull-requests/working-with-forks/what-happens-to-forks-when-a-repository-is-deleted-or-changes-visibility.md @@ -3,7 +3,7 @@ title: What happens to forks when a repository is deleted or changes visibility? intro: Deleting your repository or changing its visibility affects that repository's forks. redirect_from: - /github/collaborating-with-issues-and-pull-requests/working-with-forks/what-happens-to-forks-when-a-repository-is-deleted-or-changes-visibility - - /articles/changing-the-visibility-of-a-network/ + - /articles/changing-the-visibility-of-a-network - /articles/what-happens-to-forks-when-a-repository-is-deleted-or-changes-visibility - /github/collaborating-with-issues-and-pull-requests/what-happens-to-forks-when-a-repository-is-deleted-or-changes-visibility - /github/collaborating-with-pull-requests/working-with-forks/what-happens-to-forks-when-a-repository-is-deleted-or-changes-visibility diff --git a/translations/es-ES/content/pull-requests/committing-changes-to-your-project/creating-and-editing-commits/changing-a-commit-message.md b/translations/es-ES/content/pull-requests/committing-changes-to-your-project/creating-and-editing-commits/changing-a-commit-message.md index 59f01c0302..5877608cd0 100644 --- a/translations/es-ES/content/pull-requests/committing-changes-to-your-project/creating-and-editing-commits/changing-a-commit-message.md +++ b/translations/es-ES/content/pull-requests/committing-changes-to-your-project/creating-and-editing-commits/changing-a-commit-message.md @@ -1,7 +1,7 @@ --- title: Changing a commit message redirect_from: - - /articles/can-i-delete-a-commit-message/ + - /articles/can-i-delete-a-commit-message - /articles/changing-a-commit-message - /github/committing-changes-to-your-project/changing-a-commit-message - /github/committing-changes-to-your-project/creating-and-editing-commits/changing-a-commit-message diff --git a/translations/es-ES/content/pull-requests/committing-changes-to-your-project/index.md b/translations/es-ES/content/pull-requests/committing-changes-to-your-project/index.md index 0d0ffbebdd..9206e8d17d 100644 --- a/translations/es-ES/content/pull-requests/committing-changes-to-your-project/index.md +++ b/translations/es-ES/content/pull-requests/committing-changes-to-your-project/index.md @@ -2,8 +2,8 @@ title: Committing changes to your project intro: You can manage code changes in a repository by grouping work into commits. redirect_from: - - /categories/21/articles/ - - /categories/commits/ + - /categories/21/articles + - /categories/commits - /categories/committing-changes-to-your-project - /github/committing-changes-to-your-project versions: diff --git a/translations/es-ES/content/pull-requests/committing-changes-to-your-project/troubleshooting-commits/why-are-my-commits-linked-to-the-wrong-user.md b/translations/es-ES/content/pull-requests/committing-changes-to-your-project/troubleshooting-commits/why-are-my-commits-linked-to-the-wrong-user.md index 5bc13e0a96..e63f9863ff 100644 --- a/translations/es-ES/content/pull-requests/committing-changes-to-your-project/troubleshooting-commits/why-are-my-commits-linked-to-the-wrong-user.md +++ b/translations/es-ES/content/pull-requests/committing-changes-to-your-project/troubleshooting-commits/why-are-my-commits-linked-to-the-wrong-user.md @@ -1,7 +1,7 @@ --- title: Why are my commits linked to the wrong user? redirect_from: - - /articles/how-do-i-get-my-commits-to-link-to-my-github-account/ + - /articles/how-do-i-get-my-commits-to-link-to-my-github-account - /articles/why-are-my-commits-linked-to-the-wrong-user - /github/committing-changes-to-your-project/why-are-my-commits-linked-to-the-wrong-user - /github/committing-changes-to-your-project/troubleshooting-commits/why-are-my-commits-linked-to-the-wrong-user diff --git a/translations/es-ES/content/repositories/configuring-branches-and-merges-in-your-repository/defining-the-mergeability-of-pull-requests/about-protected-branches.md b/translations/es-ES/content/repositories/configuring-branches-and-merges-in-your-repository/defining-the-mergeability-of-pull-requests/about-protected-branches.md index 2d760fe6f2..08f567b7b3 100644 --- a/translations/es-ES/content/repositories/configuring-branches-and-merges-in-your-repository/defining-the-mergeability-of-pull-requests/about-protected-branches.md +++ b/translations/es-ES/content/repositories/configuring-branches-and-merges-in-your-repository/defining-the-mergeability-of-pull-requests/about-protected-branches.md @@ -87,7 +87,7 @@ Before you can enable required status checks, you must configure the repository After enabling required status checks, all required status checks must pass before collaborators can merge changes into the protected branch. After all required status checks pass, any commits must either be pushed to another branch and then merged or pushed directly to the protected branch. -Any person or integration with write permissions to a repository can set the state of any status check in the repository, but in some cases you may only want to accept a status check from a specific {% data variables.product.prodname_github_app %}. When you add a required status check, you can select an app that has recently set this check as the expected source of status updates. If the status is set by any other person or integration, merging won't be allowed. If you select "any source", you can still manually verify the author of each status, listed in the merge box. +Any person or integration with write permissions to a repository can set the state of any status check in the repository{% ifversion fpt or ghes > 3.3 or ghae-issue-5379 or ghec %}, but in some cases you may only want to accept a status check from a specific {% data variables.product.prodname_github_app %}. When you add a required status check, you can select an app that has recently set this check as the expected source of status updates.{% endif %} If the status is set by any other person or integration, merging won't be allowed. If you select "any source", you can still manually verify the author of each status, listed in the merge box. You can set up required status checks to either be "loose" or "strict." The type of required status check you choose determines whether your branch is required to be up to date with the base branch before merging. @@ -153,13 +153,23 @@ By default, protected branch rules do not apply to people with admin permissions You can enable branch restrictions if your repository is owned by an organization using {% data variables.product.prodname_team %} or {% data variables.product.prodname_ghe_cloud %}. {% endif %} -When you enable branch restrictions, only users, teams, or apps that have been given permission can push to the protected branch. You can view and edit the users, teams, or apps with push access to a protected branch in the protected branch's settings. +When you enable branch restrictions, only users, teams, or apps that have been given permission can push to the protected branch. You can view and edit the users, teams, or apps with push access to a protected branch in the protected branch's settings. When status checks are required, the people, teams, and apps that have permission to push to a protected branch will still be prevented from merging if the required checks fail. People, teams, and apps that have permission to push to a protected branch will still need to create a pull request when pull requests are required. You can only give push access to a protected branch to users, teams, or installed {% data variables.product.prodname_github_apps %} with write access to a repository. People and apps with admin permissions to a repository are always able to push to a protected branch. ### Allow force pushes +{% ifversion fpt or ghec %} +By default, {% data variables.product.product_name %} blocks force pushes on all protected branches. When you enable force pushes to a protected branch, you can choose one of two groups who can force push: + +1. Allow everyone with at least write permissions to the repository to force push to the branch, including those with admin permissions. +1. Allow only specific people or teams to force push to the branch. + +If someone force pushes to a branch, the force push may overwrite commits that other collaborators based their work on. People may have merge conflicts or corrupted pull requests. + +{% else %} By default, {% data variables.product.product_name %} blocks force pushes on all protected branches. When you enable force pushes to a protected branch, anyone with at least write permissions to the repository can force push to the branch, including those with admin permissions. If someone force pushes to a branch, the force push may overwrite commits that other collaborators based their work on. People may have merge conflicts or corrupted pull requests. +{% endif %} Enabling force pushes will not override any other branch protection rules. For example, if a branch requires a linear commit history, you cannot force push merge commits to that branch. diff --git a/translations/es-ES/content/repositories/configuring-branches-and-merges-in-your-repository/defining-the-mergeability-of-pull-requests/managing-a-branch-protection-rule.md b/translations/es-ES/content/repositories/configuring-branches-and-merges-in-your-repository/defining-the-mergeability-of-pull-requests/managing-a-branch-protection-rule.md index fe9eb1dd68..e8587b7306 100644 --- a/translations/es-ES/content/repositories/configuring-branches-and-merges-in-your-repository/defining-the-mergeability-of-pull-requests/managing-a-branch-protection-rule.md +++ b/translations/es-ES/content/repositories/configuring-branches-and-merges-in-your-repository/defining-the-mergeability-of-pull-requests/managing-a-branch-protection-rule.md @@ -97,15 +97,23 @@ When you create a branch rule, the branch you specify doesn't have to exist yet {% endtip %} {%- endif %} -1. Optionally, select **Include administrators**. -![Include administrators checkbox](/assets/images/help/repository/include-admins-protected-branches.png) +1. Optionally, select **Apply the rules above to administrators**. +![Apply the rules above to administrators checkbox](/assets/images/help/repository/include-admins-protected-branches.png) 1. Optionally,{% ifversion fpt or ghec %} if your repository is owned by an organization using {% data variables.product.prodname_team %} or {% data variables.product.prodname_ghe_cloud %},{% endif %} enable branch restrictions. - Select **Restrict who can push to matching branches**. ![Branch restriction checkbox](/assets/images/help/repository/restrict-branch.png) - Search for and select the people, teams, or apps who will have permission to push to the protected branch. ![Branch restriction search](/assets/images/help/repository/restrict-branch-search.png) -2. Optionally, under "Rules applied to everyone including administrators", select **Allow force pushes**. For more information about force pushes, see "[Allow force pushes](/repositories/configuring-branches-and-merges-in-your-repository/defining-the-mergeability-of-pull-requests/about-protected-branches/#allow-force-pushes)." +1. Optionally, under "Rules applied to everyone including administrators", select **Allow force pushes**. ![Allow force pushes option](/assets/images/help/repository/allow-force-pushes.png) +{% ifversion fpt or ghec %} + Then, choose who can force push to the branch. + - Select **Everyone** to allow everyone with at least write permissions to the repository to force push to the branch, including those with admin permissions. + - Select **Specify who can force push** to allow only specific people or teams to force push to the branch. Then, search for and select those people or teams. + ![Screenshot of the options to specify who can force push](/assets/images/help/repository/allow-force-pushes-specify-who.png) +{% endif %} + + For more information about force pushes, see "[Allow force pushes](/repositories/configuring-branches-and-merges-in-your-repository/defining-the-mergeability-of-pull-requests/about-protected-branches/#allow-force-pushes)." 1. Optionally, select **Allow deletions**. ![Allow branch deletions option](/assets/images/help/repository/allow-branch-deletions.png) 1. Click **Create**. diff --git a/translations/es-ES/content/repositories/configuring-branches-and-merges-in-your-repository/defining-the-mergeability-of-pull-requests/troubleshooting-required-status-checks.md b/translations/es-ES/content/repositories/configuring-branches-and-merges-in-your-repository/defining-the-mergeability-of-pull-requests/troubleshooting-required-status-checks.md index fd64a80a81..04e3abaa6d 100644 --- a/translations/es-ES/content/repositories/configuring-branches-and-merges-in-your-repository/defining-the-mergeability-of-pull-requests/troubleshooting-required-status-checks.md +++ b/translations/es-ES/content/repositories/configuring-branches-and-merges-in-your-repository/defining-the-mergeability-of-pull-requests/troubleshooting-required-status-checks.md @@ -111,8 +111,9 @@ Now the checks will always pass whenever someone sends a pull request that doesn {% endnote %} -It's also possible for a protected branch to require a status check from a specific {% data variables.product.prodname_github_app %}. If you see a message similar to the following, then you should verify that the check listed in the merge box was set by the expected app. +{% ifversion fpt or ghes > 3.3 or ghae-issue-5379 or ghec %}It's also possible for a protected branch to require a status check from a specific {% data variables.product.prodname_github_app %}. If you see a message similar to the following, then you should verify that the check listed in the merge box was set by the expected app. ``` Required status check "build" was not set by the expected {% data variables.product.prodname_github_app %}. ``` +{% endif %} diff --git a/translations/es-ES/content/repositories/configuring-branches-and-merges-in-your-repository/managing-branches-in-your-repository/renaming-a-branch.md b/translations/es-ES/content/repositories/configuring-branches-and-merges-in-your-repository/managing-branches-in-your-repository/renaming-a-branch.md index 820352f6af..7fd44389ce 100644 --- a/translations/es-ES/content/repositories/configuring-branches-and-merges-in-your-repository/managing-branches-in-your-repository/renaming-a-branch.md +++ b/translations/es-ES/content/repositories/configuring-branches-and-merges-in-your-repository/managing-branches-in-your-repository/renaming-a-branch.md @@ -1,7 +1,7 @@ --- title: Renaming a branch intro: You can change the name of a branch in a repository. -permissions: People with write permissions to a repository can rename a branch in the repository. People with admin permissions can rename the default branch. +permissions: 'People with write permissions to a repository can rename a branch in the repository unless it is the [default branch](/pull-requests/collaborating-with-pull-requests/proposing-changes-to-your-work-with-pull-requests/about-branches#about-the-default-branch){% ifversion fpt or ghec %} or a [protected branch](/repositories/configuring-branches-and-merges-in-your-repository/defining-the-mergeability-of-pull-requests/about-protected-branches){% endif %}. People with admin permissions can rename the default branch{% ifversion fpt or ghec %} and protected branches{% endif %}.' versions: fpt: '*' ghes: '>=3.1' diff --git a/translations/es-ES/content/repositories/creating-and-managing-repositories/about-repositories.md b/translations/es-ES/content/repositories/creating-and-managing-repositories/about-repositories.md index 46012a30d4..57a56440e4 100644 --- a/translations/es-ES/content/repositories/creating-and-managing-repositories/about-repositories.md +++ b/translations/es-ES/content/repositories/creating-and-managing-repositories/about-repositories.md @@ -61,7 +61,7 @@ When you create a repository owned by your user account, the repository is alway - Private repositories are only accessible to you, people you explicitly share access with, and, for organization repositories, certain organization members. {%- elsif ghes %} - If {% data variables.product.product_location %} is not in private mode or behind a firewall, public repositories are accessible to everyone on the internet. Otherwise, public repositories are available to everyone using {% data variables.product.product_location %}, including outside collaborators. -- Private repositories are only accessible to you, people you explicitly share access with, and, for organization repositories, certain organization members. Internal repositories are accessible to all enterprise members. +- Private repositories are only accessible to you, people you explicitly share access with, and, for organization repositories, certain organization members. {%- elsif ghae %} - Private repositories are only accessible to you, people you explicitly share access with, and, for organization repositories, certain organization members. {%- endif %} diff --git a/translations/es-ES/content/repositories/managing-your-repositorys-settings-and-features/enabling-features-for-your-repository/managing-security-and-analysis-settings-for-your-repository.md b/translations/es-ES/content/repositories/managing-your-repositorys-settings-and-features/enabling-features-for-your-repository/managing-security-and-analysis-settings-for-your-repository.md index 0181b7ae84..1619c037aa 100644 --- a/translations/es-ES/content/repositories/managing-your-repositorys-settings-and-features/enabling-features-for-your-repository/managing-security-and-analysis-settings-for-your-repository.md +++ b/translations/es-ES/content/repositories/managing-your-repositorys-settings-and-features/enabling-features-for-your-repository/managing-security-and-analysis-settings-for-your-repository.md @@ -32,13 +32,16 @@ You can manage a subset of security and analysis features for public repositorie {% data reusables.repositories.navigate-to-repo %} {% data reusables.repositories.sidebar-settings %} {% data reusables.repositories.navigate-to-security-and-analysis %} -4. Under "Configure security and analysis features", to the right of the feature, click **Disable** or **Enable**. - !["Enable" or "Disable" button for "Configure security and analysis" features in a public repository](/assets/images/help/repository/security-and-analysis-disable-or-enable-dotcom-public.png) +4. Under "Configure security and analysis features", to the right of the feature, click **Disable** or **Enable**.{% ifversion fpt %} + !["Enable" or "Disable" button for "Configure security and analysis" features in a public repository](/assets/images/help/repository/security-and-analysis-disable-or-enable-fpt-public.png){% elsif ghec %} + !["Enable" or "Disable" button for "Configure security and analysis" features in a public repository](/assets/images/help/repository/security-and-analysis-disable-or-enable-ghec-public.png){% endif %} {% endif %} ## Enabling or disabling security and analysis features{% ifversion fpt or ghec %} for private repositories{% endif %} -You can manage the security and analysis features for your {% ifversion fpt or ghec %}private or internal {% endif %}repository.{% ifversion fpt or ghes or ghec %} If your organization belongs to an enterprise with a license for {% data variables.product.prodname_GH_advanced_security %} then extra options are available. {% data reusables.advanced-security.more-info-ghas %}{% endif %} +You can manage the security and analysis features for your {% ifversion fpt or ghec %}private or internal {% endif %}repository.{% ifversion ghes or ghec %} If your organization belongs to an enterprise with a license for {% data variables.product.prodname_GH_advanced_security %} then extra options are available. {% data reusables.advanced-security.more-info-ghas %} +{% elsif fpt %} Organizations that use {% data variables.product.prodname_ghe_cloud %} with {% data variables.product.prodname_advanced_security %} have extra options available. For more information, see the [{% data variables.product.prodname_ghe_cloud %} documentation](/enterprise-cloud@latest//repositories/managing-your-repositorys-settings-and-features/enabling-features-for-your-repository/managing-security-and-analysis-settings-for-your-repository#enabling-or-disabling-security-and-analysis-features-for-private-repositories). +{% endif %} {% data reusables.security.security-and-analysis-features-enable-read-only %} @@ -46,15 +49,20 @@ You can manage the security and analysis features for your {% ifversion fpt or g {% data reusables.repositories.sidebar-settings %} {% data reusables.repositories.navigate-to-security-and-analysis %} {% ifversion fpt or ghes > 3.0 or ghec %} -4. Under "Configure security and analysis features", to the right of the feature, click **Disable** or **Enable**. The control for "{% data variables.product.prodname_GH_advanced_security %}" is disabled if your enterprise has no available licenses for {% data variables.product.prodname_advanced_security %}.{% ifversion fpt or ghec %} - !["Enable" or "Disable" button for "Configure security and analysis" features](/assets/images/help/repository/security-and-analysis-disable-or-enable-dotcom-private.png){% elsif ghes > 3.2 %} +4. Under "Configure security and analysis features", to the right of the feature, click **Disable** or **Enable**. {% ifversion not fpt %}The control for "{% data variables.product.prodname_GH_advanced_security %}" is disabled if your enterprise has no available licenses for {% data variables.product.prodname_advanced_security %}.{% endif %}{% ifversion fpt %} + !["Enable" or "Disable" button for "Configure security and analysis" features](/assets/images/help/repository/security-and-analysis-disable-or-enable-fpt-private.png){% elsif ghec %} + !["Enable" or "Disable" button for "Configure security and analysis" features](/assets/images/help/repository/security-and-analysis-disable-or-enable-ghec-private.png){% elsif ghes > 3.2 %} !["Enable" or "Disable" button for "Configure security and analysis" features](/assets/images/enterprise/3.3/repository/security-and-analysis-disable-or-enable-ghes.png){% else %} !["Enable" or "Disable" button for "Configure security and analysis" features](/assets/images/enterprise/3.1/help/repository/security-and-analysis-disable-or-enable-ghes.png){% endif %} + + {% ifversion not fpt %} {% note %} - **Note:** If you disable {% data variables.product.prodname_GH_advanced_security %}, {% ifversion fpt or ghec %}dependency review, {% endif %}{% data variables.product.prodname_secret_scanning %} and {% data variables.product.prodname_code_scanning %} are disabled. Any workflows, SARIF uploads, or API calls for {% data variables.product.prodname_code_scanning %} will fail. - {% endnote %} + **Note:** If you disable {% data variables.product.prodname_GH_advanced_security %}, {% ifversion ghec %}dependency review, {% endif %}{% data variables.product.prodname_secret_scanning %} and {% data variables.product.prodname_code_scanning %} are disabled. Any workflows, SARIF uploads, or API calls for {% data variables.product.prodname_code_scanning %} will fail. + {% endnote %}{% endif %} + {% endif %} + {% ifversion ghes = 3.0 %} 4. Under "Configure security and analysis features", to the right of the feature, click **Disable** or **Enable**. !["Enable" or "Disable" button for "Configure security and analysis" features](/assets/images/help/repository/security-and-analysis-disable-or-enable-ghe.png) @@ -66,7 +74,7 @@ You can manage the security and analysis features for your {% ifversion fpt or g ## Granting access to security alerts -After you enable {% ifversion not ghae %}{% data variables.product.prodname_dependabot %} or {% endif %}{% data variables.product.prodname_secret_scanning %} alerts for a repository in an organization, organization owners and repository administrators can view the alerts by default. You can give additional teams and people access to the alerts for a repository. +Security alerts for a repository are visible to people with admin access to the repository and, when the repository is owned by an organization, organization owners. You can give additional teams and people access to the alerts. {% note %} diff --git a/translations/es-ES/content/repositories/managing-your-repositorys-settings-and-features/managing-repository-settings/setting-repository-visibility.md b/translations/es-ES/content/repositories/managing-your-repositorys-settings-and-features/managing-repository-settings/setting-repository-visibility.md index 60c27fc359..96c2ccfa4b 100644 --- a/translations/es-ES/content/repositories/managing-your-repositorys-settings-and-features/managing-repository-settings/setting-repository-visibility.md +++ b/translations/es-ES/content/repositories/managing-your-repositorys-settings-and-features/managing-repository-settings/setting-repository-visibility.md @@ -56,7 +56,7 @@ We recommend reviewing the following caveats before you change the visibility of {%- ifversion fpt or ghec %} * {% data variables.product.prodname_dotcom %} will no longer include the repository in the {% data variables.product.prodname_archive %}. For more information, see "[About archiving content and data on {% data variables.product.prodname_dotcom %}](/github/creating-cloning-and-archiving-repositories/about-archiving-content-and-data-on-github#about-the-github-archive-program)." -* {% data variables.product.prodname_GH_advanced_security %} features, such as {% data variables.product.prodname_code_scanning %}, will stop working unless the repository is owned by an organization that is part of an enterprise with a license for {% data variables.product.prodname_advanced_security %} and sufficient spare seats. {% data reusables.advanced-security.more-info-ghas %} +* {% data variables.product.prodname_GH_advanced_security %} features, such as {% data variables.product.prodname_code_scanning %}, will stop working{% ifversion ghec %} unless the repository is owned by an organization that is part of an enterprise with a license for {% data variables.product.prodname_advanced_security %} and sufficient spare seats{% endif %}. {% data reusables.advanced-security.more-info-ghas %} {%- endif %} {%- ifversion ghes %} diff --git a/translations/es-ES/content/repositories/releasing-projects-on-github/linking-to-releases.md b/translations/es-ES/content/repositories/releasing-projects-on-github/linking-to-releases.md index 3c21ca164f..9d24722a6f 100644 --- a/translations/es-ES/content/repositories/releasing-projects-on-github/linking-to-releases.md +++ b/translations/es-ES/content/repositories/releasing-projects-on-github/linking-to-releases.md @@ -1,6 +1,6 @@ --- -title: Vincular a lanzamientos -intro: Puedes compartir cada lanzamiento que crees en GitHub con una URL única. +title: Linking to releases +intro: You can share every release you create on GitHub with a unique URL. redirect_from: - /articles/linking-to-releases - /github/administering-a-repository/linking-to-releases @@ -13,7 +13,6 @@ versions: topics: - Repositories --- - {% data reusables.repositories.navigate-to-repo %} {% data reusables.repositories.releases %} 3. To copy a unique URL to your clipboard, find the release you want to link to, right click the title, and copy the URL. @@ -22,10 +21,10 @@ topics: {% else %} ![Release title](/assets/images/help/releases/release-title-old.png) {% endif %} -1. Como alternativa, da clic derecho en **Lanzamiento más Reciente** y copia la URL para compartirlo. El sufijo de esta URL siempre es `/releases/latest`. +1. Alternatively, right click **Latest Release** and copy the URL to share it. The suffix of this URL is always `/releases/latest`. {% ifversion fpt or ghec or ghes > 3.4 or ghae-issue-4974 %} - ![Menú de comparación de etiquetas de lanzamiento](/assets/images/help/releases/refreshed-release-latest.png) + ![Compare release tags menu](/assets/images/help/releases/refreshed-release-latest.png) {% else %} - ![Etiqueta del último lanzamiento](/assets/images/help/releases/release_latest_release_tag.png) + ![Latest release tag](/assets/images/help/releases/release_latest_release_tag.png) {% endif %} -Para enlazarlo directamente con una descarga de tu último activo de lanzamiento que se cargó manualmente, enlaza a `/owner/name/releases/latest/download/nombre-de-activo.zip`. +To link directly to a download of your latest release asset that was manually uploaded, link to `/owner/name/releases/latest/download/asset-name.zip`. diff --git a/translations/es-ES/content/repositories/working-with-files/managing-files/adding-a-file-to-a-repository.md b/translations/es-ES/content/repositories/working-with-files/managing-files/adding-a-file-to-a-repository.md index c3dd56afaf..23f811977e 100644 --- a/translations/es-ES/content/repositories/working-with-files/managing-files/adding-a-file-to-a-repository.md +++ b/translations/es-ES/content/repositories/working-with-files/managing-files/adding-a-file-to-a-repository.md @@ -1,6 +1,6 @@ --- -title: Agregar un archivo a un repositorio -intro: 'Puedes cargar y confirmar un archivo existente a un repositorio de {% data variables.product.product_name %} o utilizando la línea de comandos.' +title: Adding a file to a repository +intro: 'You can upload and commit an existing file to a repository on {% data variables.product.product_name %} or by using the command line.' redirect_from: - /articles/adding-a-file-to-a-repository - /github/managing-files-in-a-repository/adding-a-file-to-a-repository @@ -16,35 +16,38 @@ versions: ghec: '*' topics: - Repositories -shortTitle: Agregar un archivo +shortTitle: Add a file --- -## Agregar un archivo a un repositorio en {% data variables.product.product_name %} +## Adding a file to a repository on {% data variables.product.product_name %} -Los archivos que agregues a un repositorio mediante un navegador están limitados a {% data variables.large_files.max_github_browser_size %} por archivo. Puedes agregar archivos más grandes, de hasta {% data variables.large_files.max_github_size %} cada uno, mediante la línea de comando. Para obtener más información, consulta "[Agregar un archivo a un repositorio mediante la línea de comando](#adding-a-file-to-a-repository-using-the-command-line)". +Files that you add to a repository via a browser are limited to {% data variables.large_files.max_github_browser_size %} per file. You can add larger files, up to {% data variables.large_files.max_github_size %} each, via the command line. For more information, see "[Adding a file to a repository using the command line](#adding-a-file-to-a-repository-using-the-command-line)." {% tip %} **Tips:** -- Puedes cargar múltiples archivos en {% data variables.product.product_name %} a la vez. +- You can upload multiple files to {% data variables.product.product_name %} at the same time. - {% data reusables.repositories.protected-branches-block-web-edits-uploads %} {% endtip %} {% data reusables.repositories.navigate-to-repo %} -2. Sobre la lista de archivos, da clic en **Cargar archivos** utilizando el menú desplegable de **Agregar archivo**. !["Archivos cargados" en el menú desplegable de "Agregar archivo"](/assets/images/help/repository/upload-files-button.png) -3. Arrastra y suelta el archivo o la carpeta que te gustaría cargar en tu repositorio en el árbol del archivo. ![Área para arrastrar y soltar](/assets/images/help/repository/upload-files-drag-and-drop.png) +2. Above the list of files, using the **Add file** drop-down, click **Upload files**. + !["Upload files" in the "Add file" dropdown](/assets/images/help/repository/upload-files-button.png) +3. Drag and drop the file or folder you'd like to upload to your repository onto the file tree. +![Drag and drop area](/assets/images/help/repository/upload-files-drag-and-drop.png) {% data reusables.files.write_commit_message %} {% data reusables.files.choose_commit_branch %} -6. Haz clic en **Commit changes** (Confirmar cambios). ![Botón Commit changes (Confirmar cambios)](/assets/images/help/repository/commit-changes-button.png) +6. Click **Commit changes**. +![Commit changes button](/assets/images/help/repository/commit-changes-button.png) -## Agregar un archivo a un repositorio utilizando la línea de comando +## Adding a file to a repository using the command line You can upload an existing file to a repository on {% ifversion ghae %}{% data variables.product.product_name %}{% else %}{% data variables.product.product_location %}{% endif %} using the command line. {% tip %} -**Sugerencia:** También puedes [agregar un archivo existente a un repositorio desde el sitio web de {% data variables.product.product_name %}](/articles/adding-a-file-to-a-repository). +**Tip:** You can also [add an existing file to a repository from the {% data variables.product.product_name %} website](/articles/adding-a-file-to-a-repository). {% endtip %} @@ -52,13 +55,13 @@ You can upload an existing file to a repository on {% ifversion ghae %}{% data v {% data reusables.repositories.sensitive-info-warning %} -1. En tu computadora, mueve el archivo que deseas cargar a {% data variables.product.product_name %} en el directorio local que se creó cuando clonaste el repositorio. +1. On your computer, move the file you'd like to upload to {% data variables.product.product_name %} into the local directory that was created when you cloned the repository. {% data reusables.command_line.open_the_multi_os_terminal %} {% data reusables.command_line.switching_directories_procedural %} {% data reusables.git.stage_for_commit %} ```shell $ git add . - # Agrega el archivo a tu repositorio local y lo presenta para la confirmación. {% data reusables.git.unstage-codeblock %} + # Adds the file to your local repository and stages it for commit. {% data reusables.git.unstage-codeblock %} ``` {% data reusables.git.commit-file %} ```shell @@ -67,6 +70,6 @@ You can upload an existing file to a repository on {% ifversion ghae %}{% data v ``` {% data reusables.git.git-push %} -## Leer más +## Further reading -- [Agregar un proyecto existente a GitHub mediante la línea de comando](/articles/adding-an-existing-project-to-github-using-the-command-line)" +- "[Adding an existing project to GitHub using the command line](/articles/adding-an-existing-project-to-github-using-the-command-line)" diff --git a/translations/es-ES/content/repositories/working-with-files/using-files/working-with-non-code-files.md b/translations/es-ES/content/repositories/working-with-files/using-files/working-with-non-code-files.md index 9dedcf2d62..088a3f602d 100644 --- a/translations/es-ES/content/repositories/working-with-files/using-files/working-with-non-code-files.md +++ b/translations/es-ES/content/repositories/working-with-files/using-files/working-with-non-code-files.md @@ -1,6 +1,6 @@ --- -title: Trabajar con archivos sin código -intro: '{% data variables.product.product_name %} es compatible con interpretar y diferenciar varios formatos de archivo que no son de código.' +title: Working with non-code files +intro: '{% data variables.product.product_name %} supports rendering and diffing in a number of non-code file formats.' redirect_from: - /articles/rendering-and-diffing-images - /github/managing-files-in-a-repository/rendering-and-diffing-images @@ -32,146 +32,148 @@ versions: ghec: '*' topics: - Repositories -shortTitle: Trabajar con archivos sin código +shortTitle: Working with non-code files --- -## Representar y comparar imágenes +## Rendering and diffing images -{% data variables.product.product_name %} puede mostrar varios formatos de imagen comunes, incluidos PNG, JPG, GIF, PSD y SVG. Asimismo, para simplificar mostrarlas, existen diversas formas de comparar las diferencias entre las versiones de esos formatos de imagen.' +{% data variables.product.product_name %} can display several common image formats, including PNG, JPG, GIF, PSD, and SVG. In addition to simply displaying them, there are several ways to compare differences between versions of those image formats.' {% note %} -**Nota:** Si estás utilizando el navegador Firefox, puede que los SVG en {% data variables.product.prodname_dotcom %} no se representen. +**Note:** If you are using the Firefox browser, SVGs on {% data variables.product.prodname_dotcom %} may not render. {% endnote %} -### Ver imágenes +### Viewing images You can directly browse and view images in your repository on {% ifversion ghae %}{% data variables.product.product_name %}{% else %}{% data variables.product.product_location %}{% endif %}: -![imagen alineada](/assets/images/help/images/view.png) +![inline image](/assets/images/help/images/view.png) -Los SVG actualmente no admiten scripting alineado o animación. +SVGs don't currently support inline scripting or animation. -### Ver diferencias +### Viewing differences -Puedes comparar visualmente las imágenes de tres modos diferentes: [2-up](#2-up), [deslizar](#swipe) y [papel cebolla](#onion-skin). +You can visually compare images in three different modes: [2-up](#2-up), [swipe](#swipe), and [onion skin](#onion-skin). #### 2-up -**2-up** es el modo predeterminado; te muestra una descripción rápida de ambas imágenes. Asimismo, si la imagen cambió de tamaño entre las versiones, se muestra el cambio de dimensión real. Esto debería ser muy evidente cuando las cosas cambian de tamaño, como cuando los activos se suben de categoría a resoluciones más altas. +**2-up** is the default mode; it gives you a quick glimpse of both images. In addition, if the image has changed size between versions, the actual dimension change is displayed. This should make it very apparent when things are resized, such as when assets are upgraded to higher resolutions. ![2-up](/assets/images/help/repository/images-2up-view.png) -#### Deslizar +#### Swipe -**Deslizar**te deja ver partes de tus imágenes. ¿No estás seguro de si cambiaron los colores en las diferentes versiones? Arrastra el control deslizante de deslizamiento sobre el área en cuestión y compara los píxeles tú mismo. +**Swipe** lets you view portions of your image side by side. Not sure if colors shifted between different versions? Drag the swipe slider over the area in question and compare the pixels for yourself. -![Deslizar](/assets/images/help/repository/images-swipe-view.png) +![Swipe](/assets/images/help/repository/images-swipe-view.png) -#### Papel cebolla +#### Onion skin -**Papel cebolla** realmente ayuda cuando los elementos apenas se desplazan y cuesta percibir el cambio. ¿Un icono se corrió dos píxeles a la izquierda? Arrastra el control deslizante de opacidad hacia atrás un poco y comprueba si las cosas se desplazaron. +**Onion Skin** really comes in handy when elements move around by small, hard to notice amounts. Did an icon shift two pixels to the left? Drag the opacity slider back a bit and notice if things move around. -![Papel cebolla](/assets/images/help/repository/images-onion-view.gif) +![Onion skin](/assets/images/help/repository/images-onion-view.gif) -## Visualizador de archivos 3D +## 3D File Viewer -{% data variables.product.product_name %} puede alojar y representar archivos 3D con la extensión *.stl*. +{% data variables.product.product_name %} can host and render 3D files with the *.stl* extension. -Al buscar directamente en un archivo STL en {% data variables.product.product_name %} puedes: +When looking directly at an STL file on {% data variables.product.product_name %} you can: -* Hacer clic y arrastrar para girar el modelo. -* Hacer clic con el botón derecho y arrastrar para traducir la vista. -* Desplazarse para acercar y alejar. -* Hacer clic en los diferentes modos para cambiar la vista. +* Click and drag to spin the model. +* Right click and drag to translate the view. +* Scroll to zoom in and out. +* Click the different view modes to change the view. -### Diferencias +### Diffs -Cuando miras una confirmación de cambios o un conjunto de cambios que incluyen un archivo STL, podrás ver una diferencia de antes y después del archivo. +When looking at a commit or set of changes which includes an STL file, you'll be able to see a before and after diff of the file. -Por defecto, obtendrás una vista donde todo lo que no ha cambiado está en el esquema de página. Las adiciones aparecen en verde y las partes eliminadas aparecen en rojo. +By default, you'll get a view where everything unchanged is in wireframe. Additions are colored in green, and removed parts are colored in red. -![esquema de página](/assets/images/help/repository/stl_wireframe.png) +![wireframe](/assets/images/help/repository/stl_wireframe.png) -También puedes seleccionar la opción **Control deslizante de la revisión**, que te permite usar un control deslizante en la parte superior del archivo para cambiar entre las revisiones actuales y las anteriores. +You can also select the **Revision Slider** option, which lets you use a slider at the top of the file to transition between the current and previous revisions. -### Solucionar un rendimiento reducido +### Fixing slow performance -Si ves este ícono en la esquina del visualizador, entonces la tecnología WebGL no está disponible en tu navegador: +If you see this icon in the corner of the viewer, then the WebGL technology is not available on your browser: -![error emergente de WebGL](/assets/images/help/repository/render_webgl_error.png) +![WebGL pop error](/assets/images/help/repository/render_webgl_error.png) -WebGL es necesario para aprovechar el hardware de tu equipo al máximo. Te recomendamos que intentes con navegadores como [Chrome](https://www.google.com/intl/en/chrome/browser/) o [Firefox](https://www.mozilla.org/en-US/firefox/new/), que vienen con WebGL activado. +WebGL is necessary to take advantage of your computer's hardware to its fullest. We recommend you try browsers like [Chrome](https://www.google.com/intl/en/chrome/browser/) or [Firefox](https://www.mozilla.org/en-US/firefox/new/), which ship with WebGL enabled. -### Error: "No se puede mostrar" +### Error: "Unable to display" -Si tu modelo no es válido, es posible que GitHub no pueda mostrar el archivo. Además, los archivos de más de 10 MB son demasiado grandes para que GitHub los muestre. +If your model is invalid, GitHub may not be able to display the file. In addition, files that are larger than 10 MB are too big for GitHub to display. -### Insertar tu modelo en otro lugar +### Embedding your model elsewhere -Para mostrar tu archivo 3D en algún otro lugar de Internet, modifica esta plantilla y colócala en cualquier página HTML que sea compatible con JavaScript: +To display your 3D file elsewhere on the internet, modify this template and place it on any HTML page that supports JavaScript: ```html ``` -Por ejemplo, si la URL de tu modelo es [github.com/skalnik/secret-bear-clip/blob/master/stl/clip.stl](https://github.com/skalnik/secret-bear-clip/blob/master/stl/clip.stl), tu código para insertar sería: +For example, if your model's URL is [github.com/skalnik/secret-bear-clip/blob/master/stl/clip.stl](https://github.com/skalnik/secret-bear-clip/blob/master/stl/clip.stl), your embed code would be: ```html ``` -Por defecto, la representación insertada es de 420 píxeles de ancho por 620 de alto, pero puedes personalizar la salida, pasando las variables de altura y ancho como parámetros al final de la URL, como `?height=300&width=500`. +By default, the embedded renderer is 420 pixels wide by 620 pixels high, but you can customize the output by passing height and width variables as parameters at the end of the URL, such as `?height=300&width=500`. {% tip %} -**Nota**: `ref` puede ser una rama del hash para una confirmación individual (como `2391ae`). +**Note**: `ref` can be a branch or the hash to an individual commit (like `2391ae`). {% endtip %} -## Representar datos CSV y TSV +## Rendering CSV and TSV data -GitHub admite la representación de datos tabulares en la forma de archivos *.csv* (separados por coma) y .*tsv* (separados por pestaña). +GitHub supports rendering tabular data in the form of *.csv* (comma-separated) and .*tsv* (tab-separated) files. -![Muestra de CSV representado](/assets/images/help/repository/rendered_csv.png) +![Rendered CSV sample](/assets/images/help/repository/rendered_csv.png) -When viewed, any _.csv_ or _.tsv_ file committed to a repository on {% ifversion ghae %}{% data variables.product.product_name %}{% else %}{% data variables.product.product_location %}{% endif %} automatically renders as an interactive table, complete with headers and row numbering. Por defecto, siempre asumimos que la primera fila es tu fila de encabezados. +When viewed, any _.csv_ or _.tsv_ file committed to a repository on {% ifversion ghae %}{% data variables.product.product_name %}{% else %}{% data variables.product.product_location %}{% endif %} automatically renders as an interactive table, complete with headers and row numbering. By default, we'll always assume the first row is your header row. -Puedes generar un enlace a una fila particular haciendo clic en el número de fila o seleccionar varias filas manteniendo presionada la tecla shift. Tan solo copia la URL y envíasela a un amigo. +You can link to a particular row by clicking the row number, or select multiple rows by holding down the shift key. Just copy the URL and send it to a friend. -### Buscar datos +### Searching data -Si quieres encontrar un valor determinado en tu conjunto de datos, puedes comenzar escribiendo en la barra de búsqueda directamente arriba del archivo. Las filas se filtrarán automáticamente: +If you want to find a certain value in your dataset, you can start typing in the search bar directly above the file. The rows will filter automatically: -![Buscar valores](/assets/images/help/repository/searching_csvs.gif) +![Searching for values](/assets/images/help/repository/searching_csvs.gif) -### Manejar errores +### Handling errors -De manera ocasional, puede que descubras que tu archivo CSV o TSV no se representa. En esas instancias, aparece un cuadro de error al pie del texto original que sugiere cuál puede ser el error. +Occasionally, you may discover that your CSV or TSV file isn't rendering. In those instances, an error box appears at the bottom of your raw text, suggesting what the error may be. -![Mensaje de error de representación de CSV](/assets/images/help/repository/csv_render_error.png) +![CSV render error message](/assets/images/help/repository/csv_render_error.png) -Los errores comunes incluyen los siguientes: +Common errors include: -* Conteos de columnas que no coinciden. Debes tener la misma cantidad de separadores en cada fila, incluso si la celda está en blanco -* Superar el tamaño de archivo. Nuestra representación solo funciona para archivos de hasta 512KB. Cualquier cosa más grande hace que el navegador se vuelva más lento. +* Mismatched column counts. You must have the same number of separators in each row, even if the cell is blank +* Exceeding the file size. Our rendering only works for files up to 512KB. Anything bigger than that slows down the browser. -## Representar documentos PDF +## Rendering PDF documents -GitHub admite la representación de documentos PDF. +GitHub supports rendering of PDF documents. -![Documento PDF representado](/assets/images/help/repository/rendered-pdf.png) +![Rendered PDF Document](/assets/images/help/repository/rendered-pdf.png) -Actualmente, se ignoran los enlaces dentro de los PDF. +Currently, links within PDFs are ignored. -## Representar diferencias en documentos en prosa +## Rendering differences in prose documents -Las confirmaciones y solicitudes de extracción que incluyen documentos en prosa tienen la capacidad de representar esos documentos con vistas *de origen* y *representadas*. +Commits and pull requests that include prose documents have the ability to represent those documents with *source* and *rendered* views. -La vista de origen muestra el texto en bruto que se escribió, mientras que la vista representada muestra la manera en que ese texto se vería una vez que se represente en {% data variables.product.product_name %}. Por ejemplo, esto puede ser la diferencia entre mostrar `**negrita**` en Markdown y **negrita** en la vista representada. +The source view shows the raw text that has been typed, while the rendered +view shows how that text would look once it's rendered on {% data variables.product.product_name %}. For example, +this might be the difference between showing `**bold**` in Markdown, and **bold** in the rendered view. -Se admite la representación en prosa para documentos representados compatibles con [github/markup](https://github.com/github/markup): +Prose rendering is supported for rendered documents supported by [github/markup](https://github.com/github/markup): * Markdown * AsciiDoc @@ -183,140 +185,145 @@ Se admite la representación en prosa para documentos representados compatibles * MediaWiki * Pod -![Icono Paper (Papel) para ver el documento en prosa representado](/assets/images/help/repository/rendered_prose_diff.png) +![Paper icon to view rendered prose document](/assets/images/help/repository/rendered_prose_diff.png) -Puedes hacer clic en {% octicon "file" aria-label="The paper icon" %} para ver los cambios hechos al documento como parte de una confirmación. +You can click {% octicon "file" aria-label="The paper icon" %} to see the changes made to the document as part of a commit. -![Cambios en prosa representados](/assets/images/help/repository/rendered_prose_changes.png) +![Rendered Prose changes](/assets/images/help/repository/rendered_prose_changes.png) {% ifversion fpt or ghes > 3.2 or ghae-issue-5232 or ghec %} -### Inhabilitar la representación del lenguaje de marcado +### Disabling Markdown rendering {% data reusables.repositories.disabling-markdown-rendering %} {% endif %} -### Ver los cambios del atributo +### Visualizing attribute changes -Proporcionamos una información de herramienta que describe los cambios en los atributos que, a diferencia de las palabras, no serían visibles en el documento representado. Por ejemplo, si la URL de un enlace cambia de un sitio web a otro, mostraríamos una información de herramienta como la siguiente: +We provide a tooltip +describing changes to attributes that, unlike words, would not otherwise be visible in the rendered document. For example, if a link URL changes from one website to +another, we'd show a tooltip like this: -![Cambios en atributos de la prosa representados](/assets/images/help/repository/prose_diff_attributes.png) +![Rendered Prose attribute changes](/assets/images/help/repository/prose_diff_attributes.png) -### Comentar cambios +### Commenting on changes -Solo se pueden agregar [comentarios de la confirmación](/articles/commenting-on-differences-between-files) en los archivos dentro de la vista *de origen*, línea por línea. +[Commit comments](/articles/commenting-on-differences-between-files) can only +be added to files within the *source* view, on a line-by-line basis. -### Vincular a encabezados +### Linking to headers -Como con [otros documentos en prosa representados](/articles/about-readmes), deslizarse sobre un encabezado de tu documento crea un icono de enlace. Puedes vincular a los lectores de tu diferencia de prosa representada a secciones específicas. +As with [other rendered prose documents](/articles/about-readmes), +hovering over a header in your document creates a link icon. You can link readers +of your rendered prose diff to specific sections. -### Ver diferencias complejas +### Viewing complex diffs -Algunas solicitudes de extracción incluyen una gran cantidad de cambios con documentos grandes y complejos. Cuando los cambios toman demasiado tiempo en su análisis, {% data variables.product.product_name %} no siempre puede producir una vista renderizada de los cambios. Si esto pasa, verás un mensaje de error cuando das clic en el botón renderizado. +Some pull requests involve a large number of changes with large, complex documents. When the changes take too long to analyze, {% data variables.product.product_name %} can't always produce a rendered view of the changes. If this happens, you'll see an error message when you click the rendered button. -![Mensaje cuando la vista no se puede renderizar](/assets/images/help/repository/prose_diff_rendering.png) +![Message when view can't be rendered](/assets/images/help/repository/prose_diff_rendering.png) -Aún puedes utilizar la vista de origen para analizar y comentar cambios. +You can still use the source view to analyze and comment on changes. -### Ver elementos HTML +### Viewing HTML elements -No admitimos directamente vistas representadas de confirmaciones en documentos HTML. Algunos formatos, como Markdown, te permiten insertar HTML arbitrarios en un documento. Cuando estos documentos se muestran en {% data variables.product.product_name %}, algunos de esos HTML insertados pueden aparecer en una vista previa, mientras que con otros no es posible hacerlo (como un video de YouTube insertado). +We don't directly support rendered views of commits to HTML documents. Some formats, such as Markdown, let you embed arbitrary HTML in a document. When these documents are shown on {% data variables.product.product_name %}, some of that embedded HTML can be shown in a preview, while some (like an embedded YouTube video) cannot. -En general, las vistas representadas de los cambios en un documento que contiene HTML insertados mostrarán los cambios en los elementos que se admiten en la vista del documento de {% data variables.product.product_name %}. Los cambios en los documentos que contienen HTML insertados siempre se deben verificar en las vistas de origen y representada para corroborar que estén todos. +In general, rendered views of changes to a document containing embedded HTML will show changes to the elements that are supported in {% data variables.product.product_name %}'s view of the document. Changes to documents containing embedded HTML should always be reviewed in both the rendered and source views for completeness. -## Mapear archivos de geoJSON en {% data variables.product.prodname_dotcom %} +## Mapping geoJSON files on {% data variables.product.prodname_dotcom %} -{% data variables.product.product_name %} admite representar archivos de mapa geoJSON y topoJSON dentro de repositorios {% data variables.product.product_name %}. Simplemente confirma el archivo como lo harías normalmente utilizando una extensión `.geojson` o `.topojson`. También se admiten archivos con una extensión `.json`, pero únicamente si `type` están configurados para `FeatureCollection`, `GeometryCollection`, o `topology`. Después, navega hasta la ruta del archivo geoJSON en GitHub.com. +{% data variables.product.product_name %} supports rendering geoJSON and topoJSON map files within {% data variables.product.product_name %} repositories. Simply commit the file as you would normally using a `.geojson` or `.topojson` extension. Files with a `.json` extension are also supported, but only if `type` is set to `FeatureCollection`, `GeometryCollection`, or `topology`. Then, navigate to the path of the geoJSON file on GitHub.com. -Cuando haces clic en el ícono de papel a la derecha, también verás los cambios realizados a ese archivo como parte de una confirmación de cambios. +When you click the paper icon on the right, you'll also see the changes made to that file as part of a commit. -![Captura de pantalla de conmutación de representación de fuente](/assets/images/help/repository/source-render-toggle-geojson.png) +![Source Render toggle screenshot](/assets/images/help/repository/source-render-toggle-geojson.png) -### Tipos de Geometry +### Geometry Types -Los mapas en {% data variables.product.product_name %} utilizan [Leaflet.js](http://leafletjs.com) y admiten todos los tipos de Geometry indicados en [las especificaciones de geoJSON](http://www.geojson.org/geojson-spec.html) (Point, LineString, Polygon, MultiPoint, MultiLineString, MultiPolygon y GeometryCollection). Los archivos TopoJSON deberían ser del tipo "Topology" y adherir a las especificaciones [topoJSON](https://github.com/mbostock/topojson/wiki/Specification). +Maps on {% data variables.product.product_name %} use [Leaflet.js](http://leafletjs.com) and support all the geometry types outlined in [the geoJSON spec](http://www.geojson.org/geojson-spec.html) (Point, LineString, Polygon, MultiPoint, MultiLineString, MultiPolygon, and GeometryCollection). TopoJSON files should be type "Topology" and adhere to the [topoJSON spec](https://github.com/mbostock/topojson/wiki/Specification). -### Características de estilo +### Styling features -Puedes personalizar la manera en que se muestran las características, como especificar un color particular o agregar un ícono descriptivo, al pasar metadatos adicionales dentro de las propiedades del objeto geoJSON. Las opciones son: +You can customize the way features are displayed, such as specifying a particular color or adding a descriptive icon, by passing additional metadata within the geoJSON object's properties. The options are: -* `marker-size` - `small`, `medium`, o `large` -* `marker-color` - color RGB hex válido -* `marker-symbol` - un ID del ícono del [proyecto Maki ](http://mapbox.com/maki/) o un carácter único alfanumérico (a-z o 0-9). -* `stroke` - color de una línea o borde de un polígono (RGB) -* `stroke-opacity` - opacidad de una línea o borde de un polígono (0.0 - 1.0) -* `stroke-width` - ancho de una línea o borde de un polígono -* `fill` - el color del interior de un polígono (GRB) -* `fill-opacity` - la opacidad del interior de un polígono (0.0-1.0) +* `marker-size` - `small`, `medium`, or `large` +* `marker-color` - valid RGB hex color +* `marker-symbol` - an icon ID from [the Maki project](http://mapbox.com/maki/) or a single alphanumeric character (a-z or 0-9). +* `stroke` - color of a polygon edge or line (RGB) +* `stroke-opacity` - opacity of a polygon edge or line (0.0 - 1.0) +* `stroke-width` - width of a polygon edge or line +* `fill` - the color of the interior of a polygon (GRB) +* `fill-opacity` - the opacity of the interior of a polygon (0.0-1.0) -Consulta la versión [1.1.0 de las especificaciones de estilo simple abierto](https://github.com/mapbox/simplestyle-spec/tree/master/1.1.0) para obtener más información. +See [version 1.1.0 of the open simplestyle spec](https://github.com/mapbox/simplestyle-spec/tree/master/1.1.0) for more information. -### Incrustrar tu mapa en otro lugar +### Embedding your map elsewhere -Deseas hacer disponible tu mapa geoJSON en un lugar distinto a {% data variables.product.product_name %}? Simplemente modifica esta plantilla, y colócala en alguna página HTML que admita javascript (p. ej., [{% data variables.product.prodname_pages %}](http://pages.github.com)): +Want to make your geoJSON map available someplace other than {% data variables.product.product_name %}? Simply modify this template, and place it in any HTML page that supports javascript (e.g., [{% data variables.product.prodname_pages %}](http://pages.github.com)): ```html ``` -Por ejemplo, si la URL de tu mapa es [github.com/benbalter/dc-wifi-social/blob/master/bars.geojson](https://github.com/benbalter/dc-wifi-social/blob/master/bars.geojson), tu código de incrustación sería: +For example, if your map's URL is [github.com/benbalter/dc-wifi-social/blob/master/bars.geojson](https://github.com/benbalter/dc-wifi-social/blob/master/bars.geojson), your embed code would be: ```html ``` -Por defecto, el mapa incrustado es 420px x 620px, pero puedes personalizar el resultado al pasar variables de alto y ancho como parámetros al final, como `?height=300&width=500`. +By default, the embedded map 420px x 620px, but you can customize the output by passing height and width variables as parameters at the end, such as `?height=300&width=500`. {% tip %} -**Nota**: `ref` puede ser una rama del hash para una confirmación individual (como `2391ae`). +**Note**: `ref` can be a branch or the hash to an individual commit (like `2391ae`). {% endtip %} -### Agrupación +### Clustering -Si tu mapa contiende una gran cantidad de marcadores (aproximadamente más de 750), GitHub automáticamente agrupará marcadores cercanos en niveles superiores de zoom. Simplemente haz clic la agrupación o el zoom de acercamiento para ver los marcadores individuales. +If your map contains a large number of markers (roughly over 750), GitHub will automatically cluster nearby markers at higher zoom levels. Simply click the cluster or zoom in to see individual markers. -### Algo sucede con el mapa subyacente +### Something's up with the underlying map -Los datos del mapa subyacente (nombres de calles, caminos, etc.) están controlados por [OpenStreetMap](http://www.openstreetmap.org/), un proyecto colaborativo para crear un mapa editable gratuito del mundo. Si notas que algo no está del todo bien, ya que es código abierto, simplemente [sign up](https://www.openstreetmap.org/user/new) y envía un arreglo. +The underlying map data (street names, roads, etc.) are driven by [OpenStreetMap](http://www.openstreetmap.org/), a collaborative project to create a free editable map of the world. If you notice something's not quite right, since it's open source, simply [sign up](https://www.openstreetmap.org/user/new) and submit a fix. -### Solución de problemas +### Troubleshooting -Si estás teniendo problemas al representar archivos geoJSON, asegúrate que tienes un archivo geoJSON válido al ejecutarlo en un [limpiador de geoJSON](http://geojsonlint.com/). Si tus puntos no aparecen donde lo esperas (p. ej., aparecen en la mitad del océano), es probable que los datos estén en una proyección que actualmente no se admite. Actualmente, {% data variables.product.product_name %} admite únicamente la proyección `urn:ogc:def:crs:OGC:1.3:CRS84`. +If you're having trouble rendering geoJSON files, ensure you have a valid geoJSON file by running it through a [geoJSON linter](http://geojsonlint.com/). If your points aren't appearing where you'd expect (e.g., in the middle of the ocean), it's likely that the data is in a projection which is currently unsupported. Currently, {% data variables.product.product_name %} only supports the `urn:ogc:def:crs:OGC:1.3:CRS84` projection. -Por otra parte, si tu archivo `.geojson` es particularmente grande (superior a 10 MB), no es posible representarlo dentro del navegador. Si ese es el caso, por lo general verás un mensaje similar a este: +Additionally, if your `.geojson` file is especially large (over 10 MB), it is not possible to render within the browser. If that's the case, you'll generally see a message that looks something like this: -![Archivo de gran tamaño](/assets/images/help/repository/view_raw.png) +![Large file](/assets/images/help/repository/view_raw.png) -Todavía se podrían representar los datos al convertir el archivo `.geojson` a [TopoJSON](https://github.com/mbostock/topojson), un formato de compresión que, en algunos casos, puede reducir el tamaño del archivo hasta un 80 %. Por supuesto, siempre puedes partir el archivo en fragmentos más pequeños (como por estado o por año), y almacenar los datos como archivos múltiples dentro del repositorio. +It may still be possible to render the data by converting the `.geojson` file to [TopoJSON](https://github.com/mbostock/topojson), a compression format that, in some cases, can reduce filesize by up to 80%. Of course, you can always break the file into smaller chunks (such as by state or by year), and store the data as multiple files within the repository. -### Recursos adicionales +### Additional Resources -* [Documentación Leaflet.js geojson](http://leafletjs.com/examples/geojson.html) -* [Documentación de estilización de marcador MapBox](http://www.mapbox.com/developers/simplestyle/) +* [Leaflet.js geojson documentation](http://leafletjs.com/examples/geojson.html) +* [MapBox marker-styling documentation](http://www.mapbox.com/developers/simplestyle/) * [TopoJSON Wiki](https://github.com/mbostock/topojson/wiki) -## Trabajar con arhivos de Jupyter Notebook en {% data variables.product.prodname_dotcom %} +## Working with Jupyter Notebook files on {% data variables.product.prodname_dotcom %} -Cuando agregas archivos de Jupyter Notebook o IPython Notebook con una extensión *.ipynb* en {% data variables.product.product_location %}, estas se interpretarán como archivos HTML estáticos en tu repositorio. +When you add Jupyter Notebook or IPython Notebook files with a *.ipynb* extension on {% data variables.product.product_location %}, they will render as static HTML files in your repository. -Las funciones interactivas de notebook, como los gráficos JavaScript personalizados, no funcionarán en tu repositorio en {% data variables.product.product_location %}. Para obtener un ejemplo, consulta [*Enlaces e interacciones.ipynb*](https://github.com/bokeh/bokeh-notebooks/blob/main/tutorial/06%20-%20Linking%20and%20Interactions.ipynb). +The interactive features of the notebook, such as custom JavaScript plots, will not work in your repository on {% data variables.product.product_location %}. For an example, see [*Linking and Interactions.ipynb*](https://github.com/bokeh/bokeh-notebooks/blob/main/tutorial/06%20-%20Linking%20and%20Interactions.ipynb). -Para ver tu notebook Jupyter con el contenido representado de JavaScript o para compartir tus archivos notebook con otros, puedes usar [nbviewer](https://nbviewer.jupyter.org/). Para obtener un ejemplo, consulta [*Enlaces e interacciones.ipynb*](https://nbviewer.jupyter.org/github/bokeh/bokeh-notebooks/blob/main/tutorial/06%20-%20Linking%20and%20Interactions.ipynb) representados en nbviewer. +To view your Jupyter notebook with JavaScript content rendered or to share your notebook files with others you can use [nbviewer](https://nbviewer.jupyter.org/). For an example, see [*Linking and Interactions.ipynb*](https://nbviewer.jupyter.org/github/bokeh/bokeh-notebooks/blob/main/tutorial/06%20-%20Linking%20and%20Interactions.ipynb) rendered on nbviewer. -Para ver una versión completamente interactiva de tu notebook Jupyter, puedes configurar un servidor notebook de manera local. Para obtener más información, consulta [Documentación oficial de Jupyter](http://jupyter.readthedocs.io/en/latest/index.html). +To view a fully interactive version of your Jupyter Notebook, you can set up a notebook server locally. For more information, see [Jupyter's official documentation](http://jupyter.readthedocs.io/en/latest/index.html). -### Solución de problemas +### Troubleshooting -Si tienes problemas para representar los archivos notebook Jupyter en HTML estático, puedes convertir el archivo de forma local en la línea de comando usando el comando [`nbconvert`](https://github.com/jupyter/nbconvert): +If you're having trouble rendering Jupyter Notebook files in static HTML, you can convert the file locally on the command line by using the [`nbconvert` command](https://github.com/jupyter/nbconvert): ```shell $ jupyter nbconvert --to html NOTEBOOK-NAME.ipynb ``` -### Leer más +### Further reading -- [Repositorio GitHub de notebook Jupyter](https://github.com/jupyter/jupyter_notebook) -- [Galería de notebooks Jupyter](https://github.com/jupyter/jupyter/wiki/A-gallery-of-interesting-Jupyter-Notebooks) +- [Jupyter Notebook's GitHub repository](https://github.com/jupyter/jupyter_notebook) +- [Gallery of Jupyter Notebooks](https://github.com/jupyter/jupyter/wiki/A-gallery-of-interesting-Jupyter-Notebooks) diff --git a/translations/es-ES/content/rest/guides/best-practices-for-integrators.md b/translations/es-ES/content/rest/guides/best-practices-for-integrators.md index 05d182c442..7ad5e448ca 100644 --- a/translations/es-ES/content/rest/guides/best-practices-for-integrators.md +++ b/translations/es-ES/content/rest/guides/best-practices-for-integrators.md @@ -2,7 +2,7 @@ title: Best practices for integrators intro: 'Build an app that reliably interacts with the {% ifversion fpt or ghec %}{% data variables.product.prodname_dotcom %}{% else %}{% data variables.product.product_name %}{% endif %} API and provides the best experience for your users.' redirect_from: - - /guides/best-practices-for-integrators/ + - /guides/best-practices-for-integrators - /v3/guides/best-practices-for-integrators versions: fpt: '*' diff --git a/translations/es-ES/content/rest/guides/building-a-ci-server.md b/translations/es-ES/content/rest/guides/building-a-ci-server.md index 1483f0f895..dbcec20196 100644 --- a/translations/es-ES/content/rest/guides/building-a-ci-server.md +++ b/translations/es-ES/content/rest/guides/building-a-ci-server.md @@ -2,7 +2,7 @@ title: Building a CI server intro: Build your own CI system using the Status API. redirect_from: - - /guides/building-a-ci-server/ + - /guides/building-a-ci-server - /v3/guides/building-a-ci-server versions: fpt: '*' diff --git a/translations/es-ES/content/rest/guides/delivering-deployments.md b/translations/es-ES/content/rest/guides/delivering-deployments.md index 5b68bc5faa..13ad16c3da 100644 --- a/translations/es-ES/content/rest/guides/delivering-deployments.md +++ b/translations/es-ES/content/rest/guides/delivering-deployments.md @@ -1,9 +1,9 @@ --- -title: Entregar despliegues -intro: 'Al utilizar la API de REST de Despliegues, puedes crear herramientas personalizadas que interactúen con tu servidor y con una app de terceros.' +title: Delivering deployments +intro: 'Using the Deployments REST API, you can build custom tooling that interacts with your server and a third-party app.' redirect_from: - - /guides/delivering-deployments/ - - /guides/automating-deployments-to-integrators/ + - /guides/delivering-deployments + - /guides/automating-deployments-to-integrators - /v3/guides/delivering-deployments versions: fpt: '*' @@ -16,23 +16,33 @@ topics: -La [API de despliegues][deploy API] proporciona a tus proyectos hospedados en {% data variables.product.product_name %} la capadidad de lanzarlos en un servidor que te pertenezca. En combinación con [la API de estados][status API], podrás coordinar tus lanzamientos en el momento en que tu código llegue a la rama predeterminada. +The [Deployments API][deploy API] provides your projects hosted on {% data variables.product.product_name %} with +the capability to launch them on a server that you own. Combined with +[the Status API][status API], you'll be able to coordinate your deployments +the moment your code lands on the default branch. -Esta guía utilizará la API para demostrar una configuración que puedes utilizar. En nuestro escenario, nosotros: +This guide will use that API to demonstrate a setup that you can use. +In our scenario, we will: -* Fusionamos una solicitud de extracción -* Cuando finaliza la IC, configuramos el estado de la solicitud de extracción según corresponda. -* Cuando se fusiona la solicitud de extracción, ejecutamos nuestro despliegue en nuestro servidor. +* Merge a pull request +* When the CI is finished, we'll set the pull request's status accordingly. +* When the pull request is merged, we'll run our deployment to our server. -Nuestro sistema de IC y nuestro servidor host serán imaginarios. Podrían ser Heroku, Amazon, o algo completamente diferente. El meollo de esta guía será configurar y ajustar el servidor que administra la comunicación. +Our CI system and host server will be figments of our imagination. They could be +Heroku, Amazon, or something else entirely. The crux of this guide will be setting up +and configuring the server managing the communication. -Si aún no lo has hecho, asegúrate de [descargar ngrok][ngrok], y de aprender a [utilizarlo][using ngrok]. Consideramos que es una herramienta muy útil para exponer las conexiones locales. +If you haven't already, be sure to [download ngrok][ngrok], and learn how +to [use it][using ngrok]. We find it to be a very useful tool for exposing local +connections. -Nota: puedes descargar todo el código fuente para este proyecto [del repo platform-samples][platform samples]. +Note: you can download the complete source code for this project +[from the platform-samples repo][platform samples]. -## Escribir tu servidor +## Writing your server -Escribiremos una app de Sinatra rápidamente para probar que nuestras conexiones locales estén funcionando. Comencemos con esto: +We'll write a quick Sinatra app to prove that our local connections are working. +Let's start with this: ``` ruby require 'sinatra' @@ -44,21 +54,31 @@ post '/event_handler' do end ``` -(Si no estás familiarizado con como funciona Sinatra, te recomendamos [leer la guía de Sinatra][Sinatra].) +(If you're unfamiliar with how Sinatra works, we recommend [reading the Sinatra guide][Sinatra].) -Inicia este servidor. Predeterminadamente, Sinatra inicia en el puerto `4567`, así que también debes configurar ngrok para comenzar a escuchar este puerto. +Start this server up. By default, Sinatra starts on port `4567`, so you'll want +to configure ngrok to start listening for that, too. -Para que este servidor funcione, necesitaremos configurar un repositorio con un webhook. El webhook debe configurarse para que se active cada que se crea o fusiona una solicitud de extracción. Sigue adelante y crea un repositorio en el que quieras hacer tus experimentos. ¿Podríamos sugerirte que sea [el repositorio Spoon/Knife de @octocat](https://github.com/octocat/Spoon-Knife)? Después de esto, crearás un webhook nuevo en tu repositorio y lo alimentarás con la URL que te dio ngrok para luego escoger a `application/x-www-form-urlencoded` como el tipo de contenido: +In order for this server to work, we'll need to set a repository up with a webhook. +The webhook should be configured to fire whenever a pull request is created, or merged. +Go ahead and create a repository you're comfortable playing around in. Might we +suggest [@octocat's Spoon/Knife repository](https://github.com/octocat/Spoon-Knife)? +After that, you'll create a new webhook in your repository, feeding it the URL +that ngrok gave you, and choosing `application/x-www-form-urlencoded` as the +content type: -![Una URL de ngrok nueva](/assets/images/webhook_sample_url.png) +![A new ngrok URL](/assets/images/webhook_sample_url.png) -Haz clic en **Actualizar webhook**. Deberás ver una respuesta en el cuerpo que diga `Well, it worked!`. ¡Genial! Da clic en **Déjame selecionar eventos individuales**, y selecciona lo siguiente: +Click **Update webhook**. You should see a body response of `Well, it worked!`. +Great! Click on **Let me select individual events.**, and select the following: -* Despliegue -* Estado del despliegue -* Solicitud de Extracción +* Deployment +* Deployment status +* Pull Request -Estos son los eventos que {% data variables.product.product_name %} enviará a nuestro servidor cuando ocurra cualquier acción relevante. Configuraremos nuestro servidor para que *solo* gestione cuando las solicitudes de extracción se fusionen ahora mismo: +These are the events {% data variables.product.product_name %} will send to our server whenever the relevant action +occurs. We'll configure our server to *just* handle when pull requests are merged +right now: ``` ruby post '/event_handler' do @@ -73,15 +93,20 @@ post '/event_handler' do end ``` -¿Qué está pasando? Cada evento que {% data variables.product.product_name %} envía adjunta un encabezado de HTTP de `X-GitHub-Event`. Solo nos interesan los eventos de Solicitud de Extracción por el momento. Cuando una solicitud de extracción se fusiona (su estado es `closed`, y `merged` se encuentra como `true`), iniciaremos un despliegue. +What's going on? Every event that {% data variables.product.product_name %} sends out attached a `X-GitHub-Event` +HTTP header. We'll only care about the PR events for now. When a pull request is +merged (its state is `closed`, and `merged` is `true`), we'll kick off a deployment. -Para probar esta prueba de concepto, haz algunos cambios en una rama de tu repositorio de pruebas, y abre una solicitud de extracción y fusiónala. ¡Tu servidor deberá responder de acuerdo con los casos! +To test out this proof-of-concept, make some changes in a branch in your test +repository, open a pull request, and merge it. Your server should respond accordingly! -## Trabajar con despliegues +## Working with deployments -Como ya tenemos nuestro servidor configurado, el código ya se revisó, y nuestras solicitudes de extracción se fusionaron, entonces queremos desplegar nuestro proyecto. +With our server in place, the code being reviewed, and our pull request +merged, we want our project to be deployed. -Comenzaremos modificando nuestro detector de eventos para que procese las solicitudes de extracción cuando se fusiones, y para que comience a poner atención a los despliegues: +We'll start by modifying our event listener to process pull requests when they're +merged, and start paying attention to deployments: ``` ruby when "pull_request" @@ -95,7 +120,8 @@ when "deployment_status" end ``` -Basándonos en la información de la solicitud de extracción, comenzaremos llenando el método de `start_deployment`: +Based on the information from the pull request, we'll start by filling out the +`start_deployment` method: ``` ruby def start_deployment(pull_request) @@ -105,13 +131,19 @@ def start_deployment(pull_request) end ``` -Los despliegues pueden tener algunos metadatos adjuntos en forma de una `payload` y una `description`. Aunque estos valores son opcionales, es de gran ayuda utilizarlos para registrar y representar la información. +Deployments can have some metadata attached to them, in the form of a `payload` +and a `description`. Although these values are optional, it's helpful to use +for logging and representing information. -Cuando se crea un despliegue nuevo, se activa un evento completamente separado. Por eso es que tenemos un caso nuevo de `switch` en el gestor de eventos para nuestro `deployment`. Puedes utilizar esta información para que se te notifique cuando se active un despliegue. +When a new deployment is created, a completely separate event is triggered. That's +why we have a new `switch` case in the event handler for `deployment`. You can +use this information to be notified when a deployment has been triggered. -Los despliegues pueden tomar mucho tiempo, así que queremos detectar varios eventos, tales como cuando el despliegue se cree, y en qué estado está. +Deployments can take a rather long time, so we'll want to listen for various events, +such as when the deployment was created, and what state it's in. -Simulemos un despliegue que tome algunas acciones, y pondremos atención en el efecto que tiene sobre la salida. Primero, vamos a completar nuestro métoddo de `process_deployment`: +Let's simulate a deployment that does some work, and notice the effect it has on +the output. First, let's complete our `process_deployment` method: ``` ruby def process_deployment @@ -125,7 +157,7 @@ def process_deployment end ``` -Por último, estimularemos el almacenamiento de la información de los estados como una salida de la consola: +Finally, we'll simulate storing the status information as console output: ``` ruby def update_deployment_status @@ -133,20 +165,27 @@ def update_deployment_status end ``` -Bamos a explicar lo que está pasando. `start_deployment` creó un despliegue nuevo, lo cual activó el evento `deployment`. Desde ahí, llamamos a `process_deployment` para estimular las acciones que están sucediendo. Durante este procesamiento, también llamamos a `create_deployment_status`, el cual permite que un receptor sepa lo que está pasando, mientras cambiamos el estado a `pending`. +Let's break down what's going on. A new deployment is created by `start_deployment`, +which triggers the `deployment` event. From there, we call `process_deployment` +to simulate work that's going on. During that processing, we also make a call to +`create_deployment_status`, which lets a receiver know what's going on, as we +switch the status to `pending`. -Después de que termine el despliegue, configuramos el estado como `success`. +After the deployment is finished, we set the status to `success`. -## Conclusión +## Conclusion -En GitHub siempre hemos utilizado una versión de [Heaven][heaven] durante años para administrar nuestros despliegues. Un flujo común es esencialmente el mismo que en el servidor que creamos anteriormente: +At GitHub, we've used a version of [Heaven][heaven] to manage +our deployments for years. A common flow is essentially the same as the +server we've built above: -* Espera obtener una respuesta con base en el estado de las verificaciones de IC (éxito o fallo) -* Si las verificaciones requeridas tienen éxito, fusiona la solicitud de cambios -* Heaven toma el código fusionado y lo despliega a los servidores de prueba y producción -* Mientras tanto, Heaven también notifica a todos acerca de la compilación, a través de [Hubot][hubot] que espera en nuestras salas de chat +* Wait for a response on the state of the CI checks (success or failure) +* If the required checks succeed, merge the pull request +* Heaven takes the merged code, and deploys it to staging and production servers +* In the meantime, Heaven also notifies everyone about the build, via [Hubot][hubot] sitting in our chat rooms -¡Listo! No necesitas crear tu propia configuración de despliegue para utilizar este ejemplo. Siempre puedes confiar en las [Integraciones de GitHub][integrations]. +That's it! You don't need to build your own deployment setup to use this example. +You can always rely on [GitHub integrations][integrations]. [deploy API]: /rest/reference/repos#deployments [status API]: /guides/building-a-ci-server @@ -154,6 +193,11 @@ En GitHub siempre hemos utilizado una versión de [Heaven][heaven] durante años [using ngrok]: /webhooks/configuring/#using-ngrok [platform samples]: https://github.com/github/platform-samples/tree/master/api/ruby/delivering-deployments [Sinatra]: http://www.sinatrarb.com/ +[webhook]: /webhooks/ +[octokit.rb]: https://github.com/octokit/octokit.rb +[access token]: /articles/creating-an-access-token-for-command-line-use +[travis api]: https://api.travis-ci.org/docs/ +[janky]: https://github.com/github/janky [heaven]: https://github.com/atmos/heaven [hubot]: https://github.com/github/hubot [integrations]: https://github.com/integrations diff --git a/translations/es-ES/content/rest/guides/discovering-resources-for-a-user.md b/translations/es-ES/content/rest/guides/discovering-resources-for-a-user.md index 74f1211882..11f6410042 100644 --- a/translations/es-ES/content/rest/guides/discovering-resources-for-a-user.md +++ b/translations/es-ES/content/rest/guides/discovering-resources-for-a-user.md @@ -2,7 +2,7 @@ title: Discovering resources for a user intro: Learn how to find the repositories and organizations that your app can access for a user in a reliable way for your authenticated requests to the REST API. redirect_from: - - /guides/discovering-resources-for-a-user/ + - /guides/discovering-resources-for-a-user - /v3/guides/discovering-resources-for-a-user versions: fpt: '*' diff --git a/translations/es-ES/content/rest/guides/getting-started-with-the-rest-api.md b/translations/es-ES/content/rest/guides/getting-started-with-the-rest-api.md index 86d5220126..4e6053352c 100644 --- a/translations/es-ES/content/rest/guides/getting-started-with-the-rest-api.md +++ b/translations/es-ES/content/rest/guides/getting-started-with-the-rest-api.md @@ -2,7 +2,7 @@ title: Getting started with the REST API intro: 'Learn the foundations for using the REST API, starting with authentication and some endpoint examples.' redirect_from: - - /guides/getting-started/ + - /guides/getting-started - /v3/guides/getting-started versions: fpt: '*' diff --git a/translations/es-ES/content/rest/guides/index.md b/translations/es-ES/content/rest/guides/index.md index 1715450046..072e826783 100644 --- a/translations/es-ES/content/rest/guides/index.md +++ b/translations/es-ES/content/rest/guides/index.md @@ -2,7 +2,7 @@ title: Guides intro: 'Learn about getting started with the REST API, authentication, and how to use the REST API for a variety of tasks.' redirect_from: - - /guides/ + - /guides - /v3/guides versions: fpt: '*' diff --git a/translations/es-ES/content/rest/guides/rendering-data-as-graphs.md b/translations/es-ES/content/rest/guides/rendering-data-as-graphs.md index 97140abdca..a46becae06 100644 --- a/translations/es-ES/content/rest/guides/rendering-data-as-graphs.md +++ b/translations/es-ES/content/rest/guides/rendering-data-as-graphs.md @@ -2,7 +2,7 @@ title: Rendering data as graphs intro: Learn how to visualize the programming languages from your repository using the D3.js library and Ruby Octokit. redirect_from: - - /guides/rendering-data-as-graphs/ + - /guides/rendering-data-as-graphs - /v3/guides/rendering-data-as-graphs versions: fpt: '*' diff --git a/translations/es-ES/content/rest/guides/traversing-with-pagination.md b/translations/es-ES/content/rest/guides/traversing-with-pagination.md index 91595eb798..4b13c46e3d 100644 --- a/translations/es-ES/content/rest/guides/traversing-with-pagination.md +++ b/translations/es-ES/content/rest/guides/traversing-with-pagination.md @@ -2,7 +2,7 @@ title: Traversing with pagination intro: Explore how to use pagination to manage your responses with some examples using the Search API. redirect_from: - - /guides/traversing-with-pagination/ + - /guides/traversing-with-pagination - /v3/guides/traversing-with-pagination versions: fpt: '*' @@ -263,4 +263,4 @@ puts "The next page link is #{next_page_href}" [octokit.rb]: https://github.com/octokit/octokit.rb [personal token]: /articles/creating-an-access-token-for-command-line-use [hypermedia-relations]: https://github.com/octokit/octokit.rb#pagination -[listing commits]: /rest/reference/repos#list-commits +[listing commits]: /rest/reference/commits#list-commits diff --git a/translations/es-ES/content/rest/guides/working-with-comments.md b/translations/es-ES/content/rest/guides/working-with-comments.md index f1b2f1ee34..3b5736faea 100644 --- a/translations/es-ES/content/rest/guides/working-with-comments.md +++ b/translations/es-ES/content/rest/guides/working-with-comments.md @@ -2,7 +2,7 @@ title: Working with comments intro: 'Using the REST API, you can access and manage comments in your pull requests, issues, or commits.' redirect_from: - - /guides/working-with-comments/ + - /guides/working-with-comments - /v3/guides/working-with-comments versions: fpt: '*' @@ -126,4 +126,4 @@ on the entire commit. [personal token]: /articles/creating-an-access-token-for-command-line-use [octokit.rb]: https://github.com/octokit/octokit.rb [PR Review API]: /rest/reference/pulls#comments -[commit comment API]: /rest/reference/repos#get-a-commit-comment +[commit comment API]: /rest/reference/commits#get-a-commit-comment diff --git a/translations/es-ES/content/rest/overview/api-previews.md b/translations/es-ES/content/rest/overview/api-previews.md index 36d03bec29..7cd8e65bb0 100644 --- a/translations/es-ES/content/rest/overview/api-previews.md +++ b/translations/es-ES/content/rest/overview/api-previews.md @@ -165,7 +165,7 @@ GitHub App Manifests allow people to create preconfigured GitHub Apps. See "[Cre ## Deployment statuses -You can now update the `environment` of a [deployment status](/rest/reference/repos#create-a-deployment-status) and use the `in_progress` and `queued` states. When you create deployment statuses, you can now use the `auto_inactive` parameter to mark old `production` deployments as `inactive`. +You can now update the `environment` of a [deployment status](/rest/reference/deployments#create-a-deployment-status) and use the `in_progress` and `queued` states. When you create deployment statuses, you can now use the `auto_inactive` parameter to mark old `production` deployments as `inactive`. **Custom media type:** `flash-preview` **Announced:** [2018-10-16](https://developer.github.com/changes/2018-10-16-deployments-environments-states-and-auto-inactive-updates/) diff --git a/translations/es-ES/content/rest/overview/libraries.md b/translations/es-ES/content/rest/overview/libraries.md index 8233373761..0128487f72 100644 --- a/translations/es-ES/content/rest/overview/libraries.md +++ b/translations/es-ES/content/rest/overview/libraries.md @@ -2,7 +2,7 @@ title: Libraries intro: 'You can use the official Octokit library and other third-party libraries to extend and simplify how you use the {% ifversion fpt or ghec %}{% data variables.product.prodname_dotcom %}{% else %}{% data variables.product.product_name %}{% endif %} API.' redirect_from: - - /libraries/ + - /libraries - /v3/libraries versions: fpt: '*' diff --git a/translations/es-ES/content/rest/overview/resources-in-the-rest-api.md b/translations/es-ES/content/rest/overview/resources-in-the-rest-api.md index d3ebb7c1e2..49c8175768 100644 --- a/translations/es-ES/content/rest/overview/resources-in-the-rest-api.md +++ b/translations/es-ES/content/rest/overview/resources-in-the-rest-api.md @@ -2,7 +2,7 @@ title: Resources in the REST API intro: 'Learn how to navigate the resources provided by the {% ifversion fpt or ghec %}{% data variables.product.prodname_dotcom %}{% else %}{% data variables.product.product_name %}{% endif %} API.' redirect_from: - - /rest/initialize-the-repo/ + - /rest/initialize-the-repo versions: fpt: '*' ghes: '*' diff --git a/translations/es-ES/content/rest/reference/branches.md b/translations/es-ES/content/rest/reference/branches.md new file mode 100644 index 0000000000..60a187a93b --- /dev/null +++ b/translations/es-ES/content/rest/reference/branches.md @@ -0,0 +1,30 @@ +--- +title: Branches +intro: 'The branches API allows you to modify branches and their protection settings.' +allowTitleToDifferFromFilename: true +versions: + fpt: '*' + ghes: '*' + ghae: '*' + ghec: '*' +topics: + - API +miniTocMaxHeadingLevel: 3 +--- + +## Branches +{% for operation in currentRestOperations %} + {% if operation.subcategory == 'branches' %}{% include rest_operation %}{% endif %} +{% endfor %} + +## Merging + +The Repo Merging API supports merging branches in a repository. This accomplishes +essentially the same thing as merging one branch into another in a local repository +and then pushing to {% data variables.product.product_name %}. The benefit is that the merge is done on the server side and a local repository is not needed. This makes it more appropriate for automation and other tools where maintaining local repositories would be cumbersome and inefficient. + +The authenticated user will be the author of any merges done through this endpoint. + +{% for operation in currentRestOperations %} + {% if operation.subcategory == 'merging' %}{% include rest_operation %}{% endif %} +{% endfor %} \ No newline at end of file diff --git a/translations/es-ES/content/rest/reference/collaborators.md b/translations/es-ES/content/rest/reference/collaborators.md new file mode 100644 index 0000000000..c4842b7049 --- /dev/null +++ b/translations/es-ES/content/rest/reference/collaborators.md @@ -0,0 +1,35 @@ +--- +title: Collaborators +intro: 'The collaborators API allows you to add, invite, and remove collaborators from a repository.' +allowTitleToDifferFromFilename: true +versions: + fpt: '*' + ghes: '*' + ghae: '*' + ghec: '*' +topics: + - API +miniTocMaxHeadingLevel: 3 +--- + +## Collaborators + +{% for operation in currentRestOperations %} + {% if operation.subcategory == 'collaborators' %}{% include rest_operation %}{% endif %} +{% endfor %} + +## Invitations + +The Repository Invitations API allows users or external services to invite other users to collaborate on a repo. The invited users (or external services on behalf of invited users) can choose to accept or decline the invitations. + +Note that the `repo:invite` [OAuth scope](/developers/apps/scopes-for-oauth-apps) grants targeted +access to invitations **without** also granting access to repository code, while the +`repo` scope grants permission to code as well as invitations. + +### Invite a user to a repository + +Use the API endpoint for adding a collaborator. For more information, see "[Add a repository collaborator](/rest/reference/collaborators#add-a-repository-collaborator)." + +{% for operation in currentRestOperations %} + {% if operation.subcategory == 'invitations' %}{% include rest_operation %}{% endif %} +{% endfor %} \ No newline at end of file diff --git a/translations/es-ES/content/rest/reference/commits.md b/translations/es-ES/content/rest/reference/commits.md new file mode 100644 index 0000000000..79591a09a6 --- /dev/null +++ b/translations/es-ES/content/rest/reference/commits.md @@ -0,0 +1,68 @@ +--- +title: Commits +intro: 'The commits API allows you to retrieve information and commits, create commit comments, and create commit statuses.' +allowTitleToDifferFromFilename: true +versions: + fpt: '*' + ghes: '*' + ghae: '*' + ghec: '*' +topics: + - API +miniTocMaxHeadingLevel: 3 +--- + +## Commits + +The Repo Commits API supports listing, viewing, and comparing commits in a repository. + +{% for operation in currentRestOperations %} + {% if operation.subcategory == 'commits' %}{% include rest_operation %}{% endif %} +{% endfor %} + +## Commit comments + +### Custom media types for commit comments + +These are the supported media types for commit comments. You can read more +about the use of media types in the API [here](/rest/overview/media-types). + + application/vnd.github-commitcomment.raw+json + application/vnd.github-commitcomment.text+json + application/vnd.github-commitcomment.html+json + application/vnd.github-commitcomment.full+json + +For more information, see "[Custom media types](/rest/overview/media-types)." + +{% for operation in currentRestOperations %} + {% if operation.subcategory == 'comments' %}{% include rest_operation %}{% endif %} +{% endfor %} + +## Commit statuses + +The status API allows external services to mark commits with an `error`, +`failure`, `pending`, or `success` state, which is then reflected in pull requests +involving those commits. + +Statuses can also include an optional `description` and `target_url`, and +we highly recommend providing them as they make statuses much more +useful in the GitHub UI. + +As an example, one common use is for continuous integration +services to mark commits as passing or failing builds using status. The +`target_url` would be the full URL to the build output, and the +`description` would be the high level summary of what happened with the +build. + +Statuses can include a `context` to indicate what service is providing that status. +For example, you may have your continuous integration service push statuses with a context of `ci`, and a security audit tool push statuses with a context of `security`. You can +then use the [Get the combined status for a specific reference](/rest/reference/commits#get-the-combined-status-for-a-specific-reference) to retrieve the whole status for a commit. + +Note that the `repo:status` [OAuth scope](/developers/apps/scopes-for-oauth-apps) grants targeted access to statuses **without** also granting access to repository code, while the +`repo` scope grants permission to code as well as statuses. + +If you are developing a GitHub App and want to provide more detailed information about an external service, you may want to use the [Checks API](/rest/reference/checks). + +{% for operation in currentRestOperations %} + {% if operation.subcategory == 'statuses' %}{% include rest_operation %}{% endif %} +{% endfor %} \ No newline at end of file diff --git a/translations/es-ES/content/rest/reference/deployments.md b/translations/es-ES/content/rest/reference/deployments.md new file mode 100644 index 0000000000..1170b20485 --- /dev/null +++ b/translations/es-ES/content/rest/reference/deployments.md @@ -0,0 +1,90 @@ +--- +title: Deployments +intro: 'The deployments API allows you to create and delete deploy keys, deployments, and deployment environments.' +allowTitleToDifferFromFilename: true +versions: + fpt: '*' + ghes: '*' + ghae: '*' + ghec: '*' +topics: + - API +miniTocMaxHeadingLevel: 3 +--- + +## Deploy keys + +{% data reusables.repositories.deploy-keys %} + +Deploy keys can either be setup using the following API endpoints, or by using GitHub. To learn how to set deploy keys up in GitHub, see "[Managing deploy keys](/developers/overview/managing-deploy-keys)." + +{% for operation in currentRestOperations %} + {% if operation.subcategory == 'keys' %}{% include rest_operation %}{% endif %} +{% endfor %} + +## Deployments + +Deployments are requests to deploy a specific ref (branch, SHA, tag). GitHub dispatches a [`deployment` event](/developers/webhooks-and-events/webhook-events-and-payloads#deployment) that external services can listen for and act on when new deployments are created. Deployments enable developers and organizations to build loosely coupled tooling around deployments, without having to worry about the implementation details of delivering different types of applications (e.g., web, native). + +Deployment statuses allow external services to mark deployments with an `error`, `failure`, `pending`, `in_progress`, `queued`, or `success` state that systems listening to [`deployment_status` events](/developers/webhooks-and-events/webhook-events-and-payloads#deployment_status) can consume. + +Deployment statuses can also include an optional `description` and `log_url`, which are highly recommended because they make deployment statuses more useful. The `log_url` is the full URL to the deployment output, and +the `description` is a high-level summary of what happened with the deployment. + +GitHub dispatches `deployment` and `deployment_status` events when new deployments and deployment statuses are created. These events allows third-party integrations to receive respond to deployment requests and update the status of a deployment as progress is made. + +Below is a simple sequence diagram for how these interactions would work. + +``` ++---------+ +--------+ +-----------+ +-------------+ +| Tooling | | GitHub | | 3rd Party | | Your Server | ++---------+ +--------+ +-----------+ +-------------+ + | | | | + | Create Deployment | | | + |--------------------->| | | + | | | | + | Deployment Created | | | + |<---------------------| | | + | | | | + | | Deployment Event | | + | |---------------------->| | + | | | SSH+Deploys | + | | |-------------------->| + | | | | + | | Deployment Status | | + | |<----------------------| | + | | | | + | | | Deploy Completed | + | | |<--------------------| + | | | | + | | Deployment Status | | + | |<----------------------| | + | | | | +``` + +Keep in mind that GitHub is never actually accessing your servers. It's up to your third-party integration to interact with deployment events. Multiple systems can listen for deployment events, and it's up to each of those systems to decide whether they're responsible for pushing the code out to your servers, building native code, etc. + +Note that the `repo_deployment` [OAuth scope](/developers/apps/scopes-for-oauth-apps) grants targeted access to deployments and deployment statuses **without** granting access to repository code, while the {% ifversion not ghae %}`public_repo` and{% endif %}`repo` scopes grant permission to code as well. + + +### Inactive deployments + +When you set the state of a deployment to `success`, then all prior non-transient, non-production environment deployments in the same repository with the same environment name will become `inactive`. To avoid this, you can set `auto_inactive` to `false` when creating the deployment status. + +You can communicate that a transient environment no longer exists by setting its `state` to `inactive`. Setting the `state` to `inactive` shows the deployment as `destroyed` in {% data variables.product.prodname_dotcom %} and removes access to it. + +{% for operation in currentRestOperations %} + {% if operation.subcategory == 'deployments' %}{% include rest_operation %}{% endif %} +{% endfor %} + +{% ifversion fpt or ghes > 3.1 or ghae or ghec %} +## Environments + +The Environments API allows you to create, configure, and delete environments. For more information about environments, see "[Using environments for deployment](/actions/deployment/using-environments-for-deployment)." To manage environment secrets, see "[Secrets](/rest/reference/actions#secrets)." + +{% data reusables.gated-features.environments %} + +{% for operation in currentRestOperations %} + {% if operation.subcategory == 'environments' %}{% include rest_operation %}{% endif %} +{% endfor %} +{% endif %} \ No newline at end of file diff --git a/translations/es-ES/content/rest/reference/enterprise-admin.md b/translations/es-ES/content/rest/reference/enterprise-admin.md index fbe657c8eb..d903396303 100644 --- a/translations/es-ES/content/rest/reference/enterprise-admin.md +++ b/translations/es-ES/content/rest/reference/enterprise-admin.md @@ -186,7 +186,7 @@ $ curl -L 'https://hostname:admin_port/setup/api?api_key=y You can also use standard HTTP authentication to send this token. For example: ```shell -$ curl -L 'https://api_key:your-amazing-password@hostname:admin_port/setup/api' +$ curl -L -u "api_key:your-amazing-password" 'https://hostname:admin_port/setup/api' ``` {% for operation in currentRestOperations %} diff --git a/translations/es-ES/content/rest/reference/index.md b/translations/es-ES/content/rest/reference/index.md index 89f5477281..eb8dc90939 100644 --- a/translations/es-ES/content/rest/reference/index.md +++ b/translations/es-ES/content/rest/reference/index.md @@ -1,7 +1,7 @@ --- -title: Referencia -shortTitle: Referencia -intro: Lee la documentación de referencia para conocer sobre los recursos que están disponibles en la API de REST de GitHub. +title: Reference +shortTitle: Reference +intro: View reference documentation to learn about the resources available in the GitHub REST API. versions: fpt: '*' ghes: '*' @@ -14,14 +14,19 @@ children: - /activity - /apps - /billing + - /branches - /checks - /codes-of-conduct - /code-scanning - /codespaces + - /commits + - /collaborators + - /deployments - /emojis - /enterprise-admin - /gists - /git + - /pages - /gitignore - /interactions - /issues @@ -36,12 +41,15 @@ children: - /pulls - /rate-limit - /reactions + - /releases - /repos + - /repository-metrics - /scim - /search - /secret-scanning - /teams - /users + - /webhooks - /permissions-required-for-github-apps --- diff --git a/translations/es-ES/content/rest/reference/orgs.md b/translations/es-ES/content/rest/reference/orgs.md index 8f122e594c..1d2930d047 100644 --- a/translations/es-ES/content/rest/reference/orgs.md +++ b/translations/es-ES/content/rest/reference/orgs.md @@ -1,6 +1,6 @@ --- -title: Organizaciones -intro: 'La API de Organizaciones te da acceso para controlar y administrar todas tus organizaciones de {% data variables.product.product_name %}.' +title: Organizations +intro: 'The Organizations API gives you access to control and manage all your {% data variables.product.product_name %} organizations.' allowTitleToDifferFromFilename: true redirect_from: - /v3/orgs @@ -19,9 +19,9 @@ miniTocMaxHeadingLevel: 3 {% endfor %} {% ifversion fpt or ghec %} -## Bloquear usuarios +## Blocking users -El token que se utiliza para autenticar la llamada debe tener el alcance de `admin:org` para poder hacer cualquier llamada de bloqueo para una organización. De lo contrario, la respuesta devolverá un `HTTP 404`. +The token used to authenticate the call must have the `admin:org` scope in order to make any blocking calls for an organization. Otherwise, the response returns `HTTP 404`. {% for operation in currentRestOperations %} {% if operation.subcategory == 'blocking' %}{% include rest_operation %}{% endif %} @@ -29,13 +29,13 @@ El token que se utiliza para autenticar la llamada debe tener el alcance de `adm {% endif %} -## Miembros +## Members {% for operation in currentRestOperations %} {% if operation.subcategory == 'members' %}{% include rest_operation %}{% endif %} {% endfor %} -## Colaboradores externos +## Outside collaborators {% for operation in currentRestOperations %} {% if operation.subcategory == 'outside-collaborators' %}{% include rest_operation %}{% endif %} @@ -51,28 +51,28 @@ El token que se utiliza para autenticar la llamada debe tener el alcance de `adm ## Webhooks -Los webhooks de las organizaciones te permiten recibir cargas útiles de `POST` por HTTP cuando ciertos eventos suceden en una organización. {% data reusables.webhooks.webhooks-rest-api-links %} +Organization webhooks allow you to receive HTTP `POST` payloads whenever certain events happen in an organization. {% data reusables.webhooks.webhooks-rest-api-links %} -Para obtener más información sobre las acciones a las cuales te puedes suscribir, consulta los "[tipos de eventos de {% data variables.product.prodname_dotcom %}](/developers/webhooks-and-events/github-event-types)". +For more information on actions you can subscribe to, see "[{% data variables.product.prodname_dotcom %} event types](/developers/webhooks-and-events/github-event-types)." -### Alcances & Restricciones +### Scopes & Restrictions -Todas las acciones en contra de los webhooks de una organización requieren que el usuario autenticado sea un administrador de la organización que se está administrando. Adicionalmente, los tokens de OAuth requieren el alcance `admin:org_hook`. Par aobtener más información, consulta la sección "[Alcances para las Apps de OAuth](/developers/apps/scopes-for-oauth-apps)". +All actions against organization webhooks require the authenticated user to be an admin of the organization being managed. Additionally, OAuth tokens require the `admin:org_hook` scope. For more information, see "[Scopes for OAuth Apps](/developers/apps/scopes-for-oauth-apps)." -Para porteger los datos sensibles que pueden encontrarse en las configuraciones de los webhooks, también imponemos las siguientes reglas de control de accesos: +In order to protect sensitive data which may be present in webhook configurations, we also enforce the following access control rules: -- Las aplicaciones de OAuth no pueden listar, ver o editar los webhooks que no crearon ellas mismas. -- Los usuarios no pueden listar, ver o editar los webhooks que crearon las aplicaciones de OAuth. +- OAuth applications cannot list, view, or edit webhooks which they did not create. +- Users cannot list, view, or edit webhooks which were created by OAuth applications. -### Recibir Webhooks +### Receiving Webhooks -Para que {% data variables.product.product_name %} envíe cargas útiles de webhooks, se necesita que se pueda acceder a tu servidor desde la internet. También sugerimos ampliamente utilizar SSL para que podamos enviar cargas útiles cifradas a través de HTTPS. +In order for {% data variables.product.product_name %} to send webhook payloads, your server needs to be accessible from the Internet. We also highly suggest using SSL so that we can send encrypted payloads over HTTPS. -Para encontrar más de las mejores prácticas, [consulta nuestra guía](/guides/best-practices-for-integrators/). +For more best practices, [see our guide](/guides/best-practices-for-integrators/). -#### Encabezados de Webhook +#### Webhook headers -{% data variables.product.product_name %} enviará varios encabezados de HTTP para diferenciar los tipos de eventos y los identificadores de las cargas útiles. Consulta la sección de [encabezados de webhook](/webhooks/event-payloads/#delivery-headers) para encontrar más detalles. +{% data variables.product.product_name %} will send along several HTTP headers to differentiate between event types and payload identifiers. See [webhook headers](/webhooks/event-payloads/#delivery-headers) for details. {% for operation in currentRestOperations %} {% if operation.subcategory == 'webhooks' %}{% include rest_operation %}{% endif %} diff --git a/translations/es-ES/content/rest/reference/pages.md b/translations/es-ES/content/rest/reference/pages.md new file mode 100644 index 0000000000..713ca428fc --- /dev/null +++ b/translations/es-ES/content/rest/reference/pages.md @@ -0,0 +1,32 @@ +--- +title: Pages +intro: 'The GitHub Pages API allows you to interact with GitHub Pages sites and build information.' +allowTitleToDifferFromFilename: true +versions: + fpt: '*' + ghes: '*' + ghae: '*' + ghec: '*' +topics: + - API +miniTocMaxHeadingLevel: 3 +--- + +The {% data variables.product.prodname_pages %} API retrieves information about your {% data variables.product.prodname_pages %} configuration, and the statuses of your builds. Information about the site and the builds can only be accessed by authenticated owners{% ifversion not ghae %}, even if the websites are public{% endif %}. For more information, see "[About {% data variables.product.prodname_pages %}](/pages/getting-started-with-github-pages/about-github-pages)." + +In {% data variables.product.prodname_pages %} API endpoints with a `status` key in their response, the value can be one of: +* `null`: The site has yet to be built. +* `queued`: The build has been requested but not yet begun. +* `building`:The build is in progress. +* `built`: The site has been built. +* `errored`: Indicates an error occurred during the build. + +In {% data variables.product.prodname_pages %} API endpoints that return GitHub Pages site information, the JSON responses include these fields: +* `html_url`: The absolute URL (including scheme) of the rendered Pages site. For example, `https://username.github.io`. +* `source`: An object that contains the source branch and directory for the rendered Pages site. This includes: + - `branch`: The repository branch used to publish your [site's source files](/pages/getting-started-with-github-pages/configuring-a-publishing-source-for-your-github-pages-site). For example, _main_ or _gh-pages_. + - `path`: The repository directory from which the site publishes. Will be either `/` or `/docs`. + +{% for operation in currentRestOperations %} + {% if operation.subcategory == 'pages' %}{% include rest_operation %}{% endif %} +{% endfor %} \ No newline at end of file diff --git a/translations/es-ES/content/rest/reference/permissions-required-for-github-apps.md b/translations/es-ES/content/rest/reference/permissions-required-for-github-apps.md index 388c85781c..a067fef447 100644 --- a/translations/es-ES/content/rest/reference/permissions-required-for-github-apps.md +++ b/translations/es-ES/content/rest/reference/permissions-required-for-github-apps.md @@ -41,18 +41,18 @@ GitHub Apps have the `Read-only` metadata permission by default. The metadata pe - [`GET /rate_limit`](/rest/reference/rate-limit#get-rate-limit-status-for-the-authenticated-user) - [`GET /repos/:owner/:repo`](/rest/reference/repos#get-a-repository) {% ifversion fpt -%} -- [`GET /repos/:owner/:repo/community/profile`](/rest/reference/repos#get-community-profile-metrics) +- [`GET /repos/:owner/:repo/community/profile`](/rest/reference/repository-metrics#get-community-profile-metrics) {% endif -%} - [`GET /repos/:owner/:repo/contributors`](/rest/reference/repos#list-repository-contributors) - [`GET /repos/:owner/:repo/forks`](/rest/reference/repos#list-forks) - [`GET /repos/:owner/:repo/languages`](/rest/reference/repos#list-repository-languages) - [`GET /repos/:owner/:repo/license`](/rest/reference/licenses#get-the-license-for-a-repository) - [`GET /repos/:owner/:repo/stargazers`](/rest/reference/activity#list-stargazers) -- [`GET /repos/:owner/:repo/stats/code_frequency`](/rest/reference/repos#get-the-weekly-commit-activity) -- [`GET /repos/:owner/:repo/stats/commit_activity`](/rest/reference/repos#get-the-last-year-of-commit-activity) -- [`GET /repos/:owner/:repo/stats/contributors`](/rest/reference/repos#get-all-contributor-commit-activity) -- [`GET /repos/:owner/:repo/stats/participation`](/rest/reference/repos#get-the-weekly-commit-count) -- [`GET /repos/:owner/:repo/stats/punch_card`](/rest/reference/repos#get-the-hourly-commit-count-for-each-day) +- [`GET /repos/:owner/:repo/stats/code_frequency`](/rest/reference/repository-metrics#get-the-weekly-commit-activity) +- [`GET /repos/:owner/:repo/stats/commit_activity`](/rest/reference/repository-metrics#get-the-last-year-of-commit-activity) +- [`GET /repos/:owner/:repo/stats/contributors`](/rest/reference/repository-metrics#get-all-contributor-commit-activity) +- [`GET /repos/:owner/:repo/stats/participation`](/rest/reference/repository-metrics#get-the-weekly-commit-count) +- [`GET /repos/:owner/:repo/stats/punch_card`](/rest/reference/repository-metrics#get-the-hourly-commit-count-for-each-day) - [`GET /repos/:owner/:repo/subscribers`](/rest/reference/activity#list-watchers) - [`GET /repos/:owner/:repo/tags`](/rest/reference/repos#list-repository-tags) - [`GET /repos/:owner/:repo/topics`](/rest/reference/repos#get-all-repository-topics) @@ -73,14 +73,14 @@ GitHub Apps have the `Read-only` metadata permission by default. The metadata pe - [`GET /users/:username/subscriptions`](/rest/reference/activity#list-repositories-watched-by-a-user) _Collaborators_ -- [`GET /repos/:owner/:repo/collaborators`](/rest/reference/repos#list-repository-collaborators) -- [`GET /repos/:owner/:repo/collaborators/:username`](/rest/reference/repos#check-if-a-user-is-a-repository-collaborator) +- [`GET /repos/:owner/:repo/collaborators`](/rest/reference/collaborators#list-repository-collaborators) +- [`GET /repos/:owner/:repo/collaborators/:username`](/rest/reference/collaborators#check-if-a-user-is-a-repository-collaborator) _Commit comments_ -- [`GET /repos/:owner/:repo/comments`](/rest/reference/repos#list-commit-comments-for-a-repository) -- [`GET /repos/:owner/:repo/comments/:comment_id`](/rest/reference/repos#get-a-commit-comment) +- [`GET /repos/:owner/:repo/comments`](/rest/reference/commits#list-commit-comments-for-a-repository) +- [`GET /repos/:owner/:repo/comments/:comment_id`](/rest/reference/commits#get-a-commit-comment) - [`GET /repos/:owner/:repo/comments/:comment_id/reactions`](/rest/reference/reactions#list-reactions-for-a-commit-comment) -- [`GET /repos/:owner/:repo/commits/:sha/comments`](/rest/reference/repos#list-commit-comments) +- [`GET /repos/:owner/:repo/commits/:sha/comments`](/rest/reference/commits#list-commit-comments) _Events_ - [`GET /events`](/rest/reference/activity#list-public-events) @@ -173,7 +173,7 @@ _Search_ - [`DELETE /repos/:owner/:repo/interaction-limits`](/rest/reference/interactions#remove-interaction-restrictions-for-a-repository) (:write) {% endif -%} {% ifversion fpt -%} -- [`GET /repos/:owner/:repo/pages/health`](/rest/reference/repos#get-a-dns-health-check-for-github-pages) (:write) +- [`GET /repos/:owner/:repo/pages/health`](/rest/reference/pages#get-a-dns-health-check-for-github-pages) (:write) {% endif -%} - [`PUT /repos/:owner/:repo/topics`](/rest/reference/repos#replace-all-repository-topics) (:write) - [`POST /repos/:owner/:repo/transfer`](/rest/reference/repos#transfer-a-repository) (:write) @@ -186,57 +186,57 @@ _Search_ {% ifversion fpt -%} - [`DELETE /repos/:owner/:repo/vulnerability-alerts`](/rest/reference/repos#disable-vulnerability-alerts) (:write) {% endif -%} -- [`PATCH /user/repository_invitations/:invitation_id`](/rest/reference/repos#accept-a-repository-invitation) (:write) -- [`DELETE /user/repository_invitations/:invitation_id`](/rest/reference/repos#decline-a-repository-invitation) (:write) +- [`PATCH /user/repository_invitations/:invitation_id`](/rest/reference/collaborators#accept-a-repository-invitation) (:write) +- [`DELETE /user/repository_invitations/:invitation_id`](/rest/reference/collaborators#decline-a-repository-invitation) (:write) _Branches_ -- [`GET /repos/:owner/:repo/branches/:branch/protection`](/rest/reference/repos#get-branch-protection) (:read) -- [`PUT /repos/:owner/:repo/branches/:branch/protection`](/rest/reference/repos#update-branch-protection) (:write) -- [`DELETE /repos/:owner/:repo/branches/:branch/protection`](/rest/reference/repos#delete-branch-protection) (:write) -- [`GET /repos/:owner/:repo/branches/:branch/protection/enforce_admins`](/rest/reference/repos#get-admin-branch-protection) (:read) -- [`POST /repos/:owner/:repo/branches/:branch/protection/enforce_admins`](/rest/reference/repos#set-admin-branch-protection) (:write) -- [`DELETE /repos/:owner/:repo/branches/:branch/protection/enforce_admins`](/rest/reference/repos#delete-admin-branch-protection) (:write) -- [`GET /repos/:owner/:repo/branches/:branch/protection/required_pull_request_reviews`](/rest/reference/repos#get-pull-request-review-protection) (:read) -- [`PATCH /repos/:owner/:repo/branches/:branch/protection/required_pull_request_reviews`](/rest/reference/repos#update-pull-request-review-protection) (:write) -- [`DELETE /repos/:owner/:repo/branches/:branch/protection/required_pull_request_reviews`](/rest/reference/repos#delete-pull-request-review-protection) (:write) -- [`GET /repos/:owner/:repo/branches/:branch/protection/required_signatures`](/rest/reference/repos#get-commit-signature-protection) (:read) -- [`POST /repos/:owner/:repo/branches/:branch/protection/required_signatures`](/rest/reference/repos#create-commit-signature-protection) (:write) -- [`DELETE /repos/:owner/:repo/branches/:branch/protection/required_signatures`](/rest/reference/repos#delete-commit-signature-protection) (:write) -- [`GET /repos/:owner/:repo/branches/:branch/protection/required_status_checks`](/rest/reference/repos#get-status-checks-protection) (:read) -- [`PATCH /repos/:owner/:repo/branches/:branch/protection/required_status_checks`](/rest/reference/repos#update-status-check-protection) (:write) -- [`DELETE /repos/:owner/:repo/branches/:branch/protection/required_status_checks`](/rest/reference/repos#remove-status-check-protection) (:write) -- [`GET /repos/:owner/:repo/branches/:branch/protection/required_status_checks/contexts`](/rest/reference/repos#get-all-status-check-contexts) (:read) -- [`POST /repos/:owner/:repo/branches/:branch/protection/required_status_checks/contexts`](/rest/reference/repos#add-status-check-contexts) (:write) -- [`PUT /repos/:owner/:repo/branches/:branch/protection/required_status_checks/contexts`](/rest/reference/repos#set-status-check-contexts) (:write) -- [`DELETE /repos/:owner/:repo/branches/:branch/protection/required_status_checks/contexts`](/rest/reference/repos#remove-status-check-contexts) (:write) -- [`GET /repos/:owner/:repo/branches/:branch/protection/restrictions`](/rest/reference/repos#get-access-restrictions) (:read) -- [`DELETE /repos/:owner/:repo/branches/:branch/protection/restrictions`](/rest/reference/repos#delete-access-restrictions) (:write) +- [`GET /repos/:owner/:repo/branches/:branch/protection`](/rest/reference/branches#get-branch-protection) (:read) +- [`PUT /repos/:owner/:repo/branches/:branch/protection`](/rest/reference/branches#update-branch-protection) (:write) +- [`DELETE /repos/:owner/:repo/branches/:branch/protection`](/rest/reference/branches#delete-branch-protection) (:write) +- [`GET /repos/:owner/:repo/branches/:branch/protection/enforce_admins`](/rest/reference/branches#get-admin-branch-protection) (:read) +- [`POST /repos/:owner/:repo/branches/:branch/protection/enforce_admins`](/rest/reference/branches#set-admin-branch-protection) (:write) +- [`DELETE /repos/:owner/:repo/branches/:branch/protection/enforce_admins`](/rest/reference/branches#delete-admin-branch-protection) (:write) +- [`GET /repos/:owner/:repo/branches/:branch/protection/required_pull_request_reviews`](/rest/reference/branches#get-pull-request-review-protection) (:read) +- [`PATCH /repos/:owner/:repo/branches/:branch/protection/required_pull_request_reviews`](/rest/reference/branches#update-pull-request-review-protection) (:write) +- [`DELETE /repos/:owner/:repo/branches/:branch/protection/required_pull_request_reviews`](/rest/reference/branches#delete-pull-request-review-protection) (:write) +- [`GET /repos/:owner/:repo/branches/:branch/protection/required_signatures`](/rest/reference/branches#get-commit-signature-protection) (:read) +- [`POST /repos/:owner/:repo/branches/:branch/protection/required_signatures`](/rest/reference/branches#create-commit-signature-protection) (:write) +- [`DELETE /repos/:owner/:repo/branches/:branch/protection/required_signatures`](/rest/reference/branches#delete-commit-signature-protection) (:write) +- [`GET /repos/:owner/:repo/branches/:branch/protection/required_status_checks`](/rest/reference/branches#get-status-checks-protection) (:read) +- [`PATCH /repos/:owner/:repo/branches/:branch/protection/required_status_checks`](/rest/reference/branches#update-status-check-protection) (:write) +- [`DELETE /repos/:owner/:repo/branches/:branch/protection/required_status_checks`](/rest/reference/branches#remove-status-check-protection) (:write) +- [`GET /repos/:owner/:repo/branches/:branch/protection/required_status_checks/contexts`](/rest/reference/branches#get-all-status-check-contexts) (:read) +- [`POST /repos/:owner/:repo/branches/:branch/protection/required_status_checks/contexts`](/rest/reference/branches#add-status-check-contexts) (:write) +- [`PUT /repos/:owner/:repo/branches/:branch/protection/required_status_checks/contexts`](/rest/reference/branches#set-status-check-contexts) (:write) +- [`DELETE /repos/:owner/:repo/branches/:branch/protection/required_status_checks/contexts`](/rest/reference/branches#remove-status-check-contexts) (:write) +- [`GET /repos/:owner/:repo/branches/:branch/protection/restrictions`](/rest/reference/branches#get-access-restrictions) (:read) +- [`DELETE /repos/:owner/:repo/branches/:branch/protection/restrictions`](/rest/reference/branches#delete-access-restrictions) (:write) - [`GET /repos/:owner/:repo/branches/:branch/protection/restrictions/teams`](/rest/reference/repos#list-teams-with-access-to-the-protected-branch) (:read) -- [`POST /repos/:owner/:repo/branches/:branch/protection/restrictions/teams`](/rest/reference/repos#add-team-access-restrictions) (:write) -- [`PUT /repos/:owner/:repo/branches/:branch/protection/restrictions/teams`](/rest/reference/repos#set-team-access-restrictions) (:write) -- [`DELETE /repos/:owner/:repo/branches/:branch/protection/restrictions/teams`](/rest/reference/repos#remove-team-access-restrictions) (:write) +- [`POST /repos/:owner/:repo/branches/:branch/protection/restrictions/teams`](/rest/reference/branches#add-team-access-restrictions) (:write) +- [`PUT /repos/:owner/:repo/branches/:branch/protection/restrictions/teams`](/rest/reference/branches#set-team-access-restrictions) (:write) +- [`DELETE /repos/:owner/:repo/branches/:branch/protection/restrictions/teams`](/rest/reference/branches#remove-team-access-restrictions) (:write) - [`GET /repos/:owner/:repo/branches/:branch/protection/restrictions/users`](/rest/reference/repos#list-users-with-access-to-the-protected-branch) (:read) -- [`POST /repos/:owner/:repo/branches/:branch/protection/restrictions/users`](/rest/reference/repos#add-user-access-restrictions) (:write) -- [`PUT /repos/:owner/:repo/branches/:branch/protection/restrictions/users`](/rest/reference/repos#set-user-access-restrictions) (:write) -- [`DELETE /repos/:owner/:repo/branches/:branch/protection/restrictions/users`](/rest/reference/repos#remove-user-access-restrictions) (:write) +- [`POST /repos/:owner/:repo/branches/:branch/protection/restrictions/users`](/rest/reference/branches#add-user-access-restrictions) (:write) +- [`PUT /repos/:owner/:repo/branches/:branch/protection/restrictions/users`](/rest/reference/branches#set-user-access-restrictions) (:write) +- [`DELETE /repos/:owner/:repo/branches/:branch/protection/restrictions/users`](/rest/reference/branches#remove-user-access-restrictions) (:write) {% ifversion fpt or ghes > 3.0 or ghae -%} -- [`POST /repos/:owner/:repo/branches/:branch/rename`](/rest/reference/repos#rename-a-branch) (:write) +- [`POST /repos/:owner/:repo/branches/:branch/rename`](/rest/reference/branches#rename-a-branch) (:write) {% endif %} _Collaborators_ -- [`PUT /repos/:owner/:repo/collaborators/:username`](/rest/reference/repos#add-a-repository-collaborator) (:write) -- [`DELETE /repos/:owner/:repo/collaborators/:username`](/rest/reference/repos#remove-a-repository-collaborator) (:write) +- [`PUT /repos/:owner/:repo/collaborators/:username`](/rest/reference/collaborators#add-a-repository-collaborator) (:write) +- [`DELETE /repos/:owner/:repo/collaborators/:username`](/rest/reference/collaborators#remove-a-repository-collaborator) (:write) _Invitations_ -- [`GET /repos/:owner/:repo/invitations`](/rest/reference/repos#list-repository-invitations) (:read) -- [`PATCH /repos/:owner/:repo/invitations/:invitation_id`](/rest/reference/repos#update-a-repository-invitation) (:write) -- [`DELETE /repos/:owner/:repo/invitations/:invitation_id`](/rest/reference/repos#delete-a-repository-invitation) (:write) +- [`GET /repos/:owner/:repo/invitations`](/rest/reference/collaborators#list-repository-invitations) (:read) +- [`PATCH /repos/:owner/:repo/invitations/:invitation_id`](/rest/reference/collaborators#update-a-repository-invitation) (:write) +- [`DELETE /repos/:owner/:repo/invitations/:invitation_id`](/rest/reference/collaborators#delete-a-repository-invitation) (:write) _Keys_ -- [`GET /repos/:owner/:repo/keys`](/rest/reference/repos#list-deploy-keys) (:read) -- [`POST /repos/:owner/:repo/keys`](/rest/reference/repos#create-a-deploy-key) (:write) -- [`GET /repos/:owner/:repo/keys/:key_id`](/rest/reference/repos#get-a-deploy-key) (:read) -- [`DELETE /repos/:owner/:repo/keys/:key_id`](/rest/reference/repos#delete-a-deploy-key) (:write) +- [`GET /repos/:owner/:repo/keys`](/rest/reference/deployments#list-deploy-keys) (:read) +- [`POST /repos/:owner/:repo/keys`](/rest/reference/deployments#create-a-deploy-key) (:write) +- [`GET /repos/:owner/:repo/keys/:key_id`](/rest/reference/deployments#get-a-deploy-key) (:read) +- [`DELETE /repos/:owner/:repo/keys/:key_id`](/rest/reference/deployments#delete-a-deploy-key) (:write) _Teams_ - [`GET /repos/:owner/:repo/teams`](/rest/reference/repos#list-repository-teams) (:read) @@ -245,10 +245,10 @@ _Teams_ {% ifversion fpt or ghec %} _Traffic_ -- [`GET /repos/:owner/:repo/traffic/clones`](/rest/reference/repos#get-repository-clones) (:read) -- [`GET /repos/:owner/:repo/traffic/popular/paths`](/rest/reference/repos#get-top-referral-paths) (:read) -- [`GET /repos/:owner/:repo/traffic/popular/referrers`](/rest/reference/repos#get-top-referral-sources) (:read) -- [`GET /repos/:owner/:repo/traffic/views`](/rest/reference/repos#get-page-views) (:read) +- [`GET /repos/:owner/:repo/traffic/clones`](/rest/reference/repository-metrics#get-repository-clones) (:read) +- [`GET /repos/:owner/:repo/traffic/popular/paths`](/rest/reference/repository-metrics#get-top-referral-paths) (:read) +- [`GET /repos/:owner/:repo/traffic/popular/referrers`](/rest/reference/repository-metrics#get-top-referral-sources) (:read) +- [`GET /repos/:owner/:repo/traffic/views`](/rest/reference/repository-metrics#get-page-views) (:read) {% endif %} {% ifversion fpt or ghec %} @@ -345,37 +345,37 @@ _Traffic_ - [`GET /repos/:owner/:repo/check-suites/:check_suite_id`](/rest/reference/checks#get-a-check-suite) (:read) - [`GET /repos/:owner/:repo/check-suites/:check_suite_id/check-runs`](/rest/reference/checks#list-check-runs-in-a-check-suite) (:read) - [`POST /repos/:owner/:repo/check-suites/:check_suite_id/rerequest`](/rest/reference/checks#rerequest-a-check-suite) (:write) -- [`GET /repos/:owner/:repo/commits`](/rest/reference/repos#list-commits) (:read) -- [`GET /repos/:owner/:repo/commits/:sha`](/rest/reference/repos#get-a-commit) (:read) +- [`GET /repos/:owner/:repo/commits`](/rest/reference/commits#list-commits) (:read) +- [`GET /repos/:owner/:repo/commits/:sha`](/rest/reference/commits#get-a-commit) (:read) - [`GET /repos/:owner/:repo/commits/:sha/check-runs`](/rest/reference/checks#list-check-runs-for-a-git-reference) (:read) - [`GET /repos/:owner/:repo/commits/:sha/check-suites`](/rest/reference/checks#list-check-suites-for-a-git-reference) (:read) - [`GET /repos/:owner/:repo/community/code_of_conduct`](/rest/reference/codes-of-conduct#get-the-code-of-conduct-for-a-repository) (:read) -- [`GET /repos/:owner/:repo/compare/:base...:head`](/rest/reference/repos#compare-two-commits) (:read) +- [`GET /repos/:owner/:repo/compare/:base...:head`](/rest/reference/commits#compare-two-commits) (:read) - [`GET /repos/:owner/:repo/contents/:path`](/rest/reference/repos#get-repository-content) (:read) {% ifversion fpt or ghes or ghae -%} - [`POST /repos/:owner/:repo/dispatches`](/rest/reference/repos#create-a-repository-dispatch-event) (:write) {% endif -%} - [`POST /repos/:owner/:repo/forks`](/rest/reference/repos#create-a-fork) (:read) -- [`POST /repos/:owner/:repo/merges`](/rest/reference/repos#merge-a-branch) (:write) +- [`POST /repos/:owner/:repo/merges`](/rest/reference/branches#merge-a-branch) (:write) - [`PUT /repos/:owner/:repo/pulls/:pull_number/merge`](/rest/reference/pulls#merge-a-pull-request) (:write) - [`GET /repos/:owner/:repo/readme(?:/(.*))?`](/rest/reference/repos#get-a-repository-readme) (:read) _Branches_ -- [`GET /repos/:owner/:repo/branches`](/rest/reference/repos#list-branches) (:read) -- [`GET /repos/:owner/:repo/branches/:branch`](/rest/reference/repos#get-a-branch) (:read) +- [`GET /repos/:owner/:repo/branches`](/rest/reference/branches#list-branches) (:read) +- [`GET /repos/:owner/:repo/branches/:branch`](/rest/reference/branches#get-a-branch) (:read) - [`GET /repos/:owner/:repo/branches/:branch/protection/restrictions/apps`](/rest/reference/repos#list-apps-with-access-to-the-protected-branch) (:write) -- [`POST /repos/:owner/:repo/branches/:branch/protection/restrictions/apps`](/rest/reference/repos#add-app-access-restrictions) (:write) -- [`PUT /repos/:owner/:repo/branches/:branch/protection/restrictions/apps`](/rest/reference/repos#set-app-access-restrictions) (:write) -- [`DELETE /repos/:owner/:repo/branches/:branch/protection/restrictions/apps`](/rest/reference/repos#remove-user-access-restrictions) (:write) +- [`POST /repos/:owner/:repo/branches/:branch/protection/restrictions/apps`](/rest/reference/branches#add-app-access-restrictions) (:write) +- [`PUT /repos/:owner/:repo/branches/:branch/protection/restrictions/apps`](/rest/reference/branches#set-app-access-restrictions) (:write) +- [`DELETE /repos/:owner/:repo/branches/:branch/protection/restrictions/apps`](/rest/reference/branches#remove-user-access-restrictions) (:write) {% ifversion fpt or ghes > 3.0 or ghae -%} -- [`POST /repos/:owner/:repo/branches/:branch/rename`](/rest/reference/repos#rename-a-branch) (:write) +- [`POST /repos/:owner/:repo/branches/:branch/rename`](/rest/reference/branches#rename-a-branch) (:write) {% endif %} _Commit comments_ -- [`PATCH /repos/:owner/:repo/comments/:comment_id`](/rest/reference/repos#update-a-commit-comment) (:write) -- [`DELETE /repos/:owner/:repo/comments/:comment_id`](/rest/reference/repos#delete-a-commit-comment) (:write) +- [`PATCH /repos/:owner/:repo/comments/:comment_id`](/rest/reference/commits#update-a-commit-comment) (:write) +- [`DELETE /repos/:owner/:repo/comments/:comment_id`](/rest/reference/commits#delete-a-commit-comment) (:write) - [`POST /repos/:owner/:repo/comments/:comment_id/reactions`](/rest/reference/reactions#create-reaction-for-a-commit-comment) (:read) -- [`POST /repos/:owner/:repo/commits/:sha/comments`](/rest/reference/repos#create-a-commit-comment) (:read) +- [`POST /repos/:owner/:repo/commits/:sha/comments`](/rest/reference/commits#create-a-commit-comment) (:read) _Git_ - [`POST /repos/:owner/:repo/git/blobs`](/rest/reference/git#create-a-blob) (:write) @@ -435,15 +435,15 @@ _Releases_ ### Permission on "deployments" -- [`GET /repos/:owner/:repo/deployments`](/rest/reference/repos#list-deployments) (:read) -- [`POST /repos/:owner/:repo/deployments`](/rest/reference/repos#create-a-deployment) (:write) -- [`GET /repos/:owner/:repo/deployments/:deployment_id`](/rest/reference/repos#get-a-deployment) (:read) +- [`GET /repos/:owner/:repo/deployments`](/rest/reference/deployments#list-deployments) (:read) +- [`POST /repos/:owner/:repo/deployments`](/rest/reference/deployments#create-a-deployment) (:write) +- [`GET /repos/:owner/:repo/deployments/:deployment_id`](/rest/reference/deployments#get-a-deployment) (:read) {% ifversion fpt or ghes or ghae -%} -- [`DELETE /repos/:owner/:repo/deployments/:deployment_id`](/rest/reference/repos#delete-a-deployment) (:write) +- [`DELETE /repos/:owner/:repo/deployments/:deployment_id`](/rest/reference/deployments#delete-a-deployment) (:write) {% endif -%} -- [`GET /repos/:owner/:repo/deployments/:deployment_id/statuses`](/rest/reference/repos#list-deployment-statuses) (:read) -- [`POST /repos/:owner/:repo/deployments/:deployment_id/statuses`](/rest/reference/repos#create-a-deployment-status) (:write) -- [`GET /repos/:owner/:repo/deployments/:deployment_id/statuses/:status_id`](/rest/reference/repos#get-a-deployment-status) (:read) +- [`GET /repos/:owner/:repo/deployments/:deployment_id/statuses`](/rest/reference/deployments#list-deployment-statuses) (:read) +- [`POST /repos/:owner/:repo/deployments/:deployment_id/statuses`](/rest/reference/deployments#create-a-deployment-status) (:write) +- [`GET /repos/:owner/:repo/deployments/:deployment_id/statuses/:status_id`](/rest/reference/deployments#get-a-deployment-status) (:read) {% ifversion fpt or ghes or ghec %} ### Permission on "emails" @@ -703,16 +703,16 @@ _Teams_ ### Permission on "pages" -- [`GET /repos/:owner/:repo/pages`](/rest/reference/repos#get-a-github-pages-site) (:read) -- [`POST /repos/:owner/:repo/pages`](/rest/reference/repos#create-a-github-pages-site) (:write) -- [`PUT /repos/:owner/:repo/pages`](/rest/reference/repos#update-information-about-a-github-pages-site) (:write) -- [`DELETE /repos/:owner/:repo/pages`](/rest/reference/repos#delete-a-github-pages-site) (:write) -- [`GET /repos/:owner/:repo/pages/builds`](/rest/reference/repos#list-github-pages-builds) (:read) -- [`POST /repos/:owner/:repo/pages/builds`](/rest/reference/repos#request-a-github-pages-build) (:write) -- [`GET /repos/:owner/:repo/pages/builds/:build_id`](/rest/reference/repos#get-github-pages-build) (:read) -- [`GET /repos/:owner/:repo/pages/builds/latest`](/rest/reference/repos#get-latest-pages-build) (:read) +- [`GET /repos/:owner/:repo/pages`](/rest/reference/pages#get-a-github-pages-site) (:read) +- [`POST /repos/:owner/:repo/pages`](/rest/reference/pages#create-a-github-pages-site) (:write) +- [`PUT /repos/:owner/:repo/pages`](/rest/reference/pages#update-information-about-a-github-pages-site) (:write) +- [`DELETE /repos/:owner/:repo/pages`](/rest/reference/pages#delete-a-github-pages-site) (:write) +- [`GET /repos/:owner/:repo/pages/builds`](/rest/reference/pages#list-github-pages-builds) (:read) +- [`POST /repos/:owner/:repo/pages/builds`](/rest/reference/pages#request-a-github-pages-build) (:write) +- [`GET /repos/:owner/:repo/pages/builds/:build_id`](/rest/reference/pages#get-github-pages-build) (:read) +- [`GET /repos/:owner/:repo/pages/builds/latest`](/rest/reference/pages#get-latest-pages-build) (:read) {% ifversion fpt -%} -- [`GET /repos/:owner/:repo/pages/health`](/rest/reference/repos#get-a-dns-health-check-for-github-pages) (:write) +- [`GET /repos/:owner/:repo/pages/health`](/rest/reference/pages#get-a-dns-health-check-for-github-pages) (:write) {% endif %} ### Permission on "pull requests" @@ -812,12 +812,12 @@ _Reviews_ ### Permission on "repository hooks" -- [`GET /repos/:owner/:repo/hooks`](/rest/reference/repos#list-repository-webhooks) (:read) -- [`POST /repos/:owner/:repo/hooks`](/rest/reference/repos#create-a-repository-webhook) (:write) -- [`GET /repos/:owner/:repo/hooks/:hook_id`](/rest/reference/repos#get-a-repository-webhook) (:read) -- [`PATCH /repos/:owner/:repo/hooks/:hook_id`](/rest/reference/repos#update-a-repository-webhook) (:write) -- [`DELETE /repos/:owner/:repo/hooks/:hook_id`](/rest/reference/repos#delete-a-repository-webhook) (:write) -- [`POST /repos/:owner/:repo/hooks/:hook_id/pings`](/rest/reference/repos#ping-a-repository-webhook) (:read) +- [`GET /repos/:owner/:repo/hooks`](/rest/reference/webhooks#list-repository-webhooks) (:read) +- [`POST /repos/:owner/:repo/hooks`](/rest/reference/webhooks#create-a-repository-webhook) (:write) +- [`GET /repos/:owner/:repo/hooks/:hook_id`](/rest/reference/webhooks#get-a-repository-webhook) (:read) +- [`PATCH /repos/:owner/:repo/hooks/:hook_id`](/rest/reference/webhooks#update-a-repository-webhook) (:write) +- [`DELETE /repos/:owner/:repo/hooks/:hook_id`](/rest/reference/webhooks#delete-a-repository-webhook) (:write) +- [`POST /repos/:owner/:repo/hooks/:hook_id/pings`](/rest/reference/webhooks#ping-a-repository-webhook) (:read) - [`POST /repos/:owner/:repo/hooks/:hook_id/tests`](/rest/reference/repos#test-the-push-repository-webhook) (:read) {% ifversion ghes %} @@ -930,9 +930,9 @@ _Teams_ ### Permission on "statuses" -- [`GET /repos/:owner/:repo/commits/:ref/status`](/rest/reference/repos#get-the-combined-status-for-a-specific-reference) (:read) -- [`GET /repos/:owner/:repo/commits/:ref/statuses`](/rest/reference/repos#list-commit-statuses-for-a-reference) (:read) -- [`POST /repos/:owner/:repo/statuses/:sha`](/rest/reference/repos#create-a-commit-status) (:write) +- [`GET /repos/:owner/:repo/commits/:ref/status`](/rest/reference/commits#get-the-combined-status-for-a-specific-reference) (:read) +- [`GET /repos/:owner/:repo/commits/:ref/statuses`](/rest/reference/commits#list-commit-statuses-for-a-reference) (:read) +- [`POST /repos/:owner/:repo/statuses/:sha`](/rest/reference/commits#create-a-commit-status) (:write) ### Permission on "team discussions" diff --git a/translations/es-ES/content/rest/reference/pulls.md b/translations/es-ES/content/rest/reference/pulls.md index 9d0005a41b..d8b22a8117 100644 --- a/translations/es-ES/content/rest/reference/pulls.md +++ b/translations/es-ES/content/rest/reference/pulls.md @@ -62,7 +62,7 @@ Request, grouped together with a state and optional body comment. ## Review comments -Pull request review comments are comments on a portion of the unified diff made during a pull request review. Commit comments and issue comments are different from pull request review comments. You apply commit comments directly to a commit and you apply issue comments without referencing a portion of the unified diff. For more information, see "[Create a commit comment](/rest/reference/repos#create-a-commit-comment)" and "[Create an issue comment](/rest/reference/issues#create-an-issue-comment)." +Pull request review comments are comments on a portion of the unified diff made during a pull request review. Commit comments and issue comments are different from pull request review comments. You apply commit comments directly to a commit and you apply issue comments without referencing a portion of the unified diff. For more information, see "[Create a commit comment](/rest/reference/commits#create-a-commit-comment)" and "[Create an issue comment](/rest/reference/issues#create-an-issue-comment)." ### Custom media types for pull request review comments diff --git a/translations/es-ES/content/rest/reference/releases.md b/translations/es-ES/content/rest/reference/releases.md new file mode 100644 index 0000000000..a434451bea --- /dev/null +++ b/translations/es-ES/content/rest/reference/releases.md @@ -0,0 +1,23 @@ +--- +title: Releases +intro: 'The releases API allows you to create, modify, and delete releases and release assets.' +allowTitleToDifferFromFilename: true +versions: + fpt: '*' + ghes: '*' + ghae: '*' + ghec: '*' +topics: + - API +miniTocMaxHeadingLevel: 3 +--- + +{% note %} + +**Note:** The Releases API replaces the Downloads API. You can retrieve the download count and browser download URL from the endpoints in this API that return releases and release assets. + +{% endnote %} + +{% for operation in currentRestOperations %} + {% if operation.subcategory == 'releases' %}{% include rest_operation %}{% endif %} +{% endfor %} \ No newline at end of file diff --git a/translations/es-ES/content/rest/reference/repos.md b/translations/es-ES/content/rest/reference/repos.md index b740a1207d..89a55881b8 100644 --- a/translations/es-ES/content/rest/reference/repos.md +++ b/translations/es-ES/content/rest/reference/repos.md @@ -30,52 +30,6 @@ To help streamline your workflow, you can use the API to add autolinks to extern {% endfor %} {% endif %} -## Branches - -{% for operation in currentRestOperations %} - {% if operation.subcategory == 'branches' %}{% include rest_operation %}{% endif %} -{% endfor %} - -## Collaborators - -{% for operation in currentRestOperations %} - {% if operation.subcategory == 'collaborators' %}{% include rest_operation %}{% endif %} -{% endfor %} - -## Comments - -### Custom media types for commit comments - -These are the supported media types for commit comments. You can read more -about the use of media types in the API [here](/rest/overview/media-types). - - application/vnd.github-commitcomment.raw+json - application/vnd.github-commitcomment.text+json - application/vnd.github-commitcomment.html+json - application/vnd.github-commitcomment.full+json - -For more information, see "[Custom media types](/rest/overview/media-types)." - -{% for operation in currentRestOperations %} - {% if operation.subcategory == 'comments' %}{% include rest_operation %}{% endif %} -{% endfor %} - -## Commits - -The Repo Commits API supports listing, viewing, and comparing commits in a repository. - -{% for operation in currentRestOperations %} - {% if operation.subcategory == 'commits' %}{% include rest_operation %}{% endif %} -{% endfor %} - -{% ifversion fpt or ghec %} -## Community - -{% for operation in currentRestOperations %} - {% if operation.subcategory == 'community' %}{% include rest_operation %}{% endif %} -{% endfor %} - -{% endif %} ## Contents @@ -105,105 +59,12 @@ You can read more about the use of media types in the API [here](/rest/overview/ {% if operation.subcategory == 'contents' %}{% include rest_operation %}{% endif %} {% endfor %} -## Deploy keys - -{% data reusables.repositories.deploy-keys %} - -Deploy keys can either be setup using the following API endpoints, or by using GitHub. To learn how to set deploy keys up in GitHub, see "[Managing deploy keys](/developers/overview/managing-deploy-keys)." - -{% for operation in currentRestOperations %} - {% if operation.subcategory == 'keys' %}{% include rest_operation %}{% endif %} -{% endfor %} - -## Deployments - -Deployments are requests to deploy a specific ref (branch, SHA, tag). GitHub dispatches a [`deployment` event](/developers/webhooks-and-events/webhook-events-and-payloads#deployment) that external services can listen for and act on when new deployments are created. Deployments enable developers and organizations to build loosely coupled tooling around deployments, without having to worry about the implementation details of delivering different types of applications (e.g., web, native). - -Deployment statuses allow external services to mark deployments with an `error`, `failure`, `pending`, `in_progress`, `queued`, or `success` state that systems listening to [`deployment_status` events](/developers/webhooks-and-events/webhook-events-and-payloads#deployment_status) can consume. - -Deployment statuses can also include an optional `description` and `log_url`, which are highly recommended because they make deployment statuses more useful. The `log_url` is the full URL to the deployment output, and -the `description` is a high-level summary of what happened with the deployment. - -GitHub dispatches `deployment` and `deployment_status` events when new deployments and deployment statuses are created. These events allows third-party integrations to receive respond to deployment requests and update the status of a deployment as progress is made. - -Below is a simple sequence diagram for how these interactions would work. - -``` -+---------+ +--------+ +-----------+ +-------------+ -| Tooling | | GitHub | | 3rd Party | | Your Server | -+---------+ +--------+ +-----------+ +-------------+ - | | | | - | Create Deployment | | | - |--------------------->| | | - | | | | - | Deployment Created | | | - |<---------------------| | | - | | | | - | | Deployment Event | | - | |---------------------->| | - | | | SSH+Deploys | - | | |-------------------->| - | | | | - | | Deployment Status | | - | |<----------------------| | - | | | | - | | | Deploy Completed | - | | |<--------------------| - | | | | - | | Deployment Status | | - | |<----------------------| | - | | | | -``` - -Keep in mind that GitHub is never actually accessing your servers. It's up to your third-party integration to interact with deployment events. Multiple systems can listen for deployment events, and it's up to each of those systems to decide whether they're responsible for pushing the code out to your servers, building native code, etc. - -Note that the `repo_deployment` [OAuth scope](/developers/apps/scopes-for-oauth-apps) grants targeted access to deployments and deployment statuses **without** granting access to repository code, while the {% ifversion not ghae %}`public_repo` and{% endif %}`repo` scopes grant permission to code as well. - - -### Inactive deployments - -When you set the state of a deployment to `success`, then all prior non-transient, non-production environment deployments in the same repository with the same environment name will become `inactive`. To avoid this, you can set `auto_inactive` to `false` when creating the deployment status. - -You can communicate that a transient environment no longer exists by setting its `state` to `inactive`. Setting the `state` to `inactive` shows the deployment as `destroyed` in {% data variables.product.prodname_dotcom %} and removes access to it. - -{% for operation in currentRestOperations %} - {% if operation.subcategory == 'deployments' %}{% include rest_operation %}{% endif %} -{% endfor %} - -{% ifversion fpt or ghes > 3.1 or ghae or ghec %} -## Environments - -The Environments API allows you to create, configure, and delete environments. For more information about environments, see "[Using environments for deployment](/actions/deployment/using-environments-for-deployment)." To manage environment secrets, see "[Secrets](/rest/reference/actions#secrets)." - -{% data reusables.gated-features.environments %} - -{% for operation in currentRestOperations %} - {% if operation.subcategory == 'environments' %}{% include rest_operation %}{% endif %} -{% endfor %} -{% endif %} - ## Forks {% for operation in currentRestOperations %} {% if operation.subcategory == 'forks' %}{% include rest_operation %}{% endif %} {% endfor %} -## Invitations - -The Repository Invitations API allows users or external services to invite other users to collaborate on a repo. The invited users (or external services on behalf of invited users) can choose to accept or decline the invitations. - -Note that the `repo:invite` [OAuth scope](/developers/apps/scopes-for-oauth-apps) grants targeted -access to invitations **without** also granting access to repository code, while the -`repo` scope grants permission to code as well as invitations. - -### Invite a user to a repository - -Use the API endpoint for adding a collaborator. For more information, see "[Add a repository collaborator](/rest/reference/repos#add-a-repository-collaborator)." - -{% for operation in currentRestOperations %} - {% if operation.subcategory == 'invitations' %}{% include rest_operation %}{% endif %} -{% endfor %} - {% ifversion fpt or ghae or ghes > 3.2 or ghec %} ## Git LFS @@ -214,181 +75,3 @@ Use the API endpoint for adding a collaborator. For more information, see "[Add {% endif %} -## Merging - -The Repo Merging API supports merging branches in a repository. This accomplishes -essentially the same thing as merging one branch into another in a local repository -and then pushing to {% data variables.product.product_name %}. The benefit is that the merge is done on the server side and a local repository is not needed. This makes it more appropriate for automation and other tools where maintaining local repositories would be cumbersome and inefficient. - -The authenticated user will be the author of any merges done through this endpoint. - -{% for operation in currentRestOperations %} - {% if operation.subcategory == 'merging' %}{% include rest_operation %}{% endif %} -{% endfor %} - -## Pages - -The {% data variables.product.prodname_pages %} API retrieves information about your {% data variables.product.prodname_pages %} configuration, and the statuses of your builds. Information about the site and the builds can only be accessed by authenticated owners{% ifversion not ghae %}, even if the websites are public{% endif %}. For more information, see "[About {% data variables.product.prodname_pages %}](/pages/getting-started-with-github-pages/about-github-pages)." - -In {% data variables.product.prodname_pages %} API endpoints with a `status` key in their response, the value can be one of: -* `null`: The site has yet to be built. -* `queued`: The build has been requested but not yet begun. -* `building`:The build is in progress. -* `built`: The site has been built. -* `errored`: Indicates an error occurred during the build. - -In {% data variables.product.prodname_pages %} API endpoints that return GitHub Pages site information, the JSON responses include these fields: -* `html_url`: The absolute URL (including scheme) of the rendered Pages site. For example, `https://username.github.io`. -* `source`: An object that contains the source branch and directory for the rendered Pages site. This includes: - - `branch`: The repository branch used to publish your [site's source files](/pages/getting-started-with-github-pages/configuring-a-publishing-source-for-your-github-pages-site). For example, _main_ or _gh-pages_. - - `path`: The repository directory from which the site publishes. Will be either `/` or `/docs`. - -{% for operation in currentRestOperations %} - {% if operation.subcategory == 'pages' %}{% include rest_operation %}{% endif %} -{% endfor %} - -## Releases - -{% note %} - -**Note:** The Releases API replaces the Downloads API. You can retrieve the download count and browser download URL from the endpoints in this API that return releases and release assets. - -{% endnote %} - -{% for operation in currentRestOperations %} - {% if operation.subcategory == 'releases' %}{% include rest_operation %}{% endif %} -{% endfor %} - -## Statistics - -The Repository Statistics API allows you to fetch the data that {% data variables.product.product_name %} uses for visualizing different -types of repository activity. - -### A word about caching - -Computing repository statistics is an expensive operation, so we try to return cached -data whenever possible. If the data hasn't been cached when you query a repository's -statistics, you'll receive a `202` response; a background job is also fired to -start compiling these statistics. Give the job a few moments to complete, and -then submit the request again. If the job has completed, that request will receive a -`200` response with the statistics in the response body. - -Repository statistics are cached by the SHA of the repository's default branch; pushing to the default branch resets the statistics cache. - -### Statistics exclude some types of commits - -The statistics exposed by the API match the statistics shown by [different repository graphs](/github/visualizing-repository-data-with-graphs/about-repository-graphs). - -To summarize: -- All statistics exclude merge commits. -- Contributor statistics also exclude empty commits. - -{% for operation in currentRestOperations %} - {% if operation.subcategory == 'statistics' %}{% include rest_operation %}{% endif %} -{% endfor %} - -## Statuses - -The status API allows external services to mark commits with an `error`, -`failure`, `pending`, or `success` state, which is then reflected in pull requests -involving those commits. - -Statuses can also include an optional `description` and `target_url`, and -we highly recommend providing them as they make statuses much more -useful in the GitHub UI. - -As an example, one common use is for continuous integration -services to mark commits as passing or failing builds using status. The -`target_url` would be the full URL to the build output, and the -`description` would be the high level summary of what happened with the -build. - -Statuses can include a `context` to indicate what service is providing that status. -For example, you may have your continuous integration service push statuses with a context of `ci`, and a security audit tool push statuses with a context of `security`. You can -then use the [Get the combined status for a specific reference](/rest/reference/repos#get-the-combined-status-for-a-specific-reference) to retrieve the whole status for a commit. - -Note that the `repo:status` [OAuth scope](/developers/apps/scopes-for-oauth-apps) grants targeted access to statuses **without** also granting access to repository code, while the -`repo` scope grants permission to code as well as statuses. - -If you are developing a GitHub App and want to provide more detailed information about an external service, you may want to use the [Checks API](/rest/reference/checks). - -{% for operation in currentRestOperations %} - {% if operation.subcategory == 'statuses' %}{% include rest_operation %}{% endif %} -{% endfor %} - -{% ifversion fpt or ghec %} -## Traffic - -For repositories that you have push access to, the traffic API provides access -to the information provided in your repository graph. For more information, see "Viewing traffic to a repository." - -{% for operation in currentRestOperations %} - {% if operation.subcategory == 'traffic' %}{% include rest_operation %}{% endif %} -{% endfor %} -{% endif %} - -## Webhooks - -Repository webhooks allow you to receive HTTP `POST` payloads whenever certain events happen in a repository. {% data reusables.webhooks.webhooks-rest-api-links %} - -If you would like to set up a single webhook to receive events from all of your organization's repositories, see our API documentation for [Organization Webhooks](/rest/reference/orgs#webhooks). - -In addition to the REST API, {% data variables.product.prodname_dotcom %} can also serve as a [PubSubHubbub](#pubsubhubbub) hub for repositories. - -{% for operation in currentRestOperations %} - {% if operation.subcategory == 'webhooks' %}{% include rest_operation %}{% endif %} -{% endfor %} - -### Receiving Webhooks - -In order for {% data variables.product.product_name %} to send webhook payloads, your server needs to be accessible from the Internet. We also highly suggest using SSL so that we can send encrypted payloads over HTTPS. - -#### Webhook headers - -{% data variables.product.product_name %} will send along several HTTP headers to differentiate between event types and payload identifiers. See [webhook headers](/developers/webhooks-and-events/webhook-events-and-payloads#delivery-headers) for details. - -### PubSubHubbub - -GitHub can also serve as a [PubSubHubbub](https://github.com/pubsubhubbub/PubSubHubbub) hub for all repositories. PSHB is a simple publish/subscribe protocol that lets servers register to receive updates when a topic is updated. The updates are sent with an HTTP POST request to a callback URL. -Topic URLs for a GitHub repository's pushes are in this format: - -`https://github.com/{owner}/{repo}/events/{event}` - -The event can be any available webhook event. For more information, see "[Webhook events and payloads](/developers/webhooks-and-events/webhook-events-and-payloads)." - -#### Response format - -The default format is what [existing post-receive hooks should expect](/post-receive-hooks/): A JSON body sent as the `payload` parameter in a POST. You can also specify to receive the raw JSON body with either an `Accept` header, or a `.json` extension. - - Accept: application/json - https://github.com/{owner}/{repo}/events/push.json - -#### Callback URLs - -Callback URLs can use the `http://` protocol. - - # Send updates to postbin.org - http://postbin.org/123 - -#### Subscribing - -The GitHub PubSubHubbub endpoint is: `{% data variables.product.api_url_code %}/hub`. A successful request with curl looks like: - -``` shell -curl -u "user" -i \ - {% data variables.product.api_url_pre %}/hub \ - -F "hub.mode=subscribe" \ - -F "hub.topic=https://github.com/{owner}/{repo}/events/push" \ - -F "hub.callback=http://postbin.org/123" -``` - -PubSubHubbub requests can be sent multiple times. If the hook already exists, it will be modified according to the request. - -##### Parameters - -Name | Type | Description ------|------|-------------- -``hub.mode``|`string` | **Required**. Either `subscribe` or `unsubscribe`. -``hub.topic``|`string` |**Required**. The URI of the GitHub repository to subscribe to. The path must be in the format of `/{owner}/{repo}/events/{event}`. -``hub.callback``|`string` | The URI to receive the updates to the topic. -``hub.secret``|`string` | A shared secret key that generates a hash signature of the outgoing body content. You can verify a push came from GitHub by comparing the raw request body with the contents of the {% ifversion fpt or ghes > 2.22 or ghec %}`X-Hub-Signature` or `X-Hub-Signature-256` headers{% elsif ghes < 3.0 %}`X-Hub-Signature` header{% elsif ghae %}`X-Hub-Signature-256` header{% endif %}. You can see [the PubSubHubbub documentation](https://pubsubhubbub.github.io/PubSubHubbub/pubsubhubbub-core-0.4.html#authednotify) for more details. diff --git a/translations/es-ES/content/rest/reference/repository-metrics.md b/translations/es-ES/content/rest/reference/repository-metrics.md new file mode 100644 index 0000000000..aea394d6e0 --- /dev/null +++ b/translations/es-ES/content/rest/reference/repository-metrics.md @@ -0,0 +1,61 @@ +--- +title: Repository metrics +intro: 'The repository metrics API allows you to retrieve community profile, statistics, and traffic for your repository.' +allowTitleToDifferFromFilename: true +versions: + fpt: '*' + ghes: '*' + ghae: '*' + ghec: '*' +topics: + - API +miniTocMaxHeadingLevel: 3 +--- + +{% ifversion fpt or ghec %} +## Community + +{% for operation in currentRestOperations %} + {% if operation.subcategory == 'community' %}{% include rest_operation %}{% endif %} +{% endfor %} + +{% endif %} + +## Statistics + +The Repository Statistics API allows you to fetch the data that {% data variables.product.product_name %} uses for visualizing different +types of repository activity. + +### A word about caching + +Computing repository statistics is an expensive operation, so we try to return cached +data whenever possible. If the data hasn't been cached when you query a repository's +statistics, you'll receive a `202` response; a background job is also fired to +start compiling these statistics. Give the job a few moments to complete, and +then submit the request again. If the job has completed, that request will receive a +`200` response with the statistics in the response body. + +Repository statistics are cached by the SHA of the repository's default branch; pushing to the default branch resets the statistics cache. + +### Statistics exclude some types of commits + +The statistics exposed by the API match the statistics shown by [different repository graphs](/github/visualizing-repository-data-with-graphs/about-repository-graphs). + +To summarize: +- All statistics exclude merge commits. +- Contributor statistics also exclude empty commits. + +{% for operation in currentRestOperations %} + {% if operation.subcategory == 'statistics' %}{% include rest_operation %}{% endif %} +{% endfor %} + +{% ifversion fpt or ghec %} +## Traffic + +For repositories that you have push access to, the traffic API provides access +to the information provided in your repository graph. For more information, see "Viewing traffic to a repository." + +{% for operation in currentRestOperations %} + {% if operation.subcategory == 'traffic' %}{% include rest_operation %}{% endif %} +{% endfor %} +{% endif %} \ No newline at end of file diff --git a/translations/es-ES/content/rest/reference/search.md b/translations/es-ES/content/rest/reference/search.md index 99d4a14e4f..19f0a12d45 100644 --- a/translations/es-ES/content/rest/reference/search.md +++ b/translations/es-ES/content/rest/reference/search.md @@ -58,7 +58,7 @@ GitHub Octocat in:readme user:defunkt const queryString = 'q=' + encodeURIComponent('GitHub Octocat in:readme user:defunkt'); ``` -See "[Searching on GitHub](/articles/searching-on-github/)" +See "[Searching on GitHub](/search-github/searching-on-github)" for a complete list of available qualifiers, their format, and an example of how to use them. For information about how to use operators to match specific quantities, dates, or to exclude results, see "[Understanding the search syntax](/search-github/getting-started-with-searching-on-github/understanding-the-search-syntax/)." diff --git a/translations/es-ES/content/rest/reference/webhooks.md b/translations/es-ES/content/rest/reference/webhooks.md new file mode 100644 index 0000000000..c9908012c1 --- /dev/null +++ b/translations/es-ES/content/rest/reference/webhooks.md @@ -0,0 +1,77 @@ +--- +title: Webhooks +intro: 'The webhooks API allows you to create and manage webhooks for your repositories.' +allowTitleToDifferFromFilename: true +versions: + fpt: '*' + ghes: '*' + ghae: '*' + ghec: '*' +topics: + - API +miniTocMaxHeadingLevel: 3 +--- + +Repository webhooks allow you to receive HTTP `POST` payloads whenever certain events happen in a repository. {% data reusables.webhooks.webhooks-rest-api-links %} + +If you would like to set up a single webhook to receive events from all of your organization's repositories, see our API documentation for [Organization Webhooks](/rest/reference/orgs#webhooks). + +In addition to the REST API, {% data variables.product.prodname_dotcom %} can also serve as a [PubSubHubbub](#pubsubhubbub) hub for repositories. + +{% for operation in currentRestOperations %} + {% if operation.subcategory == 'webhooks' %}{% include rest_operation %}{% endif %} +{% endfor %} + +### Receiving Webhooks + +In order for {% data variables.product.product_name %} to send webhook payloads, your server needs to be accessible from the Internet. We also highly suggest using SSL so that we can send encrypted payloads over HTTPS. + +#### Webhook headers + +{% data variables.product.product_name %} will send along several HTTP headers to differentiate between event types and payload identifiers. See [webhook headers](/developers/webhooks-and-events/webhook-events-and-payloads#delivery-headers) for details. + +### PubSubHubbub + +GitHub can also serve as a [PubSubHubbub](https://github.com/pubsubhubbub/PubSubHubbub) hub for all repositories. PSHB is a simple publish/subscribe protocol that lets servers register to receive updates when a topic is updated. The updates are sent with an HTTP POST request to a callback URL. +Topic URLs for a GitHub repository's pushes are in this format: + +`https://github.com/{owner}/{repo}/events/{event}` + +The event can be any available webhook event. For more information, see "[Webhook events and payloads](/developers/webhooks-and-events/webhook-events-and-payloads)." + +#### Response format + +The default format is what [existing post-receive hooks should expect](/post-receive-hooks/): A JSON body sent as the `payload` parameter in a POST. You can also specify to receive the raw JSON body with either an `Accept` header, or a `.json` extension. + + Accept: application/json + https://github.com/{owner}/{repo}/events/push.json + +#### Callback URLs + +Callback URLs can use the `http://` protocol. + + # Send updates to postbin.org + http://postbin.org/123 + +#### Subscribing + +The GitHub PubSubHubbub endpoint is: `{% data variables.product.api_url_code %}/hub`. A successful request with curl looks like: + +``` shell +curl -u "user" -i \ + {% data variables.product.api_url_pre %}/hub \ + -F "hub.mode=subscribe" \ + -F "hub.topic=https://github.com/{owner}/{repo}/events/push" \ + -F "hub.callback=http://postbin.org/123" +``` + +PubSubHubbub requests can be sent multiple times. If the hook already exists, it will be modified according to the request. + +##### Parameters + +Name | Type | Description +-----|------|-------------- +``hub.mode``|`string` | **Required**. Either `subscribe` or `unsubscribe`. +``hub.topic``|`string` |**Required**. The URI of the GitHub repository to subscribe to. The path must be in the format of `/{owner}/{repo}/events/{event}`. +``hub.callback``|`string` | The URI to receive the updates to the topic. +``hub.secret``|`string` | A shared secret key that generates a hash signature of the outgoing body content. You can verify a push came from GitHub by comparing the raw request body with the contents of the {% ifversion fpt or ghes > 2.22 or ghec %}`X-Hub-Signature` or `X-Hub-Signature-256` headers{% elsif ghes < 3.0 %}`X-Hub-Signature` header{% elsif ghae %}`X-Hub-Signature-256` header{% endif %}. You can see [the PubSubHubbub documentation](https://pubsubhubbub.github.io/PubSubHubbub/pubsubhubbub-core-0.4.html#authednotify) for more details. diff --git a/translations/es-ES/content/search-github/getting-started-with-searching-on-github/about-searching-on-github.md b/translations/es-ES/content/search-github/getting-started-with-searching-on-github/about-searching-on-github.md index f6f7e88e11..74e1a19074 100644 --- a/translations/es-ES/content/search-github/getting-started-with-searching-on-github/about-searching-on-github.md +++ b/translations/es-ES/content/search-github/getting-started-with-searching-on-github/about-searching-on-github.md @@ -2,11 +2,11 @@ title: About searching on GitHub intro: 'Our integrated search covers the many repositories, users, and lines of code on {% data variables.product.product_name %}.' redirect_from: - - /articles/using-the-command-bar/ - - /articles/github-search-basics/ - - /articles/search-basics/ - - /articles/searching-github/ - - /articles/advanced-search/ + - /articles/using-the-command-bar + - /articles/github-search-basics + - /articles/search-basics + - /articles/searching-github + - /articles/advanced-search - /articles/about-searching-on-github - /github/searching-for-information-on-github/about-searching-on-github - /github/searching-for-information-on-github/getting-started-with-searching-on-github/about-searching-on-github diff --git a/translations/es-ES/content/search-github/getting-started-with-searching-on-github/enabling-githubcom-repository-search-from-your-private-enterprise-environment.md b/translations/es-ES/content/search-github/getting-started-with-searching-on-github/enabling-githubcom-repository-search-from-your-private-enterprise-environment.md index cf410536e1..2e98bbd3ee 100644 --- a/translations/es-ES/content/search-github/getting-started-with-searching-on-github/enabling-githubcom-repository-search-from-your-private-enterprise-environment.md +++ b/translations/es-ES/content/search-github/getting-started-with-searching-on-github/enabling-githubcom-repository-search-from-your-private-enterprise-environment.md @@ -3,9 +3,9 @@ title: Enabling GitHub.com repository search from your private enterprise enviro shortTitle: Search GitHub.com from enterprise intro: 'You can connect your personal accounts on {% data variables.product.prodname_dotcom_the_website %} and your private {% data variables.product.prodname_enterprise %} environment to search for content in certain {% data variables.product.prodname_dotcom_the_website %} repositories{% ifversion fpt or ghec %} from your private environment{% else %} from {% data variables.product.product_name %}{% endif %}.' redirect_from: - - /articles/enabling-private-githubcom-repository-search-in-your-github-enterprise-account/ - - /articles/enabling-private-github-com-repository-search-in-your-github-enterprise-server-account/ - - /articles/enabling-private-githubcom-repository-search-in-your-github-enterprise-server-account/ + - /articles/enabling-private-githubcom-repository-search-in-your-github-enterprise-account + - /articles/enabling-private-github-com-repository-search-in-your-github-enterprise-server-account + - /articles/enabling-private-githubcom-repository-search-in-your-github-enterprise-server-account - /articles/enabling-githubcom-repository-search-in-github-enterprise-server - /github/searching-for-information-on-github/enabling-githubcom-repository-search-in-github-enterprise-server - /github/searching-for-information-on-github/getting-started-with-searching-on-github/enabling-githubcom-repository-search-in-github-enterprise-server diff --git a/translations/es-ES/content/search-github/getting-started-with-searching-on-github/understanding-the-search-syntax.md b/translations/es-ES/content/search-github/getting-started-with-searching-on-github/understanding-the-search-syntax.md index 0df535b263..82108d649c 100644 --- a/translations/es-ES/content/search-github/getting-started-with-searching-on-github/understanding-the-search-syntax.md +++ b/translations/es-ES/content/search-github/getting-started-with-searching-on-github/understanding-the-search-syntax.md @@ -2,7 +2,7 @@ title: Understanding the search syntax intro: 'When searching {% data variables.product.product_name %}, you can construct queries that match specific numbers and words.' redirect_from: - - /articles/search-syntax/ + - /articles/search-syntax - /articles/understanding-the-search-syntax - /github/searching-for-information-on-github/understanding-the-search-syntax - /github/searching-for-information-on-github/getting-started-with-searching-on-github/understanding-the-search-syntax diff --git a/translations/es-ES/content/search-github/index.md b/translations/es-ES/content/search-github/index.md index 696b98eca7..c2eeff5e6d 100644 --- a/translations/es-ES/content/search-github/index.md +++ b/translations/es-ES/content/search-github/index.md @@ -1,9 +1,9 @@ --- -title: Buscar información en GitHub -intro: Utiliza los diferentes tipos de búsqueda para encontrar la información que quieres. +title: Searching for information on GitHub +intro: Use different types of searches to find the information you want. redirect_from: - - /categories/78/articles/ - - /categories/search/ + - /categories/78/articles + - /categories/search - /categories/searching-for-information-on-github - /github/searching-for-information-on-github versions: @@ -16,6 +16,6 @@ topics: children: - /getting-started-with-searching-on-github - /searching-on-github -shortTitle: Busca en GitHub +shortTitle: Search on GitHub --- diff --git a/translations/es-ES/content/search-github/searching-on-github/searching-commits.md b/translations/es-ES/content/search-github/searching-on-github/searching-commits.md index e7f31a7604..e0e772a5f7 100644 --- a/translations/es-ES/content/search-github/searching-on-github/searching-commits.md +++ b/translations/es-ES/content/search-github/searching-on-github/searching-commits.md @@ -109,11 +109,9 @@ The `is` qualifier matches commits from repositories with the specified visibili {%- ifversion fpt or ghes or ghec %} | `is:public` | [**is:public**](https://github.com/search?q=is%3Apublic&type=Commits) matches commits to public repositories. {%- endif %} - {%- ifversion ghes or ghec or ghae %} | `is:internal` | [**is:internal**](https://github.com/search?q=is%3Ainternal&type=Commits) matches commits to internal repositories. {%- endif %} - | `is:private` | [**is:private**](https://github.com/search?q=is%3Aprivate&type=Commits) matches commits to private repositories. ## Further reading diff --git a/translations/es-ES/content/search-github/searching-on-github/searching-for-repositories.md b/translations/es-ES/content/search-github/searching-on-github/searching-for-repositories.md index d0f25c2d0c..f12649f07a 100644 --- a/translations/es-ES/content/search-github/searching-on-github/searching-for-repositories.md +++ b/translations/es-ES/content/search-github/searching-on-github/searching-for-repositories.md @@ -2,7 +2,7 @@ title: Searching for repositories intro: 'You can search for repositories on {% data variables.product.product_name %} and narrow the results using these repository search qualifiers in any combination.' redirect_from: - - /articles/searching-repositories/ + - /articles/searching-repositories - /articles/searching-for-repositories - /github/searching-for-information-on-github/searching-for-repositories - /github/searching-for-information-on-github/searching-on-github/searching-for-repositories diff --git a/translations/es-ES/content/search-github/searching-on-github/searching-issues-and-pull-requests.md b/translations/es-ES/content/search-github/searching-on-github/searching-issues-and-pull-requests.md index 87b2785ed3..d41e60cedd 100644 --- a/translations/es-ES/content/search-github/searching-on-github/searching-issues-and-pull-requests.md +++ b/translations/es-ES/content/search-github/searching-on-github/searching-issues-and-pull-requests.md @@ -2,7 +2,7 @@ title: Searching issues and pull requests intro: 'You can search for issues and pull requests on {% data variables.product.product_name %} and narrow the results using these search qualifiers in any combination.' redirect_from: - - /articles/searching-issues/ + - /articles/searching-issues - /articles/searching-issues-and-pull-requests - /github/searching-for-information-on-github/searching-issues-and-pull-requests - /github/searching-for-information-on-github/searching-on-github/searching-issues-and-pull-requests diff --git a/translations/es-ES/data/features/actions-starter-template-ui.yml b/translations/es-ES/data/features/actions-starter-template-ui.yml new file mode 100644 index 0000000000..7e1ebe5384 --- /dev/null +++ b/translations/es-ES/data/features/actions-starter-template-ui.yml @@ -0,0 +1,6 @@ +--- +#Reference: #5169. +#Documentation for the Actions starter template UI updates +versions: + fpt: '*' + ghec: '*' diff --git a/translations/es-ES/data/features/enterprise-owners-visible-for-org-members.yml b/translations/es-ES/data/features/enterprise-owners-visible-for-org-members.yml new file mode 100644 index 0000000000..1b0a06a45f --- /dev/null +++ b/translations/es-ES/data/features/enterprise-owners-visible-for-org-members.yml @@ -0,0 +1,7 @@ +--- +#Reference: Issue #5741 in docs-content +#Documentation for enterprise owners UI updates +versions: + ghes: '>=3.4' + ghae: 'issue-####' + ghec: '*' diff --git a/translations/es-ES/data/features/fixed-width-font-gfm-fields.yml b/translations/es-ES/data/features/fixed-width-font-gfm-fields.yml new file mode 100644 index 0000000000..2c9ea31ac6 --- /dev/null +++ b/translations/es-ES/data/features/fixed-width-font-gfm-fields.yml @@ -0,0 +1,8 @@ +--- +#Reference: #5278. +#Documentation for the fixed-width font support for markdown fields. +versions: + fpt: '*' + ghec: '*' + ghes: '>=3.4' + ghae: 'issue-5278' diff --git a/translations/es-ES/data/glossaries/README.md b/translations/es-ES/data/glossaries/README.md index 7961aba1f3..f6b824ae75 100644 --- a/translations/es-ES/data/glossaries/README.md +++ b/translations/es-ES/data/glossaries/README.md @@ -3,5 +3,6 @@ Los siguientes archivos comprenden nuestro [Glosario de Crowdin](https://support.crowdin.com/glossary/): * `external.yml` contiene las entradas de glosario de cara al usuario. + * Las secuencias con `external.yml` son compatibles con condicionales líquidos. Consulta [contributing/liquid-helpers.md](/contributing/liquid-helpers.md). * `internal.yml` contiene las entradas que solo utilizan los traductores. Estos términos se muestran en la IU de Crowdin para proporcionar contexto adicional a los traductores sobre lo que están traduciendo, además de sugerir una secuencia localizada para ese término. * `candidates.yml` contiene términos que podrían estar potencialmente tanto en el glosario interno como en el externo, pero no se han definido aún. diff --git a/translations/es-ES/data/learning-tracks/README.md b/translations/es-ES/data/learning-tracks/README.md index 8535835ab3..ce3b8c6b95 100644 --- a/translations/es-ES/data/learning-tracks/README.md +++ b/translations/es-ES/data/learning-tracks/README.md @@ -33,7 +33,10 @@ El versionamiento para aprender pistas se procesa en l ahora interpretada de la Las condicionales líquidas **no** deben utilizarse para versionar en el archivo YAML para las guías. Solo las guías de pistas de aprendizaje que aplican a la versión actual se interpretarán automáticamente. Si no hay pistas con guías que pertenezcan a la versión actual, la sección de pistas de aprendizaje no se interpretará en lo absoluto. -También es compatible el versionamiento explícito dentro de los datos de YML de las pistas de aprendizaje del producto. Por ejemplo: +También es compatible el versionamiento explícito dentro de los datos de YML de las pistas de aprendizaje del producto. El formato y los valores permitidos son los mismos que en la [propiedad preliminar de versiones](/content#versions). + +Por ejemplo: + ``` learning_track_name: title: 'Learning track title' @@ -45,6 +48,7 @@ learning_track_name: - /path/to/guide1 - /path/to/guide2 ``` + Si no se incluye la propiedad de `versiones`, se asume que la pista está disponible en todas las versiones. ## Imposición del modelado diff --git a/translations/es-ES/data/release-notes/enterprise-server/3-0/16.yml b/translations/es-ES/data/release-notes/enterprise-server/3-0/16.yml index 6bfa9ada18..cf73f11c30 100644 --- a/translations/es-ES/data/release-notes/enterprise-server/3-0/16.yml +++ b/translations/es-ES/data/release-notes/enterprise-server/3-0/16.yml @@ -7,7 +7,7 @@ sections: - 'Los conteos del trabajador de Resque se mostraron incorrectamente durante el modo de mantenimiento. {% comment %} https://github.com/github/enterprise2/pull/26898, https://github.com/github/enterprise2/pull/26883 {% endcomment %}' - 'La memoria memcached asignada pudo haber sido cero en el modo de clústering. {% comment %} https://github.com/github/enterprise2/pull/26927, https://github.com/github/enterprise2/pull/26832 {% endcomment %}' - "Arregla compilaciones de las {% data variables.product.prodname_pages %} para que tomen en cuenta la configuración de NO_PROXY del aplicativo. Esto es relevante para los aplicativos configurados únicamente con un proxy HTTP. (actualización 2021-09-30) {% comment %} https://github.com/github/pages/pull/3360 {% endcomment %}\n \nsections -> bugs -> 2\nFile: 16.yml" - - 'The GitHub Connect configuration of the source instance was always restored to new instances even when the `--config` option for `ghe-restore` was not used. This would lead to a conflict with the GitHub Connect connection and license synchronization if both the source and destination instances were online at the same time. The fix also requires updating backup-utils to 3.2.0 or higher. [updated: 2021-11-18]' + - 'La configuración de GitHub Connect para la instancia origen siempre se restableció a las instancias nuevas, incluso cunado no se utilizó la opción `--config` para `ghe-restore`. Esto ocasionó un conflicto con la conexión de GitHub Connect y la sincronización de licencia si tanto la instancia de origen como la de destino estuvieron en línea al mismo tiempo. Este arreglo también requiere actualizar las utilidades de respaldo a la versión 3.2.0 o superior. [actualizado: 2021-11-18]' known_issues: - 'En una instalación nueva de {% data variables.product.prodname_ghe_server %} que no tenga ningún usuario, cualquier atacante podría crear el primer usuario administrativo.' - 'Las reglas de cortafuegos personalizadas se eliminan durante el proceso de actualización.' diff --git a/translations/es-ES/data/release-notes/enterprise-server/3-0/17.yml b/translations/es-ES/data/release-notes/enterprise-server/3-0/17.yml index 8b5ad0be0f..09a1f42299 100644 --- a/translations/es-ES/data/release-notes/enterprise-server/3-0/17.yml +++ b/translations/es-ES/data/release-notes/enterprise-server/3-0/17.yml @@ -13,7 +13,7 @@ sections: - 'An erroneous `jq` error message may have been displayed when running `ghe-config-apply`. {% comment %} https://github.com/github/enterprise2/pull/27203, https://github.com/github/enterprise2/pull/26784 {% endcomment %}' - 'La recuperación de fallos desde un centro de datos de un clúster primario hacia uno de un clúster secundario fue exitosa, pero recuperarse de los fallos nuevamente hacia el centro de datos del clúster primario original no pudo promover los índices de Elasticsearch. {% comment %} https://github.com/github/github/pull/193180, https://github.com/github/github/pull/192447 {% endcomment %}' - 'The Site Admin page for repository self-hosted runners returned an HTTP 500. {% comment %} https://github.com/github/github/pull/194205 {% endcomment %}' - - 'In some cases, GitHub Enterprise Administrators attempting to view the `Dormant users` page received `502 Bad Gateway` or `504 Gateway Timeout` response. {% comment %} https://github.com/github/github/pull/194259, https://github.com/github/github/pull/193609 {% endcomment %}' + - 'En algunos casos, los Administradores de GitHub Enterprise que intentaron ver la página de `Usuarios inactivos` recibieron una respuesta de tipo `502 Bad Gateway` o `504 Gateway Timeout`. {% comment %} https://github.com/github/github/pull/194259, https://github.com/github/github/pull/193609 {% endcomment %}' changes: - 'More effectively delete Webhook logs that fall out of the Webhook log retention window. {% comment %} https://github.com/github/enterprise2/pull/27157 {% endcomment %}' known_issues: diff --git a/translations/es-ES/data/release-notes/enterprise-server/3-0/19.yml b/translations/es-ES/data/release-notes/enterprise-server/3-0/19.yml index fb1afc45a0..c10953003b 100644 --- a/translations/es-ES/data/release-notes/enterprise-server/3-0/19.yml +++ b/translations/es-ES/data/release-notes/enterprise-server/3-0/19.yml @@ -1,7 +1,7 @@ date: '2021-11-09' sections: security_fixes: - - 'A path traversal vulnerability was identified in {% data variables.product.prodname_pages %} builds on {% data variables.product.prodname_ghe_server %} that could allow an attacker to read system files. To exploit this vulnerability, an attacker needed permission to create and build a {% data variables.product.prodname_pages %} site on the {% data variables.product.prodname_ghe_server %} instance. This vulnerability affected all versions of {% data variables.product.prodname_ghe_server %} prior to 3.3, and was fixed in versions 3.0.19, 3.1.11, and 3.2.3. This vulnerability was reported through the {% data variables.product.company_short %} Bug Bounty program and has been assigned CVE-2021-22870.' + - 'Se identificó una vulnerabilidad de recorrido de ruta en las compilaciones de {% data variables.product.prodname_pages %} en {% data variables.product.prodname_ghe_server %}, la cual pudo haber permitido que un atacante leyera los archivos de sistema. Para explotar esta vulnerabilidad, el atacante necesitaría permiso para crear y compilar un sitio de {% data variables.product.prodname_pages %} en la instancia de {% data variables.product.prodname_ghe_server %}. Esta vulnerabilidad afectó a todas las versiones de {% data variables.product.prodname_ghe_server %} anteriores a la 3.3 y se corrigió en las versiones 3.0.19, 3.1.11 y 3.2.3. Esta vulnerabilidad se reportó a través del programa de Recompensas por Errores de {% data variables.product.company_short %} y se le asignó el identificador CVE-2021-22870.' - 'Los paquetes se actualizaron a las últimas versiones de seguridad.' bugs: - 'Some Git operations failed after upgrading a {% data variables.product.prodname_ghe_server %} 3.x cluster because of the HAProxy configuration.' diff --git a/translations/es-ES/data/release-notes/enterprise-server/3-0/20.yml b/translations/es-ES/data/release-notes/enterprise-server/3-0/20.yml index ee3c205be8..2ffbc2409f 100644 --- a/translations/es-ES/data/release-notes/enterprise-server/3-0/20.yml +++ b/translations/es-ES/data/release-notes/enterprise-server/3-0/20.yml @@ -11,6 +11,7 @@ sections: changes: - An additional outer layer of `gzip` compression when creating a cluster support bundle with `ghe-cluster-suport-bundle` is now turned off by default. This outer compression can optionally be applied with the `ghe-cluster-suport-bundle -c` command line option. - We have added extra text to the admin console to remind users about the mobile apps' data collection for experience improvement purposes. + - The {% data variables.product.prodname_github_connect %} data connection record now includes a list of enabled {% data variables.product.prodname_github_connect %} features. [Updated 2021-12-09] known_issues: - En una instalación nueva de {% data variables.product.prodname_ghe_server %} que no tenga ningún usuario, cualquier atacante podría crear el primer usuario administrativo. - Las reglas de cortafuegos personalizadas se eliminan durante el proceso de actualización. diff --git a/translations/es-ES/data/release-notes/enterprise-server/3-0/22.yml b/translations/es-ES/data/release-notes/enterprise-server/3-0/22.yml index 6bfb77cd5d..77c8c5aa24 100644 --- a/translations/es-ES/data/release-notes/enterprise-server/3-0/22.yml +++ b/translations/es-ES/data/release-notes/enterprise-server/3-0/22.yml @@ -2,7 +2,8 @@ date: '2021-12-13' sections: security_fixes: - - '**CRITICAL:** A remote code execution vulnerability in the Log4j library, identified as [CVE-2021-44228](https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2021-44228), affected all versions of {% data variables.product.prodname_ghe_server %} prior to 3.3.1. The Log4j library is used in an open source service running on the {% data variables.product.prodname_ghe_server %} instance. This vulnerability was fixed in {% data variables.product.prodname_ghe_server %} versions 3.0.22, 3.1.14, 3.2.6, and 3.3.1. For more information, please see [this post](https://github.blog/2021-12-13-githubs-response-to-log4j-vulnerability-cve-2021-44228/) on the GitHub Blog.' + - '**CRÍTICA:** Una vulnerabilidad de ejecución de código remoto en la librería Log4j, identificada como [CVE-2021-44228](https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2021-44228), afectó a todas las versiones de {% data variables.product.prodname_ghe_server %} anteriores a la 3.3.1. La librería Log4j se utiliza en un servicio de código abierto que se ejecuta en la instancia de {% data variables.product.prodname_ghe_server %}. Esta vulnerabilidad se corrigió en las versiones 3.0.22, 3.1.14, 3.2.6 y 3.3.1 de {% data variables.product.prodname_ghe_server %}. Para obtener más información, por favor, consulta [esta publicación](https://github.blog/2021-12-13-githubs-response-to-log4j-vulnerability-cve-2021-44228/) en el Blog de GitHub.' + - '**Actualización del 17 de diciembre de 2021**: Las correcciones que se llevaron a cabo para este lanzamiento también mitigan el [CVE-2021-45046](https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2021-45046), el cual se publicó después de dicho lanzamiento. No se necesita ninguna actualización adicional en {% data variables.product.prodname_ghe_server %} para mitigar tanto al CVE-2021-44228 como al CVE-2021-45046.' known_issues: - En una instalación nueva de {% data variables.product.prodname_ghe_server %} que no tenga ningún usuario, cualquier atacante podría crear el primer usuario administrativo. - Las reglas de cortafuegos personalizadas se eliminan durante el proceso de actualización. diff --git a/translations/es-ES/data/release-notes/enterprise-server/3-1/11.yml b/translations/es-ES/data/release-notes/enterprise-server/3-1/11.yml index 58add2e368..c532a5ee4d 100644 --- a/translations/es-ES/data/release-notes/enterprise-server/3-1/11.yml +++ b/translations/es-ES/data/release-notes/enterprise-server/3-1/11.yml @@ -1,7 +1,7 @@ date: '2021-11-09' sections: security_fixes: - - 'A path traversal vulnerability was identified in {% data variables.product.prodname_pages %} builds on {% data variables.product.prodname_ghe_server %} that could allow an attacker to read system files. To exploit this vulnerability, an attacker needed permission to create and build a {% data variables.product.prodname_pages %} site on the {% data variables.product.prodname_ghe_server %} instance. This vulnerability affected all versions of {% data variables.product.prodname_ghe_server %} prior to 3.3, and was fixed in versions 3.0.19, 3.1.11, and 3.2.3. This vulnerability was reported through the {% data variables.product.company_short %} Bug Bounty program and has been assigned CVE-2021-22870.' + - 'Se identificó una vulnerabilidad de recorrido de ruta en las compilaciones de {% data variables.product.prodname_pages %} en {% data variables.product.prodname_ghe_server %}, la cual pudo haber permitido que un atacante leyera los archivos de sistema. Para explotar esta vulnerabilidad, el atacante necesitaría permiso para crear y compilar un sitio de {% data variables.product.prodname_pages %} en la instancia de {% data variables.product.prodname_ghe_server %}. Esta vulnerabilidad afectó a todas las versiones de {% data variables.product.prodname_ghe_server %} anteriores a la 3.3 y se corrigió en las versiones 3.0.19, 3.1.11 y 3.2.3. Esta vulnerabilidad se reportó a través del programa de Recompensas por Errores de {% data variables.product.company_short %} y se le asignó el identificador CVE-2021-22870.' - 'Los paquetes se actualizaron a las últimas versiones de seguridad.' bugs: - 'Some Git operations failed after upgrading a {% data variables.product.prodname_ghe_server %} 3.x cluster because of the HAProxy configuration.' @@ -10,7 +10,7 @@ sections: - 'If Ubuntu''s Uncomplicated Firewall (UFW) status was inactive, a client could not clearly see it in the logs.' - 'Upgrading from {% data variables.product.prodname_ghe_server %} 2.x to 3.x failed when there were UTF8 characters in an LDAP configuration.' - 'Some pages and Git-related background jobs might not run in cluster mode with certain cluster configurations.' - - 'When a new tag was created, the [push](/developers/webhooks-and-events/webhooks/webhook-events-and-payloads#push) webhook payload did not display a correct `head_commit` object. Now, when a new tag is created, the push webhook payload now always includes a `head_commit` object that contains the data of the commit that the new tag points to. As a result, the `head_commit` object will always contain the commit data of the payload''s `after` commit.' + - 'Al crear una etiqueta nueva, la carga útil del webhook de [push](/developers/webhooks-and-events/webhooks/webhook-events-and-payloads#push) no mostró un objeto correcto de `head_commit`. Ahora, cuando se crea una etiqueta nueva, la carga útil del webhook de subida siempre incluye un objeto de `head_commit` que contiene los datos de la confirmación a la cual apunta dicha etiqueta nueva. Como resultado, el objeto `head_commit` siempre contendrá los datos de la confirmación `after` de la carga útil.' - 'The enterprise audit log page would not display audit events for {% data variables.product.prodname_secret_scanning %}.' - 'There was an insufficient job timeout for replica repairs.' - 'Users were not warned about potentially dangerous bidirectional unicode characters when viewing files. For more information, see "[Warning about bidirectional Unicode text](https://github.co/hiddenchars)" in {% data variables.product.prodname_blog %}.' diff --git a/translations/es-ES/data/release-notes/enterprise-server/3-1/12.yml b/translations/es-ES/data/release-notes/enterprise-server/3-1/12.yml index 73c91c8e8f..dd7f2bb066 100644 --- a/translations/es-ES/data/release-notes/enterprise-server/3-1/12.yml +++ b/translations/es-ES/data/release-notes/enterprise-server/3-1/12.yml @@ -13,6 +13,7 @@ sections: changes: - An additional outer layer of `gzip` compression when creating a cluster support bundle with `ghe-cluster-suport-bundle` is now turned off by default. This outer compression can optionally be applied with the `ghe-cluster-suport-bundle -c` command line option. - We have added extra text to the admin console to remind users about the mobile apps' data collection for experience improvement purposes. + - The {% data variables.product.prodname_github_connect %} data connection record now includes a list of enabled {% data variables.product.prodname_github_connect %} features. [Updated 2021-12-09] known_issues: - El registor de npm del {% data variables.product.prodname_registry %} ya no regresa un valor de tiempo en las respuestas de metadatos. Esto se hizo para permitir mejoras de rendimiento sustanciales. Seguimos teniendo todos los datos necesarios para devolver un valor de tiempo como parte de la respuesta de metadatos y terminaremos de devolver este valor ene l futuro una vez que hayamos resuelto los problemas de rendimiento existentes. - En una instalación nueva de {% data variables.product.prodname_ghe_server %} que no tenga ningún usuario, cualquier atacante podría crear el primer usuario administrativo. diff --git a/translations/es-ES/data/release-notes/enterprise-server/3-1/14.yml b/translations/es-ES/data/release-notes/enterprise-server/3-1/14.yml index 77c1c368bc..6608379382 100644 --- a/translations/es-ES/data/release-notes/enterprise-server/3-1/14.yml +++ b/translations/es-ES/data/release-notes/enterprise-server/3-1/14.yml @@ -2,7 +2,8 @@ date: '2021-12-13' sections: security_fixes: - - '**CRITICAL:** A remote code execution vulnerability in the Log4j library, identified as [CVE-2021-44228](https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2021-44228), affected all versions of {% data variables.product.prodname_ghe_server %} prior to 3.3.1. The Log4j library is used in an open source service running on the {% data variables.product.prodname_ghe_server %} instance. This vulnerability was fixed in {% data variables.product.prodname_ghe_server %} versions 3.0.22, 3.1.14, 3.2.6, and 3.3.1. For more information, please see [this post](https://github.blog/2021-12-13-githubs-response-to-log4j-vulnerability-cve-2021-44228/) on the GitHub Blog.' + - '**CRÍTICA:** Una vulnerabilidad de ejecución de código remoto en la librería Log4j, identificada como [CVE-2021-44228](https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2021-44228), afectó a todas las versiones de {% data variables.product.prodname_ghe_server %} anteriores a la 3.3.1. La librería Log4j se utiliza en un servicio de código abierto que se ejecuta en la instancia de {% data variables.product.prodname_ghe_server %}. Esta vulnerabilidad se corrigió en las versiones 3.0.22, 3.1.14, 3.2.6 y 3.3.1 de {% data variables.product.prodname_ghe_server %}. Para obtener más información, por favor, consulta [esta publicación](https://github.blog/2021-12-13-githubs-response-to-log4j-vulnerability-cve-2021-44228/) en el Blog de GitHub.' + - '**Actualización del 17 de diciembre de 2021**: Las correcciones que se llevaron a cabo para este lanzamiento también mitigan el [CVE-2021-45046](https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2021-45046), el cual se publicó después de dicho lanzamiento. No se necesita ninguna actualización adicional en {% data variables.product.prodname_ghe_server %} para mitigar tanto al CVE-2021-44228 como al CVE-2021-45046.' known_issues: - El registor de npm del {% data variables.product.prodname_registry %} ya no regresa un valor de tiempo en las respuestas de metadatos. Esto se hizo para permitir mejoras de rendimiento sustanciales. Seguimos teniendo todos los datos necesarios para devolver un valor de tiempo como parte de la respuesta de metadatos y terminaremos de devolver este valor ene l futuro una vez que hayamos resuelto los problemas de rendimiento existentes. - En una instalación nueva de {% data variables.product.prodname_ghe_server %} que no tenga ningún usuario, cualquier atacante podría crear el primer usuario administrativo. diff --git a/translations/es-ES/data/release-notes/enterprise-server/3-1/8.yml b/translations/es-ES/data/release-notes/enterprise-server/3-1/8.yml index 9412b1008a..82b67e4216 100644 --- a/translations/es-ES/data/release-notes/enterprise-server/3-1/8.yml +++ b/translations/es-ES/data/release-notes/enterprise-server/3-1/8.yml @@ -8,7 +8,7 @@ sections: - 'La memoria memcached asignada pudo haber sido cero en el modo de clústering. {% comment %} https://github.com/github/enterprise2/pull/26928, https://github.com/github/enterprise2/pull/26832 {% endcomment %}' - 'Los archivos binarios no vacíos mostraron un tipo y tamaño de archivo incorrectos en la pestaña "Archivos" de una solicitud de cambios. {% comment %} https://github.com/github/github/pull/192810, https://github.com/github/github/pull/172284, https://github.com/github/coding/issues/694 {% endcomment %}' - "Arregla compilaciones de las {% data variables.product.prodname_pages %} para que tomen en cuenta la configuración de NO_PROXY del aplicativo. Esto es relevante para los aplicativos configurados únicamente con un proxy HTTP. (actualización 2021-09-30) {% comment %} https://github.com/github/pages/pull/3360 {% endcomment %}\n \nsections -> bugs -> 2\nFile: 16.yml" - - 'The GitHub Connect configuration of the source instance was always restored to new instances even when the `--config` option for `ghe-restore` was not used. This would lead to a conflict with the GitHub Connect connection and license synchronization if both the source and destination instances were online at the same time. The fix also requires updating backup-utils to 3.2.0 or higher. [updated: 2021-11-18]' + - 'La configuración de GitHub Connect para la instancia origen siempre se restableció a las instancias nuevas, incluso cunado no se utilizó la opción `--config` para `ghe-restore`. Esto ocasionó un conflicto con la conexión de GitHub Connect y la sincronización de licencia si tanto la instancia de origen como la de destino estuvieron en línea al mismo tiempo. Este arreglo también requiere actualizar las utilidades de respaldo a la versión 3.2.0 o superior. [actualizado: 2021-11-18]' known_issues: - 'El registor de npm del {% data variables.product.prodname_registry %} ya no regresa un valor de tiempo en las respuestas de metadatos. Esto se hizo para permitir mejoras de rendimiento sustanciales. Seguimos teniendo todos los datos necesarios para devolver un valor de tiempo como parte de la respuesta de metadatos y terminaremos de devolver este valor ene l futuro una vez que hayamos resuelto los problemas de rendimiento existentes.' - 'En una instalación nueva de {% data variables.product.prodname_ghe_server %} que no tenga ningún usuario, cualquier atacante podría crear el primer usuario administrativo.' diff --git a/translations/es-ES/data/release-notes/enterprise-server/3-1/9.yml b/translations/es-ES/data/release-notes/enterprise-server/3-1/9.yml index 53a14a783d..2a41bdb1d2 100644 --- a/translations/es-ES/data/release-notes/enterprise-server/3-1/9.yml +++ b/translations/es-ES/data/release-notes/enterprise-server/3-1/9.yml @@ -14,7 +14,7 @@ sections: - 'The external database password was logged in plaintext. {% comment %} https://github.com/github/enterprise2/pull/27173, https://github.com/github/enterprise2/pull/26413 {% endcomment %}' - 'La recuperación de fallos desde un centro de datos de un clúster primario hacia uno de un clúster secundario fue exitosa, pero recuperarse de los fallos nuevamente hacia el centro de datos del clúster primario original no pudo promover los índices de Elasticsearch. {% comment %} https://github.com/github/github/pull/193180, https://github.com/github/github/pull/192447 {% endcomment %}' - 'The "Import teams" button on the Teams page for an Organization returned an HTTP 404. {% comment %} https://github.com/github/github/pull/193302 {% endcomment %}' - - 'In some cases, GitHub Enterprise Administrators attempting to view the `Dormant users` page received `502 Bad Gateway` or `504 Gateway Timeout` response. {% comment %} https://github.com/github/github/pull/194260, https://github.com/github/github/pull/193609 {% endcomment %}' + - 'En algunos casos, los Administradores de GitHub Enterprise que intentaron ver la página de `Usuarios inactivos` recibieron una respuesta de tipo `502 Bad Gateway` o `504 Gateway Timeout`. {% comment %} https://github.com/github/github/pull/194259, https://github.com/github/github/pull/193609 {% endcomment %}' - 'Performance was negatively impacted in certain high load situations as a result of the increased number of `SynchronizePullRequestJob` jobs. {% comment %} https://github.com/github/github/pull/195253, https://github.com/github/github/pull/194591 {% endcomment %}' changes: - 'More effectively delete Webhook logs that fall out of the Webhook log retention window. {% comment %} https://github.com/github/enterprise2/pull/27158 {% endcomment %}' diff --git a/translations/es-ES/data/release-notes/enterprise-server/3-2/0-rc1.yml b/translations/es-ES/data/release-notes/enterprise-server/3-2/0-rc1.yml index 62d2d7a5ae..a59268d4f1 100644 --- a/translations/es-ES/data/release-notes/enterprise-server/3-2/0-rc1.yml +++ b/translations/es-ES/data/release-notes/enterprise-server/3-2/0-rc1.yml @@ -244,10 +244,10 @@ sections: - heading: API Changes notes: # https://github.com/github/releases/issues/1253 - - Pagination support has been added to the Repositories REST API's "compare two commits" endpoint, which returns a list of commits reachable from one commit or branch, but unreachable from another. The API can also now return the results for comparisons over 250 commits. For more information, see the "[Repositories](/rest/reference/repos#compare-two-commits)" REST API documentation and "[Traversing with pagination](/rest/guides/traversing-with-pagination)." + - Pagination support has been added to the Repositories REST API's "compare two commits" endpoint, which returns a list of commits reachable from one commit or branch, but unreachable from another. The API can also now return the results for comparisons over 250 commits. For more information, see the "[Commits](/rest/reference/commits#compare-two-commits)" REST API documentation and "[Traversing with pagination](/rest/guides/traversing-with-pagination)." # https://github.com/github/releases/issues/969 - - The REST API can now be used to programmatically resend or check the status of webhooks. For more information, see "[Repositories](/rest/reference/repos#webhooks)," "[Organizations](/rest/reference/orgs#webhooks)," and "[Apps](/rest/reference/apps#webhooks)" in the REST API documentation. + - The REST API can now be used to programmatically resend or check the status of webhooks. For more information, see "[Webhooks](/rest/reference/webhooks)," "[Organizations](/rest/reference/orgs#webhooks)," and "[Apps](/rest/reference/apps#webhooks)" in the REST API documentation. # https://github.com/github/releases/issues/1349 - | diff --git a/translations/es-ES/data/release-notes/enterprise-server/3-2/0.yml b/translations/es-ES/data/release-notes/enterprise-server/3-2/0.yml index b5f39207ee..dd9ef8063b 100644 --- a/translations/es-ES/data/release-notes/enterprise-server/3-2/0.yml +++ b/translations/es-ES/data/release-notes/enterprise-server/3-2/0.yml @@ -246,7 +246,7 @@ sections: - heading: API Changes notes: # https://github.com/github/releases/issues/1253 - - Pagination support has been added to the Repositories REST API's "compare two commits" endpoint, which returns a list of commits reachable from one commit or branch, but unreachable from another. The API can also now return the results for comparisons over 250 commits. For more information, see the "[Repositories](/rest/reference/repos#compare-two-commits)" REST API documentation and "[Traversing with pagination](/rest/guides/traversing-with-pagination)." + - Pagination support has been added to the Repositories REST API's "compare two commits" endpoint, which returns a list of commits reachable from one commit or branch, but unreachable from another. The API can also now return the results for comparisons over 250 commits. For more information, see the "[Commits](/rest/reference/commits#compare-two-commits)" REST API documentation and "[Traversing with pagination](/rest/guides/traversing-with-pagination)." # https://github.com/github/releases/issues/969 - The REST API can now be used to programmatically resend or check the status of webhooks. For more information, see "[Repositories](/rest/reference/repos#webhooks)," "[Organizations](/rest/reference/orgs#webhooks)," and "[Apps](/rest/reference/apps#webhooks)" in the REST API documentation. diff --git a/translations/es-ES/data/release-notes/enterprise-server/3-2/1.yml b/translations/es-ES/data/release-notes/enterprise-server/3-2/1.yml index 42ee385880..45ff9d19bc 100644 --- a/translations/es-ES/data/release-notes/enterprise-server/3-2/1.yml +++ b/translations/es-ES/data/release-notes/enterprise-server/3-2/1.yml @@ -13,7 +13,7 @@ sections: - 'La recuperación de fallos desde un centro de datos de un clúster primario hacia uno de un clúster secundario fue exitosa, pero recuperarse de los fallos nuevamente hacia el centro de datos del clúster primario original no pudo promover los índices de Elasticsearch. {% comment %} https://github.com/github/github/pull/193180, https://github.com/github/github/pull/192447 {% endcomment %}' - 'The "Import teams" button on the Teams page for an Organization returned an HTTP 404. {% comment %} https://github.com/github/github/pull/193303 {% endcomment %}' - 'Using the API to disable Secret Scanning correctly disabled the property but incorrectly returned an HTTP 422 and an error message. {% comment %} https://github.com/github/github/pull/193455, https://github.com/github/github/pull/192907 {% endcomment %}' - - 'In some cases, GitHub Enterprise Administrators attempting to view the `Dormant users` page received `502 Bad Gateway` or `504 Gateway Timeout` response. {% comment %} https://github.com/github/github/pull/194262, https://github.com/github/github/pull/193609 {% endcomment %}' + - 'En algunos casos, los Administradores de GitHub Enterprise que intentaron ver la página de `Usuarios inactivos` recibieron una respuesta de tipo `502 Bad Gateway` o `504 Gateway Timeout`. {% comment %} https://github.com/github/github/pull/194259, https://github.com/github/github/pull/193609 {% endcomment %}' - 'Performance was negatively impacted in certain high load situations as a result of the increased number of `SynchronizePullRequestJob` jobs. {% comment %} https://github.com/github/github/pull/195256, https://github.com/github/github/pull/194591 {% endcomment %}' - 'A user defined pattern created for Secret Scanning would continue getting scanned even after it was deleted. {% comment %} https://github.com/github/token-scanning-service/pull/1039, https://github.com/github/token-scanning-service/pull/822 {% endcomment %}' changes: diff --git a/translations/es-ES/data/release-notes/enterprise-server/3-2/3.yml b/translations/es-ES/data/release-notes/enterprise-server/3-2/3.yml index 70e7237d94..6e4f38da3d 100644 --- a/translations/es-ES/data/release-notes/enterprise-server/3-2/3.yml +++ b/translations/es-ES/data/release-notes/enterprise-server/3-2/3.yml @@ -1,7 +1,7 @@ date: '2021-11-09' sections: security_fixes: - - 'A path traversal vulnerability was identified in {% data variables.product.prodname_pages %} builds on {% data variables.product.prodname_ghe_server %} that could allow an attacker to read system files. To exploit this vulnerability, an attacker needed permission to create and build a {% data variables.product.prodname_pages %} site on the {% data variables.product.prodname_ghe_server %} instance. This vulnerability affected all versions of {% data variables.product.prodname_ghe_server %} prior to 3.3, and was fixed in versions 3.0.19, 3.1.11, and 3.2.3. This vulnerability was reported through the {% data variables.product.company_short %} Bug Bounty program and has been assigned CVE-2021-22870.' + - 'Se identificó una vulnerabilidad de recorrido de ruta en las compilaciones de {% data variables.product.prodname_pages %} en {% data variables.product.prodname_ghe_server %}, la cual pudo haber permitido que un atacante leyera los archivos de sistema. Para explotar esta vulnerabilidad, el atacante necesitaría permiso para crear y compilar un sitio de {% data variables.product.prodname_pages %} en la instancia de {% data variables.product.prodname_ghe_server %}. Esta vulnerabilidad afectó a todas las versiones de {% data variables.product.prodname_ghe_server %} anteriores a la 3.3 y se corrigió en las versiones 3.0.19, 3.1.11 y 3.2.3. Esta vulnerabilidad se reportó a través del programa de Recompensas por Errores de {% data variables.product.company_short %} y se le asignó el identificador CVE-2021-22870.' - 'Los paquetes se actualizaron a las últimas versiones de seguridad.' bugs: - 'Some Git operations failed after upgrading a {% data variables.product.prodname_ghe_server %} 3.x cluster because of the HAProxy configuration.' @@ -11,7 +11,7 @@ sections: - 'Upgrading from {% data variables.product.prodname_ghe_server %} 2.x to 3.x failed when there were UTF8 characters in an LDAP configuration.' - 'Some pages and Git-related background jobs might not run in cluster mode with certain cluster configurations.' - 'The documentation link for Server Statistics was broken.' - - 'When a new tag was created, the [push](/developers/webhooks-and-events/webhooks/webhook-events-and-payloads#push) webhook payload did not display a correct `head_commit` object. Now, when a new tag is created, the push webhook payload now always includes a `head_commit` object that contains the data of the commit that the new tag points to. As a result, the `head_commit` object will always contain the commit data of the payload''s `after` commit.' + - 'Al crear una etiqueta nueva, la carga útil del webhook de [push](/developers/webhooks-and-events/webhooks/webhook-events-and-payloads#push) no mostró un objeto correcto de `head_commit`. Ahora, cuando se crea una etiqueta nueva, la carga útil del webhook de subida siempre incluye un objeto de `head_commit` que contiene los datos de la confirmación a la cual apunta dicha etiqueta nueva. Como resultado, el objeto `head_commit` siempre contendrá los datos de la confirmación `after` de la carga útil.' - 'The enterprise audit log page would not display audit events for {% data variables.product.prodname_secret_scanning %}.' - 'There was an insufficient job timeout for replica repairs.' - 'A repository''s releases page would return a 500 error when viewing releases.' diff --git a/translations/es-ES/data/release-notes/enterprise-server/3-2/4.yml b/translations/es-ES/data/release-notes/enterprise-server/3-2/4.yml index 1a95886e35..4f1d11247c 100644 --- a/translations/es-ES/data/release-notes/enterprise-server/3-2/4.yml +++ b/translations/es-ES/data/release-notes/enterprise-server/3-2/4.yml @@ -19,6 +19,7 @@ sections: changes: - An additional outer layer of `gzip` compression when creating a cluster support bundle with `ghe-cluster-suport-bundle` is now turned off by default. This outer compression can optionally be applied with the `ghe-cluster-suport-bundle -c` command line option. - We have added extra text to the admin console to remind users about the mobile apps' data collection for experience improvement purposes. + - The {% data variables.product.prodname_github_connect %} data connection record now includes a list of enabled {% data variables.product.prodname_github_connect %} features. [Updated 2021-12-09] known_issues: - En una instalación nueva de {% data variables.product.prodname_ghe_server %} que no tenga ningún usuario, cualquier atacante podría crear el primer usuario administrativo. - Las reglas de cortafuegos personalizadas se eliminan durante el proceso de actualización. diff --git a/translations/es-ES/data/release-notes/enterprise-server/3-2/6.yml b/translations/es-ES/data/release-notes/enterprise-server/3-2/6.yml index 287e5e86f6..cc2b49b0b3 100644 --- a/translations/es-ES/data/release-notes/enterprise-server/3-2/6.yml +++ b/translations/es-ES/data/release-notes/enterprise-server/3-2/6.yml @@ -2,7 +2,8 @@ date: '2021-12-13' sections: security_fixes: - - '**CRITICAL:** A remote code execution vulnerability in the Log4j library, identified as [CVE-2021-44228](https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2021-44228), affected all versions of {% data variables.product.prodname_ghe_server %} prior to 3.3.1. The Log4j library is used in an open source service running on the {% data variables.product.prodname_ghe_server %} instance. This vulnerability was fixed in {% data variables.product.prodname_ghe_server %} versions 3.0.22, 3.1.14, 3.2.6, and 3.3.1. For more information, please see [this post](https://github.blog/2021-12-13-githubs-response-to-log4j-vulnerability-cve-2021-44228/) on the GitHub Blog.' + - '**CRÍTICA:** Una vulnerabilidad de ejecución de código remoto en la librería Log4j, identificada como [CVE-2021-44228](https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2021-44228), afectó a todas las versiones de {% data variables.product.prodname_ghe_server %} anteriores a la 3.3.1. La librería Log4j se utiliza en un servicio de código abierto que se ejecuta en la instancia de {% data variables.product.prodname_ghe_server %}. Esta vulnerabilidad se corrigió en las versiones 3.0.22, 3.1.14, 3.2.6 y 3.3.1 de {% data variables.product.prodname_ghe_server %}. Para obtener más información, por favor, consulta [esta publicación](https://github.blog/2021-12-13-githubs-response-to-log4j-vulnerability-cve-2021-44228/) en el Blog de GitHub.' + - '**Actualización del 17 de diciembre de 2021**: Las correcciones que se llevaron a cabo para este lanzamiento también mitigan el [CVE-2021-45046](https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2021-45046), el cual se publicó después de dicho lanzamiento. No se necesita ninguna actualización adicional en {% data variables.product.prodname_ghe_server %} para mitigar tanto al CVE-2021-44228 como al CVE-2021-45046.' known_issues: - En una instalación nueva de {% data variables.product.prodname_ghe_server %} que no tenga ningún usuario, cualquier atacante podría crear el primer usuario administrativo. - Las reglas de cortafuegos personalizadas se eliminan durante el proceso de actualización. diff --git a/translations/es-ES/data/release-notes/enterprise-server/3-3/0-rc1.yml b/translations/es-ES/data/release-notes/enterprise-server/3-3/0-rc1.yml index cf185c5c31..f5cef0e288 100644 --- a/translations/es-ES/data/release-notes/enterprise-server/3-3/0-rc1.yml +++ b/translations/es-ES/data/release-notes/enterprise-server/3-3/0-rc1.yml @@ -1,28 +1,28 @@ date: '2021-11-09' release_candidate: true deprecated: true -intro: "{% note %}\n\n**Note:** If {% data variables.product.product_location %} is running a release candidate build, you can't upgrade with a hotpatch. We recommend only running release candidates on test environments.\n\n{% endnote %}\n\nFor upgrade instructions, see \"[Upgrading {% data variables.product.prodname_ghe_server %}](/admin/enterprise-management/updating-the-virtual-machine-and-physical-resources/upgrading-github-enterprise-server).\"\n" +intro: "{% note %}\n\n**Nota:** Si {% data variables.product.product_location %} está ejecutando una comilación candidata a lanzamiento, no podrás mejorar la versión con un hotpatch. Te reocmendamos que solo ejecutes candidatos a lanzamiento en ambientes de prueba.\n\n{% endnote %}\n\nPara encontrar las instrucciones de mejora de versiones, consulta la sección \"[Mejorar la versión de {% data variables.product.prodname_ghe_server %}](/admin/enterprise-management/updating-the-virtual-machine-and-physical-resources/upgrading-github-enterprise-server)\".\n" sections: features: - heading: 'Security Manager role' notes: - - "Organization owners can now grant teams the access to manage security alerts and settings on their repositories. The \"security manager\" role can be applied to any team and grants the team's members the following access:\n\n- Read access on all repositories in the organization.\n- Write access on all security alerts in the organization.\n- Access to the organization-level security tab.\n- Write access on security settings at the organization level.\n- Write access on security settings at the repository level.\n\nFor more information, see \"[Managing security managers in your organization](/organizations/managing-peoples-access-to-your-organization-with-roles/managing-security-managers-in-your-organization).\"\n" + - "Los propietarios de organizaciones ahora pueden otorgar a los equipos el acceso para administrar las alertas de seguridad y los ajustes en sus repositorios. El rol de \"Administrador de seguridad\" puede aplicarse a cualquier equipo y este otorgará a los miembros del equipo los siguientes accesos:\n\n- Acceso de lectura en todos los repositorios de la organización.\n- Acceso de escritura en todas las alertas de seguridad de la organización.\n- Acceso a la pestaña de seguridad a nivel de organización\n- Acceso de escritura en los ajustes de seguridad a nivel de organización.\n- Acceso de escritura en los ajustes de seguridad a nivel de repositorio.\n\nPara obtener más información, consulta la sección \"[Gestionar los administradores de seguridad en tu organización](/organizations/managing-peoples-access-to-your-organization-with-roles/managing-security-managers-in-your-organization)\".\n" - heading: 'Ephemeral self-hosted runners for GitHub Actions & new webhooks for auto-scaling' notes: - - "{% data variables.product.prodname_actions %} now supports ephemeral (single job) self-hosted runners and a new [`workflow_job`](/developers/webhooks-and-events/webhooks/webhook-events-and-payloads#workflow_job) webhook to make autoscaling runners easier.\n\nEphemeral runners are good for self-managed environments where each job is required to run on a clean image. After a job is run, ephemeral runners are automatically unregistered from {% data variables.product.product_location %}, allowing you to perform any post-job management.\n\nYou can combine ephemeral runners with the new `workflow_job` webhook to automatically scale self-hosted runners in response to {% data variables.product.prodname_actions %} job requests.\n\nFor more information, see \"[Autoscaling with self-hosted runners](/actions/hosting-your-own-runners/autoscaling-with-self-hosted-runners)\" and \"[Webhook events and payloads](/developers/webhooks-and-events/webhooks/webhook-events-and-payloads#workflow_job).\"\n" + - "{% data variables.product.prodname_actions %} es ahora compatible con ejecutores auto-hospedados (de job sencillo) efímeros y con un webhook de [`workflow_job`] nuevo (/developers/webhooks-and-events/webhooks/webhook-events-and-payloads#workflow_job) para que el escalamiento automático de los ejecutores sea más fácil.\n\nLos ejecutores efímeros son buenos para los ambientes auto-administradores en donde se requiere que cada job se ejecute en una imagen limpia. Después de que se ejecuta un job, los ejecutores efímeros se dejan de registrar automáticamente desde {% data variables.product.product_location %}, lo cual te permite realizar cualquier administración posterior al job.\n\nPuedes combinar los ejecutores efímeros con el webhook nuevo de `workflow_job` para escalar automáticamente los ejecutores auto-hospedados en respuesta a las solicitudes de job de {% data variables.product.prodname_actions %}.\n\nPara obtener más información, consulta las secciones \"[Escalar automáticamente con ejecutores auto-hospedados]](/actions/hosting-your-own-runners/autoscaling-with-self-hosted-runners)\" y \"[Eventos y cargas útiles de webhooks](/developers/webhooks-and-events/webhooks/webhook-events-and-payloads#workflow_job)\".\n" - heading: 'Dark high contrast theme' notes: - - "A dark high contrast theme, with greater contrast between foreground and background elements, is now available on {% data variables.product.prodname_ghe_server %} 3.3. This release also includes improvements to the color system across all {% data variables.product.company_short %} themes.\n\n![Animated image of switching between dark default theme and dark high contrast on the appearance settings page](https://user-images.githubusercontent.com/334891/123645834-ad096c00-d7f4-11eb-85c9-b2c92b00d70a.gif)\n\nFor more information about changing your theme, see \"[Managing your theme settings](/account-and-profile/setting-up-and-managing-your-github-user-account/managing-user-account-settings/managing-your-theme-settings).\"\n" + - "Ahora tenemos un tema de contraste alto en {% data variables.product.prodname_ghe_server %} 3.3, el cual tiene un contraste mayor entre los elementos de fondo y de frente. Este lanzamiento también incluye mejoras al sistema de color en todos los temas de {% data variables.product.company_short %}.\n\n![Imagen animada de cambiar entre el tema oscuro predeterminado y el de contraste alto en la página de ajustes de apariencia](https://user-images.githubusercontent.com/334891/123645834-ad096c00-d7f4-11eb-85c9-b2c92b00d70a.gif)\n\nPara obtener más información sobre cómo cambiar tu tema, consulta la sección \"[Administrar tus ajustes de tema](/account-and-profile/setting-up-and-managing-your-github-user-account/managing-user-account-settings/managing-your-theme-settings)\".\n" changes: - heading: 'Cambios en la administración' notes: - '{% data variables.product.prodname_ghe_server %} 3.3 includes improvements to the maintenance of repositories, especially for repositories that contain many unreachable objects. Note that the first maintenance cycle after upgrading to {% data variables.product.prodname_ghe_server %} 3.3 may take longer than usual to complete.' - - '{% data variables.product.prodname_ghe_server %} 3.3 includes the public beta of a repository cache for geographically-distributed teams and CI infrastructure. The repository cache keeps a read-only copy of your repositories available in additional geographies, which prevents clients from downloading duplicate Git content from your primary instance. For more information, see "[About repository caching](/admin/enterprise-management/caching-repositories/about-repository-caching)."' - - '{% data variables.product.prodname_ghe_server %} 3.3 includes improvements to the user impersonation process. An impersonation session now requires a justification for the impersonation, actions are recorded in the audit log as being performed as an impersonated user, and the user who is impersonated will receive an email notification that they have been impersonated by an enterprise administrator. For more information, see "[Impersonating a user](/enterprise-server@3.3/admin/user-management/managing-users-in-your-enterprise/impersonating-a-user)."' + - '{% data variables.product.prodname_ghe_server %} 3.3 incluye el beta público de un caché de repositorio para equipos con distribución geográfica e infraestructura de IC. El caché de repositorio mantiene una copia de solo lectura para tus repositorios disponibles en puntos geográficos adicionales, lo cual previene que los clientes descarguen contenido duplicado de Git desde tu instancia primara. Para obtener más información, consulta la sección "[Acerca del caché de repositorios](/admin/enterprise-management/caching-repositories/about-repository-caching)".' + - '{% data variables.product.prodname_ghe_server %} 3.3 incluye mejoras al proceso de suplantación de identidad del usuario. Las sesiones de suplantación de identidad ahora requieren de una justificación para llevarlas a cabo, las acciones se registran en la bitácora de auditoría mientras las realiza el usuario que lleva a cabo la suplantación y el usuario cuya identidad se suplanta recibirá una notificación por correo electrónico de estos hechos, por parte de un administrador empresarial. Para obtener más información, consulta la sección "[Suplantar la identidad de un usuario](/enterprise-server@3.3/admin/user-management/managing-users-in-your-enterprise/impersonating-a-user)".' - 'A new stream processing service has been added to facilitate the growing set of events that are published to the audit log, including events associated with Git and {% data variables.product.prodname_actions %} activity.' - heading: 'Cambios de Token' notes: - - "An expiration date can now be set for new and existing personal access tokens. Setting an expiration date on personal access tokens is highly recommended to prevent older tokens from leaking and compromising security. Token owners will receive an email when it's time to renew a token that's about to expire. Tokens that have expired can be regenerated, giving users a duplicate token with the same properties as the original.\n\nWhen using a personal access token with the {% data variables.product.company_short %} API, a new `GitHub-Authentication-Token-Expiration` header is included in the response, which indicates the token's expiration date. For more information, see \"[Creating a personal access token](/github/authenticating-to-github/keeping-your-account-and-data-secure/creating-a-personal-access-token).\"\n" + - "Ahora se puede agregar una fecha de vencimiento para los tokens de acceso personal nuevos y existentes. Se recomienda ampliamente configurar una fecha de vencimiento en los tokens de acceso personal para prevenir que filtren información y pongan en riesgo la seguridad. Los propietarios de los tokens recibirán un correo electrónico cuando sea momento de renovar aquellos que estén próximos a vencer. Los tokens que hayan vencido pueden regenerarse, lo cual otorga a los usuarios un token duplicado con las mismas propiedades que el original.\n\nCuando se utiliza un token de acceso personal con la API de {% data variables.product.company_short %}, se incluye en la respuesta un encabezado nuevo de `GitHub-Authentication-Token-Expiration`, el cual indica la fecha de vencimiento del mismo. Para obtener más información, consulta la sección \"[Crear un token de acceso personal](/github/authenticating-to-github/keeping-your-account-and-data-secure/creating-a-personal-access-token)\".\n" - heading: 'Notifications changes' notes: - 'Notification emails from discussions now include `(Discussion #xx)` in the subject, so you can recognize and filter emails that reference discussions.' @@ -33,52 +33,52 @@ sections: - 'When viewing a branch that has a corresponding open pull request, {% data variables.product.prodname_ghe_server %} now links directly to the pull request. Previously, there would be a prompt to contribute using branch comparison or to open a new pull request.' - 'You can now click a button to copy the full raw contents of a file to the clipboard. Previously, you would need to open the raw file, select all, and then copy. To copy the contents of a file, navigate to the file and click {% octicon "copy" aria-label="The copy icon" %} in the toolbar. Note that this feature is currently only available in some browsers.' - 'When creating a new release, you can now select or create the tag using a dropdown selector, rather than specifying the tag in a text field. For more information, see "[Managing releases in a repository](/repositories/releasing-projects-on-github/managing-releases-in-a-repository)."' - - 'A warning is now displayed when viewing a file that contains bidirectional Unicode text. Bidirectional Unicode text can be interpreted or compiled differently than it appears in a user interface. For example, hidden bidirectional Unicode characters can be used to swap segments of text in a file. For more information about replacing these characters, see the [{% data variables.product.prodname_dotcom %} changelog](https://github.blog/changelog/2021-10-31-warning-about-bidirectional-unicode-text/).' - - 'You can now use `CITATION.cff` files to let others know how you would like them to cite your work. `CITATION.cff` files are plain text files with human- and machine-readable citation information. {% data variables.product.prodname_ghe_server %} parses this information into common citation formats such as [APA](https://apastyle.apa.org) and [BibTeX](https://en.wikipedia.org/wiki/BibTeX). For more information, see "[About CITATION files](/repositories/managing-your-repositorys-settings-and-features/customizing-your-repository/about-citation-files)."' + - 'Ahora se muestra una advertencia cuando visualizas un archivo que contenga texto bidireccional en Unicode. El texto bidireccional en Unicode puede interpretarse o compilarse de forma diferente a la que aparece en una interfaz de usuario. Por ejemplo, los caracteres bidireccionales en Unicode pueden utilizarse para intercambiar segmentos de texto en un archivo. Para obtener más información sobre cómo reemplazar estos caracteres, consulta la [Bitácora de cambios de {% data variables.product.prodname_dotcom %}](https://github.blog/changelog/2021-10-31-warning-about-bidirectional-unicode-text/).' + - 'Ahora puedes utilizar los archivos de `CITATION.cff` para que otros sepan cómo te gustaría citar tu trabajo. Los archivos de `CITATION.cff` son archivos de texto simple con información de citas legibles tanto para humanos como para máquinas. {% data variables.product.prodname_ghe_server %} interpreta esta información en formatos de cita comunes, tales como [APA](https://apastyle.apa.org) y [BibTeX](https://en.wikipedia.org/wiki/BibTeX). Para obtener más información, consulta la sección "[Acerca de los archivos de CITA](/repositories/managing-your-repositorys-settings-and-features/customizing-your-repository/about-citation-files)".' - heading: 'Cambios en el Lenguaje de Marcado' notes: - - "You can use new keyboard shortcuts for quotes and lists in Markdown files, issues, pull requests, and comments.\n\n* To add quotes, use cmd shift . on Mac, or ctrl shift . on Windows and Linux.\n* To add an ordered list, use cmd shift 7 on Mac, or ctrl shift 7 on Windows and Linux.\n* To add an unordered list, use cmd shift 8 on Mac, or ctrl shift 8 on Windows and Linux.\n\nSee \"[Keyboard shortcuts](/get-started/using-github/keyboard-shortcuts)\" for a full list of available shortcuts.\n" - - 'You can now use footnote syntax in any Markdown field. Footnotes are displayed as superscript links that you can click to jump to the referenced information, which is displayed in a new section at the bottom of the document. For more information about the syntax, see "[Basic writing and formatting syntax](/github/writing-on-github/getting-started-with-writing-and-formatting-on-github/basic-writing-and-formatting-syntax#footnotes)."' + - "Puedes utilizar atajos de teclado nuevos para las citas y listas en los archivos de lenguaje de marcado, propuestas, solicitudes de cambio y comentarios.\n\n*Para agregar citas, utiliza cmd shift . en Mac o ctrl shift . en Windows y Linux.\n*Para agregar una lista ordenada, utiliza cmd shift 7 en Mac o ctrl shift 7 en Windows y Linux.\n*Para agregar una lista desordenada, utiliza cmd shift 8 en Mac o ctrl shift 8 en Windows y Linux.\n\nConsulta los \"[Atajos de teclado](/get-started/using-github/keyboard-shortcuts)\" para ver una lista de los atajos disponibles.\n" + - 'Ahora puedes utilizar la sintaxis de notas al pie en cualquier campo de lenguaje de marcado. Las notas al pie se muestran como enlaces en superíndice, en los cuales puedes hacer clic para saltar a la información referenciada, la cual se muestra en una sección nueva en la parte inferior del documento. Para obtener más información sobre la sintaxis, consulta la sección "[Escritura y sintaxis de formato básicas](/github/writing-on-github/getting-started-with-writing-and-formatting-on-github/basic-writing-and-formatting-syntax#footnotes)".' - 'When viewing Markdown files, you can now click {% octicon "code" aria-label="The code icon" %} in the toolbar to view the source of a Markdown file. Previously, you needed to use the blame view to link to specific line numbers in the source of a Markdown file.' - 'You can now add images and videos to Markdown files in gists by pasting them into the Markdown body or selecting them from the dialog at the bottom of the Markdown file. For information about supported file types, see "[Attaching files](https://docs.github.com/en/github/writing-on-github/working-with-advanced-formatting/attaching-files)."' - '{% data variables.product.prodname_ghe_server %} now automatically generates a table of contents for Wikis, based on headings.' - 'When dragging and dropping files into a Markdown editor, such as images and videos, {% data variables.product.prodname_ghe_server %} now uses the mouse pointer location instead of the cursor location when placing the file.' - heading: 'Cambios en propuestas y sollicitudes de cambio' notes: - - 'You can now search issues by label using a logical OR operator. To filter issues using logical OR, use the comma syntax. For example, `label:"good first issue","bug"` will list all issues with a label of `good first issue` or `bug`. For more information, see "[Filtering and searching issues and pull requests](/issues/tracking-your-work-with-issues/filtering-and-searching-issues-and-pull-requests#about-search-terms)."' - - "Improvements have been made to help teams manage code review assignments. You can now:\n\n- Limit assignment to only direct members of the team.\n- Continue with automatic assignment even if one or more members of the team are already requested.\n- Keep a team assigned to review even if one or more members is newly assigned.\n\nThe timeline and reviewers sidebar on the pull request page now indicate if a review request was automatically assigned to one or more team members.\n\nFor more information, see the [{% data variables.product.prodname_dotcom %} changelog](https://github.blog/changelog/2021-09-29-new-code-review-assignment-settings-and-team-filtering-improvements/).\n" + - 'Ahora puedes buscar propuestas por etiqueta utilizando un operador lógico "OR". Para filtrar las propuestas utilizando un "OR" lógico, utiliza la sintaxis de coma. Por ejemplo, `label:"good first issue","bug"` listará todas las propuestas con una etiqueta de `good first issue` o de `bug`. "[Filtrar y buscar propuestas y solicitudes de cambio](/issues/tracking-your-work-with-issues/filtering-and-searching-issues-and-pull-requests#about-search-terms)".' + - "Se han realizado mejoras para ayudar a que los equipos administren las tareas de revisión de código. Ahora puedes:\n\n- Liminar las tareas únicamente para miembros directos del equipo.\n- Seguir con las tareas automáticas, incluso si uno o más miembros del equipo ya se solicitaron.\n- Mantener un equipo asignado a la revisión, incluso si uno o más miembros se asignaron recientemente.\n\nLas barras laterales de línea de tiempo y de revisores en la página de la solicitud de cambios ahora indican si una solicitud de revisión se asignó automáticamente a uno o más miembros del equipo.\n\nPara obtener más información, consulta la sección [Bitácora de cambios de {% data variables.product.prodname_dotcom %}](https://github.blog/changelog/2021-09-29-new-code-review-assignment-settings-and-team-filtering-improvements/).\n" - 'You can now filter pull request searches to only include pull requests you are directly requested to review.' - 'Filtered files in pull requests are now completely hidden from view, and are no longer shown as collapsed in the "Files Changed" tab. The "File Filter" menu has also been simplified. For more information, see "[Filtering files in a pull request](/github/collaborating-with-pull-requests/reviewing-changes-in-pull-requests/filtering-files-in-a-pull-request)."' - heading: 'Cambioas a las GitHub Actions' notes: - 'You can now create "composite actions" which combine multiple workflow steps into one action, and includes the ability to reference other actions. This makes it easier to reduce duplication in workflows. Previously, an action could only use scripts in its YAML definition. For more information, see "[Creating a composite action](/actions/creating-actions/creating-a-composite-action)."' - - 'Managing self-hosted runners at the enterprise level no longer requires using personal access tokens with the `admin:enterprise` scope. You can instead use the new `manage_runners:enterprise` scope to restrict the permissions on your tokens. Tokens with this scope can authenticate to [many REST API endpoints](/rest/reference/enterprise-admin#list-self-hosted-runner-groups-for-an-enterprise) to manage your enterprise''s self-hosted runners.' - - "The audit log now includes additional events for {% data variables.product.prodname_actions %}. Audit log entries are now recorded for the following events:\n\n* A self-hosted runner is registered or removed.\n* A self-hosted runner is added to a runner group, or removed from a runner group.\n* A runner group is created or removed.\n* A workflow run is created or completed.\n* A workflow job is prepared. Importantly, this log includes the list of secrets that were provided to the runner.\n\nFor more information, see \"[Security hardening for {% data variables.product.prodname_actions %}](/actions/security-guides/security-hardening-for-github-actions#auditing-github-actions-events).\"\n" + - 'El administrar los ejecutores auto-hospedados a nivel empresarial ya no requiere del uso de tokens de acceso personal con el alcance de `admin:enterprise`. En vez de esto, puedes utilizar el alcance `manage_runners:enterprise` para restringir los permisos en tus tokens. Los tokens con este alcance pueden autenticarse con [muchas de las terminales de la API de REST](/rest/reference/enterprise-admin#list-self-hosted-runner-groups-for-an-enterprise) para administrar tus ejecutores auto-hospedados.' + - "La bitácora de auditoría ahora incluye eventos adicionales para {% data variables.product.prodname_actions %}. Ahora se registran entradas en la bitácora de auditoría para cuando:\n\n* Se registra o elimina un ejecutor auto-hospedado.\n* Se agrega un ejecutor auto-hospedad a un grupo de ejecutores o se elimina de uno de ellos.\n* Se crea o elimina un grupo de ejecutores.\n* Se crea o completa una ejecución de flujo de trabajo.\n* Se prepara un job de un flujo de trabajo. Es importante destacar que esta bitácora incluye la lista de secretos que se proporcionaron al ejecutor.\n\nPara obtener más información, consulta la sección \"[Fortalecimiento de seguridad para las {% data variables.product.prodname_actions %}](/actions/security-guides/security-hardening-for-github-actions#auditing-github-actions-events)\".\n" - 'Performance improvements have been made to {% data variables.product.prodname_actions %}, which may result in higher maximum job concurrency.' - heading: 'Cambios a los GitHub packages' notes: - 'When a repository is deleted, any associated package files are now immediately deleted from your {% data variables.product.prodname_registry %} external storage.' - heading: 'Cambios al Dependabot y a la gráfica de Dependencias' notes: - - 'Dependency review is out of beta and is now generally available for {% data variables.product.prodname_GH_advanced_security %} customers. Dependency review provides an easy-to-understand view of dependency changes and their security impact in the "Files changed" tab of pull requests. It informs you of which dependencies were added, removed, or updated, along with vulnerability information. For more information, see "[Reviewing dependency changes in a pull request](/github/collaborating-with-pull-requests/reviewing-changes-in-pull-requests/reviewing-dependency-changes-in-a-pull-request)."' - - '{% data variables.product.prodname_dependabot %} is now available as a private beta, offering both version updates and security updates for several popular ecosystems. {% data variables.product.prodname_dependabot %} on {% data variables.product.prodname_ghe_server %} requires {% data variables.product.prodname_actions %} and a pool of self-hosted runners configured for {% data variables.product.prodname_dependabot %} use. {% data variables.product.prodname_dependabot %} on {% data variables.product.prodname_ghe_server %} also requires {% data variables.product.prodname_github_connect %} to be enabled. To learn more and sign up for the beta, contact the GitHub Sales team.' + - 'La revisión de dependencias ya salió de su beta y ahora está disponible en general para los clientes de la {% data variables.product.prodname_GH_advanced_security %}. La revisión de dependencias es una vista fácil de entender de los cambios de dependencias y de su impacto de seguridad, la cual se encuentra en la pestaña de "Archivos que cambiaron" de las solicitudes de cambios. Esta te informa de las dependencias que se agregaron, eliminaron o actualizaron en conjunto con la información de las vulnerabilidades. Para obtener más información, consulta la sección "[Revisar los cambios a las dependencias de una solicitud de cambios](/github/collaborating-with-pull-requests/reviewing-changes-in-pull-requests/reviewing-dependency-changes-in-a-pull-request)".' + - 'El {% data variables.product.prodname_dependabot %} ahora se encuentra disponible en un beta privado, lo cual ofrece tanto actualizaciones de versión como de seguridad para varios ecosistemas populares. El {% data variables.product.prodname_dependabot %} en {% data variables.product.prodname_ghe_server %} requiere {% data variables.product.prodname_actions %} y un grupo de ejecutores auto-hospedados para que los utilice el {% data variables.product.prodname_dependabot %}. El {% data variables.product.prodname_dependabot %} en {% data variables.product.prodname_ghe_server %} también requiere que se habilite {% data variables.product.prodname_github_connect %}. Para aprender más y registrarse para el beta, contacta al equipo de Ventas de GitHub.' - heading: 'Cambios al escaneo de código y de secretos' notes: - - 'The depth of {% data variables.product.prodname_codeql %}''s analysis has been improved by adding support for more [libraries and frameworks](https://codeql.github.com/docs/codeql-overview/supported-languages-and-frameworks/) and increasing the coverage of our existing library and framework models. [JavaScript](https://github.com/github/codeql/tree/main/javascript) analysis now supports most common templating languages, and [Java](https://github.com/github/codeql/tree/main/java) now covers more than three times the endpoints of previous {% data variables.product.prodname_codeql %} versions. As a result, {% data variables.product.prodname_codeql %} can now detect even more potential sources of untrusted user data, steps through which that data flows, and potentially dangerous sinks where the data could end up. This results in an overall improvement of the quality of {% data variables.product.prodname_code_scanning %} alerts.' - - '{% data variables.product.prodname_codeql %} now supports scanning standard language features in Java 16, such as records and pattern matching. {% data variables.product.prodname_codeql %} is able to analyze code written in Java version 7 through 16. For more information about supported languages and frameworks, see the [{% data variables.product.prodname_codeql %} documentation](https://codeql.github.com/docs/codeql-overview/supported-languages-and-frameworks/#id5).' - - "Improvements have been made to the {% data variables.product.prodname_code_scanning %} `on:push` trigger when code is pushed to a pull request. If an `on:push` scan returns results that are associated with a pull request, {% data variables.product.prodname_code_scanning %} will now show these alerts on the pull request.\n\nSome other CI/CD systems can be exclusively configured to trigger a pipeline when code is pushed to a branch, or even exclusively for every commit. Whenever such an analysis pipeline is triggered and results are uploaded to the SARIF API, {% data variables.product.prodname_code_scanning %} will also try to match the analysis results to an open pull request. If an open pull request is found, the results will be published as described above. For more information, see the [{% data variables.product.prodname_dotcom %} changelog](https://github.blog/changelog/2021-09-27-showing-code-scanning-alerts-on-pull-requests/).\n" - - 'You can now use the new pull request filter on the {% data variables.product.prodname_code_scanning %} alerts page to find all the {% data variables.product.prodname_code_scanning %} alerts associated with a pull request. A new "View all branch alerts" link on the pull request "Checks" tab allows you to directly view {% data variables.product.prodname_code_scanning %} alerts with the specific pull request filter already applied. For more information, see the [{% data variables.product.prodname_dotcom %} changelog](https://github.blog/changelog/2021-08-23-pull-request-filter-for-code-scanning-alerts/).' - - 'User defined patterns for {% data variables.product.prodname_secret_scanning %} is out of beta and is now generally available for {% data variables.product.prodname_GH_advanced_security %} customers. Also new in this release is the ability to edit custom patterns defined at the repository, organization, and enterprise levels. After editing and saving a pattern, {% data variables.product.prodname_secret_scanning %} searches for matches both in a repository''s entire Git history and in any new commits. Editing a pattern will close alerts previously associated with the pattern if they no longer match the updated version. Other improvements, such as dry-runs, are planned in future releases. For more information, see "[Defining custom patterns for secret scanning](/code-security/secret-scanning/defining-custom-patterns-for-secret-scanning)."' + - 'La profundidad del análisis de {% data variables.product.prodname_codeql %} se mejoró agregando compatibilidad para más [librerías y marcos de trabajo](https://codeql.github.com/docs/codeql-overview/supported-languages-and-frameworks/) e incrementando la cobertura de nuestros modelos de marcos de trabajo y librerías. El análisis de [JavaScript](https://github.com/github/codeql/tree/main/javascript) ahora es compatible con los lenguajes más comunes para generar plantillas y [Java](https://github.com/github/codeql/tree/main/java) ahora cubre más del triple de las terminales de las versiones anteriores de {% data variables.product.prodname_codeql %}. Como resultado, {% data variables.product.prodname_codeql %} ahora puede detectar aún más fuentes potenciales de datos de usuario no confiables, pasos mediante los cuales fluyen dichos datos y consumidores de datos potencialmente peligrosos en donde podrían estancarse los mismos. Esto proporciona una mejora general a la calidad de las alertas del {% data variables.product.prodname_code_scanning %}.' + - '{% data variables.product.prodname_codeql %} ahora es compatible con el escaneo de características de lenguaje estándar en Java 16, tales como la coincidencia con patrones y registros. {% data variables.product.prodname_codeql %} puede analizar el código escrito de la versión 7 a la 16 de Java. para obtener más información sobre qué lenguajes y marcos de trabajo son compatibles, consulta la [Documentación de {% data variables.product.prodname_codeql %}](https://codeql.github.com/docs/codeql-overview/supported-languages-and-frameworks/#id5).' + - "Se hicieron mejoras al activador `on:push` del {% data variables.product.prodname_code_scanning %} cuando se sube código a una solicitud de cambios. Si un escaneo de tipo `on:push` devuelve resultados asociados con una solicitud de cambios, el {% data variables.product.prodname_code_scanning %} ahora mostrará estas alertas en dicha solicitud.\n\nAlgunos otros sistemas de IC/DC pueden configurarse exclusivamente para activar una red de comunicación interna cuando se suba código a una rama o incluso exclusivamente para cada confirmación. Cada que dicho análisis de red de comunicación interna se active y los resultados se carguen a la API de SARIF, el {% data variables.product.prodname_code_scanning %} también intentará empatar los resultados de este análisis con una solicitud de cambios abierta. Si se encuentra dicha solicitud abierta, los resultados se publicarán conforme a lo descrito anteriormente, consulta el [Registro de cambios de {% data variables.product.prodname_dotcom %}](https://github.blog/changelog/2021-09-27-showing-code-scanning-alerts-on-pull-requests/).\n" + - 'Ahora puedes utilizar el filtro de solicitud de cambios nuevo en la página de alertas de {% data variables.product.prodname_code_scanning %} para encontrar todas las alertas del {% data variables.product.prodname_code_scanning %} que tengan una solicitud de cambios. El enlace nuevo de "Ver todas las alertas de rama" en la pestaña de "Verificaciones" de una solicitud de cambios te permite ver directamente las alertas del {% data variables.product.prodname_code_scanning %} con el filtro de solicitudes de cambio específico que ya se haya aplicado. Para obtener más información, consulta la [Bitácora de cambios de {% data variables.product.prodname_dotcom %}](https://github.blog/changelog/2021-08-23-pull-request-filter-for-code-scanning-alerts/).' + - 'Los patrones definidos por usuario para el {% data variables.product.prodname_secret_scanning %} se encuentran en fase beta y ahora se encuentran disponibles en general para los clientes de {% data variables.product.prodname_GH_advanced_security %}. También, este lanzamiento cuenta con la capacidad de editar patrones personalizados que se definen en los niveles de repositorio, organización y empresa. Después de editar y guardar un patrón, el {% data variables.product.prodname_secret_scanning %} busca coincidencias tanto en el historial completo de Git del repositorio como en cualquier confirmación nueva. El editar un patrón cerrará las alertas que se asocian previamente con este en caso de que ya no coincidan con la versión actualizada. Tenemos otras mejoras planeadas para lanzamientos futuros, tales como las simulaciones. Para obtener más información, consulta la sección "[Definir patrones personalizados para el escaneo de secretos](/code-security/secret-scanning/defining-custom-patterns-for-secret-scanning)".' - heading: 'API and webhook changes' notes: - - 'Most REST API previews have graduated and are now an official part of the API. Preview headers are no longer required for most REST API endpoints, but will still function as expected if you specify a graduated preview in the `Accept` header of a request. For previews that still require specifying the preview in the `Accept` header of a request, see "[API previews](/rest/overview/api-previews)."' + - 'La mayoría de las vistas previas de la API de REST se graduaron y ahora son parte oficial de la API. Los encabezados de vista previa ya no se requieren para la mayoría de las terminales de la API de REST, pero aún funcionarán como se espera si especificas una vista previa graduada en el encabezado de `Accept` de una solicitud. Para encontrar las vistas previas que aún requieran la especificación de la vista previa en el encabezado de `Accept` de una solicitud, consulta las "[Vistas previas de la API](/rest/overview/api-previews)".' - 'You can now use the REST API to configure custom autolinks to external resources. The REST API now provides beta `GET`/`POST`/`DELETE` endpoints which you can use to view, add, or delete custom autolinks associated with a repository. For more information, see "[Autolinks](/rest/reference/repos#autolinks)."' - - 'You can now use the REST API to sync a forked repository with its upstream repository. For more information, see "[Repositories](/rest/reference/repos#sync-a-fork-branch-with-the-upstream-repository)" in the REST API documentation.' + - 'You can now use the REST API to sync a forked repository with its upstream repository. For more information, see "[Branches](/rest/reference/branches#sync-a-fork-branch-with-the-upstream-repository)" in the REST API documentation.' - 'Enterprise administrators on GitHub Enterprise Server can now use the REST API to enable or disable Git LFS for a repository. For more information, see "[Repositories](/rest/reference/repos#git-lfs)."' - - 'You can now use the REST API to query the audit log for an enterprise. While audit log forwarding provides the ability to retain and analyze data with your own toolkit and determine patterns over time, the new endpoint can help you perform limited analysis on recent events. For more information, see "[{% data variables.product.prodname_enterprise %} administration](/rest/reference/enterprise-admin#get-the-audit-log-for-an-enterprise)" in the REST API documentation.' + - 'Ahora puedes utilizar la API de REST para consultar la bitácora de auditoría de una empresa. Mientras que el reenviar una bitácora de auditoría proporciona la capacidad de retener y analizar datos con tu propio kit de herramientas y determinar los patrones con el tiempo, la terminal nueva puede ayudarte a realizar un análisis limitado en los eventos recientes. Para obtener más información, consulta la sección "[Administración de {% data variables.product.prodname_enterprise %}](/rest/reference/enterprise-admin#get-the-audit-log-for-an-enterprise)" en la documentación de la API de REST.' - 'GitHub App user-to-server API requests can now read public resources using the REST API. This includes, for example, the ability to list a public repository''s issues and pull requests, and to access a public repository''s comments and content.' - - 'When creating or updating a repository, you can now configure whether forking is allowed using the REST and GraphQL APIs. Previously, APIs for creating and updating repositories didn''t include the fields `allow_forking` (REST) or `forkingAllowed` (GraphQL). For more information, see "[Repositories](/rest/reference/repos)" in the REST API documentation and "[Repositories](/graphql/reference/objects#repository)" in the GraphQL API documentation.' - - "A new GraphQL mutation [`createCommitOnBranch`](/graphql/reference/mutations#createcommitonbranch) makes it easier to add, update, and delete files in a branch of a repository. Compared to the REST API, you do not need to manually create blobs and trees before creating the commit. This allows you to add, update, or delete multiple files in a single API call.\n\nCommits authored using the new API are automatically GPG signed and are [marked as verified](/github/authenticating-to-github/managing-commit-signature-verification/about-commit-signature-verification) in the {% data variables.product.prodname_ghe_server %} UI. GitHub Apps can use the mutation to author commits directly or [on behalf of users](/developers/apps/building-github-apps/identifying-and-authorizing-users-for-github-apps#user-to-server-requests).\n" + - 'Al crear o actualizar un repositorio, ahora puedes configurar si se permite bifurcarlo utilizando las API de REST y de GraphQL. Anteriormente, las API para crear y actualizar repositorios no incluían los archivos `allow_forking` (REST) o `forkingAllowed` (GraphQL). Para obtener más información, consulta la sección "[Repositories](/rest/reference/repos)" en la documentación de la API de REST y "[Repositories](/graphql/reference/objects#repository)" en la documentación de la API de GraphQL.' + - "Una mutación nueva de GraphQL [`createCommitOnBranch`](/graphql/reference/mutations#createcommitonbranch) facilita el agregar, actualizar y borrar archivos en una rama de un repositorio. Comparado con la API de REST, no necesitas crear blobs y árboles manualmente antes de crear la confirmación. Esto te permite agregar, actualizar o borrar archivos múltiples en una sola llamada a la API.\n\nLas confirmaciones que se crean utilizando la API nueva se firman automáticamente con GPG y se [marcan como verificadas](/github/authenticating-to-github/managing-commit-signature-verification/about-commit-signature-verification) en la IU de {% data variables.product.prodname_ghe_server %}. Las GitHub Apps pueden utilizar la mutación para crear confirmaciones, ya sea directamente o [en nombre de los usuarios](/developers/apps/building-github-apps/identifying-and-authorizing-users-for-github-apps#user-to-server-requests).\n" - 'When a new tag is created, the [push](/developers/webhooks-and-events/webhooks/webhook-events-and-payloads#push) webhook payload now always includes a `head_commit` object that contains the data of the commit that the new tag points to. As a result, the `head_commit` object will always contain the commit data of the payload''s `after` commit.' - heading: 'Performance Changes' notes: @@ -103,12 +103,12 @@ sections: - 'Starting with {% data variables.product.prodname_ghe_server %} 3.3, {% data variables.product.prodname_ghe_server %} on XenServer is deprecated and is no longer supported. Please contact [GitHub Support](https://support.github.com) with questions or concerns.' - heading: 'Deprecation of OAuth Application API endpoints and API authentication using query parameters' notes: - - "To prevent accidental logging or exposure of `access_tokens`, we discourage the use of OAuth Application API endpoints and the use of API authentication using query parameters. View the following posts to see the proposed replacements:\n\n* [Replacement OAuth Application API endpoints](https://developer.github.com/changes/2020-02-14-deprecating-oauth-app-endpoint/#changes-to-make)\n* [Replacement authentication using headers instead of query param](https://developer.github.com/changes/2020-02-10-deprecating-auth-through-query-param/#changes-to-make)\n\nThese endpoints and authentication route are planned to be removed from {% data variables.product.prodname_ghe_server %} in {% data variables.product.prodname_ghe_server %} 3.4.\n" + - "Para prevenir los inicios de sesión accidentales o la exposición de `access_tokens`, desalentamos el uso de las terminales de la API de Aplicaciones OAuth y el uso de la autenticación de la API utilizando parámetros de consulta. Puedes ver las siguientes publicaciones para encontrar los reemplazos propuestos:\n\n*[Reemplazo de las terminales de la API de Aplicaciones OAuth](https://developer.github.com/changes/2020-02-14-deprecating-oauth-app-endpoint/#changes-to-make)\n*[Reemplazo de la autenticación utilizando encabezados en vez de parámetros de consulta](https://developer.github.com/changes/2020-02-10-deprecating-auth-through-query-param/#changes-to-make)\n\nPlaneamos eliminar estas temrinales y ruta de autenticación desde {% data variables.product.prodname_ghe_server %} en {% data variables.product.prodname_ghe_server %} 3.4.\n" - heading: 'Deprecation of the CodeQL runner' notes: - - 'The {% data variables.product.prodname_codeql %} runner is being deprecated. {% data variables.product.prodname_ghe_server %} 3.3 will be the final release series that supports the {% data variables.product.prodname_codeql %} runner. Starting with {% data variables.product.prodname_ghe_server %} 3.4, the {% data variables.product.prodname_codeql %} runner will be removed and no longer supported. The {% data variables.product.prodname_codeql %} CLI version 2.6.2 or greater is a feature-complete replacement for the {% data variables.product.prodname_codeql %} runner. For more information, see the [{% data variables.product.prodname_dotcom %} changelog](https://github.blog/changelog/2021-09-21-codeql-runner-deprecation/).' + - 'El ejecutor de {% data variables.product.prodname_codeql %} se obsoletizará. {% data variables.product.prodname_ghe_server %} 3.3 será el último lanzamiento de la serie que es compatible con el ejecutor de {% data variables.product.prodname_codeql %}. Desde {% data variables.product.prodname_ghe_server %} 3.4, se eliminará el ejecutor de {% data variables.product.prodname_codeql %} y este ya no será compatible. La versión 2.6.2 del CLI de {% data variables.product.prodname_codeql %} o superior es un reemplazo con todas las características para el ejecutor del {% data variables.product.prodname_codeql %}. Para obtener más informa]ción, consulta la sección [Bitácora de cambios de {% data variables.product.prodname_dotcom %}(https://github.blog/changelog/2021-09-21-codeql-runner-deprecation/).' - heading: 'Deprecation of custom bit-cache extensions' notes: - - "Starting in {% data variables.product.prodname_ghe_server %} 3.1, support for {% data variables.product.company_short %}'s proprietary bit-cache extensions began to be phased out. These extensions are now deprecated in {% data variables.product.prodname_ghe_server %} 3.3.\n\nAny repositories that were already present and active on {% data variables.product.product_location %} running version 3.1 or 3.2 will have been automatically updated.\n\nRepositories which were not present and active before upgrading to {% data variables.product.prodname_ghe_server %} 3.3 may not perform optimally until a repository maintenance task is run and has successfully completed.\n\nTo start a repository maintenance task manually, browse to `https:///stafftools/repositories///network` for each affected repository and click the **Schedule** button.\n" + - "Desde {% data variables.product.prodname_ghe_server %} 3.1, el soporte de las extensiones bit-cache propietarias de {% data variables.product.company_short %} se comenzó a eliminar paulatinamente. Estas extensiones ahora son obsoletas en {% data variables.product.prodname_ghe_server %} 3.3.\n\nCualquier repositorio que ya haya estado presente y activo en {% data variables.product.product_location %} ejecutando la versión 3.1 o 3.2 ya se actualizó atuomáticamente.\n\nLos repositorios que no estuvieron presentes y activos antes de mejorar a {% data variables.product.prodname_ghe_server %} 3.3 podrían no funcionar de forma óptima sino hasta que se ejecute una tarea de mantenimiento de repositorio y esta se complete exitosamente.\n\nPara iniciar una tarea de mantenimiento de repositorio manualmente, dirígete a `https:///stafftools/repositories///network` en cada repositorio afectado y haz clic en el botón **Schedule**.\n" backups: - '{% data variables.product.prodname_ghe_server %} 3.3 requires at least [GitHub Enterprise Backup Utilities 3.3.0](https://github.com/github/backup-utils) for [Backups and Disaster Recovery](/admin/configuration/configuring-your-enterprise/configuring-backups-on-your-appliance).' diff --git a/translations/es-ES/data/release-notes/enterprise-server/3-3/0.yml b/translations/es-ES/data/release-notes/enterprise-server/3-3/0.yml index 9ff8cee7e2..7cd275f5ef 100644 --- a/translations/es-ES/data/release-notes/enterprise-server/3-3/0.yml +++ b/translations/es-ES/data/release-notes/enterprise-server/3-3/0.yml @@ -1,26 +1,27 @@ date: '2021-12-07' -intro: 'For upgrade instructions, see "[Upgrading {% data variables.product.prodname_ghe_server %}](/admin/enterprise-management/updating-the-virtual-machine-and-physical-resources/upgrading-github-enterprise-server)."

**Note:** We are aware of an issue where {% data variables.product.prodname_actions %} may fail to start automatically following the upgrade to {% data variables.product.prodname_ghe_server %} 3.3. To resolve, connect to the appliance via SSH and run the `ghe-actions-start` command.' +intro: 'Para encontrar las instrucciones de mejora, consulta la sección "[Mejorar a {% data variables.product.prodname_ghe_server %}](/admin/enterprise-management/updating-the-virtual-machine-and-physical-resources/upgrading-github-enterprise-server)".

**Nota:** Estamos conscientes de un problema en donde {% data variables.product.prodname_actions %} podría fallar en iniciar automáticamente después de la mejora a {% data variables.product.prodname_ghe_server %} 3.3. Para resolver esto, conéctate al aplicativo por SSH y ejecuta el comando `ghe-actions-start`.' sections: features: - heading: 'Security Manager role' notes: - - "Organization owners can now grant teams the access to manage security alerts and settings on their repositories. The \"security manager\" role can be applied to any team and grants the team's members the following access:\n\n- Read access on all repositories in the organization.\n- Write access on all security alerts in the organization.\n- Access to the organization-level security tab.\n- Write access on security settings at the organization level.\n- Write access on security settings at the repository level.\n\nFor more information, see \"[Managing security managers in your organization](/organizations/managing-peoples-access-to-your-organization-with-roles/managing-security-managers-in-your-organization).\"\n" + - "Los propietarios de organizaciones ahora pueden otorgar a los equipos el acceso para administrar las alertas de seguridad y los ajustes en sus repositorios. El rol de \"Administrador de seguridad\" puede aplicarse a cualquier equipo y este otorgará a los miembros del equipo los siguientes accesos:\n\n- Acceso de lectura en todos los repositorios de la organización.\n- Acceso de escritura en todas las alertas de seguridad de la organización.\n- Acceso a la pestaña de seguridad a nivel de organización\n- Acceso de escritura en los ajustes de seguridad a nivel de organización.\n- Acceso de escritura en los ajustes de seguridad a nivel de repositorio.\n\nPara obtener más información, consulta la sección \"[Gestionar los administradores de seguridad en tu organización](/organizations/managing-peoples-access-to-your-organization-with-roles/managing-security-managers-in-your-organization)\".\n" - heading: 'Ephemeral self-hosted runners for GitHub Actions & new webhooks for auto-scaling' notes: - - "{% data variables.product.prodname_actions %} now supports ephemeral (single job) self-hosted runners and a new [`workflow_job`](/developers/webhooks-and-events/webhooks/webhook-events-and-payloads#workflow_job) webhook to make autoscaling runners easier.\n\nEphemeral runners are good for self-managed environments where each job is required to run on a clean image. After a job is run, ephemeral runners are automatically unregistered from {% data variables.product.product_location %}, allowing you to perform any post-job management.\n\nYou can combine ephemeral runners with the new `workflow_job` webhook to automatically scale self-hosted runners in response to {% data variables.product.prodname_actions %} job requests.\n\nFor more information, see \"[Autoscaling with self-hosted runners](/actions/hosting-your-own-runners/autoscaling-with-self-hosted-runners)\" and \"[Webhook events and payloads](/developers/webhooks-and-events/webhooks/webhook-events-and-payloads#workflow_job).\"\n" + - "{% data variables.product.prodname_actions %} es ahora compatible con ejecutores auto-hospedados (de job sencillo) efímeros y con un webhook de [`workflow_job`] nuevo (/developers/webhooks-and-events/webhooks/webhook-events-and-payloads#workflow_job) para que el escalamiento automático de los ejecutores sea más fácil.\n\nLos ejecutores efímeros son buenos para los ambientes auto-administradores en donde se requiere que cada job se ejecute en una imagen limpia. Después de que se ejecuta un job, los ejecutores efímeros se dejan de registrar automáticamente desde {% data variables.product.product_location %}, lo cual te permite realizar cualquier administración posterior al job.\n\nPuedes combinar los ejecutores efímeros con el webhook nuevo de `workflow_job` para escalar automáticamente los ejecutores auto-hospedados en respuesta a las solicitudes de job de {% data variables.product.prodname_actions %}.\n\nPara obtener más información, consulta las secciones \"[Escalar automáticamente con ejecutores auto-hospedados]](/actions/hosting-your-own-runners/autoscaling-with-self-hosted-runners)\" y \"[Eventos y cargas útiles de webhooks](/developers/webhooks-and-events/webhooks/webhook-events-and-payloads#workflow_job)\".\n" - heading: 'Dark high contrast theme' notes: - - "A dark high contrast theme, with greater contrast between foreground and background elements, is now available on {% data variables.product.prodname_ghe_server %} 3.3. This release also includes improvements to the color system across all {% data variables.product.company_short %} themes.\n\n![Animated image of switching between dark default theme and dark high contrast on the appearance settings page](https://user-images.githubusercontent.com/334891/123645834-ad096c00-d7f4-11eb-85c9-b2c92b00d70a.gif)\n\nFor more information about changing your theme, see \"[Managing your theme settings](/account-and-profile/setting-up-and-managing-your-github-user-account/managing-user-account-settings/managing-your-theme-settings).\"\n" + - "Ahora tenemos un tema de contraste alto en {% data variables.product.prodname_ghe_server %} 3.3, el cual tiene un contraste mayor entre los elementos de fondo y de frente. Este lanzamiento también incluye mejoras al sistema de color en todos los temas de {% data variables.product.company_short %}.\n\n![Imagen animada de cambiar entre el tema oscuro predeterminado y el de contraste alto en la página de ajustes de apariencia](https://user-images.githubusercontent.com/334891/123645834-ad096c00-d7f4-11eb-85c9-b2c92b00d70a.gif)\n\nPara obtener más información sobre cómo cambiar tu tema, consulta la sección \"[Administrar tus ajustes de tema](/account-and-profile/setting-up-and-managing-your-github-user-account/managing-user-account-settings/managing-your-theme-settings)\".\n" changes: - heading: 'Cambios en la administración' notes: - '{% data variables.product.prodname_ghe_server %} 3.3 includes improvements to the maintenance of repositories, especially for repositories that contain many unreachable objects. Note that the first maintenance cycle after upgrading to {% data variables.product.prodname_ghe_server %} 3.3 may take longer than usual to complete.' - - '{% data variables.product.prodname_ghe_server %} 3.3 includes the public beta of a repository cache for geographically-distributed teams and CI infrastructure. The repository cache keeps a read-only copy of your repositories available in additional geographies, which prevents clients from downloading duplicate Git content from your primary instance. For more information, see "[About repository caching](/admin/enterprise-management/caching-repositories/about-repository-caching)."' - - '{% data variables.product.prodname_ghe_server %} 3.3 includes improvements to the user impersonation process. An impersonation session now requires a justification for the impersonation, actions are recorded in the audit log as being performed as an impersonated user, and the user who is impersonated will receive an email notification that they have been impersonated by an enterprise administrator. For more information, see "[Impersonating a user](/enterprise-server@3.3/admin/user-management/managing-users-in-your-enterprise/impersonating-a-user)."' + - '{% data variables.product.prodname_ghe_server %} 3.3 incluye el beta público de un caché de repositorio para equipos con distribución geográfica e infraestructura de IC. El caché de repositorio mantiene una copia de solo lectura para tus repositorios disponibles en puntos geográficos adicionales, lo cual previene que los clientes descarguen contenido duplicado de Git desde tu instancia primara. Para obtener más información, consulta la sección "[Acerca del caché de repositorios](/admin/enterprise-management/caching-repositories/about-repository-caching)".' + - '{% data variables.product.prodname_ghe_server %} 3.3 incluye mejoras al proceso de suplantación de identidad del usuario. Las sesiones de suplantación de identidad ahora requieren de una justificación para llevarlas a cabo, las acciones se registran en la bitácora de auditoría mientras las realiza el usuario que lleva a cabo la suplantación y el usuario cuya identidad se suplanta recibirá una notificación por correo electrónico de estos hechos, por parte de un administrador empresarial. Para obtener más información, consulta la sección "[Suplantar la identidad de un usuario](/enterprise-server@3.3/admin/user-management/managing-users-in-your-enterprise/impersonating-a-user)".' - 'A new stream processing service has been added to facilitate the growing set of events that are published to the audit log, including events associated with Git and {% data variables.product.prodname_actions %} activity.' + - 'The {% data variables.product.prodname_github_connect %} data connection record now includes a list of enabled {% data variables.product.prodname_github_connect %} features. [Updated 2021-12-09]' - heading: 'Cambios de Token' notes: - - "An expiration date can now be set for new and existing personal access tokens. Setting an expiration date on personal access tokens is highly recommended to prevent older tokens from leaking and compromising security. Token owners will receive an email when it's time to renew a token that's about to expire. Tokens that have expired can be regenerated, giving users a duplicate token with the same properties as the original.\n\nWhen using a personal access token with the {% data variables.product.company_short %} API, a new `GitHub-Authentication-Token-Expiration` header is included in the response, which indicates the token's expiration date. For more information, see \"[Creating a personal access token](/github/authenticating-to-github/keeping-your-account-and-data-secure/creating-a-personal-access-token).\"\n" + - "Ahora se puede agregar una fecha de vencimiento para los tokens de acceso personal nuevos y existentes. Se recomienda ampliamente configurar una fecha de vencimiento en los tokens de acceso personal para prevenir que filtren información y pongan en riesgo la seguridad. Los propietarios de los tokens recibirán un correo electrónico cuando sea momento de renovar aquellos que estén próximos a vencer. Los tokens que hayan vencido pueden regenerarse, lo cual otorga a los usuarios un token duplicado con las mismas propiedades que el original.\n\nCuando se utiliza un token de acceso personal con la API de {% data variables.product.company_short %}, se incluye en la respuesta un encabezado nuevo de `GitHub-Authentication-Token-Expiration`, el cual indica la fecha de vencimiento del mismo. Para obtener más información, consulta la sección \"[Crear un token de acceso personal](/github/authenticating-to-github/keeping-your-account-and-data-secure/creating-a-personal-access-token)\".\n" - heading: 'Notifications changes' notes: - 'Notification emails from discussions now include `(Discussion #xx)` in the subject, so you can recognize and filter emails that reference discussions.' @@ -31,53 +32,53 @@ sections: - 'When viewing a branch that has a corresponding open pull request, {% data variables.product.prodname_ghe_server %} now links directly to the pull request. Previously, there would be a prompt to contribute using branch comparison or to open a new pull request.' - 'You can now click a button to copy the full raw contents of a file to the clipboard. Previously, you would need to open the raw file, select all, and then copy. To copy the contents of a file, navigate to the file and click {% octicon "copy" aria-label="The copy icon" %} in the toolbar. Note that this feature is currently only available in some browsers.' - 'When creating a new release, you can now select or create the tag using a dropdown selector, rather than specifying the tag in a text field. For more information, see "[Managing releases in a repository](/repositories/releasing-projects-on-github/managing-releases-in-a-repository)."' - - 'A warning is now displayed when viewing a file that contains bidirectional Unicode text. Bidirectional Unicode text can be interpreted or compiled differently than it appears in a user interface. For example, hidden bidirectional Unicode characters can be used to swap segments of text in a file. For more information about replacing these characters, see the [{% data variables.product.prodname_dotcom %} changelog](https://github.blog/changelog/2021-10-31-warning-about-bidirectional-unicode-text/).' - - 'You can now use `CITATION.cff` files to let others know how you would like them to cite your work. `CITATION.cff` files are plain text files with human- and machine-readable citation information. {% data variables.product.prodname_ghe_server %} parses this information into common citation formats such as [APA](https://apastyle.apa.org) and [BibTeX](https://en.wikipedia.org/wiki/BibTeX). For more information, see "[About CITATION files](/repositories/managing-your-repositorys-settings-and-features/customizing-your-repository/about-citation-files)."' + - 'Ahora se muestra una advertencia cuando visualizas un archivo que contenga texto bidireccional en Unicode. El texto bidireccional en Unicode puede interpretarse o compilarse de forma diferente a la que aparece en una interfaz de usuario. Por ejemplo, los caracteres bidireccionales en Unicode pueden utilizarse para intercambiar segmentos de texto en un archivo. Para obtener más información sobre cómo reemplazar estos caracteres, consulta la [Bitácora de cambios de {% data variables.product.prodname_dotcom %}](https://github.blog/changelog/2021-10-31-warning-about-bidirectional-unicode-text/).' + - 'Ahora puedes utilizar los archivos de `CITATION.cff` para que otros sepan cómo te gustaría citar tu trabajo. Los archivos de `CITATION.cff` son archivos de texto simple con información de citas legibles tanto para humanos como para máquinas. {% data variables.product.prodname_ghe_server %} interpreta esta información en formatos de cita comunes, tales como [APA](https://apastyle.apa.org) y [BibTeX](https://en.wikipedia.org/wiki/BibTeX). Para obtener más información, consulta la sección "[Acerca de los archivos de CITA](/repositories/managing-your-repositorys-settings-and-features/customizing-your-repository/about-citation-files)".' - heading: 'Cambios en el Lenguaje de Marcado' notes: - - "You can use new keyboard shortcuts for quotes and lists in Markdown files, issues, pull requests, and comments.\n\n* To add quotes, use cmd shift . on Mac, or ctrl shift . on Windows and Linux.\n* To add an ordered list, use cmd shift 7 on Mac, or ctrl shift 7 on Windows and Linux.\n* To add an unordered list, use cmd shift 8 on Mac, or ctrl shift 8 on Windows and Linux.\n\nSee \"[Keyboard shortcuts](/get-started/using-github/keyboard-shortcuts)\" for a full list of available shortcuts.\n" - - 'You can now use footnote syntax in any Markdown field. Footnotes are displayed as superscript links that you can click to jump to the referenced information, which is displayed in a new section at the bottom of the document. For more information about the syntax, see "[Basic writing and formatting syntax](/github/writing-on-github/getting-started-with-writing-and-formatting-on-github/basic-writing-and-formatting-syntax#footnotes)."' + - "Puedes utilizar atajos de teclado nuevos para las citas y listas en los archivos de lenguaje de marcado, propuestas, solicitudes de cambio y comentarios.\n\n*Para agregar citas, utiliza cmd shift . en Mac o ctrl shift . en Windows y Linux.\n*Para agregar una lista ordenada, utiliza cmd shift 7 en Mac o ctrl shift 7 en Windows y Linux.\n*Para agregar una lista desordenada, utiliza cmd shift 8 en Mac o ctrl shift 8 en Windows y Linux.\n\nConsulta los \"[Atajos de teclado](/get-started/using-github/keyboard-shortcuts)\" para ver una lista de los atajos disponibles.\n" + - 'Ahora puedes utilizar la sintaxis de notas al pie en cualquier campo de lenguaje de marcado. Las notas al pie se muestran como enlaces en superíndice, en los cuales puedes hacer clic para saltar a la información referenciada, la cual se muestra en una sección nueva en la parte inferior del documento. Para obtener más información sobre la sintaxis, consulta la sección "[Escritura y sintaxis de formato básicas](/github/writing-on-github/getting-started-with-writing-and-formatting-on-github/basic-writing-and-formatting-syntax#footnotes)".' - 'When viewing Markdown files, you can now click {% octicon "code" aria-label="The code icon" %} in the toolbar to view the source of a Markdown file. Previously, you needed to use the blame view to link to specific line numbers in the source of a Markdown file.' - 'You can now add images and videos to Markdown files in gists by pasting them into the Markdown body or selecting them from the dialog at the bottom of the Markdown file. For information about supported file types, see "[Attaching files](https://docs.github.com/en/github/writing-on-github/working-with-advanced-formatting/attaching-files)."' - '{% data variables.product.prodname_ghe_server %} now automatically generates a table of contents for Wikis, based on headings.' - 'When dragging and dropping files into a Markdown editor, such as images and videos, {% data variables.product.prodname_ghe_server %} now uses the mouse pointer location instead of the cursor location when placing the file.' - heading: 'Cambios en propuestas y sollicitudes de cambio' notes: - - 'You can now search issues by label using a logical OR operator. To filter issues using logical OR, use the comma syntax. For example, `label:"good first issue","bug"` will list all issues with a label of `good first issue` or `bug`. For more information, see "[Filtering and searching issues and pull requests](/issues/tracking-your-work-with-issues/filtering-and-searching-issues-and-pull-requests#about-search-terms)."' - - "Improvements have been made to help teams manage code review assignments. You can now:\n\n- Limit assignment to only direct members of the team.\n- Continue with automatic assignment even if one or more members of the team are already requested.\n- Keep a team assigned to review even if one or more members is newly assigned.\n\nThe timeline and reviewers sidebar on the pull request page now indicate if a review request was automatically assigned to one or more team members.\n\nFor more information, see the [{% data variables.product.prodname_dotcom %} changelog](https://github.blog/changelog/2021-09-29-new-code-review-assignment-settings-and-team-filtering-improvements/).\n" + - 'Ahora puedes buscar propuestas por etiqueta utilizando un operador lógico "OR". Para filtrar las propuestas utilizando un "OR" lógico, utiliza la sintaxis de coma. Por ejemplo, `label:"good first issue","bug"` listará todas las propuestas con una etiqueta de `good first issue` o de `bug`. "[Filtrar y buscar propuestas y solicitudes de cambio](/issues/tracking-your-work-with-issues/filtering-and-searching-issues-and-pull-requests#about-search-terms)".' + - "Se han realizado mejoras para ayudar a que los equipos administren las tareas de revisión de código. Ahora puedes:\n\n- Liminar las tareas únicamente para miembros directos del equipo.\n- Seguir con las tareas automáticas, incluso si uno o más miembros del equipo ya se solicitaron.\n- Mantener un equipo asignado a la revisión, incluso si uno o más miembros se asignaron recientemente.\n\nLas barras laterales de línea de tiempo y de revisores en la página de la solicitud de cambios ahora indican si una solicitud de revisión se asignó automáticamente a uno o más miembros del equipo.\n\nPara obtener más información, consulta la sección [Bitácora de cambios de {% data variables.product.prodname_dotcom %}](https://github.blog/changelog/2021-09-29-new-code-review-assignment-settings-and-team-filtering-improvements/).\n" - 'You can now filter pull request searches to only include pull requests you are directly requested to review.' - 'Filtered files in pull requests are now completely hidden from view, and are no longer shown as collapsed in the "Files Changed" tab. The "File Filter" menu has also been simplified. For more information, see "[Filtering files in a pull request](/github/collaborating-with-pull-requests/reviewing-changes-in-pull-requests/filtering-files-in-a-pull-request)."' - heading: 'Cambioas a las GitHub Actions' notes: - 'You can now create "composite actions" which combine multiple workflow steps into one action, and includes the ability to reference other actions. This makes it easier to reduce duplication in workflows. Previously, an action could only use scripts in its YAML definition. For more information, see "[Creating a composite action](/actions/creating-actions/creating-a-composite-action)."' - - 'Managing self-hosted runners at the enterprise level no longer requires using personal access tokens with the `admin:enterprise` scope. You can instead use the new `manage_runners:enterprise` scope to restrict the permissions on your tokens. Tokens with this scope can authenticate to [many REST API endpoints](/rest/reference/enterprise-admin#list-self-hosted-runner-groups-for-an-enterprise) to manage your enterprise''s self-hosted runners.' - - "The audit log now includes additional events for {% data variables.product.prodname_actions %}. Audit log entries are now recorded for the following events:\n\n* A self-hosted runner is registered or removed.\n* A self-hosted runner is added to a runner group, or removed from a runner group.\n* A runner group is created or removed.\n* A workflow run is created or completed.\n* A workflow job is prepared. Importantly, this log includes the list of secrets that were provided to the runner.\n\nFor more information, see \"[Security hardening for {% data variables.product.prodname_actions %}](/actions/security-guides/security-hardening-for-github-actions#auditing-github-actions-events).\"\n" + - 'El administrar los ejecutores auto-hospedados a nivel empresarial ya no requiere del uso de tokens de acceso personal con el alcance de `admin:enterprise`. En vez de esto, puedes utilizar el alcance `manage_runners:enterprise` para restringir los permisos en tus tokens. Los tokens con este alcance pueden autenticarse con [muchas de las terminales de la API de REST](/rest/reference/enterprise-admin#list-self-hosted-runner-groups-for-an-enterprise) para administrar tus ejecutores auto-hospedados.' + - "La bitácora de auditoría ahora incluye eventos adicionales para {% data variables.product.prodname_actions %}. Ahora se registran entradas en la bitácora de auditoría para cuando:\n\n* Se registra o elimina un ejecutor auto-hospedado.\n* Se agrega un ejecutor auto-hospedad a un grupo de ejecutores o se elimina de uno de ellos.\n* Se crea o elimina un grupo de ejecutores.\n* Se crea o completa una ejecución de flujo de trabajo.\n* Se prepara un job de un flujo de trabajo. Es importante destacar que esta bitácora incluye la lista de secretos que se proporcionaron al ejecutor.\n\nPara obtener más información, consulta la sección \"[Fortalecimiento de seguridad para las {% data variables.product.prodname_actions %}](/actions/security-guides/security-hardening-for-github-actions#auditing-github-actions-events)\".\n" - '{% data variables.product.prodname_ghe_server %} 3.3 contiene mejoras de rendimiento para la concurrencia de los jobs con {% data variables.product.prodname_actions %}. Para obtener más información acerca de las metas de rendimiento nuevas conforme a los rangos de configuraciones de CPU y memoria, consulta la sección "[Iniciar con las {% data variables.product.prodname_actions %} para {% data variables.product.prodname_ghe_server %}](/admin/github-actions/enabling-github-actions-for-github-enterprise-server/getting-started-with-github-actions-for-github-enterprise-server#review-hardware-considerations)".' - - 'To mitigate insider man in the middle attacks when using actions resolved through {% data variables.product.prodname_github_connect %} to {% data variables.product.prodname_dotcom_the_website %} from {% data variables.product.prodname_ghe_server %}, the actions namespace (`owner/name`) is retired on use. Retiring the namespace prevents that namespace from being created on your {% data variables.product.prodname_ghe_server %} instance, and ensures all workflows referencing the action will download it from {% data variables.product.prodname_dotcom_the_website %}.' + - 'Para mitigar las personas con información privilegiada en los ataques de intermediarios cuando se utilizan acciones que se resuelven mediante {% data variables.product.prodname_github_connect %} hacia {% data variables.product.prodname_dotcom_the_website %} desde {% data variables.product.prodname_ghe_server %}, el designador de nombre de las acciones (`owner/name`) se retira durante el uso. Retirar el designador de nombre previene que este se cree en tu instancia de {% data variables.product.prodname_ghe_server %} y garantiza que todos los flujos de trabajo que referencian la acción lo descargarán de {% data variables.product.prodname_dotcom_the_website %}.' - heading: 'Cambios a los GitHub packages' notes: - 'When a repository is deleted, any associated package files are now immediately deleted from your {% data variables.product.prodname_registry %} external storage.' - heading: 'Cambios al Dependabot y a la gráfica de Dependencias' notes: - - 'Dependency review is out of beta and is now generally available for {% data variables.product.prodname_GH_advanced_security %} customers. Dependency review provides an easy-to-understand view of dependency changes and their security impact in the "Files changed" tab of pull requests. It informs you of which dependencies were added, removed, or updated, along with vulnerability information. For more information, see "[Reviewing dependency changes in a pull request](/github/collaborating-with-pull-requests/reviewing-changes-in-pull-requests/reviewing-dependency-changes-in-a-pull-request)."' - - '{% data variables.product.prodname_dependabot %} is now available as a private beta, offering both version updates and security updates for several popular ecosystems. {% data variables.product.prodname_dependabot %} on {% data variables.product.prodname_ghe_server %} requires {% data variables.product.prodname_actions %} and a pool of self-hosted runners configured for {% data variables.product.prodname_dependabot %} use. {% data variables.product.prodname_dependabot %} on {% data variables.product.prodname_ghe_server %} also requires {% data variables.product.prodname_github_connect %} to be enabled. To learn more and sign up for the beta, contact the GitHub Sales team.' + - 'La revisión de dependencias ya salió de su beta y ahora está disponible en general para los clientes de la {% data variables.product.prodname_GH_advanced_security %}. La revisión de dependencias es una vista fácil de entender de los cambios de dependencias y de su impacto de seguridad, la cual se encuentra en la pestaña de "Archivos que cambiaron" de las solicitudes de cambios. Esta te informa de las dependencias que se agregaron, eliminaron o actualizaron en conjunto con la información de las vulnerabilidades. Para obtener más información, consulta la sección "[Revisar los cambios a las dependencias de una solicitud de cambios](/github/collaborating-with-pull-requests/reviewing-changes-in-pull-requests/reviewing-dependency-changes-in-a-pull-request)".' + - 'El {% data variables.product.prodname_dependabot %} ahora se encuentra disponible en un beta privado, lo cual ofrece tanto actualizaciones de versión como de seguridad para varios ecosistemas populares. El {% data variables.product.prodname_dependabot %} en {% data variables.product.prodname_ghe_server %} requiere {% data variables.product.prodname_actions %} y un grupo de ejecutores auto-hospedados para que los utilice el {% data variables.product.prodname_dependabot %}. El {% data variables.product.prodname_dependabot %} en {% data variables.product.prodname_ghe_server %} también requiere que se habilite {% data variables.product.prodname_github_connect %}. Para aprender más y registrarse para el beta, contacta al equipo de Ventas de GitHub.' - heading: 'Cambios al escaneo de código y de secretos' notes: - - 'The depth of {% data variables.product.prodname_codeql %}''s analysis has been improved by adding support for more [libraries and frameworks](https://codeql.github.com/docs/codeql-overview/supported-languages-and-frameworks/) and increasing the coverage of our existing library and framework models. [JavaScript](https://github.com/github/codeql/tree/main/javascript) analysis now supports most common templating languages, and [Java](https://github.com/github/codeql/tree/main/java) now covers more than three times the endpoints of previous {% data variables.product.prodname_codeql %} versions. As a result, {% data variables.product.prodname_codeql %} can now detect even more potential sources of untrusted user data, steps through which that data flows, and potentially dangerous sinks where the data could end up. This results in an overall improvement of the quality of {% data variables.product.prodname_code_scanning %} alerts.' - - '{% data variables.product.prodname_codeql %} now supports scanning standard language features in Java 16, such as records and pattern matching. {% data variables.product.prodname_codeql %} is able to analyze code written in Java version 7 through 16. For more information about supported languages and frameworks, see the [{% data variables.product.prodname_codeql %} documentation](https://codeql.github.com/docs/codeql-overview/supported-languages-and-frameworks/#id5).' - - "Improvements have been made to the {% data variables.product.prodname_code_scanning %} `on:push` trigger when code is pushed to a pull request. If an `on:push` scan returns results that are associated with a pull request, {% data variables.product.prodname_code_scanning %} will now show these alerts on the pull request.\n\nSome other CI/CD systems can be exclusively configured to trigger a pipeline when code is pushed to a branch, or even exclusively for every commit. Whenever such an analysis pipeline is triggered and results are uploaded to the SARIF API, {% data variables.product.prodname_code_scanning %} will also try to match the analysis results to an open pull request. If an open pull request is found, the results will be published as described above. For more information, see the [{% data variables.product.prodname_dotcom %} changelog](https://github.blog/changelog/2021-09-27-showing-code-scanning-alerts-on-pull-requests/).\n" - - 'You can now use the new pull request filter on the {% data variables.product.prodname_code_scanning %} alerts page to find all the {% data variables.product.prodname_code_scanning %} alerts associated with a pull request. A new "View all branch alerts" link on the pull request "Checks" tab allows you to directly view {% data variables.product.prodname_code_scanning %} alerts with the specific pull request filter already applied. For more information, see the [{% data variables.product.prodname_dotcom %} changelog](https://github.blog/changelog/2021-08-23-pull-request-filter-for-code-scanning-alerts/).' - - 'User defined patterns for {% data variables.product.prodname_secret_scanning %} is out of beta and is now generally available for {% data variables.product.prodname_GH_advanced_security %} customers. Also new in this release is the ability to edit custom patterns defined at the repository, organization, and enterprise levels. After editing and saving a pattern, {% data variables.product.prodname_secret_scanning %} searches for matches both in a repository''s entire Git history and in any new commits. Editing a pattern will close alerts previously associated with the pattern if they no longer match the updated version. Other improvements, such as dry-runs, are planned in future releases. For more information, see "[Defining custom patterns for secret scanning](/code-security/secret-scanning/defining-custom-patterns-for-secret-scanning)."' + - 'La profundidad del análisis de {% data variables.product.prodname_codeql %} se mejoró agregando compatibilidad para más [librerías y marcos de trabajo](https://codeql.github.com/docs/codeql-overview/supported-languages-and-frameworks/) e incrementando la cobertura de nuestros modelos de marcos de trabajo y librerías. El análisis de [JavaScript](https://github.com/github/codeql/tree/main/javascript) ahora es compatible con los lenguajes más comunes para generar plantillas y [Java](https://github.com/github/codeql/tree/main/java) ahora cubre más del triple de las terminales de las versiones anteriores de {% data variables.product.prodname_codeql %}. Como resultado, {% data variables.product.prodname_codeql %} ahora puede detectar aún más fuentes potenciales de datos de usuario no confiables, pasos mediante los cuales fluyen dichos datos y consumidores de datos potencialmente peligrosos en donde podrían estancarse los mismos. Esto proporciona una mejora general a la calidad de las alertas del {% data variables.product.prodname_code_scanning %}.' + - '{% data variables.product.prodname_codeql %} ahora es compatible con el escaneo de características de lenguaje estándar en Java 16, tales como la coincidencia con patrones y registros. {% data variables.product.prodname_codeql %} puede analizar el código escrito de la versión 7 a la 16 de Java. para obtener más información sobre qué lenguajes y marcos de trabajo son compatibles, consulta la [Documentación de {% data variables.product.prodname_codeql %}](https://codeql.github.com/docs/codeql-overview/supported-languages-and-frameworks/#id5).' + - "Se hicieron mejoras al activador `on:push` del {% data variables.product.prodname_code_scanning %} cuando se sube código a una solicitud de cambios. Si un escaneo de tipo `on:push` devuelve resultados asociados con una solicitud de cambios, el {% data variables.product.prodname_code_scanning %} ahora mostrará estas alertas en dicha solicitud.\n\nAlgunos otros sistemas de IC/DC pueden configurarse exclusivamente para activar una red de comunicación interna cuando se suba código a una rama o incluso exclusivamente para cada confirmación. Cada que dicho análisis de red de comunicación interna se active y los resultados se carguen a la API de SARIF, el {% data variables.product.prodname_code_scanning %} también intentará empatar los resultados de este análisis con una solicitud de cambios abierta. Si se encuentra dicha solicitud abierta, los resultados se publicarán conforme a lo descrito anteriormente, consulta el [Registro de cambios de {% data variables.product.prodname_dotcom %}](https://github.blog/changelog/2021-09-27-showing-code-scanning-alerts-on-pull-requests/).\n" + - 'Ahora puedes utilizar el filtro de solicitud de cambios nuevo en la página de alertas de {% data variables.product.prodname_code_scanning %} para encontrar todas las alertas del {% data variables.product.prodname_code_scanning %} que tengan una solicitud de cambios. El enlace nuevo de "Ver todas las alertas de rama" en la pestaña de "Verificaciones" de una solicitud de cambios te permite ver directamente las alertas del {% data variables.product.prodname_code_scanning %} con el filtro de solicitudes de cambio específico que ya se haya aplicado. Para obtener más información, consulta la [Bitácora de cambios de {% data variables.product.prodname_dotcom %}](https://github.blog/changelog/2021-08-23-pull-request-filter-for-code-scanning-alerts/).' + - 'Los patrones definidos por usuario para el {% data variables.product.prodname_secret_scanning %} se encuentran en fase beta y ahora se encuentran disponibles en general para los clientes de {% data variables.product.prodname_GH_advanced_security %}. También, este lanzamiento cuenta con la capacidad de editar patrones personalizados que se definen en los niveles de repositorio, organización y empresa. Después de editar y guardar un patrón, el {% data variables.product.prodname_secret_scanning %} busca coincidencias tanto en el historial completo de Git del repositorio como en cualquier confirmación nueva. El editar un patrón cerrará las alertas que se asocian previamente con este en caso de que ya no coincidan con la versión actualizada. Tenemos otras mejoras planeadas para lanzamientos futuros, tales como las simulaciones. Para obtener más información, consulta la sección "[Definir patrones personalizados para el escaneo de secretos](/code-security/secret-scanning/defining-custom-patterns-for-secret-scanning)".' - heading: 'API and webhook changes' notes: - - 'Most REST API previews have graduated and are now an official part of the API. Preview headers are no longer required for most REST API endpoints, but will still function as expected if you specify a graduated preview in the `Accept` header of a request. For previews that still require specifying the preview in the `Accept` header of a request, see "[API previews](/rest/overview/api-previews)."' + - 'La mayoría de las vistas previas de la API de REST se graduaron y ahora son parte oficial de la API. Los encabezados de vista previa ya no se requieren para la mayoría de las terminales de la API de REST, pero aún funcionarán como se espera si especificas una vista previa graduada en el encabezado de `Accept` de una solicitud. Para encontrar las vistas previas que aún requieran la especificación de la vista previa en el encabezado de `Accept` de una solicitud, consulta las "[Vistas previas de la API](/rest/overview/api-previews)".' - 'You can now use the REST API to configure custom autolinks to external resources. The REST API now provides beta `GET`/`POST`/`DELETE` endpoints which you can use to view, add, or delete custom autolinks associated with a repository. For more information, see "[Autolinks](/rest/reference/repos#autolinks)."' - - 'You can now use the REST API to sync a forked repository with its upstream repository. For more information, see "[Repositories](/rest/reference/repos#sync-a-fork-branch-with-the-upstream-repository)" in the REST API documentation.' + - 'You can now use the REST API to sync a forked repository with its upstream repository. For more information, see "[Branches](/rest/reference/branches#sync-a-fork-branch-with-the-upstream-repository)" in the REST API documentation.' - 'Enterprise administrators on GitHub Enterprise Server can now use the REST API to enable or disable Git LFS for a repository. For more information, see "[Repositories](/rest/reference/repos#git-lfs)."' - - 'You can now use the REST API to query the audit log for an enterprise. While audit log forwarding provides the ability to retain and analyze data with your own toolkit and determine patterns over time, the new endpoint can help you perform limited analysis on recent events. For more information, see "[{% data variables.product.prodname_enterprise %} administration](/rest/reference/enterprise-admin#get-the-audit-log-for-an-enterprise)" in the REST API documentation.' + - 'Ahora puedes utilizar la API de REST para consultar la bitácora de auditoría de una empresa. Mientras que el reenviar una bitácora de auditoría proporciona la capacidad de retener y analizar datos con tu propio kit de herramientas y determinar los patrones con el tiempo, la terminal nueva puede ayudarte a realizar un análisis limitado en los eventos recientes. Para obtener más información, consulta la sección "[Administración de {% data variables.product.prodname_enterprise %}](/rest/reference/enterprise-admin#get-the-audit-log-for-an-enterprise)" en la documentación de la API de REST.' - 'GitHub App user-to-server API requests can now read public resources using the REST API. This includes, for example, the ability to list a public repository''s issues and pull requests, and to access a public repository''s comments and content.' - - 'When creating or updating a repository, you can now configure whether forking is allowed using the REST and GraphQL APIs. Previously, APIs for creating and updating repositories didn''t include the fields `allow_forking` (REST) or `forkingAllowed` (GraphQL). For more information, see "[Repositories](/rest/reference/repos)" in the REST API documentation and "[Repositories](/graphql/reference/objects#repository)" in the GraphQL API documentation.' - - "A new GraphQL mutation [`createCommitOnBranch`](/graphql/reference/mutations#createcommitonbranch) makes it easier to add, update, and delete files in a branch of a repository. Compared to the REST API, you do not need to manually create blobs and trees before creating the commit. This allows you to add, update, or delete multiple files in a single API call.\n\nCommits authored using the new API are automatically GPG signed and are [marked as verified](/github/authenticating-to-github/managing-commit-signature-verification/about-commit-signature-verification) in the {% data variables.product.prodname_ghe_server %} UI. GitHub Apps can use the mutation to author commits directly or [on behalf of users](/developers/apps/building-github-apps/identifying-and-authorizing-users-for-github-apps#user-to-server-requests).\n" + - 'Al crear o actualizar un repositorio, ahora puedes configurar si se permite bifurcarlo utilizando las API de REST y de GraphQL. Anteriormente, las API para crear y actualizar repositorios no incluían los archivos `allow_forking` (REST) o `forkingAllowed` (GraphQL). Para obtener más información, consulta la sección "[Repositories](/rest/reference/repos)" en la documentación de la API de REST y "[Repositories](/graphql/reference/objects#repository)" en la documentación de la API de GraphQL.' + - "Una mutación nueva de GraphQL [`createCommitOnBranch`](/graphql/reference/mutations#createcommitonbranch) facilita el agregar, actualizar y borrar archivos en una rama de un repositorio. Comparado con la API de REST, no necesitas crear blobs y árboles manualmente antes de crear la confirmación. Esto te permite agregar, actualizar o borrar archivos múltiples en una sola llamada a la API.\n\nLas confirmaciones que se crean utilizando la API nueva se firman automáticamente con GPG y se [marcan como verificadas](/github/authenticating-to-github/managing-commit-signature-verification/about-commit-signature-verification) en la IU de {% data variables.product.prodname_ghe_server %}. Las GitHub Apps pueden utilizar la mutación para crear confirmaciones, ya sea directamente o [en nombre de los usuarios](/developers/apps/building-github-apps/identifying-and-authorizing-users-for-github-apps#user-to-server-requests).\n" - 'When a new tag is created, the [push](/developers/webhooks-and-events/webhooks/webhook-events-and-payloads#push) webhook payload now always includes a `head_commit` object that contains the data of the commit that the new tag points to. As a result, the `head_commit` object will always contain the commit data of the payload''s `after` commit.' - heading: 'Performance Changes' notes: @@ -103,12 +104,12 @@ sections: - 'Starting with {% data variables.product.prodname_ghe_server %} 3.3, {% data variables.product.prodname_ghe_server %} on XenServer is deprecated and is no longer supported. Please contact [GitHub Support](https://support.github.com) with questions or concerns.' - heading: 'Deprecation of OAuth Application API endpoints and API authentication using query parameters' notes: - - "To prevent accidental logging or exposure of `access_tokens`, we discourage the use of OAuth Application API endpoints and the use of API authentication using query parameters. View the following posts to see the proposed replacements:\n\n* [Replacement OAuth Application API endpoints](https://developer.github.com/changes/2020-02-14-deprecating-oauth-app-endpoint/#changes-to-make)\n* [Replacement authentication using headers instead of query param](https://developer.github.com/changes/2020-02-10-deprecating-auth-through-query-param/#changes-to-make)\n\nThese endpoints and authentication route are planned to be removed from {% data variables.product.prodname_ghe_server %} in {% data variables.product.prodname_ghe_server %} 3.4.\n" + - "Para prevenir los inicios de sesión accidentales o la exposición de `access_tokens`, desalentamos el uso de las terminales de la API de Aplicaciones OAuth y el uso de la autenticación de la API utilizando parámetros de consulta. Puedes ver las siguientes publicaciones para encontrar los reemplazos propuestos:\n\n*[Reemplazo de las terminales de la API de Aplicaciones OAuth](https://developer.github.com/changes/2020-02-14-deprecating-oauth-app-endpoint/#changes-to-make)\n*[Reemplazo de la autenticación utilizando encabezados en vez de parámetros de consulta](https://developer.github.com/changes/2020-02-10-deprecating-auth-through-query-param/#changes-to-make)\n\nPlaneamos eliminar estas temrinales y ruta de autenticación desde {% data variables.product.prodname_ghe_server %} en {% data variables.product.prodname_ghe_server %} 3.4.\n" - heading: 'Deprecation of the CodeQL runner' notes: - - 'The {% data variables.product.prodname_codeql %} runner is being deprecated. {% data variables.product.prodname_ghe_server %} 3.3 will be the final release series that supports the {% data variables.product.prodname_codeql %} runner. Starting with {% data variables.product.prodname_ghe_server %} 3.4, the {% data variables.product.prodname_codeql %} runner will be removed and no longer supported. The {% data variables.product.prodname_codeql %} CLI version 2.6.2 or greater is a feature-complete replacement for the {% data variables.product.prodname_codeql %} runner. For more information, see the [{% data variables.product.prodname_dotcom %} changelog](https://github.blog/changelog/2021-09-21-codeql-runner-deprecation/).' + - 'El ejecutor de {% data variables.product.prodname_codeql %} se obsoletizará. {% data variables.product.prodname_ghe_server %} 3.3 será el último lanzamiento de la serie que es compatible con el ejecutor de {% data variables.product.prodname_codeql %}. Desde {% data variables.product.prodname_ghe_server %} 3.4, se eliminará el ejecutor de {% data variables.product.prodname_codeql %} y este ya no será compatible. La versión 2.6.2 del CLI de {% data variables.product.prodname_codeql %} o superior es un reemplazo con todas las características para el ejecutor del {% data variables.product.prodname_codeql %}. Para obtener más informa]ción, consulta la sección [Bitácora de cambios de {% data variables.product.prodname_dotcom %}(https://github.blog/changelog/2021-09-21-codeql-runner-deprecation/).' - heading: 'Deprecation of custom bit-cache extensions' notes: - - "Starting in {% data variables.product.prodname_ghe_server %} 3.1, support for {% data variables.product.company_short %}'s proprietary bit-cache extensions began to be phased out. These extensions are now deprecated in {% data variables.product.prodname_ghe_server %} 3.3.\n\nAny repositories that were already present and active on {% data variables.product.product_location %} running version 3.1 or 3.2 will have been automatically updated.\n\nRepositories which were not present and active before upgrading to {% data variables.product.prodname_ghe_server %} 3.3 may not perform optimally until a repository maintenance task is run and has successfully completed.\n\nTo start a repository maintenance task manually, browse to `https:///stafftools/repositories///network` for each affected repository and click the **Schedule** button.\n" + - "Desde {% data variables.product.prodname_ghe_server %} 3.1, el soporte de las extensiones bit-cache propietarias de {% data variables.product.company_short %} se comenzó a eliminar paulatinamente. Estas extensiones ahora son obsoletas en {% data variables.product.prodname_ghe_server %} 3.3.\n\nCualquier repositorio que ya haya estado presente y activo en {% data variables.product.product_location %} ejecutando la versión 3.1 o 3.2 ya se actualizó atuomáticamente.\n\nLos repositorios que no estuvieron presentes y activos antes de mejorar a {% data variables.product.prodname_ghe_server %} 3.3 podrían no funcionar de forma óptima sino hasta que se ejecute una tarea de mantenimiento de repositorio y esta se complete exitosamente.\n\nPara iniciar una tarea de mantenimiento de repositorio manualmente, dirígete a `https:///stafftools/repositories///network` en cada repositorio afectado y haz clic en el botón **Schedule**.\n" backups: - '{% data variables.product.prodname_ghe_server %} 3.3 requires at least [GitHub Enterprise Backup Utilities 3.3.0](https://github.com/github/backup-utils) for [Backups and Disaster Recovery](/admin/configuration/configuring-your-enterprise/configuring-backups-on-your-appliance).' diff --git a/translations/es-ES/data/release-notes/enterprise-server/3-3/1.yml b/translations/es-ES/data/release-notes/enterprise-server/3-3/1.yml index 435f2d86a7..1506c34b97 100644 --- a/translations/es-ES/data/release-notes/enterprise-server/3-3/1.yml +++ b/translations/es-ES/data/release-notes/enterprise-server/3-3/1.yml @@ -2,7 +2,8 @@ date: '2021-12-13' sections: security_fixes: - - '**CRITICAL:** A remote code execution vulnerability in the Log4j library, identified as [CVE-2021-44228](https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2021-44228), affected all versions of {% data variables.product.prodname_ghe_server %} prior to 3.3.1. The Log4j library is used in an open source service running on the {% data variables.product.prodname_ghe_server %} instance. This vulnerability was fixed in {% data variables.product.prodname_ghe_server %} versions 3.0.22, 3.1.14, 3.2.6, and 3.3.1. For more information, please see [this post](https://github.blog/2021-12-13-githubs-response-to-log4j-vulnerability-cve-2021-44228/) on the GitHub Blog.' + - '**CRÍTICA:** Una vulnerabilidad de ejecución de código remoto en la librería Log4j, identificada como [CVE-2021-44228](https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2021-44228), afectó a todas las versiones de {% data variables.product.prodname_ghe_server %} anteriores a la 3.3.1. La librería Log4j se utiliza en un servicio de código abierto que se ejecuta en la instancia de {% data variables.product.prodname_ghe_server %}. Esta vulnerabilidad se corrigió en las versiones 3.0.22, 3.1.14, 3.2.6 y 3.3.1 de {% data variables.product.prodname_ghe_server %}. Para obtener más información, por favor, consulta [esta publicación](https://github.blog/2021-12-13-githubs-response-to-log4j-vulnerability-cve-2021-44228/) en el Blog de GitHub.' + - '**Actualización del 17 de diciembre de 2021**: Las correcciones que se llevaron a cabo para este lanzamiento también mitigan el [CVE-2021-45046](https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2021-45046), el cual se publicó después de dicho lanzamiento. No se necesita ninguna actualización adicional en {% data variables.product.prodname_ghe_server %} para mitigar tanto al CVE-2021-44228 como al CVE-2021-45046.' known_issues: - After upgrading to {% data variables.product.prodname_ghe_server %} 3.3, {% data variables.product.prodname_actions %} may fail to start automatically. To resolve this issue, connect to the appliance via SSH and run the `ghe-actions-start` command. - On a freshly set up {% data variables.product.prodname_ghe_server %} instance without any users, an attacker could create the first admin user. diff --git a/translations/es-ES/data/release-notes/github-ae/2021-03/2021-03-03.yml b/translations/es-ES/data/release-notes/github-ae/2021-03/2021-03-03.yml index 0931904dc8..13c8964768 100644 --- a/translations/es-ES/data/release-notes/github-ae/2021-03/2021-03-03.yml +++ b/translations/es-ES/data/release-notes/github-ae/2021-03/2021-03-03.yml @@ -9,9 +9,9 @@ sections: heading: 'GitHub Actions beta' notes: - | - [{% data variables.product.prodname_actions %}](https://github.com/features/actions) is a powerful, flexible solution for CI/CD and workflow automation. For more information, see "[Introduction to {% data variables.product.prodname_actions %}](/actions/learn-github-actions/introduction-to-github-actions)." + [{% data variables.product.prodname_actions %}](https://github.com/features/actions) es una solución flexible y poderosa para la automatización de flujos de trabajo y de IC/DC. Para obtener más información, consulta la sección "[Introducción a las {% data variables.product.prodname_actions %}](/actions/learn-github-actions/introduction-to-github-actions)." - Please note that when {% data variables.product.prodname_actions %} is enabled during this upgrade, two organizations named "GitHub Actions" (@**actions** and @**github**) will appear in {% data variables.product.product_location %}. These organizations are required by {% data variables.product.prodname_actions %}. Users named @**ghost** and @**actions** appear as the actors for creation of these organizations in the audit log. + Por favor, toma en cuenta que, cuando se habilitan las {% data variables.product.prodname_actions %} durante esta mejora, aparecerán dos organizaciones de nombre "GitHub Actions" (@**actions** and @**github**) en {% data variables.product.product_location %}. {% data variables.product.prodname_actions %} requiere estas organizaciones. Los usuarios de nombre @**ghost** y @**actions** se mostrarán como los actores para crear estas organizaciones en la bitácora de auditoría. - heading: 'GitHub Packages beta' notes: diff --git a/translations/es-ES/data/release-notes/github-ae/2021-06/2021-12-06.yml b/translations/es-ES/data/release-notes/github-ae/2021-06/2021-12-06.yml index 1b0a3fcaa6..76d38f7860 100644 --- a/translations/es-ES/data/release-notes/github-ae/2021-06/2021-12-06.yml +++ b/translations/es-ES/data/release-notes/github-ae/2021-06/2021-12-06.yml @@ -47,7 +47,7 @@ sections: - heading: 'GitHub Packages' notes: - | - You can now delete any package or package version for GitHub Packages from {% data variables.product.product_name %}'s web UI or REST API. You can also undo the deletion of any package or package version within 30 days. + You can now delete any package or package version for GitHub Packages from {% data variables.product.product_name %}'s web UI. You can also undo the deletion of any package or package version within 30 days. For more information, see "[Deleting and restoring a package](/packages/learn-github-packages/deleting-and-restoring-a-package)." - | The npm registry for GitHub Packages and {% data variables.product.prodname_dotcom_the_website %} no longer returns a time value in metadata responses, providing substantial performance improvements. {% data variables.product.company_short %} will continue returning the time value in the future. - heading: 'Audit logging' @@ -78,7 +78,7 @@ sections: - | With the [latest version of Octicons](https://github.com/primer/octicons/releases), the states of issues and pull requests are now more visually distinct so you can scan status more easily. For more information, see [{% data variables.product.prodname_blog %}](https://github.blog/changelog/2021-06-08-new-issue-and-pull-request-state-icons/). - | - You can now see all pull request review comments in the **Files** tab for a pull request by selecting the **Conversations** drop-down. You can also require that all pull request review comments are resolved before anyone merges the pull request. For more information, see "[About pull request reviews](/github/collaborating-with-pull-requests/reviewing-changes-in-pull-requests/about-pull-request-reviews#discovering-and-navigating-conversations)" and "[About protected branches](/github/administering-a-repository/defining-the-mergeability-of-pull-requests/about-protected-branches#require-conversation-resolution-before-merging)." For more information about management of branch protection settings with the API, see "[Repositories](/rest/reference/repos#get-branch-protection)" in the REST API documentation and "[Mutations](/graphql/reference/mutations#createbranchprotectionrule)" in the GraphQL API documentation. + You can now see all pull request review comments in the **Files** tab for a pull request by selecting the **Conversations** drop-down. You can also require that all pull request review comments are resolved before anyone merges the pull request. For more information, see "[About pull request reviews](/github/collaborating-with-pull-requests/reviewing-changes-in-pull-requests/about-pull-request-reviews#discovering-and-navigating-conversations)" and "[About protected branches](/github/administering-a-repository/defining-the-mergeability-of-pull-requests/about-protected-branches#require-conversation-resolution-before-merging)." For more information about management of branch protection settings with the API, see "[Branches](/rest/reference/branches#get-branch-protection)" in the REST API documentation and "[Mutations](/graphql/reference/mutations#createbranchprotectionrule)" in the GraphQL API documentation. - | You can now upload video files everywhere you write Markdown on {% data variables.product.product_name %}. Share demos, show reproduction steps, and more in issue and pull request comments, as well as in Markdown files within repositories, such as READMEs. For more information, see "[Attaching files](/github/writing-on-github/working-with-advanced-formatting/attaching-files)." - | @@ -103,7 +103,7 @@ sections: - | You can now sort the repositories on a user or organization profile by star count. - | - The Repositories REST API's "compare two commits" endpoint, which returns a list of commits reachable from one commit or branch, but unreachable from another, now supports pagination. The API can also now return the results for comparisons over 250 commits. For more information, see the "[Repositories](/rest/reference/repos#compare-two-commits)" REST API documentation and "[Traversing with pagination](/rest/guides/traversing-with-pagination)." + The Repositories REST API's "compare two commits" endpoint, which returns a list of commits reachable from one commit or branch, but unreachable from another, now supports pagination. The API can also now return the results for comparisons over 250 commits. For more information, see the "[Commits](/rest/reference/commits#compare-two-commits)" REST API documentation and "[Traversing with pagination](/rest/guides/traversing-with-pagination)." - | When you define a submodule in {% data variables.product.product_location %} with a relative path, the submodule is now clickable in the web UI. Clicking the submodule in the web UI will take you to the linked repository. Previously, only submodules with absolute URLs were clickable. Relative paths for repositories with the same owner that follow the pattern ../REPOSITORY or relative paths for repositories with a different owner that follow the pattern ../OWNER/REPOSITORY are supported. For more information about working with submodules, see [Working with submodules](https://github.blog/2016-02-01-working-with-submodules/) on {% data variables.product.prodname_blog %}. - | diff --git a/translations/es-ES/data/reusables/accounts/accounts-billed-separately.md b/translations/es-ES/data/reusables/accounts/accounts-billed-separately.md new file mode 100644 index 0000000000..8960bfe730 --- /dev/null +++ b/translations/es-ES/data/reusables/accounts/accounts-billed-separately.md @@ -0,0 +1 @@ +Each account on {% data variables.product.product_name %} is billed separately. Upgrading an organization account enables paid features for the organization's repositories only and does not affect the features available in repositories owned by any associated personal accounts. Similarly, upgrading a personal account enables paid features for the personal account's repositories only and does not affect the repositories of any organization accounts. Para obtener más información sobre los tipos de cuenta, consulta la sección "[Tipos de cuentas de {% data variables.product.prodname_dotcom %}](/get-started/learning-about-github/types-of-github-accounts)". diff --git a/translations/es-ES/data/reusables/actions/actions-group-concurrency.md b/translations/es-ES/data/reusables/actions/actions-group-concurrency.md index 63edac3ae9..8946bdf090 100644 --- a/translations/es-ES/data/reusables/actions/actions-group-concurrency.md +++ b/translations/es-ES/data/reusables/actions/actions-group-concurrency.md @@ -19,7 +19,7 @@ concurrency: ci-${{ github.ref }} {% raw %} ```yaml concurrency: - group: ${{ github.head_ref }} + group: ${{ github.ref }} cancel-in-progress: true ``` {% endraw %} diff --git a/translations/es-ES/data/reusables/actions/cd-templates-actions.md b/translations/es-ES/data/reusables/actions/cd-templates-actions.md index f87a3f99b1..84d1db5c53 100644 --- a/translations/es-ES/data/reusables/actions/cd-templates-actions.md +++ b/translations/es-ES/data/reusables/actions/cd-templates-actions.md @@ -1,3 +1,3 @@ -{% data variables.product.product_name %} ofrece plantillas de flujo de trabajo de DC para varios servicios populares, tal como Azure Web App. Para aprender cómo comenzar a utilizar una plantilla de flujo de trabajo, consulta la sección "[Utilizar plantillas de flujo de trabajo](/actions/learn-github-actions/using-workflow-templates)" o [busca en la lista completa de plantillas de flujo de trabajo de despliegue](https://github.com/actions/starter-workflows/tree/main/deployments). También puedes verificar nuestras guías más detalladas para flujos de trabajo de despliegue específicos, tal como "[Desplegar hacia Azure App Service](/actions/deployment/deploying-to-azure-app-service)". +{% data variables.product.product_name %} offers CD starter workflow for several popular services, such as Azure Web App. To learn how to get started using a starter workflow, see "[Using starter workflows](/actions/learn-github-actions/using-starter-workflows)" or [browse the full list of deployment starter workflows](https://github.com/actions/starter-workflows/tree/main/deployments). También puedes verificar nuestras guías más detalladas para flujos de trabajo de despliegue específicos, tal como "[Desplegar hacia Azure App Service](/actions/deployment/deploying-to-azure-app-service)". Muchos proveedores de servicio también ofrecen acciones en {% data variables.product.prodname_marketplace %} para desplegar a su servicio. Para encontrar la lista completa, consulta [{% data variables.product.prodname_marketplace %}](https://github.com/marketplace?category=deployment&type=actions). diff --git a/translations/es-ES/data/reusables/actions/create-azure-app-plan.md b/translations/es-ES/data/reusables/actions/create-azure-app-plan.md new file mode 100644 index 0000000000..cfff24c017 --- /dev/null +++ b/translations/es-ES/data/reusables/actions/create-azure-app-plan.md @@ -0,0 +1,17 @@ +1. Crear un plan de Azure App Service. + + Por ejemplo, puedes utilizar el CLI de Azure para crear un plan de App Service nuevo: + + ```bash{:copy} + az appservice plan create \ + --resource-group MY_RESOURCE_GROUP \ + --name MY_APP_SERVICE_PLAN \ + --is-linux + ``` + + En el comando anterior, reemplaza `MY_RESOURCE_GROUP` con tu Grupo de Recursos de Azure preexistente y `MY_APP_SERVICE_PLAN` con un nombre nuevo para el plan de App Service. + + Consulta la documentación de Azure para obtener más información sobre cómo utilizar el [CLI de Azure](https://docs.microsoft.com/cli/azure/): + + * Para la autenticación, consulta "[Iniciar sesión con Azure CLI](https://docs.microsoft.com/cli/azure/authenticate-azure-cli)." + * Si necesitas crear un grupo de recursos nuevo, consulta lasección "[grupo az](https://docs.microsoft.com/cli/azure/group?view=azure-cli-latest#az_group_create)". \ No newline at end of file diff --git a/translations/es-ES/data/reusables/actions/create-azure-publish-profile.md b/translations/es-ES/data/reusables/actions/create-azure-publish-profile.md new file mode 100644 index 0000000000..0203f1f5c4 --- /dev/null +++ b/translations/es-ES/data/reusables/actions/create-azure-publish-profile.md @@ -0,0 +1,5 @@ +1. Configura un perfil de publicación de Azure y crea un secreto de `AZURE_WEBAPP_PUBLISH_PROFILE`. + + Genera tus credenciales de despliegue de Azure utilizando un perfil de publicación. Para obtener más información, consulta la sección "[Generar credenciales de despliegue](https://docs.microsoft.com/azure/app-service/deploy-github-actions?tabs=applevel#generate-deployment-credentials)" en la documentación de Azure. + + En tu repositorio de {% data variables.product.prodname_dotcom %}, crea un secreto que se llame `AZURE_WEBAPP_PUBLISH_PROFILE` que tenga el contenido del perfil de publicación. Para obtener más información sobre cómo crear secretos, consulta la sección "[Secretos cifrados](/actions/reference/encrypted-secrets#creating-encrypted-secrets-for-a-repository)". \ No newline at end of file diff --git a/translations/es-ES/data/reusables/actions/environment-deployment-event.md b/translations/es-ES/data/reusables/actions/environment-deployment-event.md index efba2fe7bc..96dbf709e4 100644 --- a/translations/es-ES/data/reusables/actions/environment-deployment-event.md +++ b/translations/es-ES/data/reusables/actions/environment-deployment-event.md @@ -1 +1 @@ -When a workflow job that references an environment runs, it creates a deployment object with the `environment` property set to the name of your environment. As the workflow progresses, it also creates deployment status objects with the `environment` property set to the name of your environment, the `environment_url` property set to the URL for environment (if specified in the workflow), and the `state` property set to the status of the job. +Cuando se ejecuta un job de flujo de trabajo que referencia un ambiente, este crea un objeto de despliegue con la propiedad `environment` configurada en el nombre de tu ambiente. Conforme progrese el flujo de trabajo, este también creará objetos de estado de despliegue con la propiedad `environment` configurada en el nombre de tu ambiente, la propiedad `environment_url` configurada para la URL del mismo (si se especificó en el flujo de trabajo) y la propiedad `state` configurada en el estado del job. diff --git a/translations/es-ES/data/reusables/actions/environment-example.md b/translations/es-ES/data/reusables/actions/environment-example.md index 791448163e..f01c052d42 100644 --- a/translations/es-ES/data/reusables/actions/environment-example.md +++ b/translations/es-ES/data/reusables/actions/environment-example.md @@ -1,6 +1,6 @@ -You can specify an environment for each job in your workflow. To do so, add a `jobs..environment` key followed by the name of the environment. +Puedes especificar un ambiente para cada job de tu flujo de trabajo. Para hacerlo, agrega la clave `jobs..environment` seguida del nombre del ambiente. -For example, this workflow will use an environment called `production`. +Por ejemplo, este flujo de trabajo utilizará un ambiente llamado `production`. ```yaml name: Deployment @@ -19,9 +19,9 @@ jobs: # ...deployment-specific steps ``` -When the above workflow runs, the `deployment` job will be subject to any rules configured for the `production` environment. For example, if the environment requires reviewers, the job will pause until one of the reviewers approves the job. +Cuando se ejecute el flujo de trabajo anterior, el job `deployment` estará sujeto a cualquier regla que se haya configurado para el ambiente de `production`. Por ejemplo, si el ambiente requiere revisores, el job se pausará hasta que uno de ellos lo apruebe. -You can also specify a URL for the environment. La URL especificada aparecerá en la página de despliegues del repositorio (a la cual se puede acceder haciendo clic en **Ambientes** en la página principal de tu repositorio) y en la gráfica de visualización de la ejecución del flujo de trabajo. Si una solicitud de cambios activó el flujo de trabajo, la URL también se muestra como un botón de **Ver despliegue** en la línea de tiempo de esta. +También puedes especificar una URL para el ambiente. La URL especificada aparecerá en la página de despliegues del repositorio (a la cual se puede acceder haciendo clic en **Ambientes** en la página principal de tu repositorio) y en la gráfica de visualización de la ejecución del flujo de trabajo. Si una solicitud de cambios activó el flujo de trabajo, la URL también se muestra como un botón de **Ver despliegue** en la línea de tiempo de esta. ```yaml name: Deployment diff --git a/translations/es-ES/data/reusables/actions/workflow-organization-templates.md b/translations/es-ES/data/reusables/actions/workflow-organization-templates.md index 12be839c9d..d828a14ef4 100644 --- a/translations/es-ES/data/reusables/actions/workflow-organization-templates.md +++ b/translations/es-ES/data/reusables/actions/workflow-organization-templates.md @@ -1 +1 @@ -Las plantillas de flujo de trabajo permiten a toda persona de tu organización que tenga permiso de crear flujos de trabajo hacerlo más rápida y fácilmente. Cuando creas un flujo de trabajo nuevo, puedes elegir una plantilla para que haga por ti algo o todo el trabajo de escribir el flujo. Puedes usar plantillas de flujo de trabajo como lugar de inicio para crear tu flujo de trabajo personalizado o usarlos tal como están. Esto no solo ahorra tiempo, sino que promueve la consistencia y las mejores prácticas a lo largo de tu organización. +Starter workflows allow everyone in your organization who has permission to create workflows to do so more quickly and easily. When you create a new workflow, you can choose a starter workflow and some or all of the work of writing the workflow will be done for you. You can use starter workflows as a starting place to build your custom workflow or use them as-is. Esto no solo ahorra tiempo, sino que promueve la consistencia y las mejores prácticas a lo largo de tu organización. diff --git a/translations/es-ES/data/reusables/actions/workflow-run-approve-public-fork.md b/translations/es-ES/data/reusables/actions/workflow-run-approve-public-fork.md index 45f82b9778..64534ca139 100644 --- a/translations/es-ES/data/reusables/actions/workflow-run-approve-public-fork.md +++ b/translations/es-ES/data/reusables/actions/workflow-run-approve-public-fork.md @@ -4,6 +4,6 @@ Para ayudar a prevenir esto, los flujos de trabajo sobre las solicitudes de camb {% note %} -**Nota:** Los flujos de trabajo que se activan con los eventos `pull_request_target` se ejecutan en el contexto de la rama base. Since the base branch is considered trusted, workflows triggered by these events will always run, regardless of approval settings. +**Nota:** Los flujos de trabajo que se activan con los eventos `pull_request_target` se ejecutan en el contexto de la rama base. Ya que la rama base se considera como confiable, los flujos de trabajo que activen estos eventos siempre se ejecutarán, sin importar los ajustes de aprobaciones. {% endnote %} diff --git a/translations/es-ES/data/reusables/actions/workflow-template-overview.md b/translations/es-ES/data/reusables/actions/workflow-template-overview.md index c1bed03732..fb65452541 100644 --- a/translations/es-ES/data/reusables/actions/workflow-template-overview.md +++ b/translations/es-ES/data/reusables/actions/workflow-template-overview.md @@ -1,3 +1,3 @@ -{% data variables.product.prodname_dotcom %} proporciona plantillas de flujo de trabajo preconfiguradas que puedes personalizar para crear tu propio flujo de trabajo de integración contínua. {% data variables.product.product_name %} analiza tu código y muestra tus plantillas de IC que podrían ser útiles para tu repositorio. Por ejemplo, si tu repositorio contiene un código Node.js, verás sugerencias para los proyectos de Node.js. Puedes usar plantillas de flujo de trabajo como lugar de inicio para crear tu flujo de trabajo personalizado o usarlos tal como están. +{% data variables.product.prodname_dotcom %} Proporciona un flujo de trabajo preconfigurado que puedes personalizar para crear tu propio flujo de trabajo de integración contínua. {% data variables.product.product_name %} analiza tu código y te muestra el flujo de trabajo inicial de IC que podría ser útil para tu repositorio. Por ejemplo, si tu repositorio contiene un código Node.js, verás sugerencias para los proyectos de Node.js. Puedes utilizar el flujo de trabajo inicial como un lugar para comenzar a crear tu flujo de trabajo personalizado o utilizarlo tal cual. -Puedes buscar en la lista completa de plantillas de flujo de trabajo en el repositorio {% ifversion fpt or ghec %}[actions/starter-workflows](https://github.com/actions/starter-workflows){% else %}`actions/starter-workflows` en {% data variables.product.product_location %}{% endif %}. +Puedes buscar la lista completa de flujos de trabajo iniciales en el repositorio {% ifversion fpt or ghec %}[actions/starter-workflows](https://github.com/actions/starter-workflows){% else %} `actions/starter-workflows` en {% data variables.product.product_location %}{% endif %}. diff --git a/translations/es-ES/data/reusables/advanced-security/ghas-availability.md b/translations/es-ES/data/reusables/advanced-security/ghas-availability.md new file mode 100644 index 0000000000..ad4315d7c1 --- /dev/null +++ b/translations/es-ES/data/reusables/advanced-security/ghas-availability.md @@ -0,0 +1,10 @@ +{% data variables.product.prodname_GH_advanced_security %} is available + +{%- ifversion fpt %} and enabled for public repositories on {% data variables.product.prodname_dotcom_the_website %}. Organizations that use {% data variables.product.prodname_ghe_cloud %} can also access these features in private repositories with a license for {% data variables.product.prodname_GH_advanced_security %}. {% data reusables.advanced-security.more-info-ghas %} + +{%- elsif ghec %} and enabled for public repositories on {% data variables.product.prodname_dotcom_the_website %}. It is also available for private or internal repositories that are owned by an organization that is part of an enterprise with a license for {% data variables.product.prodname_GH_advanced_security %}. {% data reusables.advanced-security.more-info-ghas %} + +{%- elsif ghes %} if your enterprise has a license for {% data variables.product.prodname_GH_advanced_security %}. It is restricted to repositories owned by an organization. {% data reusables.advanced-security.more-info-ghas %} + +{%- elsif ghae %} for repositories owned by an organization. {% data reusables.advanced-security.more-info-ghas %} +{% endif %} diff --git a/translations/es-ES/data/reusables/advanced-security/note-org-enable-uses-seats.md b/translations/es-ES/data/reusables/advanced-security/note-org-enable-uses-seats.md index 31c4a10dec..4168186c2f 100644 --- a/translations/es-ES/data/reusables/advanced-security/note-org-enable-uses-seats.md +++ b/translations/es-ES/data/reusables/advanced-security/note-org-enable-uses-seats.md @@ -1,4 +1,4 @@ -{% ifversion fpt or ghes > 3.0 or ghec %} +{% ifversion ghes > 3.0 or ghec %} {% note %} **Nota:** Si habilitas diff --git a/translations/es-ES/data/reusables/advanced-security/security-feature-availability.md b/translations/es-ES/data/reusables/advanced-security/security-feature-availability.md new file mode 100644 index 0000000000..ef965ceae3 --- /dev/null +++ b/translations/es-ES/data/reusables/advanced-security/security-feature-availability.md @@ -0,0 +1 @@ +Some features are available for {% ifversion ghes or ghae %}all repositories{% elsif fpt or ghec %}repositories on all plans{% endif %}. Additional features are available to enterprises that use {% data variables.product.prodname_GH_advanced_security %}. {% ifversion fpt or ghec %}{% data variables.product.prodname_GH_advanced_security %} features are also enabled for all public repositories on {% data variables.product.prodname_dotcom_the_website %}.{% endif %} {% data reusables.advanced-security.more-info-ghas %} diff --git a/translations/es-ES/data/reusables/apps/oauth-auth-vary-response.md b/translations/es-ES/data/reusables/apps/oauth-auth-vary-response.md index b76fef614b..c504953858 100644 --- a/translations/es-ES/data/reusables/apps/oauth-auth-vary-response.md +++ b/translations/es-ES/data/reusables/apps/oauth-auth-vary-response.md @@ -1 +1 @@ -You can also receive the response in different formats if you provide the format in the `Accept` header. For example, `Accept: application/json` or `Accept: application/xml`: +También puedes recibir la respuesta en varias formas si proporcionas el formato en el encabezado `Accept`. Por ejemplo, `Accept: application/json` o `Accept: application/xml`: diff --git a/translations/es-ES/data/reusables/cli/cli-features.md b/translations/es-ES/data/reusables/cli/cli-features.md index 81bbe04e03..b92cc96c3b 100644 --- a/translations/es-ES/data/reusables/cli/cli-features.md +++ b/translations/es-ES/data/reusables/cli/cli-features.md @@ -1,9 +1,9 @@ -{% data variables.product.prodname_cli %} includes {% data variables.product.prodname_dotcom %} features such as: +El {% data variables.product.prodname_cli %} incluye características de {% data variables.product.prodname_dotcom %} tales como: - Ver, crear, clonar, y bifurcar repositorios - Crear, cerrar, editar y ver las propuestas y solicitudes de cambio - Revisar, fusionar y hacer diffs con las solicitudes de cambios - Ejecutar, visualizar y listar flujos de trabajo - Crear, listar, visualizar y borrar lanzamientos -- Create, edit, list, view, and delete gists{% ifversion fpt %} -- List, create, delete, and connect to a codespace{% endif %} +- Crear, editar, listar, ver y borrar gists{% ifversion fpt %} +- Listar, crear, borrar y conectarte a un codespace{% endif %} diff --git a/translations/es-ES/data/reusables/codespaces/command-palette-container.md b/translations/es-ES/data/reusables/codespaces/command-palette-container.md index c8483c0056..71356c75b9 100644 --- a/translations/es-ES/data/reusables/codespaces/command-palette-container.md +++ b/translations/es-ES/data/reusables/codespaces/command-palette-container.md @@ -1,3 +1,3 @@ -1. Access the {% data variables.product.prodname_vscode_command_palette %} (`Shift + Command + P` / `Ctrl + Shift + P`), then start typing "dev container". Selecciona **Codespaces: Agregar archivos de configuración del contenedor de desarrollo...**. +1. Accede a la {% data variables.product.prodname_vscode_command_palette %} (`Shift + Command + P` / `Ctrl + Shift + P`) y comienza a teclear "dev container". Selecciona **Codespaces: Agregar archivos de configuración del contenedor de desarrollo...**. - !["Codespaces: Add Development Container Configuration Files..." in the {% data variables.product.prodname_vscode_command_palette %}](/assets/images/help/codespaces/add-prebuilt-container-command.png) + !["Codespaces: Agregar archivos de configuración de contenedor de desarrollo..." en la {% data variables.product.prodname_vscode_command_palette %}](/assets/images/help/codespaces/add-prebuilt-container-command.png) diff --git a/translations/es-ES/data/reusables/community/issue-forms-beta.md b/translations/es-ES/data/reusables/community/issue-forms-beta.md index 9c912118dd..ed48b4378c 100644 --- a/translations/es-ES/data/reusables/community/issue-forms-beta.md +++ b/translations/es-ES/data/reusables/community/issue-forms-beta.md @@ -1,5 +1,5 @@ {% note %} -**Note:** Issue forms are currently in beta for public repositories on {% data variables.product.prodname_dotcom_the_website %} only. +**Nota:** Los formatos de propuesta se encuentran actualmente en beta para los repositorios públicos únicamente en {% data variables.product.prodname_dotcom_the_website %}. {% endnote %} diff --git a/translations/es-ES/data/reusables/dependabot/dependabot-alerts-beta.md b/translations/es-ES/data/reusables/dependabot/dependabot-alerts-beta.md index 4cfd65386a..3af11899ae 100644 --- a/translations/es-ES/data/reusables/dependabot/dependabot-alerts-beta.md +++ b/translations/es-ES/data/reusables/dependabot/dependabot-alerts-beta.md @@ -1,7 +1,7 @@ {% ifversion ghae-issue-4864 %} {% note %} -**Note:** {% data variables.product.prodname_dependabot_alerts %} is currently in beta and is subject to change. +**Nota:** {% data variables.product.prodname_dependabot_alerts %} se encuentra acutalmente en beta y está sujeto a cambios. {% endnote %} {% endif %} diff --git a/translations/es-ES/data/reusables/dependabot/enterprise-enable-dependabot.md b/translations/es-ES/data/reusables/dependabot/enterprise-enable-dependabot.md index f3d533df73..39c7c44d7f 100644 --- a/translations/es-ES/data/reusables/dependabot/enterprise-enable-dependabot.md +++ b/translations/es-ES/data/reusables/dependabot/enterprise-enable-dependabot.md @@ -2,7 +2,7 @@ {% note %} -**Note:** Your site administrator must set up {% data variables.product.prodname_dependabot %} updates for {% data variables.product.product_location %} before you can use this feature. For more information, see "[Setting up {% data variables.product.prodname_dependabot %} security and version updates on your enterprise](/admin/github-actions/enabling-github-actions-for-github-enterprise-server/setting-up-dependabot-updates)." +**Nota:** Tu administrador de sitio debe configurar el {% data variables.product.prodname_dependabot %} para {% data variables.product.product_location %} antes de que puedas utilizar esta característica. For more information, see "[Setting up {% data variables.product.prodname_dependabot %} security and version updates on your enterprise](/admin/github-actions/enabling-github-actions-for-github-enterprise-server/setting-up-dependabot-updates)." {% endnote %} diff --git a/translations/es-ES/data/reusables/docs/you-can-read-docs-for-your-product.md b/translations/es-ES/data/reusables/docs/you-can-read-docs-for-your-product.md new file mode 100644 index 0000000000..de3479d6c8 --- /dev/null +++ b/translations/es-ES/data/reusables/docs/you-can-read-docs-for-your-product.md @@ -0,0 +1 @@ +You can read documentation that reflects the features available to you on {% data variables.product.product_name %}. Para obtener más información, consulta la sección "[Acerca de las versiones de {% data variables.product.prodname_docs %}](/get-started/learning-about-github/about-versions-of-github-docs)". diff --git a/translations/es-ES/data/reusables/dotcom_billing/codespaces-report-download.md b/translations/es-ES/data/reusables/dotcom_billing/codespaces-report-download.md new file mode 100644 index 0000000000..2acf6eddbf --- /dev/null +++ b/translations/es-ES/data/reusables/dotcom_billing/codespaces-report-download.md @@ -0,0 +1 @@ +1. Optionally, next to "Usage this month", click **Get usage report** to email a CSV report of storage use for {% data variables.product.prodname_codespaces %} to the account's primary email address. ![Descargar reporte en CSV](/assets/images/help/codespaces/usage-report-download.png) \ No newline at end of file diff --git a/translations/es-ES/data/reusables/enterprise-accounts/dormant-user-activity-threshold.md b/translations/es-ES/data/reusables/enterprise-accounts/dormant-user-activity-threshold.md index b78499d214..534d9c25e0 100644 --- a/translations/es-ES/data/reusables/enterprise-accounts/dormant-user-activity-threshold.md +++ b/translations/es-ES/data/reusables/enterprise-accounts/dormant-user-activity-threshold.md @@ -1 +1 @@ -A user account is considered to be dormant if it has not been active for {% ifversion ghec %}90 days{% else %}at least a month{% endif %}.{% ifversion ghes %} You may choose to suspend dormant users to release user licenses.{% endif %} +{% ifversion not ghec%}By default, a{% else %}A{% endif %} user account is considered to be dormant if it has not been active for 90 days. {% ifversion not ghec %}You can configure the length of time a user must be inactive to be considered dormant{% ifversion ghes%} and choose to suspend dormant users to release user licenses{% endif %}.{% endif %} diff --git a/translations/es-ES/data/reusables/enterprise-accounts/invite-organization.md b/translations/es-ES/data/reusables/enterprise-accounts/invite-organization.md index d91e0fde90..610f6ae535 100644 --- a/translations/es-ES/data/reusables/enterprise-accounts/invite-organization.md +++ b/translations/es-ES/data/reusables/enterprise-accounts/invite-organization.md @@ -1 +1 @@ -Enterprise account owners can invite existing organization accounts to join their enterprise. Para obtener más información, consulta la sección "[Invitar a una organización para que se una a su cuenta empresarial](/enterprise-cloud@latest/admin/user-management/managing-organizations-in-your-enterprise/adding-organizations-to-your-enterprise#inviting-an-organization-to-join-your-enterprise-account)". +Los propietarios de cuentas empresariales pueden invitar a cuentas organizacionales existentes para que se unan a su empresa. Para obtener más información, consulta la sección "[Invitar a una organización para que se una a su cuenta empresarial](/enterprise-cloud@latest/admin/user-management/managing-organizations-in-your-enterprise/adding-organizations-to-your-enterprise#inviting-an-organization-to-join-your-enterprise-account)". diff --git a/translations/es-ES/data/reusables/enterprise/ghec-cta-button.md b/translations/es-ES/data/reusables/enterprise/ghec-cta-button.md index c290f59900..f68e8b253e 100644 --- a/translations/es-ES/data/reusables/enterprise/ghec-cta-button.md +++ b/translations/es-ES/data/reusables/enterprise/ghec-cta-button.md @@ -1 +1 @@ -Try {% data variables.product.prodname_ghe_cloud %} for free +Intenta usar {% data variables.product.prodname_ghe_cloud %} gratis diff --git a/translations/es-ES/data/reusables/enterprise/upgrade-ghes-for-features.md b/translations/es-ES/data/reusables/enterprise/upgrade-ghes-for-features.md index fb2c9a733e..647e407c1b 100644 --- a/translations/es-ES/data/reusables/enterprise/upgrade-ghes-for-features.md +++ b/translations/es-ES/data/reusables/enterprise/upgrade-ghes-for-features.md @@ -1,5 +1,5 @@ {% note %} -**Note:** Features such as {% data variables.product.prodname_actions %}, {% data variables.product.prodname_registry %}, {% data variables.product.prodname_mobile %} and {% data variables.product.prodname_GH_advanced_security %} are available on {% data variables.product.prodname_ghe_server %} 3.0 or higher. We highly recommend upgrading to 3.0 or later releases to take advantage of critical security updates, bug fixes and feature enhancements. +**Nota:** Las características tales como {% data variables.product.prodname_actions %}, {% data variables.product.prodname_registry %}, {% data variables.product.prodname_mobile %} y {% data variables.product.prodname_GH_advanced_security %} se encuentran disponibles en {% data variables.product.prodname_ghe_server %} 3.0 o superior. We highly recommend upgrading to 3.0 or later releases to take advantage of critical security updates, bug fixes and feature enhancements. {% endnote %} \ No newline at end of file diff --git a/translations/es-ES/data/reusables/enterprise_migrations/locking-repositories.md b/translations/es-ES/data/reusables/enterprise_migrations/locking-repositories.md index 796e25e84d..2dbf474329 100644 --- a/translations/es-ES/data/reusables/enterprise_migrations/locking-repositories.md +++ b/translations/es-ES/data/reusables/enterprise_migrations/locking-repositories.md @@ -1,6 +1,6 @@ {% tip %} -**Nota:** El bloquear un repositorio previene todo acceso de lectura y escritura al repositorio. No puedes asociar equipos o colaboradores nuevos con un repositorio bloqueado. +**Nota:** El bloquear un repositorio impedirá todos los accesos de escritura al mismo. No puedes asociar equipos o colaboradores nuevos con un repositorio bloqueado. Si estás llevando a cabo una ejecución de prueba, no necesitas bloquear el repositorio. Cuando migras los datos desde un repositorio que está en uso, {% data variables.product.company_short %} recomienda fuertemente que lo bloquees. Para obtener más información, consulta "[Acerca de las migraciones](/enterprise/admin/migrations/about-migrations#types-of-migrations)". diff --git a/translations/es-ES/data/reusables/gated-features/advanced-security.md b/translations/es-ES/data/reusables/gated-features/advanced-security.md index a8a075f2fe..54ac750d4b 100644 --- a/translations/es-ES/data/reusables/gated-features/advanced-security.md +++ b/translations/es-ES/data/reusables/gated-features/advanced-security.md @@ -1 +1 @@ -{% data variables.product.prodname_GH_advanced_security %} is a set of security features designed to make enterprise code more secure. It is available for {% data variables.product.prodname_ghe_server %} 3.0 or higher, {% data variables.product.prodname_ghe_cloud %}, and open source repositories. To learn more about the features included in {% data variables.product.prodname_GH_advanced_security %}, see "[About {% data variables.product.prodname_GH_advanced_security %}](/get-started/learning-about-github/about-github-advanced-security)." +{% data variables.product.prodname_GH_advanced_security %} is a set of security features designed to make enterprise code more secure. It is available for {% data variables.product.prodname_ghe_server %} 3.0 or higher, {% data variables.product.prodname_ghe_cloud %}, and open source repositories. Para aprender más sobre las características que se incluyen en la {% data variables.product.prodname_GH_advanced_security %}, consulta la sección "[Acerca del {% data variables.product.prodname_GH_advanced_security %}](/get-started/learning-about-github/about-github-advanced-security)". diff --git a/translations/es-ES/data/reusables/gated-features/dependency-review.md b/translations/es-ES/data/reusables/gated-features/dependency-review.md index 1b3fc0f8f3..c03d5c7c42 100644 --- a/translations/es-ES/data/reusables/gated-features/dependency-review.md +++ b/translations/es-ES/data/reusables/gated-features/dependency-review.md @@ -1,3 +1,3 @@ -{% ifversion fpt or ghec %}Dependency review is available for all public repositories, as well as well as private repositories owned by organizations where {% data variables.product.prodname_GH_advanced_security %} is enabled.{% endif %} +{% ifversion fpt or ghec %}La revisión de dependencias se encuentra disponible para todos los repositorios públicos, así como para los repositorios privados que pertenezcan a organizaciones en donde se encuentre habilitada la {% data variables.product.prodname_GH_advanced_security %}.{% endif %} {% ifversion ghes > 3.1 %}La revisión de dependencias se encuentra disponible para los repositorios que pertenecen a las organizaciones en donde se encuentra habilitada la {% data variables.product.prodname_GH_advanced_security %}. {% endif %} {% data reusables.advanced-security.more-info-ghas %} diff --git a/translations/es-ES/data/reusables/getting-started/api.md b/translations/es-ES/data/reusables/getting-started/api.md index 443c98a14c..51a1a737ec 100644 --- a/translations/es-ES/data/reusables/getting-started/api.md +++ b/translations/es-ES/data/reusables/getting-started/api.md @@ -1 +1 @@ -There are two versions of the {% ifversion fpt or ghec %}{% data variables.product.prodname_dotcom %}{% else %}{% data variables.product.product_name %}{% endif %} API: the REST API and the GraphQL API. You can use the {% ifversion fpt or ghec %}{% data variables.product.prodname_dotcom %}{% else %}{% data variables.product.product_name %}{% endif %} APIs to automate common tasks, [back up your data](/github/creating-cloning-and-archiving-repositories/archiving-a-github-repository/backing-up-a-repository), or {% ifversion fpt or ghec %}[create integrations](/github/customizing-your-github-workflow/exploring-integrations/about-integrations){% else %}create integrations{% endif %} that extend {% data variables.product.product_name %}. Para obtener más información, consulta la sección "[Acerca de las API de {% data variables.product.prodname_dotcom %}](/developers/overview/about-githubs-apis)". +Hay dos versiones de la API de {% ifversion fpt or ghec %}{% data variables.product.prodname_dotcom %}{% else %}{% data variables.product.product_name %}{% endif %}: la API de REST y la API de GraphQL. Puedes utilizar las API de {% ifversion fpt or ghec %}{% data variables.product.prodname_dotcom %}{% else %}{% data variables.product.product_name %}{% endif %} para automatizar las tareas comunes, [respaldar tus datos](/github/creating-cloning-and-archiving-repositories/archiving-a-github-repository/backing-up-a-repository) o {% ifversion fpt or ghec %}[crear integraciones](/github/customizing-your-github-workflow/exploring-integrations/about-integrations){% else %}crear integraciones{% endif %} que extiendan a {% data variables.product.product_name %}. Para obtener más información, consulta la sección "[Acerca de las API de {% data variables.product.prodname_dotcom %}](/developers/overview/about-githubs-apis)". diff --git a/translations/es-ES/data/reusables/getting-started/customizing-and-automating.md b/translations/es-ES/data/reusables/getting-started/customizing-and-automating.md index 7d36893262..f7402575c6 100644 --- a/translations/es-ES/data/reusables/getting-started/customizing-and-automating.md +++ b/translations/es-ES/data/reusables/getting-started/customizing-and-automating.md @@ -1 +1 @@ -You can use tools from the {% data variables.product.prodname_marketplace %}, the {% ifversion fpt or ghec %}{% data variables.product.prodname_dotcom %}{% else %}{% data variables.product.product_name %}{% endif %} API, and existing {% data variables.product.product_name %} features to customize and automate your work. +Puedes utilizar las herramientas del {% data variables.product.prodname_marketplace %}, la API de {% ifversion fpt or ghec %}{% data variables.product.prodname_dotcom %}{% else %}{% data variables.product.product_name %}{% endif %} y características existentes de {% data variables.product.product_name %} para personalizar y automatizar tu trabajo. diff --git a/translations/es-ES/data/reusables/getting-started/giving-access-to-repositories-projects-apps.md b/translations/es-ES/data/reusables/getting-started/giving-access-to-repositories-projects-apps.md index 38512d331a..b692de7746 100644 --- a/translations/es-ES/data/reusables/getting-started/giving-access-to-repositories-projects-apps.md +++ b/translations/es-ES/data/reusables/getting-started/giving-access-to-repositories-projects-apps.md @@ -1,3 +1,3 @@ -You can give organization members, teams, and outside collaborators different levels of access to repositories owned by your organization with repository roles. Para obtener más información, consulta la sección "[Roles de repositorio para una organización](/organizations/managing-access-to-your-organizations-repositories/repository-roles-for-an-organization)". +Con los roles de repositorio, puedes otorgar diferentes niveles de acceso a los miembros de la organización, equipos y colaboradores externos para los repositorios que pertenezcan a tu organización. Para obtener más información, consulta la sección "[Roles de repositorio para una organización](/organizations/managing-access-to-your-organizations-repositories/repository-roles-for-an-organization)". También puedes personalizar el acceso a los tableros de proyecto de tu organización y permitir que miembros individuales de esta administren las {% data variables.product.prodname_github_apps %} de ella. Para obtener más información, consulta las secciones "[Administrar el acceso a los tableros de proyecto de tu organización](/organizations/managing-access-to-your-organizations-project-boards)" y "[Administrar el acceso a las apps de tu organización](/organizations/managing-access-to-your-organizations-apps)". diff --git a/translations/es-ES/data/reusables/getting-started/reviewing-org-audit-log-and-integrations.md b/translations/es-ES/data/reusables/getting-started/reviewing-org-audit-log-and-integrations.md index 3b7d1756ca..7073f03c49 100644 --- a/translations/es-ES/data/reusables/getting-started/reviewing-org-audit-log-and-integrations.md +++ b/translations/es-ES/data/reusables/getting-started/reviewing-org-audit-log-and-integrations.md @@ -1,3 +1,3 @@ -The audit log for your organization allows you, as an organization owner, to review the actions performed by members of the organization within the current month and previous six months. Para obtener más información, consulta la sección "[Revisar la bitácora de auditoría de tu organización](/organizations/keeping-your-organization-secure/reviewing-the-audit-log-for-your-organization)". +La bitácora de auditoría de tu organización te permite, como propietario de la organización, revisar las acciones que llevan a cabo los miembros de la organización dentro del mes actual y los últimos seis meses. Para obtener más información, consulta la sección "[Revisar la bitácora de auditoría de tu organización](/organizations/keeping-your-organization-secure/reviewing-the-audit-log-for-your-organization)". También puedes revisar y configurar los niveles de permiso de las integraciones instaladas en tu organización. Para obtener más información, consulta la sección "[Revisar las integraciones autorizadas de tu organización](/organizations/keeping-your-organization-secure/reviewing-your-organizations-installed-integrations)". diff --git a/translations/es-ES/data/reusables/github-actions/example-github-runner.md b/translations/es-ES/data/reusables/github-actions/example-github-runner.md index 84a1b53787..b83c4eb5f6 100644 --- a/translations/es-ES/data/reusables/github-actions/example-github-runner.md +++ b/translations/es-ES/data/reusables/github-actions/example-github-runner.md @@ -1,6 +1,6 @@ ### Ejecución en un sistema operativo diferente -La plantilla inicial de flujo de trabajo configura los jobs para que se ejecuten en Linux, utilizando los ejecutores `ubuntu-latest` hospedados en {% data variables.product.prodname_dotcom %}. Puedes cambiar la clave `runs-on` para ejecutar tus jobs en un sistema operativo diferente. Por ejemplo, puedes utilizar los ejecutores de Windows hospedados en {% data variables.product.prodname_dotcom %}. +El flujo de trabajo inicial configura los jobs para que se ejecuten en Linux, utilizando los ejecutores `ubuntu-latest` hospedados en {% data variables.product.prodname_dotcom %}. Puedes cambiar la clave `runs-on` para ejecutar tus jobs en un sistema operativo diferente. Por ejemplo, puedes utilizar los ejecutores de Windows hospedados en {% data variables.product.prodname_dotcom %}. {% raw %} ```yaml diff --git a/translations/es-ES/data/reusables/github-actions/java-jvm-architecture.md b/translations/es-ES/data/reusables/github-actions/java-jvm-architecture.md index 8a5ed8d965..a37044142e 100644 --- a/translations/es-ES/data/reusables/github-actions/java-jvm-architecture.md +++ b/translations/es-ES/data/reusables/github-actions/java-jvm-architecture.md @@ -1,6 +1,6 @@ ### Especificar la versión y arquitectura de JVM -La plantilla inicial de flujo de trabajo configura el `PATH` para que contenga OpenJDK 8 para las plataformas x64. Si quieres utilizar una versión diferente de Java, o enfocarte en una arquitectura diferente (`x64` o `x86`), puedes utilizar la acción `setup-java` para elegir un ambiente de ejecución de Java diferente. +El flujo de trabajo inicial configura el `PATH` para contener el OpenJDK 8 para la plataforma x64. Si quieres utilizar una versión diferente de Java, o enfocarte en una arquitectura diferente (`x64` o `x86`), puedes utilizar la acción `setup-java` para elegir un ambiente de ejecución de Java diferente. Por ejemplo, para utilizar la versión 11 de JDK que se proporciona con Adoptium para la plataforma x64, puedes utilizar la acción `setup-java` y configurar los parámetros `java-version`, `distribution` y `architecture` en `'11'`, `'adopt'` y `x64`. diff --git a/translations/es-ES/data/reusables/github-actions/self-hosted-runner-groups-navigate-to-repo-org-enterprise.md b/translations/es-ES/data/reusables/github-actions/self-hosted-runner-groups-navigate-to-repo-org-enterprise.md index 1d0b00ba07..711516a636 100644 --- a/translations/es-ES/data/reusables/github-actions/self-hosted-runner-groups-navigate-to-repo-org-enterprise.md +++ b/translations/es-ES/data/reusables/github-actions/self-hosted-runner-groups-navigate-to-repo-org-enterprise.md @@ -1,17 +1,17 @@ {% ifversion fpt %} -1. Navigate to the main page of the repository or organization where your self-hosted runner groups are located. -2. Click {% octicon "gear" aria-label="The Settings gear" %} **Settings**. +1. Navega a la página principal del repositorio u organización en donde se ubican tus grupos de ejecutores auto-hospedados. +2. Haz clic en {% octicon "gear" aria-label="The Settings gear" %} **Ajustes**. 3. En la barra lateral izquierda, da clic en **Acciones**. -4. Click **Runner groups**. +4. Haz clic en **Grupos de ejecutores**. {% elsif ghec or ghes or ghae %} 1. Navega a donde se ubiquen tus grupos de ejecutores auto-hospedados: - * **In an organization**: navigate to the main page and click {% octicon "gear" aria-label="The Settings gear" %} **Settings**.{% ifversion ghec %} - * **If using an enterprise account**: navigate to your enterprise account by clicking your profile photo in the top-right corner of {% data variables.product.prodname_dotcom_the_website %}, then clicking **Your enterprises**, then clicking the enterprise.{% elsif ghes or ghae %} + * **En una organización**: navega a la página principal y da clic en {% octicon "gear" aria-label="The Settings gear" %} **Configuración**.{% ifversion ghec %} + * **Si utilizas una cuenta empresarial**: navega a ella haciendo clic en tu foto de perfil en la esquina superior derecha de {% data variables.product.prodname_dotcom_the_website %} y luego haz clic en **Tu empresa** y, después, en la empresa.{% elsif ghes or ghae %} * **Si utilizas un ejecutor a nivel de empresa**: 1. En la esquina superior derecha de cualquier página, da clic en {% octicon "rocket" aria-label="The rocket ship" %}. 2. En la barra lateral izquierda, da clic en **Resumen empresarial**. - 3. In the enterprise sidebar, click {% octicon "law" aria-label="The law icon" %} **Policies**.{% endif %} + 3. En la barra lateral de la empresa, haz clic en {% octicon "law" aria-label="The law icon" %} **Políticas**.{% endif %} 2. Navega a los ajustes de los "Grupos de ejecutores": - * **In an organization**: Click **Actions** in the left sidebar{% ifversion fpt or ghec %}, then click **Runner groups** below it{% endif %}.{% ifversion ghec or ghes or ghae %} + * **En una organización**: Haz clic en **Acciones** en la barra lateral izquierda{% ifversion fpt or ghec %} y luego en **Grupos de ejecutores** debajo de ella{% endif %}.{% ifversion ghec or ghes or ghae %} * {% ifversion ghec %}**Si estás utilizand una cuenta empresarial**:{% elsif ghes or ghae %}**Si estás utilizando un ejecutor a nivel empresarial**:{% endif %} Haz clic en **Acciones** debajo de "{% octicon "law" aria-label="The law icon" %} Políticas"{% ifversion ghec %}, y luego en la pestaña de **Grupos de ejecutores** {% endif %}.{% endif %} {% endif %} diff --git a/translations/es-ES/data/reusables/github-actions/self-hosted-runner-navigate-to-org-enterprise.md b/translations/es-ES/data/reusables/github-actions/self-hosted-runner-navigate-to-org-enterprise.md index 65ded479f7..8aabc3e5fd 100644 --- a/translations/es-ES/data/reusables/github-actions/self-hosted-runner-navigate-to-org-enterprise.md +++ b/translations/es-ES/data/reusables/github-actions/self-hosted-runner-navigate-to-org-enterprise.md @@ -1,12 +1,12 @@ {% ifversion fpt %} 1. Navigate to the main page of the organization where your self-hosted runner group is registered. -2. Click {% octicon "gear" aria-label="The Settings gear" %} **Settings**. +2. Haz clic en {% octicon "gear" aria-label="The Settings gear" %} **Ajustes**. 3. En la barra lateral izquierda, da clic en **Acciones**. 4. Click **Runners**. {% elsif ghec or ghes or ghae %} 1. Navega a donde está registrado tu ejecutor auto-hospedado: * **En una organización**: navega a la página principal y da clic en {% octicon "gear" aria-label="The Settings gear" %} **Configuración**. - * {% ifversion ghec %}**If using an enterprise account**: navigate to your enterprise account by clicking your profile photo in the top-right corner of {% data variables.product.prodname_dotcom_the_website %}, then clicking **Your enterprises**, then clicking the enterprise.{% elsif ghes or ghae %}**If using an enterprise-level runner**: + * {% ifversion ghec %}**Si utilizas una cuenta empresarial**: navega a ella haciendo clic en tu foto de perfil en la esquina superior derecha de {% data variables.product.prodname_dotcom_the_website %} y luego haz clic en **Tu empresa** y, después, en la empresa.{% elsif ghes or ghae %}**Si utilizas un ejecutor a nivel de empresa**: 1. En la esquina superior derecha de cualquier página, da clic en {% octicon "rocket" aria-label="The rocket ship" %}. 1. En la barra lateral izquierda, da clic en **Resumen empresarial**. diff --git a/translations/es-ES/data/reusables/github-actions/self-hosted-runner-navigate-to-repo-org-enterprise.md b/translations/es-ES/data/reusables/github-actions/self-hosted-runner-navigate-to-repo-org-enterprise.md index 08b5ea7d4c..09fdce0c3d 100644 --- a/translations/es-ES/data/reusables/github-actions/self-hosted-runner-navigate-to-repo-org-enterprise.md +++ b/translations/es-ES/data/reusables/github-actions/self-hosted-runner-navigate-to-repo-org-enterprise.md @@ -1,16 +1,16 @@ {% ifversion fpt %} 1. Navega a la página principal de la organización o repositorio en donde se registró tu grupo de ejecutores auto-hospedados. -2. Click {% octicon "gear" aria-label="The Settings gear" %} **Settings**. +2. Haz clic en {% octicon "gear" aria-label="The Settings gear" %} **Ajustes**. 3. En la barra lateral izquierda, da clic en **Acciones**. 4. Click **Runners**. {% elsif ghec or ghes or ghae %} 1. Navega a donde está registrado tu ejecutor auto-hospedado: * **En un repositorio organizacional**: navega a la página principal y da clic en {% octicon "gear" aria-label="The Settings gear" %} **Configuración**. {% ifversion ghec %} - * **If using an enterprise account**: navigate to your enterprise account by clicking your profile photo in the top-right corner of {% data variables.product.prodname_dotcom_the_website %}, then clicking **Your enterprises**, then clicking the enterprise.{% elsif ghes or ghae %} + * **Si utilizas una cuenta empresarial**: navega a ella haciendo clic en tu foto de perfil en la esquina superior derecha de {% data variables.product.prodname_dotcom_the_website %} y luego haz clic en **Tu empresa** y, después, en la empresa.{% elsif ghes or ghae %} * **Si utilizas un ejecutor a nivel de empresa**: 1. En la esquina superior derecha de cualquier página, da clic en {% octicon "rocket" aria-label="The rocket ship" %}. 2. En la barra lateral izquierda, da clic en **Resumen empresarial**. - 3. In the enterprise sidebar, click {% octicon "law" aria-label="The law icon" %} **Policies**.{% endif %} + 3. En la barra lateral de la empresa, haz clic en {% octicon "law" aria-label="The law icon" %} **Políticas**.{% endif %} 2. Navega a los ajustes de {% data variables.product.prodname_actions %}: * **En una organización o repositorio**: Haz clic **Actions** en la barra lateral izquierda{% ifversion fpt or ghes > 3.1 or ghae or ghec %} y luego en **Ejecutores**{% endif %}.{% ifversion ghec or ghae or ghes %} * {% ifversion ghec %}**Si estás utilizand una cuenta empresarial**:{% elsif ghes or ghae %}**Si estás utilizando un ejecutor a nivel empresarial**:{% endif %} Haz clic en **Acciones** debajo de "{% octicon "law" aria-label="The law icon" %} Políticas"{% ifversion ghes > 3.1 or ghae or ghec %}, y luego en la pestaña de **Ejecutores** {% endif %}.{% endif %} diff --git a/translations/es-ES/data/reusables/github-ae/saml-idp-table.md b/translations/es-ES/data/reusables/github-ae/saml-idp-table.md index db04f96ef7..ae87a9829c 100644 --- a/translations/es-ES/data/reusables/github-ae/saml-idp-table.md +++ b/translations/es-ES/data/reusables/github-ae/saml-idp-table.md @@ -1,4 +1,4 @@ -| IdP | SAML | Aprovisionamiento de usuarios | Team mapping | -| ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| IdP | SAML | Aprovisionamiento de usuarios | Team mapping | +| ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | | [Azure Active Directory (Azure AD)](/admin/authentication/configuring-authentication-and-provisioning-with-your-identity-provider/configuring-authentication-and-provisioning-for-your-enterprise-using-azure-ad) | {% octicon "check-circle-fill" aria-label="The check icon" %} | {% octicon "check-circle-fill" aria-label="The check icon" %} | {% octicon "check-circle-fill" aria-label="The check icon" %} -| [Okta](/admin/authentication/configuring-authentication-and-provisioning-with-your-identity-provider/configuring-authentication-and-provisioning-for-your-enterprise-using-okta) | {% octicon "check-circle-fill" aria-label="The check icon" %}[Beta](/admin/authentication/configuring-authentication-and-provisioning-with-your-identity-provider/configuring-authentication-and-provisioning-for-your-enterprise-using-okta) | {% octicon "check-circle-fill" aria-label="The check icon" %}[Beta](/admin/authentication/configuring-authentication-and-provisioning-with-your-identity-provider/configuring-authentication-and-provisioning-for-your-enterprise-using-okta) | {% octicon "check-circle-fill" aria-label= "The check icon" %}[Beta](/admin/authentication/configuring-authentication-and-provisioning-with-your-identity-provider/mapping-okta-groups-to-teams) | \ No newline at end of file +| [Okta](/admin/authentication/configuring-authentication-and-provisioning-with-your-identity-provider/configuring-authentication-and-provisioning-for-your-enterprise-using-okta) | {% octicon "check-circle-fill" aria-label="The check icon" %}[Beta](/admin/authentication/configuring-authentication-and-provisioning-with-your-identity-provider/configuring-authentication-and-provisioning-for-your-enterprise-using-okta) | {% octicon "check-circle-fill" aria-label="The check icon" %}[Beta](/admin/authentication/configuring-authentication-and-provisioning-with-your-identity-provider/configuring-authentication-and-provisioning-for-your-enterprise-using-okta) | {% octicon "check-circle-fill" aria-label= "The check icon" %} [Beta](/admin/authentication/configuring-authentication-and-provisioning-with-your-identity-provider/mapping-okta-groups-to-teams) | \ No newline at end of file diff --git a/translations/es-ES/data/reusables/identity-and-permissions/team-sync-okta-requirements.md b/translations/es-ES/data/reusables/identity-and-permissions/team-sync-okta-requirements.md index fa1a0b18f6..e962be5039 100644 --- a/translations/es-ES/data/reusables/identity-and-permissions/team-sync-okta-requirements.md +++ b/translations/es-ES/data/reusables/identity-and-permissions/team-sync-okta-requirements.md @@ -2,4 +2,4 @@ Antes de habilitar la sincronización de equipos para Okta, tú o tu administrad - Configurar la integración con SAML, SSO y SCIM en tu organización utilizando Okta. Para obtener más información, consulta la sección "[Configurar el inicio de sesión único de SAML y SCIM utilizando Okta](/organizations/managing-saml-single-sign-on-for-your-organization/configuring-saml-single-sign-on-and-scim-using-okta)". - Proporcionar la URL del inquilino para tu instancia de Okta. -- Generar un token de SSWS válido con permisos administrativos de solo lectura para tu instalación de Okta como usuario de servicio. Para obtener más información, consulta la sección [Crear el token](https://developer.okta.com/docs/guides/create-an-api-token/create-the-token/) y [Usuarios de servicio](https://help.okta.com/en/prod/Content/Topics/Adv_Server_Access/docs/service-users.htm) en la documentación de Okta. +- Generar un token de SSWS válido con permisos administrativos de solo lectura para tu instalación de Okta como usuario de servicio. Para obtener más información, consulta la sección [Crear el token](https://developer.okta.com/docs/guides/create-an-api-token/create-the-token/) y [Usuarios de servicio](https://help.okta.com/asa/en-us/Content/Topics/Adv_Server_Access/docs/service-users.htm) en la documentación de Okta. diff --git a/translations/es-ES/data/reusables/organizations/org-invite-scim.md b/translations/es-ES/data/reusables/organizations/org-invite-scim.md index b4f655a263..fcccf493ea 100644 --- a/translations/es-ES/data/reusables/organizations/org-invite-scim.md +++ b/translations/es-ES/data/reusables/organizations/org-invite-scim.md @@ -1 +1 @@ -Pending invitations will expire after 7 days, restoring any unclaimed licenses.{% ifversion ghec %} If an invitation is generated by your identity provider, the invitation will not expire.{% endif %} +Las invitaciones pendientes vencerán después de 7 días, restableciendo cualquier licencia sin reclamar.{% ifversion ghec %} Si tu proveedor de identidad genera una invitación, esta no vencerá.{% endif %} diff --git a/translations/es-ES/data/reusables/organizations/organization-plans.md b/translations/es-ES/data/reusables/organizations/organization-plans.md new file mode 100644 index 0000000000..7abfb32451 --- /dev/null +++ b/translations/es-ES/data/reusables/organizations/organization-plans.md @@ -0,0 +1,8 @@ +{% ifversion fpt or ghec %} +All organizations can own an unlimited number of public and private repositories. You can use organizations for free, with {% data variables.product.prodname_free_team %}, which includes limited features on private repositories. To get the full feature set on private repositories and additional features at the organization level, including SAML single sign-on and improved support coverage, you can upgrade to {% data variables.product.prodname_team %} or {% data variables.product.prodname_ghe_cloud %}. {% data reusables.gated-features.more-info %} + +Si utilizas {% data variables.product.prodname_ghe_cloud %}, tendrás la opción de comprar una licencia para {% data variables.product.prodname_GH_advanced_security %} y utilizar las características en los repositorios privados. {% data reusables.advanced-security.more-info-ghas %} + +{% ifversion fpt %} +{% data reusables.enterprise.link-to-ghec-trial %}{% endif %} +{% endif %} \ No newline at end of file diff --git a/translations/es-ES/data/reusables/organizations/organizations_include.md b/translations/es-ES/data/reusables/organizations/organizations_include.md index 78368e0a5b..10a27c137c 100644 --- a/translations/es-ES/data/reusables/organizations/organizations_include.md +++ b/translations/es-ES/data/reusables/organizations/organizations_include.md @@ -6,15 +6,4 @@ Las organizaciones incluyen: - La opción de [requerir que todos los miembros de la organización utilicen autenticación bifactorial](/articles/requiring-two-factor-authentication-in-your-organization){% endif %}{% ifversion fpt%} - La capacidad de [crear y administrar aulas con GitHub Classroom](/education/manage-coursework-with-github-classroom/teach-with-github-classroom/manage-classrooms){% endif %} -{% ifversion fpt or ghec %} -Puedes utilizar las organizaciones de forma gratuita con -{% data variables.product.prodname_free_team %}, el cual incluye colaboradores ilimitados en repositorios públicos ilimitados con características completas y repositorios privados ilimitados con características limitadas. - -Para encontrar características adicionales, incluyendo el inicio de sesión único de SAML y la cobertura de soporte mejorada, puedes mejorar a {% data variables.product.prodname_team %} o {% data variables.product.prodname_ghe_cloud %}. {% data reusables.gated-features.more-info %} - -Si utilizas {% data variables.product.prodname_ghe_cloud %}, tendrás la opción de comprar una licencia para {% data variables.product.prodname_GH_advanced_security %} y utilizar las características en los repositorios privados. {% data reusables.advanced-security.more-info-ghas %} - -{% ifversion fpt %} -{% data reusables.enterprise.link-to-ghec-trial %} -{% endif %} -{% endif %} +{% data reusables.organizations.organization-plans %} diff --git a/translations/es-ES/data/reusables/organizations/people.md b/translations/es-ES/data/reusables/organizations/people.md index b0b6076849..c224dbe558 100644 --- a/translations/es-ES/data/reusables/organizations/people.md +++ b/translations/es-ES/data/reusables/organizations/people.md @@ -1,5 +1,5 @@ 1. Debajo del nombre de tu organización, da clic en -{% octicon "organization" aria-label="The People icon" %} **Personas**. +{% octicon "person" aria-label="The Person icon" %} **Personas**. {% ifversion fpt or ghes > 3.2 or ghec %} ![Pestaña de las Personas](/assets/images/help/organizations/organization-people-tab-with-overview-tab.png) {% else %} diff --git a/translations/es-ES/data/reusables/pages/check-workflow-run.md b/translations/es-ES/data/reusables/pages/check-workflow-run.md new file mode 100644 index 0000000000..9a20b621d1 --- /dev/null +++ b/translations/es-ES/data/reusables/pages/check-workflow-run.md @@ -0,0 +1,8 @@ +{% ifversion fpt %} +1. If your {% data variables.product.prodname_pages %} site is built from a public repository, it is built and deployed with a {% data variables.product.prodname_actions %} workflow run unless you've configured your {% data variables.product.prodname_pages %} site to use a different CI tool. For more information about how to view the workflow status, see "[Viewing workflow run history](/actions/monitoring-and-troubleshooting-workflows/viewing-workflow-run-history)." + +{% note %} + +{% data reusables.pages.pages-builds-with-github-actions-public-beta %} + +{% endnote %}{% endif %} \ No newline at end of file diff --git a/translations/es-ES/data/reusables/pages/pages-builds-with-github-actions-public-beta.md b/translations/es-ES/data/reusables/pages/pages-builds-with-github-actions-public-beta.md new file mode 100644 index 0000000000..68073a7756 --- /dev/null +++ b/translations/es-ES/data/reusables/pages/pages-builds-with-github-actions-public-beta.md @@ -0,0 +1,5 @@ +{% ifversion fpt %} + +**Note:** {% data variables.product.prodname_actions %} workflow runs for your {% data variables.product.prodname_pages %} sites are in public beta for public repositories and subject to change. {% data variables.product.prodname_actions %} workflow runs are free for public repositories. + +{% endif %} \ No newline at end of file diff --git a/translations/es-ES/data/reusables/pages/twenty-minutes-to-publish.md b/translations/es-ES/data/reusables/pages/twenty-minutes-to-publish.md index f3c3ce1680..75204fe320 100644 --- a/translations/es-ES/data/reusables/pages/twenty-minutes-to-publish.md +++ b/translations/es-ES/data/reusables/pages/twenty-minutes-to-publish.md @@ -1 +1 @@ -**Nota:** Es posible que tome hasta 20 minutos la publicación de los cambios en tu sitio luego de que subes los cambios a {% data variables.product.product_name %}. Si no ves los cambios reflejados en tu buscador después de una hora, consulta la sección "[Acerca de los errores de compilación de Jekyll para sitios de {% data variables.product.prodname_pages %}](/articles/about-jekyll-build-errors-for-github-pages-sites)". +**Nota:** Es posible que tome hasta 10 minutos la publicación de los cambios en tu sitio luego de que subes los cambios a {% data variables.product.product_name %}. Si no puedes ver reflejados los cambios de tu sitio de {% data variables.product.prodname_pages %} en tu buscador después de una hora, consulta la sección "[Acerca de los errores de compilación de Jekyll para los sitios de {% data variables.product.prodname_pages %}](/articles/about-jekyll-build-errors-for-github-pages-sites)". diff --git a/translations/es-ES/data/reusables/projects/open-command-palette.md b/translations/es-ES/data/reusables/projects/open-command-palette.md index f05cf15515..8fe6a78c68 100644 --- a/translations/es-ES/data/reusables/projects/open-command-palette.md +++ b/translations/es-ES/data/reusables/projects/open-command-palette.md @@ -1 +1 @@ -To open the project command palette, press `Ctrl+k` (Windows and Linux) or `Command+k` (Mac). +Para abrir la paleta de comandos del proyecto, presiona `Ctrl+k` (Windows y Linux) o `Command+k` (Mac). diff --git a/translations/es-ES/data/reusables/projects/projects-beta.md b/translations/es-ES/data/reusables/projects/projects-beta.md index 31aac9df38..3fce4d5f22 100644 --- a/translations/es-ES/data/reusables/projects/projects-beta.md +++ b/translations/es-ES/data/reusables/projects/projects-beta.md @@ -1,5 +1,5 @@ {% note %} -**Note:** Projects (beta) is currently in public beta and subject to change. +**Nota:** Los proyectos (beta) se encuentran en beta público y están sujetos a cambios. {% endnote %} diff --git a/translations/es-ES/data/reusables/repositories/actions-tab.md b/translations/es-ES/data/reusables/repositories/actions-tab.md index 6ad37f4246..c5020fe1d7 100644 --- a/translations/es-ES/data/reusables/repositories/actions-tab.md +++ b/translations/es-ES/data/reusables/repositories/actions-tab.md @@ -1 +1 @@ -1. Debajo del nombre de tu repositorio, da clic en **Acciones**. ![Pestaña de acciones en la navegación del repositorio principal](/assets/images/help/repository/actions-tab.png) +1. Debajo de tu nombre de repositorio, haz clic en {% octicon "play" aria-label="The Play icon" %} **Acciones**. ![Pestaña de acciones en la navegación del repositorio principal](/assets/images/help/repository/actions-tab.png) diff --git a/translations/es-ES/data/reusables/repositories/private_forks_inherit_permissions.md b/translations/es-ES/data/reusables/repositories/private_forks_inherit_permissions.md index e3fa887008..671d6cb0fd 100644 --- a/translations/es-ES/data/reusables/repositories/private_forks_inherit_permissions.md +++ b/translations/es-ES/data/reusables/repositories/private_forks_inherit_permissions.md @@ -1 +1 @@ -Las bifurcaciones privadas heredan la estructura de permisos del repositorio ascendente o padre. Por ejemplo, si el repositorio ascendente es privado y otorga acceso de lectura/escritura a un equipo, entonces el mismo equipo tendrá este tipo de acceso en cualquier bifurcación de dicho repositorio ascendente. Esto ayuda a que los propietarios de repositorios privados mantengan el control sobre su código. +Las bifurcaciones privadas heredan la estructura de permisos del repositorio ascendente o padre. Esto ayuda a que los propietarios de repositorios privados mantengan el control sobre su código. Por ejemplo, si el repositorio ascendente es privado y otorga acceso de lectura/escritura a un equipo, entonces el mismo equipo tendrá este tipo de acceso en cualquier bifurcación de dicho repositorio ascendente. Las bifurcaciones privadas solo heredarán los permisos de equipo (y no los iniciales). diff --git a/translations/es-ES/data/reusables/saml/external-group-audit-events.md b/translations/es-ES/data/reusables/saml/external-group-audit-events.md index 0d8ec42f8d..b849b82311 100644 --- a/translations/es-ES/data/reusables/saml/external-group-audit-events.md +++ b/translations/es-ES/data/reusables/saml/external-group-audit-events.md @@ -1,7 +1,7 @@ -| Acción | Descripción | -| -------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | -| `external_group.delete` | Triggered when your Okta group is deleted. For more information, see ["Mapping Okta groups to teams](/admin/authentication/configuring-authentication-and-provisioning-with-your-identity-provider/mapping-okta-groups-to-teams)." | -| `external_group.link` | Triggered when your Okta group is mapped to your {% data variables.product.prodname_ghe_managed %} team. For more information, see ["Mapping Okta groups to teams](/admin/authentication/configuring-authentication-and-provisioning-with-your-identity-provider/mapping-okta-groups-to-teams)." | -| `external_group.provision` | Triggered when an Okta group is mapped to your team on {% data variables.product.prodname_ghe_managed %}. For more information, see ["Mapping Okta groups to teams](/admin/authentication/configuring-authentication-and-provisioning-with-your-identity-provider/mapping-okta-groups-to-teams)." | -| `external_group.unlink` | Triggered when your Okta group is unmapped from your {% data variables.product.prodname_ghe_managed %} team. For more information, see ["Mapping Okta groups to teams](/admin/authentication/configuring-authentication-and-provisioning-with-your-identity-provider/mapping-okta-groups-to-teams)." | -| `external_group.update` | Triggered when your Okta group's settings are updated. For more information, see ["Mapping Okta groups to teams](/admin/authentication/configuring-authentication-and-provisioning-with-your-identity-provider/mapping-okta-groups-to-teams)." | \ No newline at end of file +| Acción | Descripción | +| -------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `external_group.delete` | Triggered when your Okta group is deleted. Para obtener más información, consulta la sección "[Mapear grupos de Okta en los equipos](/admin/authentication/configuring-authentication-and-provisioning-with-your-identity-provider/mapping-okta-groups-to-teams)". | +| `external_group.link` | Triggered when your Okta group is mapped to your {% data variables.product.prodname_ghe_managed %} team. Para obtener más información, consulta la sección "[Mapear grupos de Okta en los equipos](/admin/authentication/configuring-authentication-and-provisioning-with-your-identity-provider/mapping-okta-groups-to-teams)". | +| `external_group.provision` | Triggered when an Okta group is mapped to your team on {% data variables.product.prodname_ghe_managed %}. Para obtener más información, consulta la sección "[Mapear grupos de Okta en los equipos](/admin/authentication/configuring-authentication-and-provisioning-with-your-identity-provider/mapping-okta-groups-to-teams)". | +| `external_group.unlink` | Triggered when your Okta group is unmapped from your {% data variables.product.prodname_ghe_managed %} team. Para obtener más información, consulta la sección "[Mapear grupos de Okta en los equipos](/admin/authentication/configuring-authentication-and-provisioning-with-your-identity-provider/mapping-okta-groups-to-teams)". | +| `external_group.update` | Triggered when your Okta group's settings are updated. Para obtener más información, consulta la sección "[Mapear grupos de Okta en los equipos](/admin/authentication/configuring-authentication-and-provisioning-with-your-identity-provider/mapping-okta-groups-to-teams)". | \ No newline at end of file diff --git a/translations/es-ES/data/reusables/saml/external-identity-audit-events.md b/translations/es-ES/data/reusables/saml/external-identity-audit-events.md index 74a3811926..518fc88e56 100644 --- a/translations/es-ES/data/reusables/saml/external-identity-audit-events.md +++ b/translations/es-ES/data/reusables/saml/external-identity-audit-events.md @@ -1,5 +1,5 @@ -| Acción | Descripción | -| ------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| `external_identity.deprovision` | Triggered when a user is removed from your Okta group and is subsequently deprovisioned from {% data variables.product.prodname_ghe_managed %}. For more information, see ["Mapping Okta groups to teams](/admin/authentication/configuring-authentication-and-provisioning-with-your-identity-provider/mapping-okta-groups-to-teams)." | -| `external_identity.provision` | Triggered when an Okta user is added to your Okta group and is subsequently provisioned to the mapped team on {% data variables.product.prodname_ghe_managed %}. For more information, see ["Mapping Okta groups to teams](/admin/authentication/configuring-authentication-and-provisioning-with-your-identity-provider/mapping-okta-groups-to-teams)." | -| `external_identity.update` | Triggered when an Okta user's settings are updated. For more information, see ["Mapping Okta groups to teams](/admin/authentication/configuring-authentication-and-provisioning-with-your-identity-provider/mapping-okta-groups-to-teams)." | \ No newline at end of file +| Acción | Descripción | +| ------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | +| `external_identity.deprovision` | Triggered when a user is removed from your Okta group and is subsequently deprovisioned from {% data variables.product.prodname_ghe_managed %}. Para obtener más información, consulta la sección "[Mapear grupos de Okta en los equipos](/admin/authentication/configuring-authentication-and-provisioning-with-your-identity-provider/mapping-okta-groups-to-teams)". | +| `external_identity.provision` | Triggered when an Okta user is added to your Okta group and is subsequently provisioned to the mapped team on {% data variables.product.prodname_ghe_managed %}. Para obtener más información, consulta la sección "[Mapear grupos de Okta en los equipos](/admin/authentication/configuring-authentication-and-provisioning-with-your-identity-provider/mapping-okta-groups-to-teams)". | +| `external_identity.update` | Triggered when an Okta user's settings are updated. Para obtener más información, consulta la sección "[Mapear grupos de Okta en los equipos](/admin/authentication/configuring-authentication-and-provisioning-with-your-identity-provider/mapping-okta-groups-to-teams)". | \ No newline at end of file diff --git a/translations/es-ES/data/reusables/saml/saml-accounts.md b/translations/es-ES/data/reusables/saml/saml-accounts.md index dbdc5fc671..e3b62f46b2 100644 --- a/translations/es-ES/data/reusables/saml/saml-accounts.md +++ b/translations/es-ES/data/reusables/saml/saml-accounts.md @@ -1 +1,7 @@ -If you configure SAML SSO, members of your organization will continue to log into their user accounts on {% data variables.product.prodname_dotcom_the_website %}. Cuando un miembro accede a recursos dentro de tu organización que utiliza el SSO de SAML, {% data variables.product.prodname_dotcom %} lo redirecciona a tu IdP para autenticarse. Después de autenticarse exitosamente, tu IdP redirecciona a este miembro a {% data variables.product.prodname_dotcom %}, en donde puede acceder a los recursos de tu organización. +Si configuras el SSO de SAML, los miembros de tu organización continuarán ingresando en sus cuentas de usuario en {% data variables.product.prodname_dotcom_the_website %}. Cuando un miembro acceda a los recursos que no sean públicos dentro de tu organización y que utilicen el SSO de SAML, {% data variables.product.prodname_dotcom %} lo redireccionará a tu IdP para autenticarse. Después de autenticarse exitosamente, tu IdP redirecciona a este miembro a {% data variables.product.prodname_dotcom %}, en donde puede acceder a los recursos de tu organización. + +{% note %} + +**Nota:** Los miembros organizacionales pueden realizar operaciones de lectura tales como ver, clonar y bifurcar los recursos públicos que pertenecen a tu organización, incluso si no tienen una sesión de SAML válida. + +{% endnote %} \ No newline at end of file diff --git a/translations/es-ES/data/reusables/secret-scanning/partner-secret-list-private-repo.md b/translations/es-ES/data/reusables/secret-scanning/partner-secret-list-private-repo.md index 3737b0057e..82f7d4aeb9 100644 --- a/translations/es-ES/data/reusables/secret-scanning/partner-secret-list-private-repo.md +++ b/translations/es-ES/data/reusables/secret-scanning/partner-secret-list-private-repo.md @@ -18,6 +18,8 @@ Asana | Token de Acceso Personal de Asana | asana_personal_access_token{% endif {%- ifversion fpt or ghec or ghes > 3.1 or ghae %} Atlassian | Token de Acceso Personal de Bitbucket Server | bitbucket_server_personal_access_token{% endif %} {%- ifversion fpt or ghec or ghes > 3.3 %} +Azure | Secreto de la Aplicación de Azure Active Directory | azure_active_directory_application_secret{% endif %} +{%- ifversion fpt or ghec or ghes > 3.3 %} Azure | Llave del Caché de Azure para Redis | azure_cache_for_redis_access_key{% endif %} Azure | Token de Acceso Personal de Azure DevOps | azure_devops_personal_access_token Azure | Token de SAS de Azure | azure_sas_token Azure | Certificado de Azure Service Management | azure_management_certificate {%- ifversion ghes < 3.4 or ghae or ghae-issue-5342 %} Azure | Secuencia de Conexión SQL de Azure | azure_sql_connection_string{% endif %} Azure | Llave de Cuenta de Almacenamiento de Azure | azure_storage_account_key @@ -86,7 +88,7 @@ Google | Secreto de Cliente OAuth de Google | google_oauth_client_secret{% endif {%- ifversion fpt or ghec or ghes > 3.3 %} Google | Token de Actualización OAuth a Google | google_oauth_refresh_token{% endif %} {%- ifversion fpt or ghec or ghes > 3.1 or ghae %} -Grafana | Llave de la API de Grafana | grafana_api_key{% endif %} Hashicorp Terraform | API del Token de Terraform Cloud / Enterprise | terraform_api_token Hubspot | Llave de la API de Hubspot | hubspot_api_key +Grafana | Llave de la API de Grafana | grafana_api_key{% endif %} HashiCorp | Token de la API de Terraform Cloud / Enterprise | terraform_api_token HashiCorp | Token de Lote de HashiCorp Vault | hashicorp_vault_batch_token HashiCorp | Toekn de Servicio de HashiCorp Vault | hashicorp_vault_service_token Hubspot | Llave de la API de Hubspot | hubspot_api_key {%- ifversion fpt or ghec or ghes > 3.1 or ghae %} Intercom | Token de Acceso a Intercom | intercom_access_token{% endif %} {%- ifversion fpt or ghec or ghes > 3.1 or ghae %} @@ -111,6 +113,10 @@ Mapbox | Token de Acceso Secreto a Mapbox | mapbox_secret_access_token{% endif % MessageBird | Llave de la API de MessageBird | messagebird_api_key{% endif %} {%- ifversion fpt or ghec or ghes > 3.1 or ghae %} Meta | Token de Acceso a Facebook | facebook_access_token{% endif %} +{%- ifversion fpt or ghec or ghes > 3.3 %} +Midtrans | Llave del Servidor Productivo de Midtrans | midtrans_production_server_key{% endif %} +{%- ifversion fpt or ghec or ghes > 3.3 %} +Midtrans | Llave del Servidor de Pruebas de Midtrans | midtrans_sandbox_server_key{% endif %} {%- ifversion fpt or ghec or ghes > 3.2 %} New Relic | Llave Personal de la API de New Relic | new_relic_personal_api_key{% endif %} {%- ifversion fpt or ghec or ghes > 3.2 %} @@ -184,3 +190,9 @@ Yandex | Llave de la API de Yandex.Cloud | yandex_cloud_api_key{% endif %} Yandex | Cookie IAM de Yandex.Cloud | yandex_cloud_iam_cookie{% endif %} {%- ifversion fpt or ghec or ghes > 3.3 %} Yandex | Token IAM de Yandex.Cloud | yandex_cloud_iam_token{% endif %} +{%- ifversion fpt or ghec or ghes > 3.3 %} +Yandex | Llave de la API de Yandex.Dictionary | yandex_dictionary_api_key{% endif %} +{%- ifversion fpt or ghec or ghes > 3.3 %} +Yandex | Llave de la API de Yandex.Predictor | yandex_predictor_api_key{% endif %} +{%- ifversion fpt or ghec or ghes > 3.3 %} +Yandex | Llave de la API de Yandex.Translate | yandex_translate_api_key{% endif %} diff --git a/translations/es-ES/data/reusables/user_settings/appearance-settings.md b/translations/es-ES/data/reusables/user_settings/appearance-settings.md new file mode 100644 index 0000000000..c9e1b3641a --- /dev/null +++ b/translations/es-ES/data/reusables/user_settings/appearance-settings.md @@ -0,0 +1,3 @@ +1. En la barra lateral de configuración de usuario, da clic en **Apariencia**. + + ![Pestaña de "Apariencia" en la barra lateral de configuración de usuario](/assets/images/help/settings/appearance-tab.png) \ No newline at end of file diff --git a/translations/es-ES/data/reusables/user_settings/enabling-fixed-width-fonts.md b/translations/es-ES/data/reusables/user_settings/enabling-fixed-width-fonts.md new file mode 100644 index 0000000000..b40ae916b5 --- /dev/null +++ b/translations/es-ES/data/reusables/user_settings/enabling-fixed-width-fonts.md @@ -0,0 +1,5 @@ +{% if fixed-width-font-gfm-fields %} + +If you are frequently editing code snippets and tables, you may benefit from enabling a fixed-width font in all comment fields on {% data variables.product.product_name %}. For more information, see "[Enabling fixed-width fonts in the editor](/github/writing-on-github/getting-started-with-writing-and-formatting-on-github/about-writing-and-formatting-on-github#enabling-fixed-width-fonts-in-the-editor)." + +{% endif %} \ No newline at end of file diff --git a/translations/es-ES/data/reusables/webhooks/commit_comment_properties.md b/translations/es-ES/data/reusables/webhooks/commit_comment_properties.md index 9fb6e5f95a..b431fa99b9 100644 --- a/translations/es-ES/data/reusables/webhooks/commit_comment_properties.md +++ b/translations/es-ES/data/reusables/webhooks/commit_comment_properties.md @@ -1,4 +1,4 @@ -| Clave | Tipo | Descripción | -| ------------ | ----------- | ------------------------------------------------------------------------------------------ | -| `Acción` | `secuencia` | La acción realizada. Puede ser `created`. | -| `comentario` | `objeto` | El recurso de [comentario de la confirmación](/rest/reference/repos#get-a-commit-comment). | +| Clave | Tipo | Descripción | +| ------------ | ----------- | -------------------------------------------------------------------------------------------- | +| `Acción` | `secuencia` | La acción realizada. Puede ser `created`. | +| `comentario` | `objeto` | El recurso de [comentario de la confirmación](/rest/reference/commits#get-a-commit-comment). | diff --git a/translations/es-ES/data/reusables/webhooks/deploy_key_properties.md b/translations/es-ES/data/reusables/webhooks/deploy_key_properties.md index 01db75f554..5b57a4d798 100644 --- a/translations/es-ES/data/reusables/webhooks/deploy_key_properties.md +++ b/translations/es-ES/data/reusables/webhooks/deploy_key_properties.md @@ -1,4 +1,4 @@ -| Clave | Tipo | Descripción | -| -------- | ----------- | ------------------------------------------------------------------ | -| `Acción` | `secuencia` | La acción realizada. Puede ser tanto `created` como `deleted`. | -| `clave` | `objeto` | El recurso [`deploy key`](/rest/reference/repos#get-a-deploy-key). | +| Clave | Tipo | Descripción | +| -------- | ----------- | ------------------------------------------------------------------------ | +| `Acción` | `secuencia` | La acción realizada. Puede ser tanto `created` como `deleted`. | +| `clave` | `objeto` | El recurso [`deploy key`](/rest/reference/deployments#get-a-deploy-key). | diff --git a/translations/es-ES/data/reusables/webhooks/deployment_short_desc.md b/translations/es-ES/data/reusables/webhooks/deployment_short_desc.md index 3a24e63128..348d86c224 100644 --- a/translations/es-ES/data/reusables/webhooks/deployment_short_desc.md +++ b/translations/es-ES/data/reusables/webhooks/deployment_short_desc.md @@ -1 +1 @@ -Se crea un despliegue. {% data reusables.webhooks.action_type_desc %} Para obtener más información, consulta la API de REST de "[despliegue](/rest/reference/repos#list-deployments)". +Se crea un despliegue. {% data reusables.webhooks.action_type_desc %} Para obtener más información, consulta la API de REST de "[despliegue](/rest/reference/deployments#list-deployments)". diff --git a/translations/es-ES/data/reusables/webhooks/deployment_status_short_desc.md b/translations/es-ES/data/reusables/webhooks/deployment_status_short_desc.md index 77c5609e15..35e7da20ec 100644 --- a/translations/es-ES/data/reusables/webhooks/deployment_status_short_desc.md +++ b/translations/es-ES/data/reusables/webhooks/deployment_status_short_desc.md @@ -1 +1 @@ -Se crea un despliegue. {% data reusables.webhooks.action_type_desc %} Para obtener más información, consulta la API de REST de "[estados de despliegue](/rest/reference/repos#list-deployment-statuses)". +Se crea un despliegue. {% data reusables.webhooks.action_type_desc %} Para obtener más información, consulta la API de REST de "[estados de despliegue](/rest/reference/deployments#list-deployment-statuses)". diff --git a/translations/es-ES/data/reusables/webhooks/issue_event_api_properties.md b/translations/es-ES/data/reusables/webhooks/issue_event_api_properties.md index f912fa2c38..7567791896 100644 --- a/translations/es-ES/data/reusables/webhooks/issue_event_api_properties.md +++ b/translations/es-ES/data/reusables/webhooks/issue_event_api_properties.md @@ -1,3 +1,3 @@ -| Clave | Tipo | Descripción | -| -------- | ----------- | ------------------------------------------------------------------------------------------------------------------------------------ | -| `Acción` | `secuencia` | La acción que se realizó. Puede ser una de entre `opened`, `closed`, `reopened`, `assigned`, `unassigned`, `labeled`, o `unlabeled`. | +| Clave | Tipo | Descripción | +| -------- | ----------- | --------------------------------------------------------------------------------------------------------------------------------------------- | +| `Acción` | `secuencia` | La acción que se realizó. Puede ser uno de entre `opened`, `edited`, `closed`, `reopened`, `assigned`, `unassigned`, `labeled` o `unlabeled`. | diff --git a/translations/es-ES/data/reusables/webhooks/pull_request_event_api_properties.md b/translations/es-ES/data/reusables/webhooks/pull_request_event_api_properties.md index 21e7eb30eb..e4694fd2e2 100644 --- a/translations/es-ES/data/reusables/webhooks/pull_request_event_api_properties.md +++ b/translations/es-ES/data/reusables/webhooks/pull_request_event_api_properties.md @@ -1,3 +1,3 @@ -| Clave | Tipo | Descripción | -| -------- | ----------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| `Acción` | `secuencia` | La acción que se realizó. Puede ser una de entre `opened`, `closed`, `reopened`, `assigned`, `unassigned`, `review_requested`, `review_request_removed`, `labeled`, `unlabeled`, y `synchronize`. | +| Clave | Tipo | Descripción | +| -------- | ----------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `Acción` | `secuencia` | La acción que se realizó. Puede ser uno de entre `opened`, `edited`, `closed`, `reopened`, `assigned`, `unassigned`, `review_requested`, `review_request_removed`, `labeled`, `unlabeled` y `synchronize`. | diff --git a/translations/es-ES/data/reusables/webhooks/workflow_job_properties.md b/translations/es-ES/data/reusables/webhooks/workflow_job_properties.md index 3d9ee845ac..506f8f7166 100644 --- a/translations/es-ES/data/reusables/webhooks/workflow_job_properties.md +++ b/translations/es-ES/data/reusables/webhooks/workflow_job_properties.md @@ -1,10 +1,10 @@ -| Clave | Tipo | Descripción | -| --------------------------------- | ----------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | -| `Acción` | `secuencia` | La acción realizada. Puede ser una de las siguientes:
  • `queued` - Se creó un job nuevo.
  • `in_progress` - El job se comenzó a procesar en el ejecutor.
  • `completed` - el `status` del job es `completed`.
| -| `workflow_job` | `objeto` | El job de flujo de trabajo. Muchas claves de `workflow_job`, tales como `head_sha`, `conclusion`, y `started_at` son las mismas que aquellas en un objeto [`check_run`](#check_run). | -| `workflow_job[status]` | `secuencia` | El estado actual del trabajo. Puede ser `queued`, `in_progress`, o `completed`. | -| `workflow_job[labels]` | `arreglo` | Custom labels for the job. Specified by the [`"runs-on"` attribute](/actions/reference/workflow-syntax-for-github-actions#jobsjob_idruns-on) in the workflow YAML. | -| `workflow_job[runner_id]` | `número` | The ID of the runner that is running this job. This will be `null` as long as `workflow_job[status]` is `queued`. | -| `workflow_job[runner_name]` | `secuencia` | The name of the runner that is running this job. This will be `null` as long as `workflow_job[status]` is `queued`. | -| `workflow_job[runner_group_id]` | `número` | The ID of the runner group that is running this job. This will be `null` as long as `workflow_job[status]` is `queued`. | -| `workflow_job[runner_group_name]` | `secuencia` | The name of the runner group that is running this job. This will be `null` as long as `workflow_job[status]` is `queued`. | +| Clave | Tipo | Descripción | +| --------------------------------- | ----------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `Acción` | `secuencia` | La acción realizada. Puede ser una de las siguientes:
  • `queued` - Se creó un job nuevo.
  • `in_progress` - El job se comenzó a procesar en el ejecutor.
  • `completed` - el `status` del job es `completed`.
| +| `workflow_job` | `objeto` | El job de flujo de trabajo. Muchas claves de `workflow_job`, tales como `head_sha`, `conclusion`, y `started_at` son las mismas que aquellas en un objeto [`check_run`](#check_run). | +| `workflow_job[status]` | `secuencia` | El estado actual del trabajo. Puede ser `queued`, `in_progress`, o `completed`. | +| `workflow_job[labels]` | `arreglo` | Etiquetas personalizadas para el job. Las especifica el [atributo`"runs-on"`](/actions/reference/workflow-syntax-for-github-actions#jobsjob_idruns-on) en el YAML del flujo de trabajo. | +| `workflow_job[runner_id]` | `número` | La ID del ejecutor que está ejecutando este job. Este será `null` siempre y cuando el `workflow_job[status]` se encuentre `queued`. | +| `workflow_job[runner_name]` | `secuencia` | El nombre del ejecutor que está ejecutando este job. Este será `null` siempre y cuando el `workflow_job[status]` se encuentre `queued`. | +| `workflow_job[runner_group_id]` | `número` | La ID del grupo de ejecutores que está ejecutando este job. Este será `null` siempre y cuando el `workflow_job[status]` se encuentre `queued`. | +| `workflow_job[runner_group_name]` | `secuencia` | El nombre del grupo de ejecutores que está ejecutando este job. Este será `null` siempre y cuando el `workflow_job[status]` se encuentre `queued`. | diff --git a/translations/es-ES/data/ui.yml b/translations/es-ES/data/ui.yml index fdb24cf77b..c5e40480a8 100644 --- a/translations/es-ES/data/ui.yml +++ b/translations/es-ES/data/ui.yml @@ -13,6 +13,8 @@ header: ghes_release_notes_upgrade_patch_only: '📣 Este no es el lanzamiento de parche más reciente de Enterprise Server.' ghes_release_notes_upgrade_release_only: '📣 Este no es el lanzamiento más reciente de Enterprise Server.' ghes_release_notes_upgrade_patch_and_release: '📣 Este no es el lanzamiento de parche más reciente de esta serie de lanzamientos, y no es elúltimo lanzamiento de Enterprise Server.' +picker: + toggle_picker_list: Activar lista de selector release_notes: banner_text: GitHub comenzó a implementar estos cambios en empresas en search: @@ -20,7 +22,9 @@ search: placeholder: Busca temas, productos... loading: Cargando no_results: No se encontró ningún resultado + search_results_for: Buscar resultados para no_content: Sin contenido + matches_displayed: Coincidencias mostradas homepage: explore_by_product: Explorar por producto version_picker: Versión @@ -29,6 +33,7 @@ toc: popular: Popular guides: Guías whats_new: Qué hay de nuevo + videos: Vídeos pages: article_version: 'Versión del artículo' miniToc: En este artículo @@ -52,7 +57,8 @@ survey: optional: Opcional required: Requerido email_placeholder: email@ejemplo.com - email_label: '¿Podemos contactarte si tenemos más preguntas?' + email_label: Si quieres que te contactemos con más preguntas, por favor, ingresa tu dirección de correo electrónico + email_validation: Ingresa un dirección de correo electrónico válida send: Enviar feedback: '¡Gracias! Recibimos tus comentarios.' not_support: Si necesitas una respuesta, por favor, mejor contacta a soporte. diff --git a/translations/es-ES/data/variables/product.yml b/translations/es-ES/data/variables/product.yml index 8f5edae6a8..ef06b0bb47 100644 --- a/translations/es-ES/data/variables/product.yml +++ b/translations/es-ES/data/variables/product.yml @@ -17,6 +17,7 @@ prodname_ghe_server: 'GitHub Enterprise Server' prodname_ghe_cloud: 'Nube de GitHub Enterprise' prodname_ghe_managed: 'GitHub AE' prodname_ghe_one: 'GitHub One' +prodname_docs: 'GitHub Docs' ## Use these variables when referring specifically to a location within a product product_location: >- {% ifversion ghes %}tu instancia de GitHub Enterprise Server{% elsif ghae %}tu empresa{% else %}GitHub.com{% endif %} @@ -96,8 +97,6 @@ prodname_matching_fund: 'Fondo Compensatorio para Patrocinios de GitHub' #GitHub Advanced Security prodname_GH_advanced_security: 'GitHub Advanced Security' prodname_advanced_security: 'Advanced Security' -#Security Center -prodname_security_center: 'Centro de seguridad' #Codespaces prodname_codespaces: 'Codespaces' prodname_github_codespaces: 'Acerca de GitHub Codespaces' @@ -151,7 +150,7 @@ prodname_arctic_vault: 'Bóveda de Código del Ártico' prodname_copilot: 'Copiloto de GitHub' prodname_copilot_short: 'Copilot' #Command Palette -prodname_command_palette: 'GitHub Command Palette' +prodname_command_palette: 'Paleta de Comandos de GitHub' #Links product_url: >- {% ifversion fpt or ghec %}github.com{% else %}[hostname]{% endif %} @@ -182,7 +181,7 @@ api_url_code: >- {% ifversion fpt or ghec %}https://api.github.com{% elsif ghes %}http(s)://[hostname]/api/v3{% elsif ghae %}https://[hostname]/api/v3{% endif %} #Use this inside command-line code blocks graphql_url_pre: >- - {% ifversion fpt or ghec %}https://api.github.com/graphql{% elsif ghes %}http(s)://[hostname]/api/graphql{% elsif ghae %}https://api.[hostname]/graphql{% endif %} + {% ifversion fpt or ghec %}https://api.github.com/graphql{% elsif ghes %}http(s)://[hostname]/api/graphql{% elsif ghae %}https://[hostname]/api/graphql{% endif %} #Use this all other code blocks graphql_url_code: >- - {% ifversion fpt or ghec %}https://api.github.com/graphql{% elsif ghes %}http(s)://[hostname]/api/graphql{% elsif ghae %}https://api.[hostname]/graphql{% endif %} + {% ifversion fpt or ghec %}https://api.github.com/graphql{% elsif ghes %}http(s)://[hostname]/api/graphql{% elsif ghae %}https://[hostname]/api/graphql{% endif %} diff --git a/translations/log/es-resets.csv b/translations/log/es-resets.csv index 57c660d4ab..5e82aaceb8 100644 --- a/translations/log/es-resets.csv +++ b/translations/log/es-resets.csv @@ -48,6 +48,7 @@ translations/es-ES/content/account-and-profile/setting-up-and-managing-your-gith translations/es-ES/content/account-and-profile/setting-up-and-managing-your-github-user-account/managing-your-membership-in-organizations/publicizing-or-hiding-organization-membership.md,rendering error translations/es-ES/content/account-and-profile/setting-up-and-managing-your-github-user-account/managing-your-membership-in-organizations/removing-yourself-from-an-organization.md,rendering error translations/es-ES/content/account-and-profile/setting-up-and-managing-your-github-user-account/managing-your-membership-in-organizations/requesting-organization-approval-for-oauth-apps.md,rendering error +translations/es-ES/content/account-and-profile/setting-up-and-managing-your-github-user-account/managing-your-membership-in-organizations/viewing-peoples-roles-in-an-organization.md,rendering error translations/es-ES/content/actions/advanced-guides/caching-dependencies-to-speed-up-workflows.md,rendering error translations/es-ES/content/actions/advanced-guides/index.md,rendering error translations/es-ES/content/actions/advanced-guides/storing-workflow-data-as-artifacts.md,Listed in localization-support#489 @@ -83,7 +84,15 @@ translations/es-ES/content/actions/deployment/about-deployments/deploying-with-g translations/es-ES/content/actions/deployment/about-deployments/index.md,Listed in localization-support#489 translations/es-ES/content/actions/deployment/about-deployments/index.md,rendering error translations/es-ES/content/actions/deployment/deploying-to-your-cloud-provider/deploying-to-amazon-elastic-container-service.md,rendering error -translations/es-ES/content/actions/deployment/deploying-to-your-cloud-provider/deploying-to-azure-app-service.md,rendering error +translations/es-ES/content/actions/deployment/deploying-to-your-cloud-provider/deploying-to-azure/deploying-docker-to-azure-app-service.md,rendering error +translations/es-ES/content/actions/deployment/deploying-to-your-cloud-provider/deploying-to-azure/deploying-java-to-azure-app-service.md,rendering error +translations/es-ES/content/actions/deployment/deploying-to-your-cloud-provider/deploying-to-azure/deploying-net-to-azure-app-service.md,rendering error +translations/es-ES/content/actions/deployment/deploying-to-your-cloud-provider/deploying-to-azure/deploying-nodejs-to-azure-app-service.md,rendering error +translations/es-ES/content/actions/deployment/deploying-to-your-cloud-provider/deploying-to-azure/deploying-php-to-azure-app-service.md,rendering error +translations/es-ES/content/actions/deployment/deploying-to-your-cloud-provider/deploying-to-azure/deploying-python-to-azure-app-service.md,rendering error +translations/es-ES/content/actions/deployment/deploying-to-your-cloud-provider/deploying-to-azure/deploying-to-azure-kubernetes-service.md,rendering error +translations/es-ES/content/actions/deployment/deploying-to-your-cloud-provider/deploying-to-azure/deploying-to-azure-static-web-app.md,rendering error +translations/es-ES/content/actions/deployment/deploying-to-your-cloud-provider/deploying-to-azure/index.md,rendering error translations/es-ES/content/actions/deployment/deploying-to-your-cloud-provider/deploying-to-google-kubernetes-engine.md,rendering error translations/es-ES/content/actions/deployment/deploying-to-your-cloud-provider/index.md,Listed in localization-support#489 translations/es-ES/content/actions/deployment/deploying-to-your-cloud-provider/index.md,rendering error @@ -98,7 +107,9 @@ translations/es-ES/content/actions/deployment/security-hardening-your-deployment translations/es-ES/content/actions/deployment/security-hardening-your-deployments/configuring-openid-connect-in-amazon-web-services.md,rendering error translations/es-ES/content/actions/deployment/security-hardening-your-deployments/configuring-openid-connect-in-azure.md,Listed in localization-support#489 translations/es-ES/content/actions/deployment/security-hardening-your-deployments/configuring-openid-connect-in-azure.md,rendering error +translations/es-ES/content/actions/deployment/security-hardening-your-deployments/configuring-openid-connect-in-cloud-providers.md,rendering error translations/es-ES/content/actions/deployment/security-hardening-your-deployments/configuring-openid-connect-in-google-cloud-platform.md,rendering error +translations/es-ES/content/actions/deployment/security-hardening-your-deployments/configuring-openid-connect-in-hashicorp-vault.md,rendering error translations/es-ES/content/actions/deployment/security-hardening-your-deployments/index.md,Listed in localization-support#489 translations/es-ES/content/actions/deployment/security-hardening-your-deployments/index.md,rendering error translations/es-ES/content/actions/deployment/security-hardening-your-deployments/using-openid-connect-with-reusable-workflows.md,Listed in localization-support#489 @@ -124,7 +135,7 @@ translations/es-ES/content/actions/index.md,Listed in localization-support#489 translations/es-ES/content/actions/index.md,rendering error translations/es-ES/content/actions/learn-github-actions/contexts.md,Listed in localization-support#489 translations/es-ES/content/actions/learn-github-actions/contexts.md,rendering error -translations/es-ES/content/actions/learn-github-actions/creating-workflow-templates.md,rendering error +translations/es-ES/content/actions/learn-github-actions/creating-starter-workflows-for-your-organization.md,rendering error translations/es-ES/content/actions/learn-github-actions/environment-variables.md,Listed in localization-support#489 translations/es-ES/content/actions/learn-github-actions/environment-variables.md,rendering error translations/es-ES/content/actions/learn-github-actions/essential-features-of-github-actions.md,rendering error @@ -138,7 +149,7 @@ translations/es-ES/content/actions/learn-github-actions/reusing-workflows.md,ren translations/es-ES/content/actions/learn-github-actions/sharing-workflows-secrets-and-runners-with-your-organization.md,rendering error translations/es-ES/content/actions/learn-github-actions/understanding-github-actions.md,rendering error translations/es-ES/content/actions/learn-github-actions/usage-limits-billing-and-administration.md,rendering error -translations/es-ES/content/actions/learn-github-actions/using-workflow-templates.md,rendering error +translations/es-ES/content/actions/learn-github-actions/using-starter-workflows.md,rendering error translations/es-ES/content/actions/learn-github-actions/workflow-commands-for-github-actions.md,Listed in localization-support#489 translations/es-ES/content/actions/learn-github-actions/workflow-commands-for-github-actions.md,rendering error translations/es-ES/content/actions/learn-github-actions/workflow-syntax-for-github-actions.md,Listed in localization-support#489 @@ -206,8 +217,11 @@ translations/es-ES/content/admin/advanced-security/deploying-github-advanced-sec translations/es-ES/content/admin/advanced-security/deploying-github-advanced-security-in-your-enterprise.md,rendering error translations/es-ES/content/admin/advanced-security/enabling-github-advanced-security-for-your-enterprise.md,Listed in localization-support#489 translations/es-ES/content/admin/advanced-security/enabling-github-advanced-security-for-your-enterprise.md,rendering error +translations/es-ES/content/admin/advanced-security/index.md,rendering error translations/es-ES/content/admin/advanced-security/overview-of-github-advanced-security-deployment.md,rendering error translations/es-ES/content/admin/authentication/authenticating-users-for-your-github-enterprise-server-instance/allowing-built-in-authentication-for-users-outside-your-identity-provider.md,rendering error +translations/es-ES/content/admin/authentication/authenticating-users-for-your-github-enterprise-server-instance/disabling-unauthenticated-sign-ups.md,rendering error +translations/es-ES/content/admin/authentication/authenticating-users-for-your-github-enterprise-server-instance/index.md,rendering error translations/es-ES/content/admin/authentication/authenticating-users-for-your-github-enterprise-server-instance/using-cas.md,rendering error translations/es-ES/content/admin/authentication/authenticating-users-for-your-github-enterprise-server-instance/using-ldap.md,Listed in localization-support#489 translations/es-ES/content/admin/authentication/authenticating-users-for-your-github-enterprise-server-instance/using-ldap.md,rendering error @@ -223,7 +237,14 @@ translations/es-ES/content/admin/authentication/managing-identity-and-access-for translations/es-ES/content/admin/authentication/managing-identity-and-access-for-your-enterprise/index.md,rendering error translations/es-ES/content/admin/authentication/managing-identity-and-access-for-your-enterprise/switching-your-saml-configuration-from-an-organization-to-an-enterprise-account.md,rendering error translations/es-ES/content/admin/authentication/managing-your-enterprise-users-with-your-identity-provider/about-enterprise-managed-users.md,rendering error +translations/es-ES/content/admin/authentication/managing-your-enterprise-users-with-your-identity-provider/index.md,rendering error +translations/es-ES/content/admin/configuration/configuring-network-settings/configuring-a-hostname.md,rendering error +translations/es-ES/content/admin/configuration/configuring-network-settings/configuring-an-outbound-web-proxy-server.md,rendering error +translations/es-ES/content/admin/configuration/configuring-network-settings/configuring-built-in-firewall-rules.md,rendering error +translations/es-ES/content/admin/configuration/configuring-network-settings/configuring-dns-nameservers.md,rendering error translations/es-ES/content/admin/configuration/configuring-network-settings/configuring-tls.md,rendering error +translations/es-ES/content/admin/configuration/configuring-network-settings/enabling-subdomain-isolation.md,rendering error +translations/es-ES/content/admin/configuration/configuring-network-settings/index.md,rendering error translations/es-ES/content/admin/configuration/configuring-network-settings/network-ports.md,rendering error translations/es-ES/content/admin/configuration/configuring-network-settings/using-github-enterprise-server-with-a-load-balancer.md,rendering error translations/es-ES/content/admin/configuration/configuring-your-enterprise/accessing-the-administrative-shell-ssh.md,rendering error @@ -231,13 +252,17 @@ translations/es-ES/content/admin/configuration/configuring-your-enterprise/acces translations/es-ES/content/admin/configuration/configuring-your-enterprise/command-line-utilities.md,rendering error translations/es-ES/content/admin/configuration/configuring-your-enterprise/configuring-backups-on-your-appliance.md,rendering error translations/es-ES/content/admin/configuration/configuring-your-enterprise/configuring-custom-footers.md,rendering error +translations/es-ES/content/admin/configuration/configuring-your-enterprise/configuring-email-for-notifications.md,rendering error translations/es-ES/content/admin/configuration/configuring-your-enterprise/configuring-github-pages-for-your-enterprise.md,rendering error translations/es-ES/content/admin/configuration/configuring-your-enterprise/configuring-rate-limits.md,rendering error +translations/es-ES/content/admin/configuration/configuring-your-enterprise/configuring-time-synchronization.md,rendering error translations/es-ES/content/admin/configuration/configuring-your-enterprise/enabling-and-scheduling-maintenance-mode.md,rendering error +translations/es-ES/content/admin/configuration/configuring-your-enterprise/enabling-private-mode.md,rendering error translations/es-ES/content/admin/configuration/configuring-your-enterprise/index.md,rendering error translations/es-ES/content/admin/configuration/configuring-your-enterprise/managing-github-mobile-for-your-enterprise.md,rendering error translations/es-ES/content/admin/configuration/configuring-your-enterprise/restricting-network-traffic-to-your-enterprise.md,rendering error translations/es-ES/content/admin/configuration/configuring-your-enterprise/site-admin-dashboard.md,rendering error +translations/es-ES/content/admin/configuration/configuring-your-enterprise/troubleshooting-ssl-errors.md,rendering error translations/es-ES/content/admin/configuration/configuring-your-enterprise/verifying-or-approving-a-domain-for-your-enterprise.md,rendering error translations/es-ES/content/admin/configuration/managing-connections-between-your-enterprise-accounts/connecting-your-enterprise-account-to-github-enterprise-cloud.md,rendering error translations/es-ES/content/admin/configuration/managing-connections-between-your-enterprise-accounts/enabling-the-dependency-graph-and-dependabot-alerts-on-your-enterprise-account.md,Listed in localization-support#489 @@ -251,8 +276,10 @@ translations/es-ES/content/admin/enterprise-management/caching-repositories/conf translations/es-ES/content/admin/enterprise-management/caching-repositories/configuring-a-repository-cache.md,rendering error translations/es-ES/content/admin/enterprise-management/caching-repositories/index.md,Listed in localization-support#489 translations/es-ES/content/admin/enterprise-management/caching-repositories/index.md,rendering error +translations/es-ES/content/admin/enterprise-management/configuring-clustering/about-clustering.md,rendering error translations/es-ES/content/admin/enterprise-management/configuring-clustering/cluster-network-configuration.md,rendering error translations/es-ES/content/admin/enterprise-management/configuring-clustering/differences-between-clustering-and-high-availability-ha.md,rendering error +translations/es-ES/content/admin/enterprise-management/configuring-clustering/index.md,rendering error translations/es-ES/content/admin/enterprise-management/configuring-clustering/initializing-the-cluster.md,rendering error translations/es-ES/content/admin/enterprise-management/configuring-high-availability/about-geo-replication.md,Listed in localization-support#489 translations/es-ES/content/admin/enterprise-management/configuring-high-availability/about-geo-replication.md,rendering error @@ -260,22 +287,33 @@ translations/es-ES/content/admin/enterprise-management/configuring-high-availabi translations/es-ES/content/admin/enterprise-management/configuring-high-availability/about-high-availability-configuration.md,rendering error translations/es-ES/content/admin/enterprise-management/configuring-high-availability/creating-a-high-availability-replica.md,Listed in localization-support#489 translations/es-ES/content/admin/enterprise-management/configuring-high-availability/creating-a-high-availability-replica.md,rendering error +translations/es-ES/content/admin/enterprise-management/configuring-high-availability/index.md,rendering error translations/es-ES/content/admin/enterprise-management/configuring-high-availability/initiating-a-failover-to-your-replica-appliance.md,rendering error translations/es-ES/content/admin/enterprise-management/index.md,Listed in localization-support#489 translations/es-ES/content/admin/enterprise-management/index.md,rendering error +translations/es-ES/content/admin/enterprise-management/monitoring-your-appliance/configuring-collectd.md,rendering error +translations/es-ES/content/admin/enterprise-management/monitoring-your-appliance/index.md,rendering error +translations/es-ES/content/admin/enterprise-management/monitoring-your-appliance/monitoring-using-snmp.md,rendering error +translations/es-ES/content/admin/enterprise-management/monitoring-your-appliance/recommended-alert-thresholds.md,rendering error translations/es-ES/content/admin/enterprise-management/updating-the-virtual-machine-and-physical-resources/increasing-cpu-or-memory-resources.md,rendering error translations/es-ES/content/admin/enterprise-management/updating-the-virtual-machine-and-physical-resources/increasing-storage-capacity.md,rendering error +translations/es-ES/content/admin/enterprise-management/updating-the-virtual-machine-and-physical-resources/index.md,rendering error +translations/es-ES/content/admin/enterprise-management/updating-the-virtual-machine-and-physical-resources/migrating-from-github-enterprise-1110x-to-2123.md,rendering error translations/es-ES/content/admin/enterprise-management/updating-the-virtual-machine-and-physical-resources/upgrade-requirements.md,rendering error translations/es-ES/content/admin/enterprise-management/updating-the-virtual-machine-and-physical-resources/upgrading-github-enterprise-server.md,Listed in localization-support#489 translations/es-ES/content/admin/enterprise-management/updating-the-virtual-machine-and-physical-resources/upgrading-github-enterprise-server.md,rendering error translations/es-ES/content/admin/enterprise-support/overview/about-github-enterprise-support.md,Listed in localization-support#489 translations/es-ES/content/admin/enterprise-support/overview/about-github-enterprise-support.md,rendering error +translations/es-ES/content/admin/enterprise-support/overview/about-github-premium-support-for-github-enterprise-server.md,rendering error translations/es-ES/content/admin/enterprise-support/overview/about-support-for-advanced-security.md,Listed in localization-support#489 translations/es-ES/content/admin/enterprise-support/overview/about-support-for-advanced-security.md,rendering error +translations/es-ES/content/admin/enterprise-support/receiving-help-from-github-support/index.md,rendering error +translations/es-ES/content/admin/enterprise-support/receiving-help-from-github-support/providing-data-to-github-support.md,rendering error translations/es-ES/content/admin/enterprise-support/receiving-help-from-github-support/reaching-github-support.md,Listed in localization-support#489 translations/es-ES/content/admin/enterprise-support/receiving-help-from-github-support/reaching-github-support.md,rendering error translations/es-ES/content/admin/enterprise-support/receiving-help-from-github-support/submitting-a-ticket.md,Listed in localization-support#489 translations/es-ES/content/admin/enterprise-support/receiving-help-from-github-support/submitting-a-ticket.md,rendering error +translations/es-ES/content/admin/github-actions/advanced-configuration-and-troubleshooting/backing-up-and-restoring-github-enterprise-server-with-github-actions-enabled.md,rendering error translations/es-ES/content/admin/github-actions/advanced-configuration-and-troubleshooting/troubleshooting-github-actions-for-your-enterprise.md,Listed in localization-support#489 translations/es-ES/content/admin/github-actions/advanced-configuration-and-troubleshooting/troubleshooting-github-actions-for-your-enterprise.md,rendering error translations/es-ES/content/admin/github-actions/enabling-github-actions-for-github-enterprise-server/index.md,Listed in localization-support#489 @@ -315,6 +353,7 @@ translations/es-ES/content/admin/installation/setting-up-a-github-enterprise-ser translations/es-ES/content/admin/installation/setting-up-a-github-enterprise-server-instance/installing-github-enterprise-server-on-xenserver.md,rendering error translations/es-ES/content/admin/overview/about-enterprise-accounts.md,Listed in localization-support#489 translations/es-ES/content/admin/overview/about-enterprise-accounts.md,rendering error +translations/es-ES/content/admin/overview/about-github-ae.md,rendering error translations/es-ES/content/admin/overview/about-the-github-enterprise-api.md,rendering error translations/es-ES/content/admin/overview/about-upgrades-to-new-releases.md,rendering error translations/es-ES/content/admin/overview/creating-an-enterprise-account.md,Listed in localization-support#489 @@ -322,43 +361,69 @@ translations/es-ES/content/admin/overview/creating-an-enterprise-account.md,rend translations/es-ES/content/admin/overview/index.md,Listed in localization-support#489 translations/es-ES/content/admin/overview/index.md,rendering error translations/es-ES/content/admin/overview/system-overview.md,rendering error +translations/es-ES/content/admin/packages/configuring-package-ecosystem-support-for-your-enterprise.md,rendering error translations/es-ES/content/admin/packages/enabling-github-packages-with-minio.md,Listed in localization-support#489 translations/es-ES/content/admin/packages/enabling-github-packages-with-minio.md,rendering error translations/es-ES/content/admin/packages/getting-started-with-github-packages-for-your-enterprise.md,rendering error translations/es-ES/content/admin/policies/enforcing-policies-for-your-enterprise/enforcing-policies-for-advanced-security-in-your-enterprise.md,rendering error +translations/es-ES/content/admin/policies/enforcing-policies-for-your-enterprise/enforcing-policies-for-dependency-insights-in-your-enterprise.md,rendering error translations/es-ES/content/admin/policies/enforcing-policies-for-your-enterprise/enforcing-policies-for-github-actions-in-your-enterprise.md,rendering error translations/es-ES/content/admin/policies/enforcing-policies-for-your-enterprise/enforcing-policies-for-security-settings-in-your-enterprise.md,rendering error translations/es-ES/content/admin/policies/enforcing-policies-for-your-enterprise/enforcing-project-board-policies-in-your-enterprise.md,rendering error translations/es-ES/content/admin/policies/enforcing-policies-for-your-enterprise/enforcing-repository-management-policies-in-your-enterprise.md,rendering error +translations/es-ES/content/admin/policies/enforcing-policies-for-your-enterprise/enforcing-team-policies-in-your-enterprise.md,rendering error translations/es-ES/content/admin/policies/enforcing-policies-for-your-enterprise/restricting-email-notifications-for-your-enterprise.md,rendering error +translations/es-ES/content/admin/policies/enforcing-policy-with-pre-receive-hooks/creating-a-pre-receive-hook-script.md,rendering error +translations/es-ES/content/admin/policies/enforcing-policy-with-pre-receive-hooks/managing-pre-receive-hooks-on-the-github-enterprise-server-appliance.md,rendering error +translations/es-ES/content/admin/user-management/index.md,rendering error translations/es-ES/content/admin/user-management/managing-organizations-in-your-enterprise/adding-organizations-to-your-enterprise.md,Listed in localization-support#489 translations/es-ES/content/admin/user-management/managing-organizations-in-your-enterprise/adding-organizations-to-your-enterprise.md,rendering error +translations/es-ES/content/admin/user-management/managing-organizations-in-your-enterprise/adding-people-to-teams.md,rendering error translations/es-ES/content/admin/user-management/managing-organizations-in-your-enterprise/creating-teams.md,Listed in localization-support#489 translations/es-ES/content/admin/user-management/managing-organizations-in-your-enterprise/creating-teams.md,rendering error translations/es-ES/content/admin/user-management/managing-organizations-in-your-enterprise/index.md,rendering error +translations/es-ES/content/admin/user-management/managing-organizations-in-your-enterprise/managing-projects-using-jira.md,rendering error +translations/es-ES/content/admin/user-management/managing-organizations-in-your-enterprise/preventing-users-from-creating-organizations.md,rendering error translations/es-ES/content/admin/user-management/managing-organizations-in-your-enterprise/removing-organizations-from-your-enterprise.md,rendering error translations/es-ES/content/admin/user-management/managing-organizations-in-your-enterprise/streaming-the-audit-logs-for-organizations-in-your-enterprise-account.md,rendering error translations/es-ES/content/admin/user-management/managing-organizations-in-your-enterprise/viewing-the-audit-logs-for-organizations-in-your-enterprise.md,rendering error +translations/es-ES/content/admin/user-management/managing-repositories-in-your-enterprise/configuring-git-large-file-storage-for-your-enterprise.md,rendering error +translations/es-ES/content/admin/user-management/managing-repositories-in-your-enterprise/disabling-git-ssh-access-on-your-enterprise.md,rendering error translations/es-ES/content/admin/user-management/managing-repositories-in-your-enterprise/restoring-a-deleted-repository.md,rendering error +translations/es-ES/content/admin/user-management/managing-repositories-in-your-enterprise/troubleshooting-service-hooks.md,rendering error +translations/es-ES/content/admin/user-management/managing-users-in-your-enterprise/auditing-ssh-keys.md,rendering error translations/es-ES/content/admin/user-management/managing-users-in-your-enterprise/auditing-users-across-your-enterprise.md,Listed in localization-support#489 translations/es-ES/content/admin/user-management/managing-users-in-your-enterprise/auditing-users-across-your-enterprise.md,rendering error +translations/es-ES/content/admin/user-management/managing-users-in-your-enterprise/best-practices-for-user-security.md,rendering error +translations/es-ES/content/admin/user-management/managing-users-in-your-enterprise/customizing-user-messages-for-your-enterprise.md,rendering error translations/es-ES/content/admin/user-management/managing-users-in-your-enterprise/impersonating-a-user.md,Listed in localization-support#489 translations/es-ES/content/admin/user-management/managing-users-in-your-enterprise/impersonating-a-user.md,rendering error translations/es-ES/content/admin/user-management/managing-users-in-your-enterprise/index.md,Listed in localization-support#489 translations/es-ES/content/admin/user-management/managing-users-in-your-enterprise/index.md,rendering error +translations/es-ES/content/admin/user-management/managing-users-in-your-enterprise/inviting-people-to-manage-your-enterprise.md,rendering error translations/es-ES/content/admin/user-management/managing-users-in-your-enterprise/managing-dormant-users.md,Listed in localization-support#489 translations/es-ES/content/admin/user-management/managing-users-in-your-enterprise/managing-dormant-users.md,rendering error translations/es-ES/content/admin/user-management/managing-users-in-your-enterprise/promoting-or-demoting-a-site-administrator.md,rendering error +translations/es-ES/content/admin/user-management/managing-users-in-your-enterprise/rebuilding-contributions-data.md,rendering error translations/es-ES/content/admin/user-management/managing-users-in-your-enterprise/roles-in-an-enterprise.md,rendering error translations/es-ES/content/admin/user-management/managing-users-in-your-enterprise/suspending-and-unsuspending-users.md,rendering error +translations/es-ES/content/admin/user-management/managing-users-in-your-enterprise/viewing-and-managing-a-users-saml-access-to-your-enterprise.md,rendering error translations/es-ES/content/admin/user-management/managing-users-in-your-enterprise/viewing-people-in-your-enterprise.md,Listed in localization-support#489 translations/es-ES/content/admin/user-management/managing-users-in-your-enterprise/viewing-people-in-your-enterprise.md,rendering error translations/es-ES/content/admin/user-management/migrating-data-to-and-from-your-enterprise/exporting-migration-data-from-githubcom.md,Listed in localization-support#489 translations/es-ES/content/admin/user-management/migrating-data-to-and-from-your-enterprise/exporting-migration-data-from-githubcom.md,rendering error +translations/es-ES/content/admin/user-management/migrating-data-to-and-from-your-enterprise/exporting-migration-data-from-your-enterprise.md,rendering error +translations/es-ES/content/admin/user-management/migrating-data-to-and-from-your-enterprise/index.md,rendering error translations/es-ES/content/admin/user-management/migrating-data-to-and-from-your-enterprise/migrating-data-to-your-enterprise.md,rendering error +translations/es-ES/content/admin/user-management/migrating-data-to-and-from-your-enterprise/preparing-to-migrate-data-to-your-enterprise.md,rendering error +translations/es-ES/content/admin/user-management/monitoring-activity-in-your-enterprise/activity-dashboard.md,rendering error +translations/es-ES/content/admin/user-management/monitoring-activity-in-your-enterprise/audit-logging.md,rendering error translations/es-ES/content/admin/user-management/monitoring-activity-in-your-enterprise/audited-actions.md,Listed in localization-support#489 translations/es-ES/content/admin/user-management/monitoring-activity-in-your-enterprise/audited-actions.md,rendering error translations/es-ES/content/admin/user-management/monitoring-activity-in-your-enterprise/log-forwarding.md,rendering error +translations/es-ES/content/admin/user-management/monitoring-activity-in-your-enterprise/managing-global-webhooks.md,rendering error +translations/es-ES/content/admin/user-management/monitoring-activity-in-your-enterprise/searching-the-audit-log.md,rendering error +translations/es-ES/content/admin/user-management/monitoring-activity-in-your-enterprise/viewing-push-logs.md,rendering error translations/es-ES/content/authentication/authenticating-with-saml-single-sign-on/about-authentication-with-saml-single-sign-on.md,rendering error translations/es-ES/content/authentication/authenticating-with-saml-single-sign-on/authorizing-a-personal-access-token-for-use-with-saml-single-sign-on.md,rendering error translations/es-ES/content/authentication/authenticating-with-saml-single-sign-on/authorizing-an-ssh-key-for-use-with-saml-single-sign-on.md,rendering error @@ -370,6 +435,7 @@ translations/es-ES/content/authentication/connecting-to-github-with-ssh/adding-a translations/es-ES/content/authentication/connecting-to-github-with-ssh/generating-a-new-ssh-key-and-adding-it-to-the-ssh-agent.md,Listed in localization-support#489 translations/es-ES/content/authentication/connecting-to-github-with-ssh/generating-a-new-ssh-key-and-adding-it-to-the-ssh-agent.md,rendering error translations/es-ES/content/authentication/connecting-to-github-with-ssh/index.md,rendering error +translations/es-ES/content/authentication/connecting-to-github-with-ssh/testing-your-ssh-connection.md,rendering error translations/es-ES/content/authentication/connecting-to-github-with-ssh/working-with-ssh-key-passphrases.md,rendering error translations/es-ES/content/authentication/index.md,rendering error translations/es-ES/content/authentication/keeping-your-account-and-data-secure/about-anonymized-urls.md,Listed in localization-support#489 @@ -379,6 +445,7 @@ translations/es-ES/content/authentication/keeping-your-account-and-data-secure/a translations/es-ES/content/authentication/keeping-your-account-and-data-secure/about-githubs-ip-addresses.md,Listed in localization-support#489 translations/es-ES/content/authentication/keeping-your-account-and-data-secure/about-githubs-ip-addresses.md,rendering error translations/es-ES/content/authentication/keeping-your-account-and-data-secure/authorizing-github-apps.md,rendering error +translations/es-ES/content/authentication/keeping-your-account-and-data-secure/authorizing-oauth-apps.md,rendering error translations/es-ES/content/authentication/keeping-your-account-and-data-secure/connecting-with-third-party-applications.md,rendering error translations/es-ES/content/authentication/keeping-your-account-and-data-secure/creating-a-personal-access-token.md,rendering error translations/es-ES/content/authentication/keeping-your-account-and-data-secure/creating-a-strong-password.md,rendering error @@ -389,9 +456,12 @@ translations/es-ES/content/authentication/keeping-your-account-and-data-secure/r translations/es-ES/content/authentication/keeping-your-account-and-data-secure/reviewing-your-security-log.md,rendering error translations/es-ES/content/authentication/keeping-your-account-and-data-secure/reviewing-your-ssh-keys.md,Listed in localization-support#489 translations/es-ES/content/authentication/keeping-your-account-and-data-secure/reviewing-your-ssh-keys.md,rendering error +translations/es-ES/content/authentication/keeping-your-account-and-data-secure/token-expiration-and-revocation.md,rendering error translations/es-ES/content/authentication/keeping-your-account-and-data-secure/updating-your-github-access-credentials.md,rendering error translations/es-ES/content/authentication/managing-commit-signature-verification/about-commit-signature-verification.md,Listed in localization-support#489 translations/es-ES/content/authentication/managing-commit-signature-verification/about-commit-signature-verification.md,rendering error +translations/es-ES/content/authentication/managing-commit-signature-verification/adding-a-new-gpg-key-to-your-github-account.md,rendering error +translations/es-ES/content/authentication/managing-commit-signature-verification/associating-an-email-with-your-gpg-key.md,rendering error translations/es-ES/content/authentication/managing-commit-signature-verification/index.md,rendering error translations/es-ES/content/authentication/managing-commit-signature-verification/signing-commits.md,rendering error translations/es-ES/content/authentication/managing-commit-signature-verification/signing-tags.md,rendering error @@ -406,27 +476,55 @@ translations/es-ES/content/authentication/securing-your-account-with-two-factor- translations/es-ES/content/authentication/troubleshooting-commit-signature-verification/checking-your-commit-and-tag-signature-verification-status.md,rendering error translations/es-ES/content/authentication/troubleshooting-commit-signature-verification/index.md,rendering error translations/es-ES/content/authentication/troubleshooting-ssh/error-agent-admitted-failure-to-sign.md,rendering error +translations/es-ES/content/authentication/troubleshooting-ssh/error-key-already-in-use.md,rendering error translations/es-ES/content/authentication/troubleshooting-ssh/error-ssh-add-illegal-option----k.md,Listed in localization-support#489 translations/es-ES/content/authentication/troubleshooting-ssh/error-ssh-add-illegal-option----k.md,rendering error translations/es-ES/content/authentication/troubleshooting-ssh/error-unknown-key-type.md,rendering error translations/es-ES/content/authentication/troubleshooting-ssh/index.md,rendering error translations/es-ES/content/authentication/troubleshooting-ssh/recovering-your-ssh-key-passphrase.md,rendering error translations/es-ES/content/billing/index.md,rendering error +translations/es-ES/content/billing/managing-billing-for-git-large-file-storage/downgrading-git-large-file-storage.md,rendering error +translations/es-ES/content/billing/managing-billing-for-git-large-file-storage/index.md,rendering error +translations/es-ES/content/billing/managing-billing-for-git-large-file-storage/upgrading-git-large-file-storage.md,rendering error +translations/es-ES/content/billing/managing-billing-for-git-large-file-storage/viewing-your-git-large-file-storage-usage.md,rendering error translations/es-ES/content/billing/managing-billing-for-github-advanced-security/about-billing-for-github-advanced-security.md,Listed in localization-support#489 translations/es-ES/content/billing/managing-billing-for-github-advanced-security/about-billing-for-github-advanced-security.md,rendering error translations/es-ES/content/billing/managing-billing-for-github-advanced-security/viewing-your-github-advanced-security-usage.md,Listed in localization-support#489 translations/es-ES/content/billing/managing-billing-for-github-advanced-security/viewing-your-github-advanced-security-usage.md,rendering error +translations/es-ES/content/billing/managing-billing-for-github-codespaces/about-billing-for-codespaces.md,rendering error +translations/es-ES/content/billing/managing-billing-for-github-codespaces/viewing-your-codespaces-usage.md,rendering error +translations/es-ES/content/billing/managing-billing-for-github-marketplace-apps/canceling-a-github-marketplace-app.md,rendering error +translations/es-ES/content/billing/managing-billing-for-github-marketplace-apps/downgrading-the-billing-plan-for-a-github-marketplace-app.md,rendering error +translations/es-ES/content/billing/managing-billing-for-github-marketplace-apps/index.md,rendering error +translations/es-ES/content/billing/managing-billing-for-github-marketplace-apps/upgrading-the-billing-plan-for-a-github-marketplace-app.md,rendering error +translations/es-ES/content/billing/managing-billing-for-your-github-account/about-billing-for-github-accounts.md,rendering error translations/es-ES/content/billing/managing-billing-for-your-github-account/about-billing-for-your-enterprise.md,rendering error translations/es-ES/content/billing/managing-billing-for-your-github-account/discounted-subscriptions-for-github-accounts.md,rendering error translations/es-ES/content/billing/managing-billing-for-your-github-account/downgrading-your-github-subscription.md,rendering error +translations/es-ES/content/billing/managing-billing-for-your-github-account/index.md,rendering error translations/es-ES/content/billing/managing-billing-for-your-github-account/upgrading-your-github-subscription.md,rendering error +translations/es-ES/content/billing/managing-billing-for-your-github-account/viewing-and-managing-pending-changes-to-your-subscription.md,rendering error translations/es-ES/content/billing/managing-billing-for-your-github-account/viewing-the-subscription-and-usage-for-your-enterprise-account.md,rendering error translations/es-ES/content/billing/managing-licenses-for-visual-studio-subscriptions-with-github-enterprise/about-visual-studio-subscriptions-with-github-enterprise.md,rendering error translations/es-ES/content/billing/managing-licenses-for-visual-studio-subscriptions-with-github-enterprise/setting-up-visual-studio-subscriptions-with-github-enterprise.md,rendering error +translations/es-ES/content/billing/managing-your-github-billing-settings/adding-information-to-your-receipts.md,rendering error +translations/es-ES/content/billing/managing-your-github-billing-settings/adding-or-editing-a-payment-method.md,rendering error +translations/es-ES/content/billing/managing-your-github-billing-settings/changing-the-duration-of-your-billing-cycle.md,rendering error +translations/es-ES/content/billing/managing-your-github-billing-settings/index.md,rendering error +translations/es-ES/content/billing/managing-your-github-billing-settings/redeeming-a-coupon.md,rendering error +translations/es-ES/content/billing/managing-your-github-billing-settings/removing-a-payment-method.md,rendering error +translations/es-ES/content/billing/managing-your-github-billing-settings/setting-your-billing-email.md,rendering error +translations/es-ES/content/billing/managing-your-github-billing-settings/troubleshooting-a-declined-credit-card-charge.md,rendering error +translations/es-ES/content/billing/managing-your-github-billing-settings/unlocking-a-locked-account.md,rendering error +translations/es-ES/content/billing/managing-your-github-billing-settings/viewing-your-payment-history-and-receipts.md,rendering error +translations/es-ES/content/billing/managing-your-github-billing-settings/viewing-your-subscriptions-and-billing-date.md,rendering error translations/es-ES/content/billing/managing-your-license-for-github-enterprise/about-licenses-for-github-enterprise.md,rendering error translations/es-ES/content/billing/managing-your-license-for-github-enterprise/downloading-your-license-for-github-enterprise.md,rendering error translations/es-ES/content/billing/managing-your-license-for-github-enterprise/index.md,rendering error translations/es-ES/content/billing/managing-your-license-for-github-enterprise/syncing-license-usage-between-github-enterprise-server-and-github-enterprise-cloud.md,rendering error +translations/es-ES/content/billing/managing-your-license-for-github-enterprise/uploading-a-new-license-to-github-enterprise-server.md,rendering error +translations/es-ES/content/billing/setting-up-paid-organizations-for-procurement-companies/about-organizations-for-procurement-companies.md,rendering error +translations/es-ES/content/billing/setting-up-paid-organizations-for-procurement-companies/index.md,rendering error translations/es-ES/content/code-security/code-scanning/automatically-scanning-your-code-for-vulnerabilities-and-errors/about-code-scanning-with-codeql.md,rendering error translations/es-ES/content/code-security/code-scanning/automatically-scanning-your-code-for-vulnerabilities-and-errors/configuring-code-scanning.md,Listed in localization-support#489 translations/es-ES/content/code-security/code-scanning/automatically-scanning-your-code-for-vulnerabilities-and-errors/configuring-code-scanning.md,rendering error @@ -435,6 +533,7 @@ translations/es-ES/content/code-security/code-scanning/automatically-scanning-yo translations/es-ES/content/code-security/code-scanning/automatically-scanning-your-code-for-vulnerabilities-and-errors/index.md,rendering error translations/es-ES/content/code-security/code-scanning/automatically-scanning-your-code-for-vulnerabilities-and-errors/managing-code-scanning-alerts-for-your-repository.md,Listed in localization-support#489 translations/es-ES/content/code-security/code-scanning/automatically-scanning-your-code-for-vulnerabilities-and-errors/managing-code-scanning-alerts-for-your-repository.md,rendering error +translations/es-ES/content/code-security/code-scanning/automatically-scanning-your-code-for-vulnerabilities-and-errors/recommended-hardware-resources-for-running-codeql.md,rendering error translations/es-ES/content/code-security/code-scanning/automatically-scanning-your-code-for-vulnerabilities-and-errors/running-codeql-code-scanning-in-a-container.md,rendering error translations/es-ES/content/code-security/code-scanning/automatically-scanning-your-code-for-vulnerabilities-and-errors/setting-up-code-scanning-for-a-repository.md,Listed in localization-support#489 translations/es-ES/content/code-security/code-scanning/automatically-scanning-your-code-for-vulnerabilities-and-errors/setting-up-code-scanning-for-a-repository.md,rendering error @@ -521,6 +620,7 @@ translations/es-ES/content/code-security/supply-chain-security/understanding-you translations/es-ES/content/code-security/supply-chain-security/understanding-your-software-supply-chain/index.md,rendering error translations/es-ES/content/codespaces/codespaces-reference/allowing-your-codespace-to-access-a-private-image-registry.md,rendering error translations/es-ES/content/codespaces/codespaces-reference/disaster-recovery-for-codespaces.md,rendering error +translations/es-ES/content/codespaces/codespaces-reference/security-in-codespaces.md,rendering error translations/es-ES/content/codespaces/customizing-your-codespace/changing-the-machine-type-for-your-codespace.md,rendering error translations/es-ES/content/codespaces/customizing-your-codespace/index.md,rendering error translations/es-ES/content/codespaces/customizing-your-codespace/personalizing-codespaces-for-your-account.md,Listed in localization-support#489 @@ -533,6 +633,7 @@ translations/es-ES/content/codespaces/developing-in-codespaces/codespaces-lifecy translations/es-ES/content/codespaces/developing-in-codespaces/codespaces-lifecycle.md,rendering error translations/es-ES/content/codespaces/developing-in-codespaces/creating-a-codespace.md,Listed in localization-support#489 translations/es-ES/content/codespaces/developing-in-codespaces/creating-a-codespace.md,rendering error +translations/es-ES/content/codespaces/developing-in-codespaces/default-environment-variables-for-your-codespace.md,rendering error translations/es-ES/content/codespaces/developing-in-codespaces/deleting-a-codespace.md,Listed in localization-support#489 translations/es-ES/content/codespaces/developing-in-codespaces/deleting-a-codespace.md,rendering error translations/es-ES/content/codespaces/developing-in-codespaces/developing-in-a-codespace.md,Listed in localization-support#489 @@ -569,17 +670,31 @@ translations/es-ES/content/codespaces/setting-up-your-project-for-codespaces/set translations/es-ES/content/codespaces/setting-up-your-project-for-codespaces/setting-up-your-project-for-codespaces.md,rendering error translations/es-ES/content/codespaces/setting-up-your-project-for-codespaces/setting-up-your-python-project-for-codespaces.md,Listed in localization-support#489 translations/es-ES/content/codespaces/setting-up-your-project-for-codespaces/setting-up-your-python-project-for-codespaces.md,rendering error +translations/es-ES/content/codespaces/the-githubdev-web-based-editor.md,rendering error translations/es-ES/content/codespaces/troubleshooting/codespaces-logs.md,rendering error translations/es-ES/content/codespaces/troubleshooting/exporting-changes-to-a-branch.md,Listed in localization-support#489 translations/es-ES/content/codespaces/troubleshooting/exporting-changes-to-a-branch.md,rendering error +translations/es-ES/content/codespaces/troubleshooting/troubleshooting-codespaces-clients.md,rendering error +translations/es-ES/content/codespaces/troubleshooting/troubleshooting-creation-and-deletion-of-codespaces.md,rendering error translations/es-ES/content/communities/documenting-your-project-with-wikis/about-wikis.md,Listed in localization-support#489 translations/es-ES/content/communities/documenting-your-project-with-wikis/about-wikis.md,parsing error +translations/es-ES/content/communities/documenting-your-project-with-wikis/about-wikis.md,rendering error +translations/es-ES/content/communities/documenting-your-project-with-wikis/adding-or-editing-wiki-pages.md,rendering error translations/es-ES/content/communities/documenting-your-project-with-wikis/changing-access-permissions-for-wikis.md,rendering error +translations/es-ES/content/communities/documenting-your-project-with-wikis/creating-a-footer-or-sidebar-for-your-wiki.md,rendering error +translations/es-ES/content/communities/documenting-your-project-with-wikis/editing-wiki-content.md,rendering error +translations/es-ES/content/communities/documenting-your-project-with-wikis/index.md,rendering error translations/es-ES/content/communities/maintaining-your-safety-on-github/unblocking-a-user-from-your-organization.md,rendering error translations/es-ES/content/communities/moderating-comments-and-conversations/limiting-interactions-in-your-organization.md,rendering error translations/es-ES/content/communities/moderating-comments-and-conversations/limiting-interactions-in-your-repository.md,rendering error +translations/es-ES/content/communities/moderating-comments-and-conversations/managing-disruptive-comments.md,rendering error +translations/es-ES/content/communities/setting-up-your-project-for-healthy-contributions/about-community-profiles-for-public-repositories.md,rendering error +translations/es-ES/content/communities/setting-up-your-project-for-healthy-contributions/index.md,rendering error +translations/es-ES/content/communities/setting-up-your-project-for-healthy-contributions/setting-guidelines-for-repository-contributors.md,rendering error translations/es-ES/content/communities/using-templates-to-encourage-useful-issues-and-pull-requests/configuring-issue-templates-for-your-repository.md,Listed in localization-support#489 translations/es-ES/content/communities/using-templates-to-encourage-useful-issues-and-pull-requests/configuring-issue-templates-for-your-repository.md,rendering error +translations/es-ES/content/communities/using-templates-to-encourage-useful-issues-and-pull-requests/index.md,rendering error +translations/es-ES/content/communities/using-templates-to-encourage-useful-issues-and-pull-requests/manually-creating-a-single-issue-template-for-your-repository.md,rendering error translations/es-ES/content/communities/using-templates-to-encourage-useful-issues-and-pull-requests/syntax-for-githubs-form-schema.md,rendering error translations/es-ES/content/communities/using-templates-to-encourage-useful-issues-and-pull-requests/syntax-for-issue-forms.md,Listed in localization-support#489 translations/es-ES/content/communities/using-templates-to-encourage-useful-issues-and-pull-requests/syntax-for-issue-forms.md,rendering error @@ -587,24 +702,65 @@ translations/es-ES/content/desktop/contributing-and-collaborating-using-github-d translations/es-ES/content/desktop/contributing-and-collaborating-using-github-desktop/adding-and-cloning-repositories/cloning-and-forking-repositories-from-github-desktop.md,rendering error translations/es-ES/content/desktop/contributing-and-collaborating-using-github-desktop/making-changes-in-a-branch/managing-branches.md,Listed in localization-support#489 translations/es-ES/content/desktop/contributing-and-collaborating-using-github-desktop/making-changes-in-a-branch/managing-branches.md,rendering error +translations/es-ES/content/desktop/installing-and-configuring-github-desktop/overview/keyboard-shortcuts.md,rendering error translations/es-ES/content/developers/apps/building-github-apps/authenticating-with-github-apps.md,rendering error translations/es-ES/content/developers/apps/building-github-apps/creating-a-github-app-from-a-manifest.md,rendering error translations/es-ES/content/developers/apps/building-github-apps/creating-a-github-app-using-url-parameters.md,rendering error +translations/es-ES/content/developers/apps/building-github-apps/creating-a-github-app.md,rendering error translations/es-ES/content/developers/apps/building-github-apps/identifying-and-authorizing-users-for-github-apps.md,rendering error +translations/es-ES/content/developers/apps/building-github-apps/index.md,rendering error translations/es-ES/content/developers/apps/building-github-apps/managing-allowed-ip-addresses-for-a-github-app.md,rendering error translations/es-ES/content/developers/apps/building-github-apps/rate-limits-for-github-apps.md,rendering error translations/es-ES/content/developers/apps/building-github-apps/refreshing-user-to-server-access-tokens.md,rendering error +translations/es-ES/content/developers/apps/building-github-apps/setting-permissions-for-github-apps.md,rendering error translations/es-ES/content/developers/apps/building-oauth-apps/authorizing-oauth-apps.md,rendering error +translations/es-ES/content/developers/apps/building-oauth-apps/creating-an-oauth-app.md,rendering error +translations/es-ES/content/developers/apps/building-oauth-apps/index.md,rendering error translations/es-ES/content/developers/apps/building-oauth-apps/scopes-for-oauth-apps.md,rendering error translations/es-ES/content/developers/apps/getting-started-with-apps/about-apps.md,rendering error +translations/es-ES/content/developers/apps/getting-started-with-apps/differences-between-github-apps-and-oauth-apps.md,rendering error +translations/es-ES/content/developers/apps/getting-started-with-apps/migrating-oauth-apps-to-github-apps.md,rendering error +translations/es-ES/content/developers/apps/guides/index.md,rendering error translations/es-ES/content/developers/apps/guides/using-content-attachments.md,rendering error +translations/es-ES/content/developers/apps/guides/using-the-github-api-in-your-app.md,rendering error +translations/es-ES/content/developers/apps/index.md,rendering error +translations/es-ES/content/developers/apps/managing-github-apps/deleting-a-github-app.md,rendering error +translations/es-ES/content/developers/apps/managing-github-apps/editing-a-github-apps-permissions.md,rendering error +translations/es-ES/content/developers/apps/managing-github-apps/index.md,rendering error translations/es-ES/content/developers/apps/managing-github-apps/making-a-github-app-public-or-private.md,rendering error +translations/es-ES/content/developers/apps/managing-github-apps/modifying-a-github-app.md,rendering error +translations/es-ES/content/developers/apps/managing-github-apps/transferring-ownership-of-a-github-app.md,rendering error +translations/es-ES/content/developers/apps/managing-oauth-apps/deleting-an-oauth-app.md,rendering error +translations/es-ES/content/developers/apps/managing-oauth-apps/index.md,rendering error +translations/es-ES/content/developers/apps/managing-oauth-apps/modifying-an-oauth-app.md,rendering error +translations/es-ES/content/developers/apps/managing-oauth-apps/transferring-ownership-of-an-oauth-app.md,rendering error +translations/es-ES/content/developers/apps/managing-oauth-apps/troubleshooting-authorization-request-errors.md,rendering error +translations/es-ES/content/developers/apps/managing-oauth-apps/troubleshooting-oauth-app-access-token-request-errors.md,rendering error translations/es-ES/content/developers/github-marketplace/creating-apps-for-github-marketplace/requirements-for-listing-an-app.md,rendering error +translations/es-ES/content/developers/github-marketplace/creating-apps-for-github-marketplace/security-best-practices-for-apps.md,rendering error +translations/es-ES/content/developers/github-marketplace/creating-apps-for-github-marketplace/viewing-metrics-for-your-listing.md,rendering error translations/es-ES/content/developers/github-marketplace/github-marketplace-overview/about-github-marketplace.md,rendering error +translations/es-ES/content/developers/github-marketplace/index.md,rendering error +translations/es-ES/content/developers/github-marketplace/listing-an-app-on-github-marketplace/configuring-a-webhook-to-notify-you-of-plan-changes.md,rendering error +translations/es-ES/content/developers/github-marketplace/listing-an-app-on-github-marketplace/drafting-a-listing-for-your-app.md,rendering error +translations/es-ES/content/developers/github-marketplace/listing-an-app-on-github-marketplace/index.md,rendering error +translations/es-ES/content/developers/github-marketplace/listing-an-app-on-github-marketplace/setting-pricing-plans-for-your-listing.md,rendering error translations/es-ES/content/developers/github-marketplace/listing-an-app-on-github-marketplace/writing-a-listing-description-for-your-app.md,rendering error +translations/es-ES/content/developers/github-marketplace/selling-your-app-on-github-marketplace/billing-customers.md,rendering error +translations/es-ES/content/developers/github-marketplace/selling-your-app-on-github-marketplace/index.md,rendering error translations/es-ES/content/developers/github-marketplace/selling-your-app-on-github-marketplace/pricing-plans-for-github-marketplace-apps.md,rendering error +translations/es-ES/content/developers/github-marketplace/selling-your-app-on-github-marketplace/receiving-payment-for-app-purchases.md,rendering error +translations/es-ES/content/developers/github-marketplace/using-the-github-marketplace-api-in-your-app/handling-new-purchases-and-free-trials.md,rendering error +translations/es-ES/content/developers/github-marketplace/using-the-github-marketplace-api-in-your-app/handling-plan-cancellations.md,rendering error +translations/es-ES/content/developers/github-marketplace/using-the-github-marketplace-api-in-your-app/handling-plan-changes.md,rendering error +translations/es-ES/content/developers/github-marketplace/using-the-github-marketplace-api-in-your-app/index.md,rendering error +translations/es-ES/content/developers/github-marketplace/using-the-github-marketplace-api-in-your-app/rest-endpoints-for-the-github-marketplace-api.md,rendering error +translations/es-ES/content/developers/github-marketplace/using-the-github-marketplace-api-in-your-app/testing-your-app.md,rendering error translations/es-ES/content/developers/github-marketplace/using-the-github-marketplace-api-in-your-app/webhook-events-for-the-github-marketplace-api.md,rendering error translations/es-ES/content/developers/overview/managing-deploy-keys.md,rendering error +translations/es-ES/content/developers/overview/replacing-github-services.md,rendering error +translations/es-ES/content/developers/overview/secret-scanning-partner-program.md,rendering error +translations/es-ES/content/developers/overview/using-ssh-agent-forwarding.md,rendering error translations/es-ES/content/developers/webhooks-and-events/events/github-event-types.md,rendering error translations/es-ES/content/developers/webhooks-and-events/events/issue-event-types.md,Listed in localization-support#489 translations/es-ES/content/developers/webhooks-and-events/events/issue-event-types.md,rendering error @@ -615,8 +771,11 @@ translations/es-ES/content/discussions/guides/best-practices-for-community-conve translations/es-ES/content/discussions/guides/best-practices-for-community-conversations-on-github.md,rendering error translations/es-ES/content/discussions/index.md,Listed in localization-support#489 translations/es-ES/content/discussions/index.md,rendering error +translations/es-ES/content/education/explore-the-benefits-of-teaching-and-learning-with-github-education/use-github-at-your-educational-institution/about-campus-advisors.md,rendering error translations/es-ES/content/education/explore-the-benefits-of-teaching-and-learning-with-github-education/use-github-at-your-educational-institution/about-github-campus-program.md,rendering error translations/es-ES/content/education/explore-the-benefits-of-teaching-and-learning-with-github-education/use-github-for-your-schoolwork/why-wasnt-my-application-for-a-student-developer-pack-approved.md,rendering error +translations/es-ES/content/education/explore-the-benefits-of-teaching-and-learning-with-github-education/use-github-in-your-classroom-and-research/apply-for-an-educator-or-researcher-discount.md,rendering error +translations/es-ES/content/education/explore-the-benefits-of-teaching-and-learning-with-github-education/use-github-in-your-classroom-and-research/why-wasnt-my-application-for-an-educator-or-researcher-discount-approved.md,rendering error translations/es-ES/content/education/guides.md,Listed in localization-support#489 translations/es-ES/content/education/guides.md,rendering error translations/es-ES/content/education/manage-coursework-with-github-classroom/integrate-github-classroom-with-an-ide/about-using-makecode-arcade-with-github-classroom.md,rendering error @@ -647,7 +806,9 @@ translations/es-ES/content/get-started/getting-started-with-git/managing-remote- translations/es-ES/content/get-started/getting-started-with-git/updating-credentials-from-the-macos-keychain.md,rendering error translations/es-ES/content/get-started/index.md,rendering error translations/es-ES/content/get-started/learning-about-github/about-github-advanced-security.md,rendering error +translations/es-ES/content/get-started/learning-about-github/about-versions-of-github-docs.md,rendering error translations/es-ES/content/get-started/learning-about-github/access-permissions-on-github.md,rendering error +translations/es-ES/content/get-started/learning-about-github/githubs-products.md,rendering error translations/es-ES/content/get-started/learning-about-github/index.md,rendering error translations/es-ES/content/get-started/learning-about-github/types-of-github-accounts.md,rendering error translations/es-ES/content/get-started/onboarding/getting-started-with-github-ae.md,rendering error @@ -672,6 +833,7 @@ translations/es-ES/content/get-started/signing-up-for-github/index.md,rendering translations/es-ES/content/get-started/signing-up-for-github/setting-up-a-trial-of-github-ae.md,rendering error translations/es-ES/content/get-started/signing-up-for-github/setting-up-a-trial-of-github-enterprise-cloud.md,rendering error translations/es-ES/content/get-started/signing-up-for-github/setting-up-a-trial-of-github-enterprise-server.md,rendering error +translations/es-ES/content/get-started/signing-up-for-github/signing-up-for-a-new-github-account.md,rendering error translations/es-ES/content/get-started/signing-up-for-github/verifying-your-email-address.md,rendering error translations/es-ES/content/get-started/using-git/about-git-rebase.md,Listed in localization-support#489 translations/es-ES/content/get-started/using-git/about-git-rebase.md,rendering error @@ -686,6 +848,7 @@ translations/es-ES/content/get-started/using-git/resolving-merge-conflicts-after translations/es-ES/content/get-started/using-git/resolving-merge-conflicts-after-a-git-rebase.md,rendering error translations/es-ES/content/get-started/using-git/splitting-a-subfolder-out-into-a-new-repository.md,rendering error translations/es-ES/content/get-started/using-git/using-git-rebase-on-the-command-line.md,rendering error +translations/es-ES/content/get-started/using-github/exploring-early-access-releases-with-feature-preview.md,rendering error translations/es-ES/content/get-started/using-github/github-command-palette.md,Listed in localization-support#489 translations/es-ES/content/get-started/using-github/github-command-palette.md,rendering error translations/es-ES/content/get-started/using-github/github-mobile.md,rendering error @@ -735,6 +898,7 @@ translations/es-ES/content/github/site-policy/guide-to-submitting-a-dmca-takedow translations/es-ES/content/github/site-policy/guidelines-for-legal-requests-of-user-data.md,rendering error translations/es-ES/content/github/site-policy/index.md,Listed in localization-support#489 translations/es-ES/content/github/site-policy/index.md,rendering error +translations/es-ES/content/github/understanding-how-github-uses-and-protects-your-data/managing-data-use-settings-for-your-private-repository.md,rendering error translations/es-ES/content/github/working-with-github-support/about-github-premium-support-for-github-enterprise-cloud.md,rendering error translations/es-ES/content/github/working-with-github-support/about-github-support.md,Listed in localization-support#489 translations/es-ES/content/github/working-with-github-support/about-github-support.md,rendering error @@ -745,13 +909,16 @@ translations/es-ES/content/github/working-with-github-support/submitting-a-ticke translations/es-ES/content/github/writing-on-github/editing-and-sharing-content-with-gists/creating-gists.md,rendering error translations/es-ES/content/github/writing-on-github/editing-and-sharing-content-with-gists/forking-and-cloning-gists.md,rendering error translations/es-ES/content/github/writing-on-github/editing-and-sharing-content-with-gists/index.md,rendering error +translations/es-ES/content/github/writing-on-github/getting-started-with-writing-and-formatting-on-github/about-writing-and-formatting-on-github.md,rendering error translations/es-ES/content/github/writing-on-github/getting-started-with-writing-and-formatting-on-github/basic-writing-and-formatting-syntax.md,Listed in localization-support#489 translations/es-ES/content/github/writing-on-github/getting-started-with-writing-and-formatting-on-github/basic-writing-and-formatting-syntax.md,rendering error translations/es-ES/content/github/writing-on-github/getting-started-with-writing-and-formatting-on-github/index.md,rendering error translations/es-ES/content/github/writing-on-github/index.md,rendering error translations/es-ES/content/github/writing-on-github/working-with-advanced-formatting/attaching-files.md,rendering error +translations/es-ES/content/github/writing-on-github/working-with-advanced-formatting/creating-and-highlighting-code-blocks.md,rendering error translations/es-ES/content/github/writing-on-github/working-with-advanced-formatting/index.md,rendering error translations/es-ES/content/github/writing-on-github/working-with-advanced-formatting/organizing-information-with-collapsed-sections.md,rendering error +translations/es-ES/content/github/writing-on-github/working-with-advanced-formatting/organizing-information-with-tables.md,rendering error translations/es-ES/content/github/writing-on-github/working-with-saved-replies/editing-a-saved-reply.md,rendering error translations/es-ES/content/graphql/guides/index.md,rendering error translations/es-ES/content/graphql/guides/managing-enterprise-accounts.md,rendering error @@ -759,9 +926,20 @@ translations/es-ES/content/graphql/guides/migrating-graphql-global-node-ids.md,r translations/es-ES/content/graphql/index.md,rendering error translations/es-ES/content/graphql/overview/breaking-changes.md,Listed in localization-support#489 translations/es-ES/content/graphql/overview/breaking-changes.md,rendering error +translations/es-ES/content/graphql/reference/mutations.md,rendering error translations/es-ES/content/index.md,Listed in localization-support#489 translations/es-ES/content/index.md,rendering error translations/es-ES/content/issues/guides.md,rendering error +translations/es-ES/content/issues/index.md,rendering error +translations/es-ES/content/issues/organizing-your-work-with-project-boards/managing-project-boards/about-project-boards.md,rendering error +translations/es-ES/content/issues/organizing-your-work-with-project-boards/managing-project-boards/closing-a-project-board.md,rendering error +translations/es-ES/content/issues/organizing-your-work-with-project-boards/managing-project-boards/creating-a-project-board.md,rendering error +translations/es-ES/content/issues/organizing-your-work-with-project-boards/managing-project-boards/deleting-a-project-board.md,rendering error +translations/es-ES/content/issues/organizing-your-work-with-project-boards/managing-project-boards/editing-a-project-board.md,rendering error +translations/es-ES/content/issues/organizing-your-work-with-project-boards/managing-project-boards/reopening-a-closed-project-board.md,rendering error +translations/es-ES/content/issues/organizing-your-work-with-project-boards/tracking-work-with-project-boards/adding-issues-and-pull-requests-to-a-project-board.md,rendering error +translations/es-ES/content/issues/organizing-your-work-with-project-boards/tracking-work-with-project-boards/adding-notes-to-a-project-board.md,rendering error +translations/es-ES/content/issues/tracking-your-work-with-issues/about-issues.md,rendering error translations/es-ES/content/issues/tracking-your-work-with-issues/about-task-lists.md,Listed in localization-support#489 translations/es-ES/content/issues/tracking-your-work-with-issues/about-task-lists.md,rendering error translations/es-ES/content/issues/tracking-your-work-with-issues/creating-an-issue.md,Listed in localization-support#489 @@ -771,6 +949,7 @@ translations/es-ES/content/issues/tracking-your-work-with-issues/filtering-and-s translations/es-ES/content/issues/tracking-your-work-with-issues/filtering-and-searching-issues-and-pull-requests.md,rendering error translations/es-ES/content/issues/tracking-your-work-with-issues/linking-a-pull-request-to-an-issue.md,Listed in localization-support#489 translations/es-ES/content/issues/tracking-your-work-with-issues/linking-a-pull-request-to-an-issue.md,rendering error +translations/es-ES/content/issues/tracking-your-work-with-issues/planning-and-tracking-work-for-your-team-or-project.md,rendering error translations/es-ES/content/issues/tracking-your-work-with-issues/transferring-an-issue-to-another-repository.md,rendering error translations/es-ES/content/issues/tracking-your-work-with-issues/viewing-all-of-your-issues-and-pull-requests.md,rendering error translations/es-ES/content/issues/trying-out-the-new-projects-experience/about-projects.md,rendering error @@ -781,14 +960,20 @@ translations/es-ES/content/issues/trying-out-the-new-projects-experience/customi translations/es-ES/content/issues/trying-out-the-new-projects-experience/managing-access-to-projects.md,rendering error translations/es-ES/content/issues/trying-out-the-new-projects-experience/quickstart.md,rendering error translations/es-ES/content/issues/trying-out-the-new-projects-experience/using-the-api-to-manage-projects.md,rendering error +translations/es-ES/content/issues/using-labels-and-milestones-to-track-work/creating-and-editing-milestones-for-issues-and-pull-requests.md,rendering error +translations/es-ES/content/issues/using-labels-and-milestones-to-track-work/managing-labels.md,rendering error translations/es-ES/content/organizations/collaborating-with-groups-in-organizations/about-organizations.md,Listed in localization-support#489 translations/es-ES/content/organizations/collaborating-with-groups-in-organizations/about-organizations.md,rendering error translations/es-ES/content/organizations/collaborating-with-groups-in-organizations/about-your-organizations-news-feed.md,rendering error +translations/es-ES/content/organizations/collaborating-with-groups-in-organizations/accessing-your-organizations-settings.md,rendering error +translations/es-ES/content/organizations/collaborating-with-groups-in-organizations/index.md,rendering error translations/es-ES/content/organizations/collaborating-with-groups-in-organizations/viewing-insights-for-your-organization.md,rendering error translations/es-ES/content/organizations/granting-access-to-your-organization-with-saml-single-sign-on/about-two-factor-authentication-and-saml-single-sign-on.md,rendering error translations/es-ES/content/organizations/granting-access-to-your-organization-with-saml-single-sign-on/index.md,rendering error translations/es-ES/content/organizations/granting-access-to-your-organization-with-saml-single-sign-on/managing-bots-and-service-accounts-with-saml-single-sign-on.md,rendering error translations/es-ES/content/organizations/granting-access-to-your-organization-with-saml-single-sign-on/viewing-and-managing-a-members-saml-access-to-your-organization.md,rendering error +translations/es-ES/content/organizations/index.md,rendering error +translations/es-ES/content/organizations/keeping-your-organization-secure/index.md,rendering error translations/es-ES/content/organizations/keeping-your-organization-secure/managing-allowed-ip-addresses-for-your-organization.md,rendering error translations/es-ES/content/organizations/keeping-your-organization-secure/managing-security-and-analysis-settings-for-your-organization.md,Listed in localization-support#489 translations/es-ES/content/organizations/keeping-your-organization-secure/managing-security-and-analysis-settings-for-your-organization.md,rendering error @@ -802,6 +987,7 @@ translations/es-ES/content/organizations/managing-access-to-your-organizations-r translations/es-ES/content/organizations/managing-access-to-your-organizations-repositories/adding-outside-collaborators-to-repositories-in-your-organization.md,rendering error translations/es-ES/content/organizations/managing-access-to-your-organizations-repositories/converting-an-organization-member-to-an-outside-collaborator.md,rendering error translations/es-ES/content/organizations/managing-access-to-your-organizations-repositories/converting-an-outside-collaborator-to-an-organization-member.md,rendering error +translations/es-ES/content/organizations/managing-access-to-your-organizations-repositories/index.md,rendering error translations/es-ES/content/organizations/managing-access-to-your-organizations-repositories/managing-an-individuals-access-to-an-organization-repository.md,rendering error translations/es-ES/content/organizations/managing-access-to-your-organizations-repositories/managing-team-access-to-an-organization-repository.md,rendering error translations/es-ES/content/organizations/managing-access-to-your-organizations-repositories/reinstating-a-former-outside-collaborators-access-to-your-organization.md,rendering error @@ -810,6 +996,7 @@ translations/es-ES/content/organizations/managing-access-to-your-organizations-r translations/es-ES/content/organizations/managing-access-to-your-organizations-repositories/setting-base-permissions-for-an-organization.md,rendering error translations/es-ES/content/organizations/managing-git-access-to-your-organizations-repositories/about-ssh-certificate-authorities.md,Listed in localization-support#489 translations/es-ES/content/organizations/managing-git-access-to-your-organizations-repositories/about-ssh-certificate-authorities.md,rendering error +translations/es-ES/content/organizations/managing-git-access-to-your-organizations-repositories/index.md,rendering error translations/es-ES/content/organizations/managing-membership-in-your-organization/can-i-create-accounts-for-people-in-my-organization.md,rendering error translations/es-ES/content/organizations/managing-membership-in-your-organization/exporting-member-information-for-your-organization.md,Listed in localization-support#489 translations/es-ES/content/organizations/managing-membership-in-your-organization/exporting-member-information-for-your-organization.md,rendering error @@ -831,11 +1018,15 @@ translations/es-ES/content/organizations/managing-organization-settings/managing translations/es-ES/content/organizations/managing-organization-settings/renaming-an-organization.md,Listed in localization-support#489 translations/es-ES/content/organizations/managing-organization-settings/renaming-an-organization.md,rendering error translations/es-ES/content/organizations/managing-organization-settings/restricting-repository-creation-in-your-organization.md,rendering error +translations/es-ES/content/organizations/managing-organization-settings/setting-permissions-for-adding-outside-collaborators.md,rendering error +translations/es-ES/content/organizations/managing-organization-settings/setting-permissions-for-deleting-or-transferring-repositories.md,rendering error +translations/es-ES/content/organizations/managing-organization-settings/transferring-organization-ownership.md,rendering error translations/es-ES/content/organizations/managing-organization-settings/verifying-or-approving-a-domain-for-your-organization.md,Listed in localization-support#489 translations/es-ES/content/organizations/managing-organization-settings/verifying-or-approving-a-domain-for-your-organization.md,rendering error translations/es-ES/content/organizations/managing-peoples-access-to-your-organization-with-roles/index.md,rendering error translations/es-ES/content/organizations/managing-peoples-access-to-your-organization-with-roles/managing-custom-repository-roles-for-an-organization.md,Listed in localization-support#489 translations/es-ES/content/organizations/managing-peoples-access-to-your-organization-with-roles/managing-custom-repository-roles-for-an-organization.md,rendering error +translations/es-ES/content/organizations/managing-peoples-access-to-your-organization-with-roles/managing-security-managers-in-your-organization.md,rendering error translations/es-ES/content/organizations/managing-peoples-access-to-your-organization-with-roles/roles-in-an-organization.md,Listed in localization-support#489 translations/es-ES/content/organizations/managing-peoples-access-to-your-organization-with-roles/roles-in-an-organization.md,rendering error translations/es-ES/content/organizations/managing-saml-single-sign-on-for-your-organization/about-identity-and-access-management-with-saml-single-sign-on.md,rendering error @@ -851,16 +1042,28 @@ translations/es-ES/content/organizations/managing-saml-single-sign-on-for-your-o translations/es-ES/content/organizations/managing-saml-single-sign-on-for-your-organization/preparing-to-enforce-saml-single-sign-on-in-your-organization.md,rendering error translations/es-ES/content/organizations/managing-saml-single-sign-on-for-your-organization/troubleshooting-identity-and-access-management.md,rendering error translations/es-ES/content/organizations/migrating-to-improved-organization-permissions/converting-an-admin-team-to-improved-organization-permissions.md,rendering error +translations/es-ES/content/organizations/migrating-to-improved-organization-permissions/converting-an-owners-team-to-improved-organization-permissions.md,rendering error +translations/es-ES/content/organizations/migrating-to-improved-organization-permissions/index.md,rendering error translations/es-ES/content/organizations/migrating-to-improved-organization-permissions/migrating-admin-teams-to-improved-organization-permissions.md,rendering error translations/es-ES/content/organizations/organizing-members-into-teams/about-teams.md,rendering error +translations/es-ES/content/organizations/organizing-members-into-teams/adding-organization-members-to-a-team.md,rendering error +translations/es-ES/content/organizations/organizing-members-into-teams/assigning-the-team-maintainer-role-to-a-team-member.md,rendering error translations/es-ES/content/organizations/organizing-members-into-teams/creating-a-team.md,rendering error translations/es-ES/content/organizations/organizing-members-into-teams/index.md,Listed in localization-support#489 translations/es-ES/content/organizations/organizing-members-into-teams/index.md,rendering error translations/es-ES/content/organizations/organizing-members-into-teams/managing-code-review-settings-for-your-team.md,Listed in localization-support#489 translations/es-ES/content/organizations/organizing-members-into-teams/managing-code-review-settings-for-your-team.md,rendering error +translations/es-ES/content/organizations/organizing-members-into-teams/moving-a-team-in-your-organizations-hierarchy.md,rendering error +translations/es-ES/content/organizations/organizing-members-into-teams/removing-organization-members-from-a-team.md,rendering error translations/es-ES/content/organizations/organizing-members-into-teams/synchronizing-a-team-with-an-identity-provider-group.md,rendering error +translations/es-ES/content/organizations/restricting-access-to-your-organizations-data/about-oauth-app-access-restrictions.md,rendering error +translations/es-ES/content/organizations/restricting-access-to-your-organizations-data/approving-oauth-apps-for-your-organization.md,rendering error +translations/es-ES/content/organizations/restricting-access-to-your-organizations-data/denying-access-to-a-previously-approved-oauth-app-for-your-organization.md,rendering error +translations/es-ES/content/organizations/restricting-access-to-your-organizations-data/disabling-oauth-app-access-restrictions-for-your-organization.md,rendering error +translations/es-ES/content/organizations/restricting-access-to-your-organizations-data/enabling-oauth-app-access-restrictions-for-your-organization.md,rendering error translations/es-ES/content/packages/learn-github-packages/about-permissions-for-github-packages.md,rendering error translations/es-ES/content/packages/learn-github-packages/configuring-a-packages-access-control-and-visibility.md,rendering error +translations/es-ES/content/packages/learn-github-packages/deleting-a-package.md,rendering error translations/es-ES/content/packages/learn-github-packages/deleting-and-restoring-a-package.md,Listed in localization-support#489 translations/es-ES/content/packages/learn-github-packages/deleting-and-restoring-a-package.md,rendering error translations/es-ES/content/packages/learn-github-packages/installing-a-package.md,rendering error @@ -886,13 +1089,24 @@ translations/es-ES/content/pages/configuring-a-custom-domain-for-your-github-pag translations/es-ES/content/pages/configuring-a-custom-domain-for-your-github-pages-site/verifying-your-custom-domain-for-github-pages.md,rendering error translations/es-ES/content/pages/getting-started-with-github-pages/about-github-pages.md,Listed in localization-support#489 translations/es-ES/content/pages/getting-started-with-github-pages/about-github-pages.md,rendering error +translations/es-ES/content/pages/getting-started-with-github-pages/adding-a-theme-to-your-github-pages-site-with-the-theme-chooser.md,rendering error translations/es-ES/content/pages/getting-started-with-github-pages/configuring-a-publishing-source-for-your-github-pages-site.md,rendering error +translations/es-ES/content/pages/getting-started-with-github-pages/creating-a-custom-404-page-for-your-github-pages-site.md,rendering error translations/es-ES/content/pages/getting-started-with-github-pages/creating-a-github-pages-site.md,rendering error +translations/es-ES/content/pages/getting-started-with-github-pages/index.md,rendering error +translations/es-ES/content/pages/getting-started-with-github-pages/securing-your-github-pages-site-with-https.md,rendering error +translations/es-ES/content/pages/getting-started-with-github-pages/unpublishing-a-github-pages-site.md,rendering error +translations/es-ES/content/pages/getting-started-with-github-pages/using-submodules-with-github-pages.md,rendering error translations/es-ES/content/pages/index.md,rendering error translations/es-ES/content/pages/setting-up-a-github-pages-site-with-jekyll/about-github-pages-and-jekyll.md,rendering error translations/es-ES/content/pages/setting-up-a-github-pages-site-with-jekyll/about-jekyll-build-errors-for-github-pages-sites.md,Listed in localization-support#489 translations/es-ES/content/pages/setting-up-a-github-pages-site-with-jekyll/about-jekyll-build-errors-for-github-pages-sites.md,rendering error +translations/es-ES/content/pages/setting-up-a-github-pages-site-with-jekyll/adding-a-theme-to-your-github-pages-site-using-jekyll.md,rendering error translations/es-ES/content/pages/setting-up-a-github-pages-site-with-jekyll/creating-a-github-pages-site-with-jekyll.md,rendering error +translations/es-ES/content/pages/setting-up-a-github-pages-site-with-jekyll/index.md,rendering error +translations/es-ES/content/pages/setting-up-a-github-pages-site-with-jekyll/setting-a-markdown-processor-for-your-github-pages-site-using-jekyll.md,rendering error +translations/es-ES/content/pages/setting-up-a-github-pages-site-with-jekyll/testing-your-github-pages-site-locally-with-jekyll.md,rendering error +translations/es-ES/content/pages/setting-up-a-github-pages-site-with-jekyll/troubleshooting-jekyll-build-errors-for-github-pages-sites.md,rendering error translations/es-ES/content/pull-requests/collaborating-with-pull-requests/addressing-merge-conflicts/about-merge-conflicts.md,Listed in localization-support#489 translations/es-ES/content/pull-requests/collaborating-with-pull-requests/addressing-merge-conflicts/about-merge-conflicts.md,rendering error translations/es-ES/content/pull-requests/collaborating-with-pull-requests/addressing-merge-conflicts/index.md,Listed in localization-support#489 @@ -1073,6 +1287,7 @@ translations/es-ES/content/repositories/releasing-projects-on-github/about-relea translations/es-ES/content/repositories/releasing-projects-on-github/about-releases.md,rendering error translations/es-ES/content/repositories/releasing-projects-on-github/automatically-generated-release-notes.md,rendering error translations/es-ES/content/repositories/releasing-projects-on-github/index.md,rendering error +translations/es-ES/content/repositories/releasing-projects-on-github/linking-to-releases.md,rendering error translations/es-ES/content/repositories/releasing-projects-on-github/managing-releases-in-a-repository.md,Listed in localization-support#489 translations/es-ES/content/repositories/releasing-projects-on-github/managing-releases-in-a-repository.md,rendering error translations/es-ES/content/repositories/releasing-projects-on-github/viewing-your-repositorys-releases-and-tags.md,rendering error @@ -1082,6 +1297,7 @@ translations/es-ES/content/repositories/viewing-activity-and-data-for-your-repos translations/es-ES/content/repositories/viewing-activity-and-data-for-your-repository/viewing-deployment-activity-for-your-repository.md,Listed in localization-support#489 translations/es-ES/content/repositories/viewing-activity-and-data-for-your-repository/viewing-deployment-activity-for-your-repository.md,rendering error translations/es-ES/content/repositories/working-with-files/index.md,rendering error +translations/es-ES/content/repositories/working-with-files/managing-files/adding-a-file-to-a-repository.md,rendering error translations/es-ES/content/repositories/working-with-files/managing-files/creating-new-files.md,Listed in localization-support#489 translations/es-ES/content/repositories/working-with-files/managing-files/creating-new-files.md,rendering error translations/es-ES/content/repositories/working-with-files/managing-files/editing-files.md,rendering error @@ -1099,9 +1315,11 @@ translations/es-ES/content/repositories/working-with-files/managing-large-files/ translations/es-ES/content/repositories/working-with-files/using-files/getting-permanent-links-to-files.md,rendering error translations/es-ES/content/repositories/working-with-files/using-files/navigating-code-on-github.md,rendering error translations/es-ES/content/repositories/working-with-files/using-files/tracking-changes-in-a-file.md,rendering error +translations/es-ES/content/repositories/working-with-files/using-files/working-with-non-code-files.md,rendering error translations/es-ES/content/rest/guides/basics-of-authentication.md,rendering error translations/es-ES/content/rest/guides/best-practices-for-integrators.md,rendering error translations/es-ES/content/rest/guides/building-a-ci-server.md,rendering error +translations/es-ES/content/rest/guides/delivering-deployments.md,rendering error translations/es-ES/content/rest/guides/discovering-resources-for-a-user.md,rendering error translations/es-ES/content/rest/guides/getting-started-with-the-rest-api.md,rendering error translations/es-ES/content/rest/guides/index.md,rendering error @@ -1122,26 +1340,37 @@ translations/es-ES/content/rest/reference/apps.md,Listed in localization-support translations/es-ES/content/rest/reference/apps.md,rendering error translations/es-ES/content/rest/reference/billing.md,Listed in localization-support#489 translations/es-ES/content/rest/reference/billing.md,rendering error +translations/es-ES/content/rest/reference/branches.md,rendering error translations/es-ES/content/rest/reference/checks.md,Listed in localization-support#489 translations/es-ES/content/rest/reference/checks.md,rendering error +translations/es-ES/content/rest/reference/collaborators.md,rendering error +translations/es-ES/content/rest/reference/commits.md,rendering error +translations/es-ES/content/rest/reference/deployments.md,rendering error translations/es-ES/content/rest/reference/enterprise-admin.md,Listed in localization-support#489 translations/es-ES/content/rest/reference/enterprise-admin.md,rendering error translations/es-ES/content/rest/reference/gitignore.md,rendering error +translations/es-ES/content/rest/reference/index.md,rendering error translations/es-ES/content/rest/reference/licenses.md,rendering error translations/es-ES/content/rest/reference/migrations.md,rendering error +translations/es-ES/content/rest/reference/orgs.md,rendering error translations/es-ES/content/rest/reference/packages.md,rendering error +translations/es-ES/content/rest/reference/pages.md,rendering error translations/es-ES/content/rest/reference/permissions-required-for-github-apps.md,rendering error translations/es-ES/content/rest/reference/pulls.md,Listed in localization-support#489 translations/es-ES/content/rest/reference/pulls.md,rendering error +translations/es-ES/content/rest/reference/releases.md,rendering error translations/es-ES/content/rest/reference/repos.md,Listed in localization-support#489 translations/es-ES/content/rest/reference/repos.md,rendering error +translations/es-ES/content/rest/reference/repository-metrics.md,rendering error translations/es-ES/content/rest/reference/scim.md,rendering error translations/es-ES/content/rest/reference/search.md,rendering error translations/es-ES/content/rest/reference/secret-scanning.md,rendering error translations/es-ES/content/rest/reference/teams.md,rendering error +translations/es-ES/content/rest/reference/webhooks.md,rendering error translations/es-ES/content/search-github/getting-started-with-searching-on-github/about-searching-on-github.md,rendering error translations/es-ES/content/search-github/getting-started-with-searching-on-github/enabling-githubcom-repository-search-from-your-private-enterprise-environment.md,rendering error translations/es-ES/content/search-github/getting-started-with-searching-on-github/understanding-the-search-syntax.md,rendering error +translations/es-ES/content/search-github/index.md,rendering error translations/es-ES/content/search-github/searching-on-github/searching-code.md,Listed in localization-support#489 translations/es-ES/content/search-github/searching-on-github/searching-code.md,rendering error translations/es-ES/content/search-github/searching-on-github/searching-commits.md,Listed in localization-support#489 From 04b396cd2dbf17655d20fdf3d888e1f96cc6b892 Mon Sep 17 00:00:00 2001 From: Katherine Kampf Date: Mon, 10 Jan 2022 16:39:50 -0300 Subject: [PATCH 23/68] Update Classroom assignment pages (#24125) * update individual assignment image with new design * add new table term definitions * add new active/inactive instructions * replace images in autograding article * add table definitions for group assignments * standardize language for definitions * replace image for group assignments * whoops file name typo * small style changes Co-authored-by: Ethan Palm <56270045+ethanpalm@users.noreply.github.com> --- .../help/classroom/assignment-group-hero.png | Bin 76557 -> 207063 bytes .../classroom/assignment-individual-hero.png | Bin 114268 -> 303959 bytes .../classroom/assignments-click-view-test.png | Bin 45493 -> 59765 bytes .../create-a-group-assignment.md | 10 ++++++++++ .../create-an-individual-assignment.md | 11 ++++++++++- .../use-autograding.md | 2 +- .../assignments-to-prevent-submission.md | 2 +- 7 files changed, 22 insertions(+), 3 deletions(-) diff --git a/assets/images/help/classroom/assignment-group-hero.png b/assets/images/help/classroom/assignment-group-hero.png index b881d2f36bab19c2b1cae83a707b52eec43271c5..259f7f40dd9468691bc4a72be3b50ed48549049c 100644 GIT binary patch literal 207063 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

%9nD#4RcDyReVX2a$6;65fVw_r5-`I7 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¨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 z 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 D{8y3s literal 114268 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

0-aYXz4%ZYd}0QhFK|&aCQ{V>tNs3Y7-TG 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%0A*U7*mPYj#B_(!Z z!9CUKwo%?s#61?1c^oH)+c>FBleI{=FXUg(I|>rPw#+#t3z`V}%;TcrmX771*{sVW z(HufdLX|F*Dj#}hcGs5ntw3P2dwr)X2Eyp!aH6IX0EelKn_;q^yaoB96 zQpt5X=QX`jiz8P}lS3h3dKiq~JyRocV?zz&5{0%bc|Y-RJ51e6a%_b<(1C6HQREOY zoZa7gp|-_RB1m<46lL`>j~({YVoS@E|1vqc>Mk`GZJ`OEB5a9d-v+vx-APL8IgXnS zfL)|v@9O^i^>H0b4-nLcOC&M?6W?y1{fi*;&_oYYJr0i7Cat<2R}vN~tFBk!L2_u| z7H7c}ARWwZND~UhfmomSQD7}X6uitsjU+S2pfkYKNk|Ol+WY?*<`~y_lE!*;JDxr*F=c5x#L>Zk`T@dG3k(`-Q$m!B~ut9D(_bl_C2ccY9&+i@)eupADwaHdT#egw?`u`H=H^HN3CoBHUq+s0wk zX!KCHHy=IKe3Hu(?AGE`A3oQwaL^j)kMkP6jx<7?2!~@ZCV@rUnnWP@_cX#@ zgEhL21bP0G8DMzpg0owi-1Q>(GGbt4zdMeS)Ft-EwggA#a<9G=U%gl@m(x#>RCBf1 z9-hroaP8j*-#p|{s<5kPK%!Qz#=2-+@8`kjf@&Day%Tsc99VtiEUiyjx>mSI6z?Ks z;0x{GIrlKPdvL5hP%H%6dmz6c!*gcrNue*Ha?>oJ$j4-{_qOCu?ynR93L=dV^yS15 zH+pSvdD1&8y3C~5O)S{MV@^`~^{Z%wygk#~1b8%9%6hB&i6Oo@9=Z+W`o8Z#4E$9b zW?Gwn?$LQ>uI%`z3)(HK`!O8Oz$JLk`SxZhY&0!E2fXl4h zc5k~WvopzumI;O8sL-al?i%~z-N#`ouMhm)B`%o}DRfP++TL`b%i=9x#JkGG2M9&G zA&rQn)6PC6n+TZTk$wT0Sft(j0hIL zm~lLzCYM$naoL>0;hZenO1AXsMQuSM-3i~)kH?cD!{ux*At}K*wgM6Yu~%U{yPIZi zzJ=0$5GOFiL5@K4-HwflGLt5;We8&Q*7(sMcuipuHpz-2-VAmiUW0KrY)A5Z{wOe;dOSvcer|`suM%NGi4z$N&WTii-;i z4>IVh{aU0N??xN_dm$-w3H%2BPN{$oAWvPd5M|srtgcB>V@M+jbI4r{Sap{<_k+`h zp#konwkdTd2BQtKDj|tQY>QSm9jiB+^V=mh@*3`ezkN6C zt5@%&$$OD|Ak|zd-|kL)$(9?m5!sSSylAOA8a2<3%m4UdZl$)>s^n@AX$_LlR6)DNBM(g0yI z0y93*zVN7B+HsZ>T!9|STkgY`$E!E}vpV0jrm;RD@@2RPCpIPb3AD)_4c&pjG}liU zKOxBxU*NF@??fbK0K2CtW-sJRBTqC$w|4QO1}hzKl9;tt9!bI??;AwQ3A2fnS)fNO z6}AVQiv4bEiS8Zi$E{+owErpeq>p#%>p$%+5@lK~jvbY)JEiaQQ)h%^;0+F2ASBh@ zKf9K$&TZDC<6dgGaZSxV6ny?$VTtrL0fRqD?5!GRy1S_dH5Y&I>WPMXp)jy5!a{@2 z7brNl5|KUFc9exJ;`x*I$fnGD}hA4q>jMd-h z{J1Q$n^NmQ>=(iiagl)?u#B3a>-9ml2=Wk*+Pf1%R5?ghq#GmP?8^vj*UZ~~?=PW- zfo8m~R}w*B5IJJ|3Ndpq?^^Dn4X1ga`)cDqp!Sd}_?rBj%=;p+4Y{pRR>AwOEnP4v zr0B0?{z)2C*ow?o7(HMhUgyWDsCPQ`Ak^`C45Dgjh7EjjB2|YgNmc_##&>&9K0o3; z7$5S5t9Z^FzvE0n;nxXOf_P61DU6ZJ1iy|SV1b~CSHUuSN5H{H#=R#p>K^K}Qcwxsz)_r$aSu&T}o0Gbhqmw?n)U7`6a1YZ+0 zrB~fg6S2@Gq!RVKGy2<=NwV-4@hXm1@25R7x!jLs=)ro1Gj<@h>v($Q&2>Tyr(gV} z5Rm=)+I8``g3+4!O7{XcY)n-^qta0y=*lx!=c=#_L18;IJx)E*@DyG6`Ls&yAW1_* zTQ9>7UB%=SHjo=28%}#{MT0ZcF&w?^n`yh;F2vQEyN_ z;{?0`vt{_$WN|~LBEX!miep)Gb8|bc{jad|D{!oqc*O?A>9tCGD@e|isKHuwmcfll z!@~i_DFc7iq@W~tkHJW!G`{5Z!D}~3hs+6`=-6-<6GM;+8w2GH149_JuOPMmB~gph z&7Q!q{=aEI2XezD;XTa(3&XqBQQ&@HJq+J55Ze)@M?BEli8Zs{2_Yk&7(=o=#3bjC ziZN;$YhZfodOgDMPv4QhlOPh>+DxnW|4PQFX!*bBmK@VEMtPYT5ncw(?_v?`{RD6U zk7TrXw)V_jn1q3Zg1+fjtcgW|^_7}g8ge{X!c7lg9Cz*ndB;4d0n%1H#CT~tSpUlW zp2LU|{D!NO{O0B3zF2UFYanB`C&pa^S|CDukG$cHj;1>Uy6e#+Ue*dhdv9TMbxE`d zP6dB;x%^2%+wNxQ6PyBK;gVquN|J-hMBx|6%e_Bha<)&!7DE0Gc6HxQ$~IizLvJ06 z!Z<6|nlWbb5tDItF5$tOj-$=GaR+|}zG7pU_uWLNT=(H2$H$CW z&C}DVrOR`wozf|MZyaJ~UmWel&h&;>O{SM#1`HN)U~{6g?6r;e$M$75F6ZYg$4+U7 zZda@?z4Vqg^q(lVLE^6DGMUD_?bmdm>yNK5Q%aD7i8z_g2}HTOH7ERj>JN9Yhjw}4 z50%bE?Z8ZqPBMP;3pcZWX}|Nh#P$gm@i%v;X6zVU2!h+Q4_*qZC)+vZyjS|vx26Qw z>vAX7W1mhooh~l*9!6W1OL$>#t*HaZx$EQG=N4C3@|E}@O7wo+8I4?`wW+Uq=I}&3 zzbW)UF)wKrD92e_KN7h=TJMf9vaEEdh~icqJS^0`tVloMMk5r6z5h_8@g8BSD}5y) zMZMvEy$GiJQDr)*|E_U-Z@}ong3!4ki8iEX{+iu4OK1uJ2>Z?P$73{XRo|Lz??O>r zGhW~LKI6NCgwM($;ZC%<_IjtHH#5l>4<-Vj{e>|VyLmO7Ur(FKXJE8OD^M_= z|Mbj)i0N$9W+GnON{K*z{qwJz{3@rGYPM<~PP{-)=md#e6ge}B(#HRYqm{$v8mk8jlyydnu#uy){qnLYn-6))CJm zc>MF>zu1)HuPzNd|J803N&g>hLjL0DfAyaD@3I*6-(hj(d2NpVZw)?d{u`Ys{{JLN zN(dCxQ8{0FzAHe21Uq}!jARb|iqtbwr50%!ELwZwe39~c(MGohc;C$f;6nUXaO0<{ z)ZZ!xfI>Wfc=7*Oq5b~(+yB>!`9Da_|24u5zp?-SuVX!P@&8(*o}A#*nXOx$AjzV} zJucy%Gc%uBy`Z2_yNV^?7Qwwidn(0>@3X#?7>@D`(C{J|z?z_$IXxA_y}4}NRx z#(o?Wu*y}Xi=lpI!~v)DKeov9MV z^gvio@1s?#nZ>K1KM%(N6iz34&DP##;Zz7+Pu}L`)w*G9B18miqE!#ujlzb~|Gvld z#CJnaztwGT3=&TMh1blt#w`S^Q4QE3-HemCXHrjv&e7`!(&e)k-?H{Ai{834%&~!+ zBp@&-c2MHMJwF4KNiRJ-q#E7qQ+ArN^yw3}nk-5UgkqLI|MduI4ARJJa&pq`qbWP= zOkv8P4CJgGuFg`R+Mf}ik8!9g?Q8i;2UJ<+T`m~b*i1VHj(*P`sMlX?ujpQ~FzK+2 zr{x#yZsW`rWN3BD!>klgXo9^QfUGl?4J3sn;OBz-2-vk$T zZVZzOc73jAyVKm1=YQWcek%K>wYjfy1OJKFah=dJGGWfFQ}WLsS}D!rg;*n)F2+il z(T0P+w+DcC_j69K{CUe=*axWoW(fDqrS)~Fi-VTR0&2h2E4V?ao=aZtwX}!K@vC)7q<82VyYSe*j*?kV?jbjQVE+VrZs=UO&(C z#S265Zw}>kX~(XrrfCTt4JIopySpkC!0VbVDfe4@678L{IEnpvKXWY97DK|_E zDXzzb z@p(5(!R)oMHNro`Vg$%-G(cGuvJ+84N2Bujgp36{l4y^`TB6Cw$(?W1;$<{ijI8Bu zY`O5EGf47e%2ndgF_ly#HX*+MSR(XkM=V^v$8g#SQZA>X3RL9SQKWKB4`^1jy{d!Ggw|6 z%%&`t&)Tmk4g8^oZ_0yM^fq#f>CKyfbQXG7R|wwJ;^@l(D7@SFPlJtjPO^N|uf*Ts z5JJDb#ss*SFr8H>QkpDKz~j#RtoTJI=nYIjq=_)M4dvsh`z`JM29z1Q^FW@ZcECT1n7d}3|6Xk->-Gq%x2e){*%vxg|5-KE8Ne?%(hu68cxNfSQSX4fL zWcM`1%rL9^*7n{X!wJdXeoB+!Pqg4VuEedWJ96Mw21cpX=k>cbLTJd#>q$No&btx1 zU3Cpd$NBreao_ax@*&A~x;WT8#572hR#14nj#<2d=piH0kGeRL9jreyTDrYB0MK3) ztBuOn|GEM?0{My_tw_9%FJq6w5FCO43GPR`a`+=ygIb7RMAntW#px!kqHsR*egw=I z<1_=K)*6PpeoBzTW_`$==L?wW3eKWjHi1Levs`Wrq=5F3lzQp+L@ZFhVG;oF0boiL zB-Y1PVdjP&{1MVKSP1OOazGwAPvX z?&s#oEwfaLR1=b!#=#rB`}SXYlAo7{B1LPx?uY+I_&vj$uyPL+QmGrfC1dmkm5_x8 zh3grk!+Cp;c#H%>D0tkH+1+6S0bSkku3_y*w_cnF>vK%`)~~&aA|knsE=NO18@?cD zw@Zy6On?7?h|&Nw+Vhxv>QYvtg2cp|l?3MKo)zNWJDkYxbboY0NpQvkAMI__&M<%- z@cBC#)tlf?I@FrC!5oe4MMe)dgdAnd>eA8%!Qo)tO145(7RNI9Uza)~4H>BzML%B! z{&<5HhvHHuhMS`qrrzp)wPsCA5jXrrj+k0LxwTFji6}@?t>({-W)GA1fMIBth;m-G zWPUS1`ME^K|0a^DlDIe8*qS3EbpWb)@w_(U8}q@a2AAoLcrBVP$;dmVqu`W}*Sh%? z&Dm9vO@T_*ElQpuvRT)|qC`CM6xpQR-N-s6v-vce&6RNGo4c`9Dee>}n1yu&K(n)ZJKb;R6As-FW7TTS zyfVkDjYEz;dlfry6i!|oqT#ZADAqr0IO~sQ`Vwr|RUFo<@GJg%L$}z`O~2nQ5U^x-;u8U0hmXU0!#W+L?R;Gd9wM)vr=arbuO`V*~ zki!VkFAL&_u%}GbFQtOT;u5JwFuxM5bt4#ZDvA@89g0=$pcA_dD7)Dx?c&f2oZ2fU zBLfo&gZYLCZlk5cjdG(=E@^|UsbdsdTU$ROA9%J`pqJOzwMCTHKeeIu*=#QKX`dnc zfk4pi$=Z&4C~B}&&3(Wj`axn*F5$CVIBd4%g6Oo>tzZ(56dFJL?m&QnDO2bVB%k+s z2Vv;uCbHSGNlTH3(H%)9a%`8rY+&`&KrstC8ZkD<;j-c{ts%PpTEun#J52a9j6gdQ zXGu=g2Y*;H>7ZqQMY~)n9xLp7!0}ZI&JIoFS(&T$xWe`5-Z>wUC11Ecd`hN zPP0jjw*KsUy8C%*RvHWB4>4ZZE#ZJ=ZDQjqhGre|w=qk>YY(u94*=Iw4H^nB92KPH)z@*_^hbg_7OS zuyCo;aQoo%KST?-wOz~1FpxnZ4u?ZAfD0p)kqM!U*3b0J#ILwAqsigJ;(V;TzF1cFp@u1VmVejMeDFtlHK8cn`DI`7E=UGMD&5# zY(|S<=H^le?#}W%-8sjR-y694 zH?AeSu-Jl^0`UL%VFTVLvz;E#NtTmV3_ne5Mwt|e;kOnA*5oaZF-Z@~)&9wnh4ank zKoW~(S??ndtaL3|O}=fOuGcTp0348FE!zH}v934YVb*)G8!e17?puTJNw9Yqz#v_NAw%=Oy#J=*Qly`%-*v@ZH_~AOC~TE{u)HKOQmc zHK0+4+)sYa=GL-3QJ~V};=wf*sgVnl&YC$y?(rs_DaCa5v}`ch3gNz2-V_EVfU3_H z0t48xXz|tppbJ#XXJlBd)^aphjru#5k^px7%a&X97q9&f?WEMPGYmMSqR`=?uBuKET2qammaPNw zJ&nSw$%h15G53MN!Th9}!i22rMs4rbB2-<+ZK)ArO@`k{h#1(gY%331UUEf12dT3r zS^XEQ$5+SO-;;k`O#a^WG)?HXd~bs)W=GO@n%38KSwG?C!$&?4%|G}&NBP4G$#QUC6tUNq};rQnkeOxB{g5Z(~!7eM`KbO?f z0r&*I3Hy_KR@^F)>hgCn8$O4!BG%4aI1aJlB$ z38sH$ZJC}{DvwytRCpa5=r{eG)X>cV^gGmxsIRo9SBnL&5anYlLgQ z2jzPzv7Xn$|43vRkjUNo26t^F-@O!kaFkDPw{SbMYoI6>+Vf3mgq@|_p9X_#$PHb7j|BuJq zD*9-8$7^g3c6N4#`|ux6SkzAptSnqz)!1S@x?^LXj}DqFFtL5B6wN@rE+sqnIn56w zUfDe@3kdIsG#N5#T+EE2N7Q>Wp$|BKq+T04JpwA?xxg7waM37?jB{vW;7tO^A5*1T*!nnn)F zs^B<4qga(K(&iQq?M3U8v@o!J9VV$j!$##aYOHst?rM|kKi1?z1d-;2YhH#>+d zX(F|#Lim7dSJ5+Wi6)@9cz}#53NEen-&%z zpIaJ@(yumHb-C5+O{wXW6DEpvF6SjE*-p;4$SeJecfF5vNRQ_yDqB#fMR*Gu>T6%4 z2wV}dsvH98J214L|3e1udm^oSKd{bOYHI$J2lGn()=oFS+HtJ!ertY(cWqxY8?z{t zjlF-7l(k~XsJn5e88=X9DVKed@^GpPc^>n4roqObJ5fg`)8@6;`*bli&}Q@W>?7d((C27eq<=V^;~vj#sqoIvRC>Y3d`XhJ@&)P6tyv zoGQm(oCVTH0e7Vd?d;C2ItL1q<8xnlx2R(5({s2_FV$-3da2kSaN#!M``@)MK0=v} zR;aNVO!F-4(~Yn!KAOz+LIV8L7Q;4Nnaz|AFn!QI&`PEl_MN7sE_iqV+kV51#t(sJ zs#srAK{~y(O50dzLI=++|M%FKEFjMyhsS0O&-m`w*k1X9QQlt2 zZ&P-k=Kb99E7?&${ORR0-QQg6dRc0vOx%{q<%F6x1PVkrb+yf2Vq_+i9}} zs_Hi4`}N~-tI;a(ZuP2riCzq ziCL6@ubXWv%WC-D`9;?TR6>(IT!$x8on_(*qqwDv(rWYpZC@8kBKhJD$ZK#60csfqZn6s-?S& zoN4Yy{)Fj@NncMnwn&HCUSG;Cvw6fIeRGd3_WIAoV%^&(YkOOCdd(thnb_XA^155P z$Sn1EHhlJGmb_Hdb?svz4R+#3+Y61y&GMB&4aePd005(=Jyb_9SUWRMqsl~%vyvQa z+lK67a}x>yueVgj+XNr|qR&z6#4IKh?gq-}@#v8Dhit|{H%1k5L*rG)ZRWVcR@bpV z2yEK(Q)QJdRo<&Qq4=}1L`K7#xgqQ8c(}~TXb_YD#CtQCm_n>-lcurnizmTt_aeXE z4!qxit#)wO8_BzJ8VPjhdQG6;-$8w2&}HBfCd%NA)(6zHtU{E&SESW?Tuxs$951Gp zA`>AoU%15MKpp_4t?as7^ha9A+wu4eIa@A|pz2jP1Uxz%_h)TH--Sf|&I?EPgcH zPQ5o74cwE2k^RCe4)5fcH5qy992`6d@b;2I8h)j{9r3xDJr}=UEUH5>*35g2REfa- z7);iHDTnq_qJt-Cd6Edeo_w<9`)}Pm-%bOTwC2<;gKe#x44lClw27eD&|Uj8 z%5%xEUsaL>YmV3;#sv^6cCwhwe-4y&TdkKm|9(cg4Ygpzk-anc;4xI4Ub+h`U0W|D zemu9~t84j4xHW`%kTy%$Wa$R2yzg1Bxtp|2l17b{-2HTZGh^ufE2#WEc`II!Eg$cM zn0z6z`Rhs26~!$4Hm+GwM-cA?Aki27_;X_MybDd;Vy7CkjpvV}^_rL>{>-McxlGam z%uR4O8=N+Jhr(A8I~NM3OUN znnTk04DxEqB|WB}$xn2!0JVBMFMA)LVD93I`B7Wy;RqV=Mw{$y%w5!)~ir7$(v}utSM`4T*Bx^@Ax9W7xHS_ z_TAg<5EkYO0)`Hm9;FT9*C@NyQ=J`UgVd?=rzM2cI z$ISc*k?5`pnPiht`&vb2{BPyS|QXD0p5`Ewz&t#!Y#xFw&Zo`atL1=7>PaCD) zifN4=!+^9s)~{lJvf)YuYF4z#Lx72U^3uU{V5)$?M4Bu&$ua68Gm_bnse>OW zRhaQl#a*KB5eecI$&LNthcIZ;uwdcB;K<GZIz?OX``P=` z53JOZTAr;@cNdQc>v+}8iZCnIyOpY5>nM>^p9FfM2&KfD)pZa?z@4DW0XK-|1HQs6 z$m}@wbwfI|uBL>V?1;oZwsb1}1Q+oRL>H%+S0WM}r;JMEKCA|LzM&%$O$bfz26_JF zI<==YwJ?tt?xB`3oo;UmFg3qx!u5rJ?F*cN{8)vue`=m3%1mZT)nqQ5!D?oy+9!H| zv>8fZ9>{Q!vqg45C$rqEtNNK4-`33~TJteYqbR>tXt>RCQ_B-9ZA^#;yN&nY({&QG zk$e<%rZ_oMQVT;5Q_+Cm!_(ID_x#AP2owc%VBcLDCx&p*xFt|yuTkf{@>eHi96ybO zI}*)aJnNWXzB?fv20==j^``Bj^n^r5(UZa=f>(`0IF z=@x>|JhvA(y^#NkSzhb$XHpoM?H8MPAg!G7rxy@0B(I$5L3Bg*2tO>4YP8S$)@8*T z*iL(_q_jHa92cSP`gQ=3$9MSe)GYkW2F8a=gZwX15<~7pj>jpM7i`iQg^fj6zFlfl za!O5m%&vDsTFS=-dM+9oNlIM?sZ=#p6GgQY9O;- z%Prq1tG$+%;$ukTr&KHLk;JO^rYH}`H(w~#^=j``P+=zfmrH+++8hHff(vI}c`s|f z0#r`0z{G>`bFf;P$7?9{Mn`rgHxVqi^O+z5UGV$R#EmL^K6%XYUWGy?X=Y7paQBYF z@wAQ9t6lFdNLZIHc%2IboR+LNN>;-s>3#&BFiT$Bs)YLY(2^qtFt}? zW5z?AFWSf2`E}Us1=V^u^qyA!Y>NK+G&veB7UG{p>66u*ZW6p(?o2sguFUOf{!VS^ zfkfAC5Dka;dQDU|n&5{RsgBqCG4v??|I^xaM>UnDagm`p#4r?P2t$?bNHr9JAXTJD z3sOP}T@68Sgunm^;7W&(fhZF|YLFsIC_x1U0YPcf2~8M8TBs75lnu#QXU^`PJ!kjq zfA`$)z59Lle(%0_@BM!7`(cwg0rWpJ>@bq8ZG52G{k{EuA4NnQ;#qjteM9?SG=&45 zV~H|yqC9AQ6j@Ri zq?my+Fm^+uvkK#uFRj-mFb;ZF=g%8ZOotK!MMWAUwT;olv`MN6N-==WeRt0Jk~Hl2}}; zJkUkRxiiTb05EbQPY^!4#?|Ru538Ik9WCYGXb~jypBF)O-Ed{HL5^(V z_zI`%8!{>hI6iy$Lf|eeys4BYQSxpQoqEQ9z57;^m564*6m{~$FSfj5mQqJ{q^OEi z-KIyBMER!O?;p_Y?wmQF*gRr7Rzxd^0CG{>CqDbiEaqlRsqbRNZ|_8lSQ(1c_4 z?EBHGdZ@j)8#wMS+q_DI(&eO)F?F6G+NLGLADO?I9YJl>AeKik?d33|SmolR4|YxZ>buqLnDRk;m= zUzeJDLZ}qd16DW}BT}H|?L} z?KN-iJ--`uR6OR84yeX^l`Y&kGYb%oEsuV+uy#b-y?RkgoN}6rMq< ztvU;hwwk!irZ1@IbTYY>=caTAEs3a6j?fdU?=)J8yx-$I#6!VgLtTD+4IUCR$()?8 zM(F)|)F1FT%Ut2`yMkU-fPBHLa~dmhqS02?FHkTJeZ>j-nrq}jBQ}&;w*y9o{N$Tf z?obsqjQ1uINNEytp1j@?Zwj@wjSZyjENjClVh5E%+uvp#9)M_}XZ~_aj|qk?^69Di z`99;$j7sIAoZ!6q`O5fX8w{}e90;4|dRSMN=F8d!WA$duID=KtMDhwqMbRK-DIv)>#pZMO5V;YcqUqlc{s{1pcojZ8I?fK%D5jvsL6MpyR@f-Q=wk7UfyuVB-08=J# zU(&?kFqJaXs$*`Bq$N%OA zI;&LUYL;TOA0{tlIFxI;Rh)JDkY2;7Puh?k$G&qTY!XrMb6-;M_M=q&FsaX1 zR4^*FX#hD(nDm(oE&|=)i)63x^0(rDzN=V4X(#prVd9P#u{AyJ=k?RoX_|qtX|hBQ zwD3)ft|z1Lwer0D6Y&G@P8-@OhCKb_qR5U>uXV=E;u>ETMh!M7@E$erI47aUh3iBA zwZXxOn1%LLew*r4G>JV$Inz%lgUc9}cc7~%w=%JB1O=q?;?|}%j1wehhl>=hLzgu@ z*|xT5GxKdoz#~rWVSbmXXG7Gx~xIwEK=R+^^TWV?fN+Yf} zg#B@h>^rgYa72&qE8OXQ83Fk<#!J(2pktB&BBm!~)Z=TrLAGl&Qpbj=(lDOjT}hBywOwl2{9;Ffi5$U$R1t;x{w3SO0Q zBzk-!d4BIkNwDoe^TBv9*2Z?tCKRvqO&C%M5f%m0Z06oQO2jCV&cXOBojmDeV|d9w zE0~b)NTyRD^Aqwb2obgy`#lBeX3>Hj^j})8h4z`;U zhqh(TdfN{A_iwpCxSKUnZ1-1xX4~~XOlJ*pINdF$xsEpQUNcXN_hG1`(lN;^Z$iDcJ>U89 zK7Y?#(=)v@-96paRn=8@^@b_PiKD(Hcnbvug(@i_@(l_K9tg>U5aA)$iF#!`C@2&Q zv#(zjB)@(oRj{`)HnTK>f|3YJQbSNz8p6%ijE{|-c!L>><&G`l9)~3yK}xDpjTtW_ zjKo4#vM`e8Z-Iwd{j-cbyb>-}RP@M5QTeD$1Db3uSs^PZ@8ijO_ctF8ebFeJHm8caWs}TMQwncex0j&3tKrIM~=oxhOY2DYu-t z?1>i9Z!3MGU)3fzkbm$&#fD)NpBuG*2+e@%rgOzIBZd+QS~d8dE#e3MQcf2HE!?i^ z$Cl`t@}`*9Zp&BJlb&#s4yr`4Mav8xir_XkJ8gW#myaNa%o+Dm)Bx(UxX{r!w*5T@ zodHQ)LPA-0A;z+>2T~t1@p{q?k;%Z?-E{C>3n-GTeAGf{#$S|GlEY=-RU`eCfqU`d z3&~uyV$jr?y68)Fa8s>4#kJ=jLjpL!-N#T`49(pLtbEcr-v!BJ9K4^k_}ZjD#8H4~6J+2uk#A;m%c4&H@BjeIL4Fyn(i^{FbF)JyNPkDeH=>svdtP^iT- z9RX%(zHJ6fK0ks{Xa*)V*b8pum}M|BM_j5g+JNX! zXA=kRtktdX9sOv132<&AuV;fQ_sYuOcD0T{`%fC&$<(RY#S5-ST0fVVu|r+WGkSY;kJ$QA44n^&GFg$eK9d zbW*K*Jb*rBYo%AsY=lQ_A{QaKq(d`9<96fjZoT32WkQ4{(?bb`KPSbP30A=cI5EOa zchfVIyz@7x#wv#~(qmhIclPU8hbn=IT8HI=Vf3fVMFje2oWS5Q z@J%IG4TahCcO`p~K*S2`BOj9Z6z>;`$<2za5&DjzEROXD-M65p@DE?)NWpQc+Z-1d z`y#8PISMF+d95WZ=26ii9SXPvegpXl6DW?KzWXu?r{ou!Qnn&gh|1^UO>)!|d4=8R zK`9NsPsQI2bSKb%tbrtlh~2V4W>0yX!UHkz5(_Y zZ#tYAx#D*sSM|$p%%6q0a=s)9QM||efG7Zqrq4$fz#OF@K|^*#`hhAl*yC5gS+>MS z)=&-+`DVO?u(ZCkKBK;+|><8}<@`AB4u zg+bH_B+s(qp>`skW@&}Xk_AuVO*Ku+PxCs4wQ{t6Sdm#VSm|hGXkBsVakq94bDzE* zzK%X*Q*i}4Ro z4d@SGZJ`cON43ekr}Cppqq2~VPIFA3l6{sHEwYe}$>`KOV9^-0G^V|LSGPR+n;s-% z-8fs`Up@{R;Op`9yBD~8#C?a%6yX@rfIEh}l3bK*$Y7$Os<~Q2uIZ+MR57QS)$pKa zWtjD&W1$uJ&=S>&I#|?Qw6vSeFvijCTxwN#?8KXwm7<-zBGyKCQ_|7aG0_Qnsf9UM z-ypSL*qh+-X9jo#x{B3U~rs z1TJTtMo;0h8_)PFqUNtQFSMO$4Qp4nO=*4A2Di?&bvirPVmDjax9!NekQ{a{bSyqc zgcOI&uSFh)-Cu3yA2FBLLBK+L_iT`u<=ZgM`K3i`(0BHkrqYPkUAIZ%p zhg0kk2~J%!loM5;*d!k&Cl*~2m!cpX$TJ*_)MmTUNmNPXDrF=Pambq&S&OL&OCz{k z=GtsdwcFXs9*7Rl!tvmUCg!BHb^$%!<=)|(yI@;lZzGL`rH5f-mthHhgrlyIGba(W ze>ytHOF&H!9lEA1NbE}_qUFaHrYg^vV43tX*ytlnu%wdBarCa;*ghH(FE*9ikmF93 zl8}{J$$Cg59IM#ADX^RRG}Y>6x$3?u?M>>#(519at-{nNu9AxR=}ua#x&o&!AV{V(IsH_I9)z1hyC>y4v4JE|YpY_>7h-xEel zVTz)!Skr6K-w7T!0@OBMM$9v*@S?c9JH4w_YOnKBJE~Mt$yQNmi*l|i5i8r7&GMi+X{qIO zwegBF9Gmls^y+`?@xFh->neJ2-xBKc+YQh`ut3uwD&>+9)KZR^0hSzBV$U_qQ_nXM z<2w|z^fYap*~oPrTYk2n7c6yg>}MIS5gmMp!TWG(7XR5P>o?bVvzyfAO2U@Bjv)Jq z^2mPZG#D6|&Fz-#baThuJN-P#8|+__K1o4)J$ZTDz>P^>8p%#Mta8;g zGbLJaKQiy0#h&-C%4z|&c-JtLR$Pk#qBJ?FS1r5xyRM&{Z;t0(E>5pjvRq@@8aH$6$3PeB({v95cjESOx3$}! zCG)v1^Ws%8CW4e+?sJ^SZ2J!Tcx_Cmx)hzOhvWOFDYk_mKV4`Pj?er=zMQ6ymR=Pt1~v#qkdgBLW{oA6JQYG&CIM*$uE)Q zlY_kNJU{}*&!(=|3KpmWc&JW^$HzyGn_Hhnw15s&p=sqEd}T5bSL21vVj-)CC%1J3 z#ccVmk@G=f8gg40!JF4N#rZLLbnOLJ5bq=0NL|ucRu<|LB##IM3rzq82gyN0k^nT} zzw=_yG*B>qJ%0lQ6=DVj`_D3Rko%t_7Lxwd`Nth5J{SrC@(T-+Tyx+2t28_?7v^7i zC=lcw)EA|%l9G_SlA*nkk+p-VjpHGGpb6vwlC6Y>0~8c4<(~vC`R(Hwr2Tm_Wpzh& zSs5Nf8!JZrA2tR?jILI;f7*fKbLD|#t&AM?NnNchtsQt=`N{t(!2`+vdCWvk`d1N0 z3x0BSSq0LsHugrO9E{A2%;W-ZNl8ih?0*>Zd=nA-XLZOgesWVsM_V2yCKneMMi(|l z8+#Kb7H)2CCT3P9R#pZ`2?hr@Ye#)o25Se3e>C#1c0`OE4DHQq9nEa4N&mE~Z(!r( z$WKoG=R^NK{?Sh(SF`_o$=czc!-5Qu>CYP`7Di^Kf42>(%J=6fkAj)2k)?)+nH7X) zkZ%aEvNH4iRsR2a^PeyNS55W*)MVlO%=+I||LfKNzp9FZk^NU2E66t;1^zQ%|E&Dq zFaKGQkLl0Q|BDp=pz~i(A%qrq%g6NZNfUVM@oVrMWF9}5iO4HM?hr2f>#&AgX&~v( z9g=ij`oDctg@O`-k`(!(><2%H7pW$II*ry0N8Yf-*!n zRWRVONTL7tDX|WVrN||{&hDEc|K_96|2lJ#6u1mU|4zfC(4xKo{4!{ySg8Mf(!6;G zR7aKYh5g^B5N59JfcgLI=wAiGp@P^{Vg5G}AmdShrOB)z_&a@#^(7bDh@Aa9ef5QX z2mRKh9R7dP71G^YL2g zzA#GBiy!e+PEtd$j8Pw@)3>9)wHN{xqX^0DkNV8Goo=3pI)t(#{{~BtT4VjrB+J_V zoi2$*jn+zmXDc39C;h6O+!dXjxNb4Oy*ri>|NU2>Bo^Gzbu8iV!BKi(U?3C?1O(a`Qh&td=0+}q{&P9~G)@;ll@`$m{R;{eyQ&zsg>CzFjO6Fw$e%zp*5 zNvBXHeN-anwe9i^H5HlPaL!fOAi|MfFUK10P4f z<0!8mUAqJ8AVlAp5AflElg^=P_%W3D#s6et+X@)gBK&vSrbY^+ISs}b2Wq!(CwA#& zKhCt9NM;_VY9XcC-kkob`@b*b$RqY?j`OR%7zLrr|197b#SM&j5L zevD+2k*X0hZ=g72Xm{GH;PHshjmE2vSq%I=)uKpgdp>2v{ctLoMXxgaF8=mKOK}WP zd_CJzl zhJQr=?Vjyl;Bea?1#*Dg%e%k67-Q?Vb|aZ|ecF%-3Q3F^>iZH#K@W=_|2On}tdIz- zbs#AAtIvl?MPj=5;z4zu=&OX2>=*C`;h^aS)v{2d86Pl5`nyK^^j z)BZc96(OpfUaI+h+TWNn(oU>gTU^~!`l`RdeG;TnkOf8*36CP-Z;+`^4YD3?9%k)0 z#r=)aB4Lmr(rg&~_!|qI-<^~%K*O`6uATAkl%|0!wz!m9kuv|M*v2X#!6G0?*Zvs7 zI@q~vmHfwAxL%3X?ET#OQ7%&*i&Dx_ZKNk5!Iuek!TKr)Yb#dhh!R3u_|q}L*AH=P zK7#b(F+?eSU%q@RQ6L-2;Eeew8UGPfXSwwB>*|TX z9Cf48{W z7+_0kGOPg%G@oFlR?8<&n_!8hdNaeXaafM{JT7iZ(L{obOdT^q=JTa#xf&vl=OuL^ zXvB%n2v4+D>_txqapIHPrDS@&*@=0Y>&1dNWU^5}2_)W6ibb+H zl)TPIXX%>f)DewhssG> z{EvR{wShG#vxS##PRZa%(DlAoNpA}~ko_0}>m&qOQ z;>%F81=Us0u&B35r<~Y7jGBQ-Vc`&?oM}`J%0mQ%kJaHd;?%^+cG}-IBU(Cec>23wuLQ<35eAT2m~X!?c`?IMBy} zO;+_G?gsKmADCaW$y$w3vo$ab9ht4Y+-ISVdbA`=hkq^Z;rf8bj3$$trr90=F_Ygz zby%hO`K;L186o%b-M>}70Cs2v0G|=+gkU_2ml~hV`0C!BJpBDK59Q)7yvdc;xff!3o7IaRBGs)!|b%>xSVlG>SU^K#?425>>RvD^OKfSI**B5T00S#oi z*#G`4!XXSv?-MXYx^_bZXJTZd?E#S_9;Ri#aO z-A2H#HH`7y(RBRX7v3;~#o;tIlaC!(wfjZqCu{H9UWssbz1(lVWpBJaXbtR~LM7xx z0ySiu^*4^6G!vTWW*ZiHYOUf!mX)V%&vSsN+fP-Z7)-&cMpMSI40c8IeiXUN8}#X; zC&x?op?L0yRY#H-T0FL0Ev&uH-OoYxlGsRIj4PQ&nU|ivK+gmLk8 z5$7ti6z@RBGzxj|nM%WQvl{(VAMVRFz@ceMy zvUO?oaPcAHjNFZR0K!t2*uS2qzT(=taO#6htMU=&Dwaw4SC98I_g9E*_K|FAdhs@n zMyfjFQ4cwXU%em4%nx1uA#)8*pnp0_7)0CedM@wd`j z1E?Kxxi4T{pP_J^GT10Knegbdh5VROB$G?&uTGVj-1d83yW`Xr^FxqyIQGWeQ6giG z!6?o>?HJS|eM76pkwmBBxEm}~fK4qo{B~#cqHbI;Mey}Wx(&BkT=s|NRT%YE$uDwI zVor?^4V_MV(YY$kDqxcw8ZlqFsI->Ss^@*d9P+sI&M;1IszBSw{CUGo?OiYBMSpZw zYvk>kPfjAkV`RO>wAfSul9LlNIKb^AMtnl_C51^hIYv;U?De&1_u7{b z5mZ*3?fGq9*T&(dNB+zk5=|Dn25;9463sJ!fyBcy=iq^Vj3Y5c5-^@3=|$2fR za^d|{T^IALFkgPXn%3cVern!K(j@lY)~EemAQ9-`r^ooNUJ0F;kH%y?JK^bow_u_- zs30&M22S<;2At=i=fw~Yx8q)H>kC^vx3uw44pUcqZnM!yGP_JI4xQ?-pm?-Y+#re4 zZIevumRhA&(mtEC+F2odJWbqhJYJXK+qGlWgozx5+XHB~ z@3R!1Aq&uRSg+5wIo5)`l!QFphcj-9;%-_EWyg0I+yZNjvfe6dS|t|T_CHcQ-7cl@ zRnSSkIr))!zA33BqK_5}OWd7Rd``Gy(7rZTWb)el z)I#n2bZI@S>6wxdy>C9Qg37igtvqa0*H?%6Od)|D@$=0+GS{3^Jy)INiq5Ov2_HVY zd-*Enq-QFxix(|29>d)E!|fqM8k^DF;fuf^=(L1hqxQG?b@oCXnA++&nNE$7R=YHD z-uu0acDwghtL1X5Z0FO1g?5oRG9E4;p;Dn#VbeKKr_H;=y@(_p1%FC9ZjdIM4*uVW38(9FAkuoUHKr<+u3 zx&`O#1iBkjr^_1x#}sBPEl=A)ITT84hgWBuiSTkomJC4++*FVp$TV4kyH23`VNoVq`Cuqh3_q$*BlCDrB;%+oJiR}_rR|k zA^fc|I0iMpurc`uu?{-gmgi+RM#p(4UK-{b&iuE}LLP?FRW<}>&R{B3pWz1USBY1! z;%tM_Yku~Mm!KCXZ6sp}4-|x9Z@)YW_oIvS-51GZF{aYgP_TU+RZ?BIOufzUfmDa z*-TD%dB-z5vLP)=eHs;II`kd0Fw~fxGB$87_t}a&U%W(!!^ zr#co{5$aGQ^GN2_QB9#uFH=<(EDyoO5uER3~zYf zf{$n0e40;V!Va1l2o{_$z4$1^BheCYz34B&K+I;@EM~h}uxJ?r%7;`zo9JnAKg9RU zQw^FfM0j1=?Rbw@$4sWYuE=*;SS8G-)X$4L$MY(#N z<~@GJc^Bz3b`4<x!K#BKP zp@tt`f8JowtA>7%w)**&QJKs*AEktoDwPKr#{cck$k6Xe!%;Gmu-l2mA?$jxfI6j$ z+?-~sM>HwN`^nXcd42VXCVBb&+=mMc0fq7V&`4~@0@$l!so8^8hG6Gwe>V~?tEv*x zvtkA_p9B;_R`t~byXDd;zI>UiGgVyd!DW^cWIhNK?#(=au!-Go-DcYzf-g`{{`QWv z-TOH`I-ZLrY`VL_M~KU`%{)+V?zQ8VzqTJ{e&xmF~H_=Xl&;teYkz8Y{9+CDb2Z#0Q2q)h;M{Wo0g_QBAf~maG~^ zu3OEN{2~@Lb&*>j2^vZ9DycY_Aa!k0W9mWff$eLP53740W)>ofygSru?pTFXq-fo^ zBK_9HnjA#+uh2_1609)S*B8?fWt9ZaUaW(4zksFI;mmnrzCf>+wiIZoRyL74 z{wj%>oDgS}nt$zBKX1QB%#@dGK^6A>5U5sV&)d;e=7S&*pCQWmdsEZuRHbn&+Ms@m zwa}dkQA1;41IgF4gZVWuZmN@J_02jAmcr zTV1}zp_5QG>c5^D#~1WWJt!tfGHYzQ2?oBpGU0v0Oi&(JU899xRR;dD7VB1R~0V z2shEjXd<*x5H-5`Z?EPbzj_I>XjIAs%JRKR_zbm_=OQk_Of$EzS(NPNGZTa1I9|eQ zHZy+1;{sri1!AKc@h}BMrN%oQa&lc;t%4Tyc|bB6SQk^f^V>TEQ`&BQzBuc3DrIK$ z8>rh?O~8i?G^e_KItIry1(S^-N)uq_@TU!4lU(x7hQS!39Yowlb^Q~Thc}-RnW_-x z0f!OzAHR$8qlcj37r@ygc1zEG5T37uE0fzWM%qEv{OQ@N^YW1n^j$JZFqzHuQN{dn2T{-Q1W?L;Sto6R4XD%4@9SQLoii35y0Q&e)xbhi-_jDpXb2DMyX^T1+0 zabQutjjt#bNbOW|jsM=x{27gW31-AjP_x1O=iz#c$Bij8nibj1qWo-o3awJnjN9^a zovFucsfyC+s~oE1gSrNgBK1YS)MWki+<-$S0q z%}GA}_55Lhsf&v8ab>;Pbm`hGo*d!$w)DnmETZ1pWu6(!~}Zp+;L{u?F(- zaGa5miJpLu5LC@QuxG|>nxDQ{V6Aotzh|lI)gyWq&pT3yN`8jw=r_WP*2es7;Ps)v zoBk*dcAMccIJ&u6D@urf*%rh35DL0Xsd)Yx1`VLG)(Mk|hfKbZ ztZ;I%5yUN}vDDKK2U=^N{8i?lEfIk?oywBG-RW^U%QT(Lu*|aq7_q!A#RtG23I^8?OD5B}^a%uk3GP@yU#+Y>K4xM$sKKPa56x$soE?Y)}v={SqRy`iZ9n0Y6B;^6% zYa#Rm#Uj1O2Nh^I6dzwbH|cT{kvbO_U;-yJLN6(Ddu=lh-f?DeEFg>{84k*JmlD$l ze=(%Wg~7%(G9@`g%NZm5Fn?q?5S_Bs2pk=A?aNTjhu&WB7QHRUm zBwkqap_<{qvg}=b7oAF}p4@(D!UBu&l?4Ch(uY9air}aWQ)tBb^TlGqSaCwsu8jM`cZ{xnW4f=rIDhq~Q=`AOeTAFXbt3#cW2dOb zVe=gfqL^-ssPETF``!SqCtL&sA$x>! zaakiMHRV5is9RI~J$_7ly3}BCVLrkEd`DvI@%>;w{$b{%wb}MXYlYf3z!mK1acCtT z3TPNr5f;=6OW!)<2t*2?B7XaV!Rw_{_-!2RKV)GGy^>90 zwuTS$!vxt1DzzrAbH8m`vu-*F4Zz51ELb^>ao+vB(}5g-(GCZ}yH=+}>zO)N216^^ zF$QTe@4w&_EjO6YJAG><%mhM{s2-7EY&bBO_+=XI>e&pM189pYbB^>B>r}PD z8}mQCczb?J!@AttYGd@vyl1hmAI<3Mwj2(Lz@?e(@~w*+_+_UNkfnP9I+=9a5UE!M zfl*>49V-$TJsr+<%HW9SaP!^6@_mN4oaDRODDWiELeogSA5<=TGiv+|R$-t=@(iiq=O@pl8|Oy+r;uK}D0 z{$|UqhyId>5oH5BPUg~UtNgN9CT5_E+*L~u#zTc6n%GQ>g^yrsmv$^MXp-glI6L*p zOT)l+tE^(#v`j>Iv)5?7e1E#0GKcB>RP{p!FMJ$49Nd1MUbJAOm^gEQ^mXvVmQB_* zXV$Y-y95$i>g_lY4~?1@?@YUYV^9Ets_Ub*7%|4+!AwO}j#u?r&$<>iIX3W#VZPC7 zdFNX0=bS_WRrK_wL7GE);mY|3Y)JI2tjiS`{f$vK$|!2XINA38W;24l!HB$1lK1ZM zk9=c>;KIzE3G&WG};&^lzmT3NHV_X{dNdVsD!qgC5#xC|a%im89?_6}l+#dG& zy#wm8t6uE0KJeK_MD!q>Kyba5XbS_)3FH~xIWO-zqO}8;9{~K_&cn(+RW{VnU)a^% zt$8PeZy@e~%g+Ub7|Hjc0eT*dtf$aVs-%uRLOp0jRtbD=Z^cttz0&s#gK~`#o&@6H z$y7=w+#ah>B5WJ2j|cU4{TqA)8*#3>ZxQGY*LS|}XtvH!55XU_UF*rd$}LZ0g8I zUXS(6v0mKU_8p_sx{Bi?G-=-GCZ}=7Y%4Epl9QHUH58{5Q{;+&SoM*SoM6_Gw7OkW zWF*UFC%k1$B$GX%a-}NhynUNSPMuRyqomk$ZYARmCaTxFr9~_?5jM@=03m6V=FdIE zva9=1(FU3h51J;=vbQ}TH&*j2b?thau2med@@~JhI%DK)uf4tHnr8=wh2^XY>yd8` zS?cLPHT7`s+Fc5;!Vdss4F!M>ce#mHZSaU?Nd-vz0wLD+rsi`$yMAmh)eg`(DSdi` zKk7~NT2=e@sPdaeenS707un>zt@`yn#E?g32dimwWdcr`x=$Ia<$Q^4H5J z0shF^*e^;}VQc8GC(S2)-nvDvLLNw}qSSJkj;kr}Kl=8(K^#d`E4#IJYXEeA;A4{J zQ{e-Axo9K}y3y%)aN1EcD%{3Byh5^m4wK=!oD&Z#IJwEjw2KltB)-zinQoMdsDun~ zONpN?b3!gCBt%|7hmMfL${9W?ZA%>xRi}-YKb>6PCAt2>CY?-w^NVi|hAeXf_WWGH z-50VgKZs3meTf1&u3fP=rJk2ZuomkPA@J%Xrih5w zyQ@sZp&1~8J__rxLQ`P#x*SvSx}31K@g=|SQLdXqzR0|g&SDjP3r=OgY5{*|i(}rW zqN?KP;fUjStp1G3Sl$cfp>F^Q$25uIZ7vth-3)&Hv7_1G-r#&4$`^~4@MU@9(8gMR zH2PT)2M934S~s$ zWE+eG%y0uKE{nCwiuB@Kr_@Jd7mQ%)%*8O!F`ENQ{*Nd+;X0;4E#;(E+=*9UR`<5SFnT!0XR%m| z;3O8uycKR*7xs%|e=TM7Ao*XO=dLV>b%(`4X7QQUSv!-(t2BFjuy2sH{WdS`@^bv~ z3hIsJ8tn#3G9N~g7wP~O&BW<`Kz?OU7>{Yf`%+^O7mY1;FB-q_`DQ?(fj#ooU`6fbXDa(hy2r$ z>tVJ=M|Ey_Lz%hp;rw1;3B}Mo3*z*NoY#CSFtwvLf^1Ly>Nic zAuPMBH@M94OODKofHbB#>eUOj`yF&PYXK*$_7QheBw=|gFN~~idt%Wsa zJ9Z;9_WS*44yU*#Hfi=>ft(_sn5vkA=Y9zCEQtQTAD0dQv2_SMyd9Qh)&J7Lto!5- zs7qe-EVP*$?pxB&{SAS5XIU|BJC#=^g_4O6hwcn>@fh zP{|rw1M(Z55OOSE(vV+~(_e_4(3Ir$|qOHPz?eVwTDOK6HNs~+8+YjfU z3S#4X-?%Ol3b&wD@K_v@RVuZH(qfk(=1J7O zseKz~AA&)Hxk`i2tKi27#CQL4sGyW26%gPFDamw_ih)tI)Jk&OaXLm zD6Dm7*Z*6Nci{w!0=p;{%{z2Md?m0S860ws7h!laf+dUsi~qRe%eDHXYuIJS>E{&c z;rfMCM76VxGE?-n^{Rj60Xxa#Lz?X_BVPH7<%q~*yD`7U)Q@Nn>1mq5noylxDu(~U z0Q9i$JP$ecXIjcu+1!6>?A95Tgfq{eGlIzd1bbR? zA=jIK|K1uMn_)@X1;WJGW1zKp4Cj>|#Eu0UkEHWIn4tAts3NORkMOax4Fp#?F$iw6 zns2k#p8X&z+Y6iw>@)6$_Ld$Pqqq^L%DmTPoOb(=t;w262;)+wToFC{-eIMleiPpSiQ(VkmiJ;DwZ2yiWV`a{;lU!~W0HKxJ(Pz8 z_bR7Fn(^lkoA#0Gm)~OQoK*xgN(2f_t5$sf9e^%Cia%vC!T9c6AdsEgUz2N^*XFs0 zA5>>jRlZjJg)}o2W71RE=jA%(X!SXu@#eEX`xHL1UU`N|&hqc>(HdNw2)6Bcov|@E zCVfnN8;Hj!Bo>L11;Yv9_)Njdc{Z&8rXKYavdT0dHIJ2~Zl|P7%NvHw4L+nD0fM4Q z?LTat%TIu-vEIY(H2ksZ#cJj9$0CW!4Laie`;Adt$Lh6Xatv~H z>!)>B>XcV!8#Ct8ydLSOEX@4I1L8F1peM`M_Ju}5y9F`d!ya>XVOhNzD|ryoq}}1% z@j?YCCNK-}IX!&@+S=mfZcCnM&>8c+#=RwQRRFL;;jwc2C1>KAy4E3mZ?c6kA*9Jj zBUo6D`+9>Kvrq{+-tG%1Hbu;CxX^5UF z{Glz12rsY>;+YS7-L95ZfG2)M`Et_-qqwix;e~kZsf!`7?LPJEap(r5NiX2SfXoOv ztT#u~wjykeeYRW=wQ7Ud+t`lQeB`+tauzSc7I%8Ot08;mzMOt~lF&bXG3^bOy-{RB~9MRn}Qo5kUH zYRRw($4dK79%yur9`v<-v|Mlkzc=Oa@^hC{cx;3eNZsR7?w+Q9E>!arw-Zk4`Gr|B% z8{;2EzFc>m;}b1$4YoLtt^?a~&J#?sVnB=uAoy5at75Gg*C&XL4H3%C_3~TwV+hI2 zXO0S6F5wLs@#gEn7os2&E9=3*2dSM;4Qsv=V20gtuZ?>G9w`}Q6Qv@#gdwG({q~hP ztA#KZpfswk^MkeFcdlOUO>_Rk#o`hW!!FFvipe z2kJn!OuEWd@!owoM%v7KNkRcT-E!^m-a`Ga?DP0y;Y*#ioTXv#kJmoqEa;7d>s$@b zFn~r(V6sMnioxrkh3ZhpEhs?c3pF$qy7($pDmr^)qA4UAv{)gg)&A+dm8t(TbcELc z6B{i0os%ey;wJ41DVxAb&3NQ)f9neAh04d;X^NN~XLpCErAUZ~g4 z`Z1EMVk4KsqC_Rr{`_;PN|)r9HeLOf0K_|}TCb;Nl9RZkQ|q@TFFGk*x9`i3V#q85 zC|s9%oEvgNi*T`+4ynFxe2y&hGs4G=?8;4#-Ugv*J^_ zUI=6h0Q^Q-Y6^OVWJZnm#(9p0i~h}G%1>Xt%4U?EV4x{RsO8=tvY2A7y)(^!fdnfa zJS20F7z2?|U{Bo@&;hYTU^zW|tGs`yHPybA6O+3cJldAWL~_ z+!3b6t?S3oO?VznjLmq{;0uCV$rxG}-OF9z0ArQ@U^LOxPeW=i%h3|dZ$E|II!@%X zM1_5(7BBIGO}IlJ>b{PF15A2y{Z99Jtmb($mo>q!yJMPHZ196CYZlcy^cn~FA1>~8 z=XqyHd`5!SJ_fo4Lc$Ri5gKh(8xZ{VfeThQPzcH7H!tIyZd;e(Y`D=<9{l_!S~aU* z1Csx<%*`#gF|x_;>1+#>WkgqE{b)8=P0NPE%`7Y+m0Wt>N@*Uwg`f^Yivt)?DjvGG zXzsB_3)yWtn$9Botx#$wju==71inu2xV&V(b30-=ww{(OP__M_`cN&z z0SP|IVpE6QNX~iJB`**kD0*ou=Lj+Tv&6V~ zJ?~uHYJgTf$Rx5!Gl==yLkV;~H_P>pU#YPh417w`FhzH{1e7EA6h-`#(AR=W{ZO&J zu}2YdSJr!2n!$8sFU8-`x8wz%XYO4GS=umhAxqgEB1Zp&L=6o6eC-b)eUA10D5k#c z(=6^-17&7d1Rkzf*!u|9BZMtL3?F%0=hM`_dXIN1k9_*))pIb3#{Ef=EpFByUp4^U zKkbgsQTobsBm@~JzG>~GNc{DuRkiQ-Ng%7L?^lFEt`I;*5V$Nk&e5^hgMt@hldg{~5A+GJkq>5VrgjR)(j4rk<9 zD+AHe0Q})-Ke?!k&rVC7kliMU@sv{Qu?xwHrXfzpQySqobfuk`@k8>Z9sG`W64Y5% zDs?WW;}`bR6E+x#pKP2D$tiO_RgS|+qc`W)1TX>qKjz*ls;+j~0!#=A8Z@}W#vOuN za5nDl?(P~A+}$M*+}$m>yK8WQJHdN#?$N&g$$jcE`U%G7fwjJ>uVhxuxv_+r#N!25 zK4e=Vz(EC}*ap{|Z5m^->1D^}YOr^``qa?L|EW*N!iYcc;4=nn!$BH1spFGr4gXoX zLFdn`E~B#z#H*c)nPTvYyA#N#?crrMN#z2ju5D(({pc{JiPQFrRYpc#~$~i?SOnb`P2NG!OP|M z7V1p4^9pc1MS@Uy#+uBZ>r78a&`f2qD1uTIc%@mqW8rHXpzEYJ`37b z#|)9i$>4RLJsQ=)$rNx&;WT@Re*;hyIFK{+-jvgmk>VS$t_ad;^R(aShA~<>jeglG zOdP_WHlO3d73wo*W68grB9##94@Y`DdRXn?=fsPkRrsnV)z`jS_>^QLjC-dmhc~~nc1-k}hbU=HHzN>V{&?cLfWP9Rc1X)h_7Nt>)_4>-F#*b( zix8M!IflTqr5O#y$1jW5H0HgFeki+(Fdj=L!I^fzczyDY+4j}a%T8M-*7?z7V=TAQ z2AIR;xFy46Le*~7LB?9GMmK}Gp`$F+MVwuuQa|_7=fq31s-yLIh@LIMa-mv$M>6?} z_aS(1A!O54=2Af)4x&36pvdjtV3&NWw^=Lmhf%%Wa9;2Li=`x2P)BMq@}D7*eAn)NCF8_N3ySi|!I$k#gZ7 zHyqIUH;!Sc)LCJK?QtE?SGJnN@#bV`{Bl}*tY7mgFP*f_M7BKmu~$RtbxXzw@8uSe z-0(m9&DjGB8SD&IC3jT9IPW#M=J^N@**dXikL0N5>)tF+%zHZ?A=Y~Bcm1rLqW+1m>*3&f;1D2#D4eLKc_L z{V?gH^@F(IoFC#fmO?)C!%-^Izg>MCvO13Dg}_`MD!6oXdNwn3BAbtxJ4KCb=Q|^t zhJx$E{6EnC$)zww3Mw(^Fnpi&E1?rlGil~@$jV4&=sAIAG6TMSt(~;W1cZV#6c&c+khW7*6Z+g3@1q% z70hOpLVX|_iZ;KGbAO7 zIJxHY>}6iD`P+5{nOIr?Htzyu4mYFtQ)(dXc&8Q#ry}x0AyB1${d{wWqt#jJ(T}m# zJ~i!#ymJeTae}_~qP($N`QZ#UC#c>(;sQ1K3qR~0X-R3248Q=(e;9LdE;(z&EFE|p+icHZ(qoE zJrujpr6r5mPgq2{vrahI)lTeE-5(J6au8<`SM2=UtEVdLU&pV+FVNR{Rer`yx$al_ zGhgP{nlG(xw*K;t%%)}Z+(WWzd39OGCE`H6Y{uC(tF2ydZidkJ8`p%)VA`N%j$v;F zGA`F^iB-PLQ_U^QxWEbMRs_i%gWb$LTBa0EEkkKq3g6}FWym&5?b&Eddb9f70J(4T zCHHNgk0Jq7kvD0K=MJ-n3lT*pqbL`dPVx!Hk?3@Xyj$z!xKKxtWS*Fv!t21|2M>PG zDN6*@IrBCZ=WTK{k}=eANh2IdIJ6CuS8$6fcEp;XxES**2FL11!JvP#9t&j1D zH0iRa8;3Kg=rnoyGe^F?ZuS!B+P7QwgVE+9lZBcf>`$4Q;%hyMnL4_Av#a}WbY~qH zPhjZCT|1i zUfzODjz?uYG9CKwjz6yGC7VY|r?Pf!F1=ZMyFHi?%@+SQ)k@fOvh(U;x^SwN;wO42 zLwSEO?I{nkVK$dU!(wJmQmL#%^!zVbA8omGk|Z`dfbb^mSuM61TKDP|e%p%{00dme z&8m-%8qVRVSRg{Yu~aJ18f7WFT;C+|_*Bf&DVkPnQ)6GQzO zzSkah6Az8&6@z^Ub@2s9#OKVUW%{2vzMN$k=6B&hLCb6TlROGhm2*Q>Xd9&k#L9#M;o)3V1Y)Wl{DD8;dLV zlfq*3EZ{EoCLz<6p4RIU?T<)r=3YH2V7{8^_!>aZV!NnG_TJm0D=-rF0;ij>Y);!^ z*AJJ2w^O@$)eOfNx#;HJ$h?sD zn0l8LFy&z8@c4tjfZ9`NZePzZu4WzI50h0^nJ2JeLYx zxwqyD@Q$aE=ToT^6k=>;v1C&F5h$fraWK|oK>J68H4WW%XwJ*5!?7-i(YflA_!L|7 zYw}m)_)kvavcNsfM7|r$7Hf(`JWQ6Pk7hBpx8I}Rud2k4-4BaX45g5U$~aM!tsy34 z{(~J$=#2Eq~THJF_1(lnB;4_o-3L^ z(O$H9P<3bRo9bzk-m^NH;;5U*s33C0xte%_v`e>A2p{%H>Dm@lXxOgH(>+Ir!h>?MwF^$wK^m z3akCm)&SE zE}|ZE^NYlzZiCHsf7;Be^cQnZqNQ53o7cPMi}x=BdwgpTlvg(-qLHTSsC4nI@BPjs zk(>NE!*>rFt4;9E1~j-m2)Yw}B5)_@Y)@KmGPthc1>2YHW@ZH_6f3^XHMLr=y!&-# z4M1(F4JC-Dkz}8FAKpMAn9o(;Y>m<)QcVocwHX0Bc5?hD0MU->ma)tSU?<=9g%|!4 zLimqg2$hkbW!OW}{0)fy=ksjgj*O??jI~L_JAmv|=q97F|3mDQ?3GIRi!8we3BdGq ze@IIChoAf>gZG#U*aUV#xet<8i3LM;688Sx%YKoM|>g7 zchQI_phi!Xq60|A51>!$!!ov#BL5f#{wGzx(ih-C&)Z_C{*6@xjq4jrE;D%lHLyQ{ zHq(O#W``?{UC%Pf4XRaSM;e9DR}3J6g?>OL`D@J&fUf+RBbC)^F$Yc+psNfN?c^K( zPqGT~fxLdWjKyVl6+7IJ*PkVyGhxViTBB1G&b9YCITPVBg- z`PUNOe?IWPe_k2-^6*Z4s@VUi4gWPj`d^>;HVb|3T+o6ToBC(J_}6doH}-fp9YFij zpL^6b`wyf3r&0d-r(={C>%ef!Nc{CF|NBFOkeUI}l2EOiuen5jc-(*dsX+qpvK7)( zZrXofxPM@`e>!~O;ybS(CItMo8~yW%Uw--j;;@6JAX%*!X_o4&5;L!leNtEr+ zPof{>8TVHRqv(Bj&E}eF6^j(ttwWN1#%Tx(XM&bVwB3*9Hw}6pxfY(M^1*T)z~3~sQ*d%Awut4<5yopyqV*x^3c5i6qAOF!0;5MN16~73A{QvPE z`R>7*_`{+{g<&xd{tyh@`hDipwS5aL_yLiIBi+@>d@jcK@xFgG^9KA?M5;@w@68jC zVRi`E@Ba_25 z6q9AQX)>o-OC0@87@(0PmL(b*ka{dl(4WNk^`lo~B`%k@WCD$rov8Hl{C9t}(5mwz zm$ji$EuG$e4$8D1Xc1$SzL&hZ$rjZ^{%?NrZ++h1+{u?qim<6uEqPLAXxJ>a_SLm( zWef@~F76HrKAobhGMxquo6Txmj1g7;LbVC0%dzIkV)py?({?lkCkI@!}LP0DoD~x?V4*XPS;02{zz8Vqv?!D-v z@OVo~{VBA;M0}EjHW7qEjKi?tr3XTOpkk>UHGCIA+X^W_tBCV{gc{5y9lAWr58|`=kC1RUY>m&_ zz3>Qmmk(!H2c0(US~GxcF1OrYL-MuaMvc#H_gmxZT~%fm`AiZp0dwU#_0_R}KuiB; z@7ApWePL3I1R8swbiKV>vdNWc_vN%c-x@Hw3L%XV#*>I8tF4>mvfnC5&+@j>YPtWPaaC{;6UTWZaPY$dsEJE z2BWa`as!cn=!ZEvJi7|HukMq8uIQ~+u!2(Yoa2UI6gHc?U$vF;&z(web%HxS!{Jh$ z(RahK45?M`{KOLV$I6IzH<22wWitnG81&IkC+{Z@eqRj9tVzhqM#WKRX*Y*BBB)Xu zQmUA6Gx@7`VCi4sL;ke`8I^+@kyaTBEC3EXVRf-EC z>XHw~#dz+SkGtpFL-Jb#`A1rE+WEHVMuw6|h%fIR$QGaY$9MOAd3UVAo7?<@+T7W# z!YQNShG6Mv6RAv^TnQdpVCEp6Qg3;1cte)9J#rCMqE;&jrwEL(6Zi!KBqj~PM*a71 zYG!7E)r1_!1#$Hx9PWzt=|U|DR-0Q%ZI9N_(RvGDieiDuu zc(4ej(`o|IPnXeC$N^IL*pTb^(@1|HX(I0b@ z4Fn@;n$zL9vbIlYD=v?-EUvlFq6q(&I%`;Mx}UIhtv5qC2bzj@gfT~2tY;$dO{OHPWy_Bo$rrPrP>Zy zE#pSD)~c%CS6iRAdTxh&pj4jR{N2X0X69RREI~iC+RDe(XWp)=5b9CKz-F|;UMSmE z;!MBrO-_NFu4D_JR#UaH_CX5)mpkW1f!*QM)*n(o4oEDRJp;r4QJDU}QXb(GY7nq^ z=iqas?2t?<9w#=aR8q7HS*%@Jl%WAHpj?TP%cJX#I;u?jEDMW9^Uc3Ho}lzBXsu1l zf+v3=C2~%@zJ6_{k8n^Azp^hRVca3$@nN&x{&?AKq0Jz0+OsWSv)8VRoM7M$;xfI} zVmqBiz12ecp%d2A$BDlSoGwk)x1#lsK0xf;!A@b30JbZomjICjy<0MNYJitfvto*+!%d7A(J z#ciZWsgyW2UpkR-ldP#4y4uQ*IY>8>_bkolA(`X;4HmC`SS*2G zHK5^e;PBXTf>Ef@9?fg4Nu6TvTJ7$@RH=NvJ49`vOgrT*d}~tr9=4oTCbEC4f-#eYlN#yNHd*7GIqwlQ5Z^kpO6vkdA27&Db@! zFQ}=vE^0QXdS<&)lCSNR08t--Coi1-r9|uG3YLTUG3fa_MP0kyPSCpGnTUw!?uQKq z27MHuF=>^T3bNA&7m45ldYFol!xfuAN&bg$q95}KSd{_T4F#n|vLcuM=x*m`jqX?G zNyHwgqeuhL5~_S|`*CSpF4D*CC%jg20iNQC#UKni&2Bxs-UxiUF(o(U@<>b;<-D=9 z(m6&I>>Wu#0D+15KrN?UE_x01Sd)bM-m8w{dE$Ft4vk##tN>pR5Mz-rq6L|ju?IF zS59eL7He|crvL_mvvL;GCExwZ1>IXMlP6zl5Ecv#1llq^^6s+2DU$&|u!1A*MZQ5` z-DH^*b)@$SfS>oLuDJKt(F+Lkpt>yYA0!N7>v z@Yx1x>+b4cy%%oU7aohLplt;Sk#RJQ+76JXS1gE1Q=B#Iiy&ZYZlz;38Z0Os@qW6+ zD4%t4&b}P{a+K1fjA<%F{%_8|vd#rlABx#(tNqB9U_``LCeeSTYn11q#3!pa8v3lx z-K@l0OYSH|JIv`H|Tf2t>b3lg%znLKGCPWb^%W^c+T2;vW;$GWua4m)9KN^MR=uIoNQD1+7%>(oNQ zfCv@5eliSu*`|M!l^=V+cXe5XGr~A6m0#uBjRlg<3Po+gn)>!f`TdIh>L3zov>|D4A2L?f!_J@B($w4s#JZT6Cvc zT9X!y<>wc~1xb}_Nn()uIxZy&#rQ|omjyIh_rh>l`mmsq+4$^j&{xWG^m$2mFV)mk zGdO0|L@jO~fzeDZ;$O^LlXQ4v=}#JJX<`C`oJLOHv&J^D#y^yK$Y3TI!E@l5Xbhb~&}oLZ?9d{cQT9_wtX|4) zglnixnzn06!Z4tMH9P zbJNQPM1$%2rm_hJi=C2Ilv?oa$>{ylu$H4WN+~DLh8^McEQ|Fwsz4CpAR+%(#+Nv_P}rV$%P z+MBJ7t+8GpHfA!Q10jh5od{e<_`OV{@xx6w46U(NySrK$lnw$z_OAi?QuN*;_>odl0` zATaGEAO>LVgM9tFhX6@~<`D`3fz2C`?aF;=n)^2+!GNA0sm?0*dhhms2O=6YAjj$1 zEW7ubo!m3nK0&S?tchYz7o&b#PNs$Fe*cn>e)DQ65|09Hd$B{SEg%q_x6Di?6RoKh z^p8F&U21COa&b!zIvau!6rsrp;sP4$PHx;haycW|GkA zFPIGW_pg7gmBlnOBp^;}x8={Ek?RfSFxVIR!QuHHpywQW?u=#-kxG1UIoV+f zx;Vm%UUi@$`;*ojBna@H=!xxH_J%hRqZ1sQq9?6^s|PYXoPBuPd#!>LzEP{24L4*1 z2{a4O_q}SB$j$V-+_Wa+1f`b{Cs%pp=FpiH!6ujQ&dEOG`Nu>rHA2Y}+ z#4@-m!pNhbBEdRWNzr4cE=g%f=f8omL)bFT>pD8?=-a&Kdg!Ob4UZevtf`yMZpwq; z;CO3lS@3xZE3&-(5qBY(qkmw~#2X(yk@k}bVbFA(VO-ei2ajWiuwTm3(g-mqs7G43 z$Or4Tn1Q(79{{YsQPYQsnWyGZ=T8a;QHgQOar4+YN12<^Oc zpB9M{f!A;E!>SAE=%e^j?)zo9hMl`q;vUxIj}x8*pzq(SQ5|+iLl3K!GkkWymbKgH zvw3uAuZ2G$%L01yfAzz+HsTX`A5Ze#Yl&yqAmqPQ5tyZczZh|f!!q(cOf!3;s;KI>Jpz#0WDIJ_G%3>1?EaEvvF;tgWYW-SPVfHKYy(_c6O;HDan& z;~Tmb*Q#F{+SYU^C@8~sVz;gv1NnASwDrPGBz_BBh^wJsRB}SrS;8*?y&?}6hZkp$ zhzcaz(wt|mX+Fnl(MMTj@N9OhCcTl--V&K#eh}h6wfEVbJR*uT{k|bV?2Av-!d;j} z`>V72=Yi^i2yM@dR5s#ObO>OyCV1iBK!`p+LTfq?_;-!Rux3G*EJ0J)vBJ;E^hXr! zn^Sc+A)nR~NlwxvKqlwVp=h3y?^n*NLMiD;qbMV=H&~NKZ^76pE44u@wEad3MW_7~ z2<$|ixyTxckjnF0zY`BRkCtGfP5@~V{uGrLK;Z`UEk`h*S=kkomhubOa~|9wMe(w4 zL`B5}l*vLV8EJ#a$y4ff>1Yfd>84rgIuGE^euA#t-Aw`nh5zTmviQi#fo zY-nIFF1B!@tX6SebdveV$|8I>k%>+H0ah=w9XE(nVo-8HsA#wCc?V9AK|OwHsnvD= zmkFc6j^uC(OCM5Z_A68r>zfs4K*s6V5{+fz|@ohK9gaQpdXl;(F>rM(QX{!~em&zE`lm9F8(~ z2fl$ND!Z2&yvc}bUQ=Ngj|q(94l0n4uSrJ();(mw9v!c82VTpiIK2&T8a7vk#;ugO zlr0A??@mUtxG;VW8{>0_YP)9rfU!doeI2T|GdDMvMZWA$qt4Vz zPD(_}k-T4F4I1R!u4YtB5AG~2&4nplMQA9*w=g&J9V7UJZH3ir@MYKmJ5>||T#=Xe zu4rko(sn?9n(eI_Ik+?Oaa2r()lXeC9}$Yc9v*@7P;%Dcd&Rd7&h*-*w7X3i_QQSy zVlVc`=~&y@d{7B4wO+U6WV9DUb85J zAa&dIY~gv2wKpYNUUYo!C#CVLs_(?pg7*)vxlST*ckd~62>s_)#9dY#`0!o#kS#7$ zBz_3rS<8sxc?fj($}3t{8;|u)7xFEH3e9GE9_k%dJUT~PS!{>WxA&esv-d1M%*cz? zU}Sp1;#jjEtK5GS{I8MgwXp7^;LkQF{A`a&!GpEn$KKJsY`D=L;A?;$akwmaw1mIe zK*q5j;3U4@4WZT5(7@poGMnuI=$gHUXF~#@8qPQAr>-dBMJ0h-$w;Qsz1*luDGzg9 z&miZyIC|cW60aS0NSlW&Wie$eNmZ5^8Ex{Fo2mN$aF7jDg0C zB-M{BY$QaKXz!(H3rY%e)rUt^jT?jP9KUDV6UD^Jo3VaV!dX#XBp>wS&Xi7LX~!-Y3K-bLdJctNiH8aD`=Ca~I9I-OccZXkRiP>UX{j zp_pC-3#d~jcgJ?8qB1$`t~^!Xnvt2)s-(efZ=)&OReSC|d4#zaH|4#9!gpl1gG*Ai zS0*9~DY@J^c=n~ZRE~SG7GCbWyt>)-W#Ld8A_G-rae3>HMWcl5xX_4u=SLP5`PbL= zVjNs{=mUo)!lMU1BlB|LekgS~b_$DSqPP0$IO6#q+V0Sv?= z`m-~XzRTj-!-0oy=<4PYf$vgR(`(!4-~?trnG)iw(5K*Peh6dwV*|}<^8>p{2e>&#m zZDY#Q+R^rLrFtG5xjqE@2-E#w)A7_ld`p7$M$_$n`=U@U|&yx=qjX(sR z=u)Qy9p@TV$PC`5Btnhr849jzKXNp$WLgEIw%hI7slc~z7x;!$ zY-3h5{N+tM?kx{%DkP5pkbC2HWIycu(T*%<4zFIiw{GbnVr`R?`*9i0b!TCh#Hr_4 zE=Uk8aBW?CBpuBQ&iGl^vy+Nby9Gty)q=D`(GUBo{VDy3et@le9ZiNJkOzx9$Zh!iJib<$}b;lmki4N{~7^c2y{3a(uVE zoPHXN*^XmV*uJDCmVc0K^aE_5V2!F}_r}|5Mw1{1OaU{K zRc?yKM$x9hTZD;ob-v2mZ6#)%V3dactusWTqtn2o2T)xo{Cs3vUM zKH-hClg>Eteke9Hi@awE18lm_?T6ID@RZKKwpEg^Ha3V`ZWn#tn;A3xCR(d)yJ|#klBfOf$-;n#77J&5gsIZ*tj6q8Zel0L$$%<2ooqIo z$SuJ?rv_e;hVr|U!56ufp1x*T4He(CWr(dE3>@OIU*a8MSPEyGk!!k#NhlvHj)sS6 zVr+R6s0GY^356}%a^;v{kfcLuy1O_1x>@{EANpTPf2M8+P?EyOtMQNBiwRQ z61NzZy2K$mWy_o%{`v&DeQf-rk?d-L)W$I#>DE+66X!c50=@6q0%UuR%3jR95Ii3B#63+ z>CW9!Y|J~03Non=rjjL{0!T9Rj?@-YzljO#=82-MwB-J4LVD?gM6e+?vK`mnv~HRR z9xY+zr+;CV;WH|jsm%axTo}XOj{dD#_M+tB)59wI^sFK=4-1|hs98wcxSv^_20J;a zMyf|GX*TS2FM&fW`+-uOLH=Jx)Aw zD!qnPC5o!aGd!``R_s$hn@lpx@B~=ZJ*C%j{LJl!;d<&;knQ^ING&k|ny{rF^}`Ki zIixrRvb3PSzZ&JDxZJtR!eiu{{rZ^zp4p^yc2v?O78NaPv{0IZ1DuM@G7piuljeH_ zlDW2x{e#mD3HsCrDKe>UA8mI!`Cj#3>o-0R-6N$^nyybA>}S6XNS2zi|8PHm6BmM1 z_UBfZv;=9(9mNt?n7?#NVh?_}6dFy_1^wzc7P3+sG+bO5!7#x?(MEY{j5TOX;Xc{y zsJY7J+xq2?`a!VFIv&N9?j^;lej&Ha>sD5NnQnyxlwk@9Qlx4S_26+O6-*rdZuXzx z>?#^Y->rmD)^P7`TS`#c`azRmKP?S^aXsqlCuq`KoQ~}X=9M$X0A+O%vfz5iDMT3o zDm3$7hbp+9tHx6zGAfy`9Y<1qic*NqrIOI=o( zHAL~fDd<{sdwjY4J<;Igz|I?%7bC1a5@R=1{llY11OS$>8drV3>b9u_tPU*#AtXa> zVAY0NCP<9vx&-8E)4o#oem^rK+YLE#9>NyZT=MokNHXl zB#Q1)z$<%qd0Dw7KhGFb@W6mb;q2_9cs334Kp_@r+mg1!_AvD z)-^N_v}V%pTVol#Ge~XB#>3sdfw;(&cRDEUu?5`K1j)%sz?53u$ZuO+1eCx0k zTb#qTv4Noca6^9YwqLs`Pp$w^U>7bWoRE|h1a;C3_tF{#Rf!*dpl^H-_XIYjqK~zl zZb{kCgSz1L8n;=wCO0NcuJIn~-`I9JsfYsd508lK=X;wZOB3D6a|c}sONU4cKI6Xk zo4p6+!ItHgMn>IgR#t$m9}%OCLqbCdi|8BaVzTdD284Gv8w?^s;u7br`Z8=$@?!U5 zKsn!{zQ$w&xwr=AjAAPRDf|V480FlBP*CPQObF9wX&OLZ61s+=D{p&%01zrkZPKqT z$Mhdcrle+2mk4R;R$-a>qM|W$i9FTawL9@Y~4FhEDE!Q(F0fEI<_B0XI+j(X7z` z*0-+fdI_6U?Xqn+48G-Jrx^Ka$_+#N%X90Qa?TSS*9l}Loo0h6@~Y=Sx>#F@5UNQ` zea|eH5H#@udW`9$A56nTRcKUtJgM4aUOcji{Mqc%N#`@qwNOrYaaqF${UHi)|A@m_ zJEl$hlEoZ_+mcmtc<|NEmD|~(g^kd(W7WwKoA!@+MgzkumG0z$tw1DG7M9wfnOLt# zUQa$q9BQ7&!;6OFfPq=EfeoR<%KNgtQx_VHR4G_)$7dd6ot%oY|5CmGy`(>YhM*=M zi~Fb{N|)`dfUNrVrSO1sEv@1FklKM%`r!?z?F(oiVX{bWBQ-ZS=LgXGb_YZm*kvzg zLyW8kZ6m{b8E>RJ#Y&+QtHXHAL~Im$nL6k>}jhk;U_JRfB?x>OrZE$AGX~O+kUVZpo}(jD@J6?e~_KpdvW0p#8~i5G$Hj z1XiSU*?B1Z_fVTp#MUC3$^B6?V%yz*s!p_#^18zqFKT|8V|Fc;+Mr-p>kS{~!m-8n z-&?q)Il2*rKbDBIFpzhDvkf_2y0bj8s?pzU;|D624M7r;2e*1$es^caPBsK|N!OD%cc))HAH z@k8|d1!lY|cQ8|C{aa~u_ND?!i4i&x+&R1m_PQ03$uL88Pm~L8&;n+l6&C9xIo~~n zP)dC(vH`iJ4b9!Ty+dNW>IIzKGf$VR9?FG8nS>(>T2ePY*TL}Aonr4u3J;Wurju3o zr0hN%*!h<*#^Cr!J&4+qJ+#BQ@81>K`hyT6h? z0#cMl3CftcOqiQlh_ z*EuoE%RJ3En7|)HLaZymB_#gc4vp^ZP+v>ii?;o{i^~eLtW29LuV`rcPhu(JHi5Va zNR~%%wEXzi(n+xh_{i{$tI=c3iJO)ej}RXDT4dUxrJ+gre4f3L)xP&1kNodLCS5BM z0491>{u${5T6{bxk`wu|9_LC4&LAxplpAGfk3}pMXDE>4RB0J>9S}nR?U)@Zl$xK%ZZ+Zo78!XagV-KMbhV(OY7x(;Da~OT8)8QE(Dxxs6?$fLy*4$B_7c6Z zCBU1bElO6_H(X!0@?D#TwlvJGH-m+*b3CWK{kK8quA2v!0Dv<2L z0`tsPK7Hfcuw2<|y_WxD3HJ9no9g3>zkLd8lE@P2P$`D4D z@e_RA+LxS5Np>D^jUR|#RHDyS1|o(zX?LHrF9jR{42-ktfdgU@~)J zq7j-IH8v&tY}Nx!})RLcqRFcIh>Ve~C{0=Z6-Ez76=QoK*G^jrbSZ24}pkVd)|!A5A<+-NWKdSA-K|`O+brtnciU zaH`-P9T{mp2`wpJZ9Fs9?yyW1HM$)FVv5C}oXkvednuY-7>lyPi7@vH3hJimnHY-1 zw1MF!Qcg^1Yb-3Q3(Yx`d~{42fb^OGCY%)%C@F1yuk*l;b3u(0oty!Qae!u=uiu#i zrogUd1h*peDq4`<#tY@DHwEV=q-BKG3_}Q}!QhhBVFmMXl&MOD#L&(E`dZ$KE_Ee= zq@P*8c*c;EpG(BUKkA+qNYvvk?p{3;3pBZz7ZJ8p}Qrl5Wt*pWvc6vHVwvW>8z?g;|j1#_wr15NBT)Rqs^aoh;Uyj2NgCx6Q`B~+AUL86xat2Cg=pz^& zF%mm;;||95ZU)p~^yECD7`dFjapXM_DGR9cDIPKXj9B=Tt-kKwZ=qYtK|+chOJb=a z=JoDrK}XKt3iXi%!jfl|=Y+lt2cqjh*%x9;NRaaHN`FZ$Vqk-*p(~o!7t=P%B_)oI z`N+0}F)2B1obF3lWPZTdoQ(hz=7kRLzYa1V8*-(HNb_cf12f)GCr>3|4=h3yruVa~+~uw=mC^r}dL{ zL7c3X$D|$^Q8m<3UHlZPuR*<8F+yLS zOPT`*14g+h39O63qv#*d=dPlOi;GK9wbbtAzmVrih)VOVIfO`%+I8oIsrk^| z05R+ZQ*?6T*SJI6Zt|E9vGWFs;cw@q$>VLUEQ_nMutE>iD}U?}e;2x7&PWb~)bVV= zapO=-G%}3R{l0A=5lhs?4IT*k&SQ{9?rVq(u91|hbu;aoAF;>dMvU>cFH>ykAmf%fldcQ@Dk096@Di1ekW|Fgi-2VD!k@9d~txJEXpO3p-F7?x-s$ z&qUrS!MFrFc1m7~o0V_IR)1-aVcV}DR2Uwn+Ez@zzEPIRT7qdx5pCO-6j*OG^Lv?ut!vvcs((VnfJrs7Y-cB8hK?}h%-HX0oXu)s z38ov#yQ`< zcbt2F^9L5I=Blb$b3S_*MA|3B_)3k?FD8~H64Jj&k8n~IROWpmkfUN%As@32DHhE2 z3ExRC+RTfH(#j|ACA;8}8L5@?YE?+MtqNO?g~wC|Rfqje5bg!qn&Awx1Rl072(Yl= zx)zlkALNmf&669eJ8}J{cj6K(#~GcSNBaMugIIvCLF{XPr0nmOBX;4%Ai~ zNP+tR{SkT7GaX?+KcB33mNzcJOW?J=N4dF<_0A`?ls@qh*naWMMUUsg-SDq0F89w& z2zqzD5HIOj85kW7q-5@1Ad*5ul%PXbXXu$)ih99@Eo5q=x4dv!p8Tm0plio&8^R%& z7zrNb;bHQ6vUn(Bla_ZR@fTHgY{7+vel$6-)$9ATBa0()u!+bte2~#KNNHkjy@iM?pgaG-D{{@88GEUO?$rCZkRtBY15S zAVxWBc9}tzOD8QUL!q$8A;kg0n*~v0*ZIgW71^^oYN)CPdBAo{pfU|$S;+aBC@hAr zpSn{iJHZYNkFp!x{@)@F|Kil%(Z7GEH>oNA+3b+W@GJ6!7zMDZj;jZMc?sQpoCF?b z?C)-3Bf4P>#1WdeA-n>+MY*I1Lcupn3l+=S+wn8opHW{<=_O@insf-rSmo52u5}-Pj#~ z8`CqieG-^YRaqhNEw}+}Ad%f%{1LEnPEt*2#^vOWhi?9nX7mSH*M#}|02TwfDl;um6WZtO)M5K8oCDE0q)lk|T- zB~?!-5ER}Tlt~;ALdfV-zp>V0?mr4e>EEQZ%4UzVh(<@yO@z~D)5y+PGG|?GsG%xlq*hw0PudMzA8F|JrFv8h9Zj>dNZ##@J*lr${hAs`u4M9uT*C{3EjMZxV&UD zYUijYq{N@;I6*3vGs3@BOA(QVUr7xx3>G8Qrm4SZgohW3Y+Sg`DvXnPAWbQqTav9; z(R=RDT;i89dt3NzUrlvIHuj>6%Sr`#_iWgA%BaL-pS+xE$pJ#7Ce-4SZx>wB3cs|x zTU-fh>+!ckZKF2Ayc^pQyag%It=gGKG{a;QRFy`sOq#<)_9X1=XxqXh8k%wlgc5L- zll*;7*m{0hHq^C5NY#;E6o@cjHlItJkyOa^l+=#E6bBz^$2zQ5bS zoVzn6V1Jv#F@6X~EkpV_S55cNnRWZrNtR`qm9^Jn#KU>184n%^MmdHE(F~CFMmr0` zZ~u;tig5p>Fj*~Q#`?pgK%mF@CSX{+6xV&IAyC00h4RtI5>P%rN zE#hn(^*Lk$Q2s8-2RTn=v5uht071#lRFh23sv%Dd>$MtZhNuqwc1ABLF?aOk*w%tA zoh1S7uLo zBN1fv6mcJP|L|32>kN5VAbG%8pFGsu|FhIw-v3~?OmtswB+|5a9~oLg>ML%r0tsJK z|DkRLD;`L!eT({iT)0{xtaAL0`406El>m{L@AwehBG20ZfY{2Ko^(lX{IE4v*Ez@b zE=ib7jJtXzV?CP_Z6B_CIVUzn9!G#C6=hjCWxn7)EzD*sePr3F3cr2@sPzfiRl9es zd(XTu2MsS{Z4!KWS%b`N>jaflF#(!GYFwyjHNs-b$hcg6OsviK1wRy7*%2iiHNa|E zN(c`JCK$&Um0N~+&53FBGO*dTa|xgU$o~9L3Q$&6A?BoorVfTBJMSZ5Zbt@~x&&R5 zMgO+Dj6CgioV=WrXBqWwN$I_4U{|ojh|G(V@iReL+`QK>O^?)fZ~PucLy!O2RbA=7 z`~)n|&pul1;~m5?M#r`>gHB*@#oD0r@l~+N`v0jcu|EEDoU5+)B1I(?TBb;m0!KeB zSiq#ecM*_sR{sZ=rlP>SK+F5*H%jVNJ#3=M{z z9;yyLYB7tk4_E4ACuL^F4kjDc$0x9;o<@Wk3>TRYPohu|8 zs&(%Bm9Q|F@;@nYK!BiE4^TpalBU#LWuYkWOxGXUC7MMlO)P67{^LKF?}Il^cQ53j z?ddhOw9J3iLrWNW#S7i{Fb}HTiL-ZZFF&AoCVzL4Wa#~s-3xDD_gHP%CsW5ZLn`>( zzs+e8}BqJ7Aq)*>TP^0IOY#Q zH0f^^w#cZ}6Lcs^YZy>k$vLQTtE;CdC@hDmSW`}!G#_lWI=0SRk1=u5hMU#G_wj@p zY1Y{9#Dz(ijbSxmwT^W2Oa9=f4vk*0tY+r>;YfQ_QV>gJL98$@HARC@)I??+m!Rh}3u=7795oR3~ay&nOK3mQ! zKn$_YHwfX_!f~90DQL_26n-mxaT^$kTLakgs&~_n{LRdOHAu+`VB!pBr3|jTYcZao zLv8)bA@Z{~I_l^f^u*L2IqV)W_AWC=(B&ZZMc7irGghcKMmS<(Y6$z6LE1j@W0U@s z%ns4E+(4R2E-t_rG!Gy^0UM)0u{?FzKes=pq9Ne*A}6~T0ioP8PZ5}ae4e*Tx}DBm zN5VZBjv$Vn)l`H93s{sK$4B6<@WlvkH>*`cQ|(4JvA|WDR#ue}Gx)1-@8EE;5KQ(N zt*RGMf{0vpi8`kxf_atg|8cjzegr#TOzydBH5%bjX>J)3pTnb~$;SSVlkDpHhi+`B znGSABKt%gyzrAcDgpCoQRF+f}kjqf=JHI-X^rZk2dMC82eI03F$uh{A8hgHll1|3? z%?-J-sVXbr?Gb@70v(sAheAE8X#Gy=lu!-jAe}WL;==EIgX94_s8^$6$30dF!FqW0 zh&r^!?$^Xq(=h3wMLI1nKkuhZnDj+G8bWue; zF0e1bF~$rc-2s0KG%NyVMm}+EDTYnS>gNGEdvhkcJJo=kCAC-v63zC5jWZ1nOnb?( z4RMDH;PGEB6_->4YD#ux_CYbr?`0NM|XGvSu5aCs;y-7!}Q6=RRZG9RR0ey zvVr-}P4b&iYbrWP^wC7q=zG0?owjwkLr_jzoSeAz{)d$a{=``{f*^3`)->0(EV~+I zy0F9dP@v7o0XeJH=D6XK_^djyn~51qJcD(2`0+ znuaY&appas8A=P<6;@+d2_sEc&mObP7JL}{+~k_y<8(&>yFQPyMRlF)cj**lOA@z{ zEFt)1OG|4Bw83gob?&h=c`;25%8+Z8sLW*1U3E@_6!Pc?TjC5dpywc$;m&sw24Xll zngQ3M-*8{r4iFuyG>GloIky{nDGPB?EjN9r$-WK)KD#nG=4vqqaD)SslO+KFY%<%@ zN@o!RG{`DWUvlZ;Y7;Ov4NWNmhp8#`Ku-RSiiTA{y3+#8V2{v$-L974-%-Y$==s1K zbkyDCDA0dZHkf}Z+akHDJO|h|SEJePN_i3(Z3z*%KM#gJ{BtpX3x;p#Loj=_^;J)~ z!JgVn*TebMzqA;Y^s=XG2dotA@`GSHMOr_BJl|k#CHZUJ&+s`kU$Ph#V)ZinU*vlQ zPa~sAdct+RJxs{hfU=}G{cqEn#uTQU^u(=36!f!3-D8fBdV?QaLIwt%kdGxXKD#Ys z_*#zY)b*56UKzRerS<0R;$8eqPl(MBJRZP8!=muv6t(YVL%UuUg#)CH#8`dC+iw((0{J+8hcR9eEnaKf?Dj? zfp)1kjwKskJ-)J{2ctisG85DT@8l16x`;ISV>IvgJ{3W9Qm_y{%U#)eDo z5I=FA+4mF`#!sF8NyfAyKMgX<;fYr(zn0;BbO}sjHfIozq?rqjrwx>r{+E$gB}Y0z z2&VAsE7WnX#dB$3r(7ij54^o*RHA}jg>!kIgdo+z^EWWC2BLfa^qQGjiAzhv8Nc5U z7{9%IH24iI>C+s&0U(N=6SJj8;aS<8RP)i5M$?z92sRrLDHZtws1+@l z(#IZ$hfTHtMT(rT)B};wEr=Vav*BG^MAUekXjZ^Vx!~5+(|f;G(S-o4LNuWmM>`CL zt>3>snc*&}@ms(|x=LmSD;ucC;AU`9veepbT;-8cQX&OYCtECgS461vR3lIV_zHnM zrf7o?W_2lXP@j2T4mR&%YD|?%Ed9zG)(M5XjPeSRKGtuRD{3qF^PYKN)jQl4=n-c$ zteLTf;qwg*lo~~qr8mU0g2sFMGd)bTBl2_=6-g?Z9`L?nVkEhmKmR33;UEwgyD_)C z2PsE(cBGG&Y-Qh~e}wZ+;avO8%8dxFj>4fEIh~)vzgQjL@0W(!JyGl_b#3; zAZ6tIvTR*DYr|1)S#I#vxt%}Feh<1}zMs&8%d_)&tkfOGTM(IZ%@JvjQO$5E=J}fR zevRkA(QC))X0DZh?bfRE&}?UaH_74H)Be&0q(2S7MQT~~R)UP1Vpw%-^YdfoZ+7rn z;Yp&?vx+tsdtkbeywn7ceXkYp7$D}LeUkxX!ew8f?s-oA1_`RN88eo#2P%9f&|P3#AZbC}iq3`~Tm zn4nz$+`pT7^rXSucYqVpbR|P>Koa2UvCZVNaodUa)cS-{IwVxKnYfF?Liq)ci+g)T zdJ_9x)%fdfV-ihYZ zG21740h!*&!aEu%&W@{ZJEyJZzsDp78W!iZK|_cIYrk;_1+(AVZwWHq?@O^7yRkIw z79XLCm?0ri_ZRN-LiD=n)j2%S1wDLwfJ|A^)vA&OlOvnsBDgi1^9Hww+PAJS-7c7W zniP=_`59t_4gdvSUxw2JXZ(GUR;+)r-V=IU0o`v76ARKI4S_#Vj zZe7F;Dt&Hy@$;)@o=&-`$g`(nFQda_V_|Fg%N(BxTwbuEaT*k*YY@g-GN=y}Hx6+v zLX{pK5fXo+GE9&oLE57zM%Q<*{QzL4oHYn@5T_kbQ>W&bS0&jnXWjwQmE-)abBFXq z#g#4bg_Y_bA0sO>8lqAyxV~9|kWx}KCT5OAB#8XNIjHu!Hn8%l<-up7ekS7wIal-% zWXVxRh2n ze&HU(Y`_2ALJqFmWfIj2CT4_OIod~COqd;^-j$!yydH&~bETlSg4O5E0 z7BayLph~{U!H+(PI&RZ=`{Q0u9)<}W4!Xoakb7u8;2Y4E7fJ)h`@(4y<+5Dfs7bqT za4VY_($(VkJDn@m6Upy$ZLF~(DD(@V=#q-Y&=HQbxer(CT>&o>Xzdf;Q)A~wxAeP*hyT4V`%*TFCzC?J>@|N40%gg-YnPNnx=jEvTSey)Nf@@WnNg*^ z%b1ud_G}Zf)t8gTd#T}jRY3~a*Ng4(zPF_cx?fvm0zGr>FGRsWflQzZIphay?jkYu z6&2k-hQs%q94ZA)B9!RO{rB5{eA*-{Z<~oe`Tsk;RkcRMl-9Fo$Jicn&b5Xqt2w}I=x&uKQvIW36wyh~^rN?IuVHI*1+%OdMLQd)Wx7j7V# zm~HegCLETTUE7$Z?aTBWHngcQR#klAG_b~%-w(SfDVBuKDU{@J+`0ZUcEU5p=DdS4 zUAR`w%l3cyLp8tV6bs1q-wV7L8V6hTE$(_Pcwn~uP1Ma?k9@s*gR-RfRcukz)2q6s zd$ex*ieAStsB;!~*75#6VllnTl4vPuQKum}0~?Kzz5{*oXSkAcN9l%tF@sI-$JpyW zb@YQ-f115YCaYNfNyM_X@3cIRii#|1Yu#{V^2)i4xl8o>^X3;|FR65OcZ^;A2^}eK z6Un~q)TLKH->~taga!~+u5tBMw{xG=H+DbWp@jH%{wh0||L*O$g`}#27+Kb@Jm?3m z%;IdYFDj@MZS}VBG#eE(=ds;F%h01HH-vST*RyCt+H$va{q#biz53IYh^F4{!2$&I z5pM+d6;tZ}5#P?K9d#t7q|pMO8rFJ_L4Rg7*vff6{pxr|8MhHm^ty!HeS1xu91EPXOYhP0_* zJ|9#=zW9d@ z%dkTzgU{Loggss7=jF4*Yl~HaaT@CniBfptUCVpkDmJ z+>A+76=^#VK*uaEOoAHAx&as!QlI=x)9J@_eEL(qv4;f?8#=Y9n@r=*AAmfoN-wJ1 zD_mD2+qfKT4T_6iu+^&#mtg&>9(6hCbMVzMH@i2`r%bd%t&k}8l9Ta7t^30VUiyEw z+CxfRI1lYwy5KH0x{(EY0u8H38X%38c=Un9DjJ07^y3@H5(Yz`#qj7T`?nJ1-{xv1 z+75p$jV}yBM=3UaYUNoihb*p-tvldq_s4Y3uzJOyi;BxR8KWHa4_XGDQfk~zT1e%7 z+zm+LSEsr@w?~dNAcyLolF_u9PJ_e;D2dmtn$K)=9cyVqSdNE|t$Vk~rDYS^My#3_ zDcZ6fnfNEdz6w#iHYYofw_iPJ>;*hSI?pMuiXcq&ct8ppcw6!ZM)lX0AiuN`qIfdV zb&3@oS@sos^+B};F^Ood<U zBMX!H3pOiiB9d<=yqQ`~O9YgeHgTrL4w;edl`R!t%Ss{fUu0a#WOj!)5%Mun2U;)T zCuw+Dh2oI(iXzi;vggjNtZVrf+30o7uJ0}Q@vW1=f09Z>)`o*r;f|t7vtfcPmk^E zW}&j99(P!Xp2O#tLyG1axL(qrjlxV&PEJiqKNUx3Y|f{K(&{qD9lTvmx1}&(606h4 zZHqmFX;}&^H{ntp6`%rNsDCz9I%jed%G$oiKRx?BXjz!O_o{vdW1sMsgwRb3lXPvn zbUdrg;?5(B1R=W_*zcz&bERb9GfgyP6=DT0Z$jH5mJ2frtC!{92Xw8^8Jo4)dAO!fG~<(s_xwDB zbzq+qzFV<0+1EqRkEfp6X#JcA5GIinJ1xG~2+9NgGg};)W4NtcN8%zVxo?fjIuGhQer;Sk)fynwAHp^l6Y}FZ! zycPqOy$Px?*pa+POfNl7G}V$76~(?U1%$R;o_n5Kw~rS`$JPcM@pdsi*gKJKXJ%u6 z4KGC2v@%>a1p?@P++=lb@vSxP@YCI^2A|(GzP?+mIr$03J;ze*Q=iOd-lb*9s##JQmXX6Od=iLJ30ur1|80f3S#lKL0A`u$gF(C1jo&A{og?xF z_~br(W_Rv02#;O*rv8^MIWS>P1(Ah97hr^@?vakAs{R2x0uuBA} zzFiik8E8kHB>Wt=O*lwRo1_J7?F8YNjkWpj^-daI{gs0cPS0833lSR&SJlxE2^yU~ zz5ii2cYSRO-)%(r@?BUqh#kN(;d}@UN_Kdx`Xn>#S_g^N7HOQdW$rA~En04U2DA~; z0-@Yqd%0@0qw-(4L1}fGbezGrj(1|JILClRFQ{=b7;EzO_el_*q!U~0=~*B=_qwW=f7}xqEFK_dF6u5f7XFjK>w-tLh1*MsBu!8)8n0i5KhcTIq4$Xy8kO*z&N=^5$49a<5WAA zac-G&`lAps+w|(!s zTuiK!7_GzKOQ&;JW{nk+_EBH*>cl1(323!|M)4A z|2FNBla5*Q%atb61Sssl;JD#G&dQRQt^*2a-Bx(@`rVV>*0!I}p(yzVYj6Tx?Dy9N z$S4olkl}PT1%x++tdz_`EQi?()_U5~5}Az)!os!?pn#WPeR3*C81;bUu!M*U{jBlm zSLbB_N8Q8{Gi0X=;$?4uE}Q{mS1iBK0Fe3m z1j7?D1IZLvA&UMe%$zkYQ1yr%ajD^t8k5O`0>$F0EM2Uh>bDeR9E$*uwl0qA(fe8O z!e^4p$Y^9x7|GO|R&DltZiukg@pehDT_wTgkX3V+_i$ zS!yo8#!ib(PMI8Z4UT((tlr72rFb_9flNn|8XLE@X|8$ghb!T~@dUNyx5a*gO!uBh z5ibYHHICY4=)`*Tb z$eS?J#-;;v_(P58JJAA+eXTnNMOj5&p!z^@z|9x}uLC(&QcX`xv3QSl5&0zGrf^ZP z6aXf&S6yw&$3HYYMRm?;#mf9dF1`vLFN8;GM&L?=4h^zZ2QL3BnemQqB)<{N>>EJe zh=h_`$tLSmXZ&@!$1Dzj(ztG4AFMhf$bSAz=wU@yX^84?6q)*WfeF>Ou5(5>e$YQr z2Xw}bDzPU>lP4-mH?%Xq<~$GoGPr~A2>A@9Z2bs(*fxdlan1{$U-gRUpt4;49Bo<~ zkr@v*UfXFOZFqXsOmz?|5HtQ7R)SEDToq<*GppQVLLq{*Kk@lK^xcJC7;EV~5(7+O zDZ3%K-JP~d_}4+fWN@QB-mvdAV%hTV{x@wjh3P1|n$o;{O$gqHN#2r&-kx{RA~<}H@A+=96d(BbPV=@+lGnz9)!O|;Ab%6smOLPr?6J|Q zkD5|#G-X%hrTocdF|S0Lkq1sp#Ca|Ok|H{mnVvvKW?xk1T(hDX-tiCRZq^q&EWx#k zd`ayLAPdWv(ojg>TyyGcPE6rnpv+l_)Z=@XUK6=r`2(8(xLfU1$81D&A&erE!_B!u zO&zj!5y0%N$?GJ%7jsX z7-G>J7fpHD*w~T*VHiM)cNlrDy{{sM^qOs-k@%h%sjZY8aw=jCz4oK8`fY#PzBD0( z;Y_5gQ0?yAKlmB!bR?T*z?D4*ylPRVaG@z$7>z?idGtl`oBSu#gT?)|3~`Gtg^l-R zqceqTf^@&Eo{|*$BRIk(?R+h!>^!*Wpz~QzJyT0YUjFpHHLnMl8C8BK11W1Cw}=QE zN=r&dKP<+{XJ&_Q**5_~Tr`W7(%7@6_r+8LBUz12*+tlshYt&0v%jn|Gx+IqX~gva z&E%@FPjYEV>Ax4VZ^H?NMHxekg+c5@NDlb#e8^*M0a4eTyCDbKo4T#dD+y?91>Jea?o~lZ-l}UrrUrT2jMVM?hgY`@sCjC z@+)ibx)?kAxNt*yzfI#)tBj#SP6LoRVtV)wcUT$Oj#&&QD)wqRR~8}F8ZOOgkR9f{ zkl-+#+Z}cmiiL@yftXWsmRA>qQ}3b1C=)||N6BJBQ#~8;*e@VUOc#bLO9SQfA9-8l3~ z66U-I?aw^V^myIRD`3TOrPXM5&Ld|dOamI*RIl#>GARwbgIGzHjdYsg`lgj zpF|*Ew%X(+Kt-Dcixwl*ak+9B>-^UY*wJV~H;A=Ud26^5 zyXMN#Pa+|5=r2$E?JPclRGEtdv8vB>su{ijlyo2#K?D`qt5o!3LNx4uO$ zYkH$5nT;w>wDK!q7#;C@1h>ceN8G1RULxd+=lB?4jME{#ObgO`XSXoH;{_JlXZ61B zI77-Yxm_IrcxLypH};CdN7jS2KFC!QHuv@_22sAgbC zk0v4ZQ;%Gs5};Tr4)qu386t?1vhJQ=!&s+q88`Q---XA(P4rHpiS8Ysd6D5^ zxCYRDxllpOVcv7I+kzk}jLTw|fe}Xb&+)M%$<=>}iqUEFFcSHM^P;(8In;4zn4S8Z zB!ir?eOcQJN2ysqPxKkU$;i|l1z?0_UzMdog_f6}4h%{Pae`)HptP`9&FH3B?21T2 z3zO(Es!7bYAN#XXYb^n3myEf(bW)8At64GqO~$Bb=6QMY4_CA_EYC#yZI5u^+nU83 zq&2?99-G>y#N!Ja_o6W>vMI-Pq}1j$Fssn|ymk;qZRmv7F$>-O%W?U5+|z5rN%>F05cI zOWdE$cK; z^QbDFDdW+9rjlZFtARNa&87^2a;rI`bkxuZt{K?G| z9G|JqE}qNMwp^}MIApiP=?J|vs>jvUkIX-B znA-*L#wT8gjsnupf4XZWOrn{$*$_xQ!gMpUGVL}}y)9XJdwABWe)sI`xvx#sm~4r{ zD5h2TUS9NOt+x)HxZdR*q635X#Jk`5Yqsumu2bgWpmZhf+_Q)ERc&Btc=*FIeI1r2 zJ|JVYvgJ(WdW-~(>g{S@06YKOou*DlFN~>rx<1CJ6w)rPuRE)qj77>XTN&QTpcqW) z(u?nmSU;>Lt3Mfh<0sF{XafOijuzto#4w7k12J!wPWUe;wA=;4V=ZFI5SLbwewdwL zo_FNmuUDjVg)%VaL6Q~;H7jNk2?GP6ad9gi&Aw}XdPo_ zNPVl3Z0gltI?1ORkQI^A{}J3k6ar_9HPD7(MPTiV&__(px4giZ0z6v93);ve9>ZfE zU|9N)+pzNYMu3vCP~NRmC;bLzr0PVJ?vFI0rD~d3C(#mUbUBz67UmW5K8tTfF9uUo zm&Sao?@%=O#X9z*@?PxWJj}ZW=~TR@MS%{FTr5`JqaGz4gkXOsmbPe6$oDr%Afbk+ zCESg`eWa%%x*LL=MIFuDc+9&N7ApJUbfhFYw{;EdSb3PhU1)ZmL83a3z59RT&z{g; z14T^-S&cB5m6(}7hsJ?o&>h<*Hd$GJAM|PkAIF7;EBNRUM|MJFk2i}KgMwRj{iQqMA)v0GD&XK`{xQ02w-vy zkK~^)$2LX*IkJqJ%|EpZ{Kg1(q@`Q*S|e9YebCy^aH%0iARi|gD|1WO0S?x1N2n++ zQl_hYj+v<*<9pKPT?t|3PFQdn?An7gffXio%o}*I=BJ+s5aPLNVQhA>^rNxU%g!Tu ziqWKHhwsW5a}mL5OWa^acG!To4;JJvgu*IWXc5&W2?fAka?8Q zeM2V^<=mnxT$ARjn6M-=y zi z_Td!F0j?+Byd+Q_le>nk4HX3XoQ%{dK`hA%gu^IWNU;Yb#Q5oD&rz#ab5E=7$t7c3 zf3#U-j~3TUPcEsA)+472uGb!PGkcP6J4koSZeZWb`L7;WjRlWdXc=p2MyFig)s(j^ zs>ZQ~9fUdmWBtwHe7cfzT^)5w-5zFbeG#J^L~}?+cY5jw%)cN`qNU=^%toKDYZIPZJcX`^`buy@I4HAb6z}De)xw}rZ*1u~cBwj%m zEUNWo9MqePm?VkrNn%AjO((8<@{t^)6V*FZ+onF(cV~m(piU-?-8%{UH0&-y|8ikY z$+yPk*QU9(_$LGJI8{#lyFXGE)e70kut}o0eVl90cxe6T#Jqg41RWC(qOhv-qPsxI zra~@hxj`o8Il~V`0pQ7ns_Fo`6&u#?(-{g=l4PTKI&*Z+*e5kGSmf(CBe4tUlmvEu zhRHVzzs9%!%JXv`&xN^S7jZr3(8|ihk#e=#>(JDY0p|j?&KXtoJ;-?h#?ZS7TzrKu zwe!MxmDnd9^#q;D;!26WBY#Ls2vTi$_`dq9BHAY#8$_Mab z0~!bwX&}U$sDV01DGECcl~T5Y)6qO0qW(&4`BgIiO>}R>Qh@s$ib^0~l0)iXX59ayODpQ1-T-P~>ALA!^n8;c~=%df#J2?pC=UQwAWo>vui>D}OP#uY=pF z?$*vK&rPsw{oE=!_cMq!l&t3LV|3pWuv#A=MMtktEJi8KPOk?0k?OEfE^Sb^qQ@Vt zRgZSiL%@5T9J?uwO=;^SXj`r}MRUw}dMIuIbd?_CT%2mj(%thG4d8v%5~!v`x0MZM zh3nqbsrUwV#3?T$58u0vj#`}r=p(H4K!oVs+jhpn`M6iu_vQdAn0otgWVlv4N%8x5 z716X+$9rG39!x_35?w7OCvHO|t7$2{;YCpliDnZWLyqPBZxu*P3t7ekqo$t=m(!7r z-dj~hd+oK$z&J|;M?(X$2>}fS)%-|)8lju)Tq3_ta?P$WJ-oNPsLAk8u#CH!g1Vv# zVl{J|VWY}PWyEX8ijIr476VxBU5Y&|@7A9y)((4wH6U*OKN(ym7UU{4z1LgGpjxQA z<>3kma>9<4k;`j3H8;LjdX9w<=f5skP zl7uaAkB^SS6)h%jteJLCK}9^IU~y?t9Fk8;UJkK8%q?znR|y4Ot*Aq!#Yvf|u^Ae_ zAf9omgeau~jy9zooVbGamROV+k_R0{4zg`6=h}Mv&g-}s(|tLLCC3N;%pBH6C&mXj ztCm$)m6TO%Z~Wr@W>@o*#}yv5Qh1F8CL5;mJVvY)=t`n@6dEgnH5T`hbG!?x0mWT6 z7H-RP_mBK&L<2bb$oQzsuQ;~_(_ZiKwqtNB>U>foyuTN@gt<2SsR*-qX4D2JZA+h^ zqyK6YnQ1IgQTBdc-*|CVYMpdKX~9ZQzct1mg{h@_LQIa4QMB8mJ|cwyo=e>7=104U zLyP19yOp`lDf%oEO7lu#J6CIfgLCBK9AchoqT(>Eh*v~`L=a*L^gwm!`wLG;z&HGq zjQM836zBSi0{ZL0Z%Zc|()Hvc$Yx3*nw$p-8)0(yMhj*jByjN_|Dhep`;2XZv0RG4 zg>3rjsR=$EHJ)1&3}$tE88~nzM~PCYAvpq8&$-@)JCTruX$i4^-x>*tC*cUr5mpD* zl%@A@D8}hd9{NTK^l!hr66E)aH61QVkDjgbfGM26GT0*V#NT&7q9`m0GoK>ZH~)He z;)f}3i>Yc_&&(vO+TPp-tu>rELGFHVBE?-aB+X9B>Aqa5KkLj5_~^1IBQ4t-KK$mf z=yrE~19U!^ER>l8*V)8^!~n$nxWEuqFbQOhReNmNh}?2N3uYt5dJqo+6goAdRl)2a0nK*!vENS1T1neqt{9GzdH+Il^wLoU8J z-=J8RV0^XzUM2UC!C`gt_1!}zvN5j<=$zS7e$Fax4?H9N{o&JBLlwcyFZ+DY?)n%& zS-039zA~9e1p+V5B+eLf+`;eJmU%7{rAebjWzW#Yh-FUU0xoE*!3N#j~{Wd>WUX`pXW)#n{Y{AIc zbrk7vHZ^OU3j8^o(fA3JlB!bggzI>?+JU0hR}7%uAS?Rqc0-Q zoWs!J<}~Ns(c<(xP#O&oYrzp__%b#~*(A+SR&t)h=($a~x{1N4rE<#t{WI_W$aI>b zJy|2HN~Q22ipVeeZw@vk)UWYVx?-t5YV+${gI|hbcn5@O=;#TJ8^q=jbo6hN%tolX z(A5u2Dl836l2)?>*R`BvYX00V>M47b){#lc=iJ%RmU)DYBL51FAeohcarlbwdEouV zRhqkxa-0+vu@?z5CQS767XB=iW6_%NWg=`S+Q7=z-#_(LWKbt<`quN$v0bR39cB@= z$=rTeNwTB^Ut;imy3~dYyP+pX9SwSlnNTr>lF5<9uT?SV2XnYI)4NLJj}jVOnMG%L zNAlttrl!dn)n@ftj80cVlzfd-?`wVIT@eLh(~nZ7u(N%U4d30L&rZ(+yMS!3m0md! zgv7hC;`nkn0yHRCGc-820^6JYX=~?Ir3|<1oa^rwUMrQB7#U-m)8`pmppT-Q0=r{w z9-F4K9Y^XpW%jJrc5cwD~>E{e893vi9kd^cSA@X3W>^Z8|{nq2~%YFv%^w2-_ZP(NM zT>$b4sVz1G4f?c9^P!sT>-})F!iQagbQjevckHp-QEFua*-SXa*RW0E2X6>kiI8bO zYRxAugQ|8g6c5M+GVp$onk3NmoQI=)^{zcw|Mj3Ty`FQFHMvD9xIs7CPr@j$Zds#n zZkG9O>HU0Ao@mjhluTQ>GU#Di-%qn#=k$EyRW*!XRS4a~qwXr63TIq9NcSh!qgHyX! zY2jun{SiFOp6+klo-;KaU7m)y$@@TJFkhiuQ()mbu$)5hfNj<@4ZPI&TE+tXBK%v1 z8ZDkjLDm#=yw+al%gMW}PQQ3Dl8(oz?0XuXRXP_1GmQ>XhdI7yN#HMyUmHKEi)M1X zYo7_-XWFmV1YWjrOg)BRMP3Hp-!+;BzFCaRa+!GVbOCwRBiD&Ni6+9JaZs_$2UvJR zh~m4F@2Kq~idoM|N}-AiuCvUXJuE)D)$epA`$&CbpvFImOYKv)5g2AHB)rb>7<-)` zu6(*K;i+ejRhET}7o*NSnn&dqe#8yGU(&jXl&D`Tzu2+!V zAMfA$ae6*pC3kz~*il*O@is1YW-LuwRG^zVr9drND7dydO<0qnnW>!Wk(af~w9LqD zvNtoZsrpD1=EK0)b|WF+E43T~lb)inK{vw0b@C7NudE8^#W?8AI*Xue zX6T?Pm&`Ut=w(UCbKF|(&5BQm;HdB%3~hGHEmZ4h|AWo#1Ufan==h-wd)mFQa?18~ zB_gw8^V_!wJkNRo&u^ENAAe~iIY#pybuB+$yYsT1d6XNz55B=sTdpr1oc9&ZLDQXV|*FBdQQNbLe;?rep z_2z-vR_wPO1S9BL6&26GyXKnMSwNO$rl36sa3SVRzLdPMzt~(wU5zunu~GwJ5_kvH zq~}2v-LG22_yF&F$aWzMwQ*!Vd40rq`chz5n$m$3-hkcG5+HU=UV4{Vp=CA+G%8Uo z$VyI#)K09|b02*uqq`QXgp+P);%_x< zO*@Ie5Hz(;=f&4dhF)D-=&LE`knCLXKKo574~DwqovINtenj*kz+jS=BSdpKR9jPK zk`y9_t}j?)S^MIUqA#J$Yjo43;Z8HK)R6eYfQ}CHGzlS+eBI2xRlHdu)vU_&vwIx^ z|DGi0$&fTElE0Ed@Ryh~=P$HPmZWX7F6Cne5C8yM)+4G!fOAl#9>iwOKBC1ZSl-G!HYZt_;POzH&G) zq_XM7EqhD|cD871JZBYP3rnFF3qiurr3Ki{Dap7g#?++*h9*Z;=_a+ib?Xl7`Q6Gq zn(U_{@*3K#dBUw{OSEXz>o-Yb#c0;)7#WW3uD3SFSM!u()!#PKtc02-ASjXX1==Gh zO@Bavo`@T&>A>Lm6$=HL6e7GjwXU7K@mKZ|;He;zPj;Gg$Y4Ewak}BXmlAx=NCVdRZ6b5+6sl z@A3CNYn{HS(b4uuj0nrWg84uRlH$YjdbNk^Wa!SFkzO21;q(H(Lwr+b(^XDek6UN6 zE$BvzxdAD^Af($}=to(%Wr&cA50*+IO`4f%(4-?T-cgZnOUmlNB1BI^qRgyD9lMg( z{ctp^vjC}Nk;P+`*GTAioy{RonvvRrd)6Ih4U~0^g*@8~T8k^OY2SFkdF-vV86U8$YF0i!@*7(*E$0_l}a+)A@e8vZ0+X(V6q; z+#Jxf+sFK$$u|-2UQ7&(So!t|Yf|W0G6)MymLQM&e3S8JMa)cYevcu(|S z^xvE+ExinX9%*pbW%L~{Ru83-YsKl)>A&2>F_2Ewm?K8H76vOQb4q3`O#6w=h~3KU zmnU0x!jsIJmikHdqNg`WUnn>sHnnUvrnI#aB0bvZ+BYsGCG~k+f5W=@MEAb^mONpG z=g5L;%^lnPs5cTS{IvE^zd1HCc3<|TOasA!=UkJo@U#N}fw3Dns(<;zuDT-hVvKc=Ii~{Uh}(eDf4dF((bL_;;bH_BEyfpL}uoW(Ok$J(UMcIe$^$Z*R zk>`_gK%U1WrZX}NZ{P3G8JDi*noCDx94lHSpPY=dl%usU9%yk~U;Q-fu?Ocgw49=# zSV=?hit`HV6$1L-#+}sU=e8Utcf&@w+>p^1aUg%}lDW=>+1lQ77VB`Lvqn#4xWUHD z`j`pJq>i6(w8(a$*3xtI%+V}|S)+qJoXzc&4HMZs24>gO*#}yor2+RU`~+* z?3>NnEjq#2o>@6=WPDv#}x6i=}mo4bW>$6k(5n zhmU>1BGkcUywjaS4+_Uq<5R~c(HUL&@~@%LmSY(Qad|2)5uKA*LpEEY$0NYXz=;!d zm=h#^@iWp7Tr@cmW-4$o>=W5Kb$WnSW+W4S^|WvSg$a{+h~rf``+$#Nt$e*pC`@ru zM5C9tc8!YIMw8zJmq`w7?MB_^wws7iq^T+1W*5==Zrck0du1*9R6;{TgVCIweeRAp=pfvtfo>lj{|vyee%dH}}bH}A_)@+`u#yJyBc zm&=hinY+<H@^V4cs z=w%MXDG=krXgQq0OLa8t_2OmsFi{a>Hse+@TT%NiyV6=9Cf8%X@aykiNy_Bl1kr#oOeMNrT&A+~eoZwIDj4dB>jz{x^~a8L!);6OV%nHHeDvrl)mjnzS7E zYuOLG`o?qk?qG`bmY@l3vmvJk*P`Q|Xm;5a>gCko4MSAk8h9a!orisQ{4yIkJ*>F! zcwi{RU-m0hB6!{ZsG;1$WAetit|iqhqg^A&*sJTcyHAl|DORcvTQ0pjU66kMh0DSD z{31xu^Jd6MNEh76dzmGis3J3eX}it$+TMbL6Mz?CtmuZX;z203Hj~Jtw>z(RD{4KD4i>_Z|qQ>`Q=<-2h{+xKiAk}bN*pw{81zzP^dZH|ANP zv&YrlB@O#67{5fM2%f#$WUv^z9nO~W`&qY13JP#i9mW-Q(tscHM0?-(3 zB$pXx@zwq>X_dZK4f8PCv&T+QoLUut^nvQvMoq1=+S9SR< z`azCS^+;)>${OgZ>SwA^ouhC#C}S17uY% zY<@I&;GYfP0jnnL%ZY}9ZGZ3nw>eC8C%_=lk5K>QI3Qaz0NFCF9M-S*&z&9vSX3;g l`VX)E?yAH=wGU5SmSmJac*NXKxF-U9PMBFAqZ~OK{XfyuCIkQg literal 45493 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 +## Monitoring students' progress +The assignment overview page displays information about your assignment acceptances and team progress. You may have different summary information based on the configurations of your assignments. + +- **Total teams**: The number of teams that have been created. +- **Rostered students**: The number of students on the Classroom's roster. +- **Students not on a team**: The number of students on the Classroom roster who have not yet joined a team. +- **Accepted teams**: The number of teams who have accepted this assignment. +- **Assignment submissions**: The number of teams that have submitted the assignment. Submission is triggered at the assignment deadline. +- **Passing teams**: The number of teams that are currently passing the autograding tests for this assignment. + ## Next steps - After you create the assignment and your students form teams, team members can start work on the assignment using Git and {% data variables.product.product_name %}'s features. Students can clone the repository, push commits, manage branches, create and review pull requests, address merge conflicts, and discuss changes with issues. Both you and the team can review the commit history for the repository. For more information, see "[Getting started with {% data variables.product.prodname_dotcom %}](/github/getting-started-with-github)," "[Repositories](/repositories)," "[Using Git](/github/getting-started-with-github/using-git)," and "[Collaborating with issues and pull requests](/github/collaborating-with-issues-and-pull-requests)," and the free course on [managing merge conflicts](https://lab.github.com/githubtraining/managing-merge-conflicts) from {% data variables.product.prodname_learning %}. diff --git a/content/education/manage-coursework-with-github-classroom/teach-with-github-classroom/create-an-individual-assignment.md b/content/education/manage-coursework-with-github-classroom/teach-with-github-classroom/create-an-individual-assignment.md index 085d2558c4..e6526e2821 100644 --- a/content/education/manage-coursework-with-github-classroom/teach-with-github-classroom/create-an-individual-assignment.md +++ b/content/education/manage-coursework-with-github-classroom/teach-with-github-classroom/create-an-individual-assignment.md @@ -100,12 +100,21 @@ Optionally, you can automatically grade assignments and create a space for discu {% data reusables.classroom.assignments-guide-invite-students-to-assignment %} -You can see whether a student has joined the classroom and accepted or submitted an assignment in the **All students** tab for the assignment. {% data reusables.classroom.assignments-to-prevent-submission %} +You can see whether a student has joined the classroom and accepted or submitted an assignment in the **Classroom roster** tab for the assignment. You can also link students' {% data variables.product.prodname_dotcom %} aliases to their associated roster identifier and vice versa in this tab. {% data reusables.classroom.assignments-to-prevent-submission %}
Individual assignment
+## Monitoring students' progress +The assignment overview page provides an overview of your assignment acceptances and student progress. You may have different summary information based on the configurations of your assignments. + +- **Rostered students**: The number of students on the Classroom's roster. +- **Added students**: The number of {% data variables.product.prodname_dotcom %} accounts that have accepted the assignment and are not associated with a roster identifier. +- **Accepted students**: The number of accounts have accepted this assignment. +- **Assignment submissions**: The number of students that have submitted the assignment. Submission is triggered at the assignment deadline. +- **Passing students**: The number of students currently passing the autograding tests for this assignment. + ## Next steps - Once you create the assignment, students can start work on the assignment using Git and {% data variables.product.product_name %}'s features. Students can clone the repository, push commits, manage branches, create and review pull requests, address merge conflicts, and discuss changes with issues. Both you and student can review the commit history for the repository. For more information, see "[Getting started with {% data variables.product.prodname_dotcom %}](/github/getting-started-with-github)," "[Repositories](/repositories)," and "[Collaborating with issues and pull requests](/github/collaborating-with-issues-and-pull-requests)." diff --git a/content/education/manage-coursework-with-github-classroom/teach-with-github-classroom/use-autograding.md b/content/education/manage-coursework-with-github-classroom/teach-with-github-classroom/use-autograding.md index 31eee9a49a..05dd80d957 100644 --- a/content/education/manage-coursework-with-github-classroom/teach-with-github-classroom/use-autograding.md +++ b/content/education/manage-coursework-with-github-classroom/teach-with-github-classroom/use-autograding.md @@ -20,7 +20,7 @@ You can use a testing framework, run a custom command, write input/output tests, You can see an overview of which students are passing autograding tests by navigating to the assignment in {% data variables.product.prodname_classroom %}. A green checkmark means that all tests are passing for the student, and a red X means that some or all tests are failing for the student. If you award points for one or more tests, then a bubble shows the score for the tests out of the maximum possible score for the assignment. -![Overview for an assignment with autograding results](/assets/images/help/classroom/autograding-hero.png) +![Overview for an assignment with autograding results](/assets/images/help/classroom/assignment-individual-hero.png) ## Grading methods diff --git a/data/reusables/classroom/assignments-to-prevent-submission.md b/data/reusables/classroom/assignments-to-prevent-submission.md index 62bd9cc2da..ad1874adb9 100644 --- a/data/reusables/classroom/assignments-to-prevent-submission.md +++ b/data/reusables/classroom/assignments-to-prevent-submission.md @@ -1 +1 @@ -To prevent acceptance or submission of an assignment by students, deselect **Enable assignment invitation URL**. To edit the assignment, click {% octicon "pencil" aria-label="The pencil icon" %} **Edit assignment**. +To prevent acceptance or submission of an assignment by students, you can change the "Assignment Status" within the "Edit assignment" view. When an assignment is Active, students will be able to accept it using the invitation link. When it is Inactive, this link will no longer be valid. From 07f1587c803a1c9bdd3b1bcdb54fa2fa03212d81 Mon Sep 17 00:00:00 2001 From: Peter Bengtsson Date: Mon, 10 Jan 2022 14:52:41 -0500 Subject: [PATCH 24/68] unbreak CI with orphaned asset --- .../organization-user-permission-settings.png | Bin 52738 -> 0 bytes 1 file changed, 0 insertions(+), 0 deletions(-) delete mode 100644 assets/images/help/codespaces/organization-user-permission-settings.png diff --git a/assets/images/help/codespaces/organization-user-permission-settings.png b/assets/images/help/codespaces/organization-user-permission-settings.png deleted file mode 100644 index 2dd4ca47b34b137863396f64804c0474e49983ac..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 52738 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%0A2T^>LLJ33G! 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
^S7#ZIzwaL8H1 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 Q`Sibxq@qNrn9-O21Mul;m;e9( From 5adab47db77e4d4598a37d68d0f961d8772e2338 Mon Sep 17 00:00:00 2001 From: github-openapi-bot Date: Mon, 10 Jan 2022 11:57:01 -0800 Subject: [PATCH 25/68] Update OpenAPI Descriptions --- .../dereferenced/api.github.com.deref.json | 3023 +++++++++++++++++ .../static/dereferenced/github.ae.deref.json | 117 + 2 files changed, 3140 insertions(+) diff --git a/lib/rest/static/dereferenced/api.github.com.deref.json b/lib/rest/static/dereferenced/api.github.com.deref.json index dfa619fd11..0e478a3746 100644 --- a/lib/rest/static/dereferenced/api.github.com.deref.json +++ b/lib/rest/static/dereferenced/api.github.com.deref.json @@ -51777,6 +51777,123 @@ } } }, + "/organizations/{org}/team/{team_slug}/external-groups": { + "get": { + "summary": "List a connection between an external group and a team", + "description": "Lists a connection between a team and an external group.\n\nYou can manage team membership with your identity provider using Enterprise Managed Users for GitHub Enterprise Cloud. For more information, see \"[GitHub's products](https://docs.github.com/github/getting-started-with-github/githubs-products)\" in the GitHub Help documentation.", + "tags": [ + "teams" + ], + "operationId": "teams/list-linked-external-idp-groups-to-team-for-org", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/reference/teams#list-external-idp-group-team-connection" + }, + "parameters": [ + { + "name": "org", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "team_slug", + "description": "team_slug parameter", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Response", + "content": { + "application/json": { + "schema": { + "title": "ExternalGroups", + "description": "A list of external groups available to be connected to a team", + "type": "object", + "properties": { + "groups": { + "description": "An array of external groups available to be mapped to a team", + "example": [ + { + "group_id": 1, + "group_name": "group-azuread-test", + "updated_at": "2021-01-03 22:27:15:000 -700" + }, + { + "group_id": 2, + "group_name": "group-azuread-test2", + "updated_at": "2021-06-03 22:27:15:000 -700" + } + ], + "type": "array", + "items": { + "type": "object", + "required": [ + "group_id", + "group_name", + "updated_at" + ], + "properties": { + "group_id": { + "description": "The internal ID of the group", + "example": 1, + "type": "integer" + }, + "group_name": { + "description": "The display name of the group", + "example": "group-azuread-test", + "type": "string" + }, + "updated_at": { + "description": "The time of the last update for this group", + "example": "2019-06-03 22:27:15:000 -700", + "type": "string" + } + } + } + } + } + }, + "examples": { + "default": { + "value": { + "groups": [ + { + "group_id": "123", + "group_name": "Octocat admins", + "updated_at": "2021-01-24T11:31:04-06:00" + }, + { + "group_id": "456", + "group_name": "Octocat docs members", + "updated_at": "2021-03-24T11:31:04-06:00" + } + ] + } + } + } + } + } + } + }, + "x-github": { + "githubCloudOnly": true, + "enabledForGitHubApps": true, + "previews": [ + + ], + "category": "teams", + "subcategory": "external-groups" + } + } + }, "/orgs/{org}": { "get": { "summary": "Get an organization", @@ -64861,6 +64978,2476 @@ } } }, + "/orgs/{org}/dependabot/secrets": { + "get": { + "summary": "List organization secrets", + "description": "Lists all secrets available in an organization without revealing their encrypted values. You must authenticate using an access token with the `admin:org` scope to use this endpoint. GitHub Apps must have the `dependabot_secrets` organization permission to use this endpoint.", + "tags": [ + "dependabot" + ], + "operationId": "dependabot/list-org-secrets", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/reference/dependabot#list-organization-secrets" + }, + "parameters": [ + { + "name": "org", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "per_page", + "description": "Results per page (max 100)", + "in": "query", + "schema": { + "type": "integer", + "default": 30 + } + }, + { + "name": "page", + "description": "Page number of the results to fetch.", + "in": "query", + "schema": { + "type": "integer", + "default": 1 + } + } + ], + "responses": { + "200": { + "description": "Response", + "content": { + "application/json": { + "schema": { + "type": "object", + "required": [ + "total_count", + "secrets" + ], + "properties": { + "total_count": { + "type": "integer" + }, + "secrets": { + "type": "array", + "items": { + "title": "Dependabot Secret for an Organization", + "description": "Secrets for GitHub Dependabot for an organization.", + "type": "object", + "properties": { + "name": { + "description": "The name of the secret.", + "example": "SECRET_TOKEN", + "type": "string" + }, + "created_at": { + "type": "string", + "format": "date-time" + }, + "updated_at": { + "type": "string", + "format": "date-time" + }, + "visibility": { + "description": "Visibility of a secret", + "enum": [ + "all", + "private", + "selected" + ], + "type": "string" + }, + "selected_repositories_url": { + "type": "string", + "format": "uri", + "example": "https://api.github.com/organizations/org/dependabot/secrets/my_secret/repositories" + } + }, + "required": [ + "name", + "created_at", + "updated_at", + "visibility" + ] + } + } + } + }, + "examples": { + "default": { + "value": { + "total_count": 3, + "secrets": [ + { + "name": "MY_ARTIFACTORY_PASSWORD", + "created_at": "2021-08-10T14:59:22Z", + "updated_at": "2021-12-10T14:59:22Z", + "visibility": "private" + }, + { + "name": "NPM_TOKEN", + "created_at": "2021-08-10T14:59:22Z", + "updated_at": "2021-12-10T14:59:22Z", + "visibility": "all" + }, + { + "name": "GH_TOKEN", + "created_at": "2021-08-10T14:59:22Z", + "updated_at": "2021-12-10T14:59:22Z", + "visibility": "selected", + "selected_repositories_url": "https://api.github.com/orgs/octo-org/dependabot/secrets/SUPER_SECRET/repositories" + } + ] + } + } + } + } + }, + "headers": { + "Link": { + "example": "; rel=\"next\", ; rel=\"last\"", + "schema": { + "type": "string" + } + } + } + } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "category": "dependabot", + "subcategory": "secrets" + } + } + }, + "/orgs/{org}/dependabot/secrets/public-key": { + "get": { + "summary": "Get an organization public key", + "description": "Gets your public key, which you need to encrypt secrets. You need to encrypt a secret before you can create or update secrets. You must authenticate using an access token with the `admin:org` scope to use this endpoint. GitHub Apps must have the `dependabot_secrets` organization permission to use this endpoint.", + "tags": [ + "dependabot" + ], + "operationId": "dependabot/get-org-public-key", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/reference/dependabot#get-an-organization-public-key" + }, + "parameters": [ + { + "name": "org", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Response", + "content": { + "application/json": { + "schema": { + "title": "DependabotPublicKey", + "description": "The public key used for setting Dependabot Secrets.", + "type": "object", + "properties": { + "key_id": { + "description": "The identifier for the key.", + "type": "string", + "example": "1234567" + }, + "key": { + "description": "The Base64 encoded public key.", + "type": "string", + "example": "hBT5WZEj8ZoOv6TYJsfWq7MxTEQopZO5/IT3ZCVQPzs=" + } + }, + "required": [ + "key_id", + "key" + ] + }, + "examples": { + "default": { + "value": { + "key_id": "012345678912345678", + "key": "2Sg8iYjAxxmI2LvUXpJjkYrMxURPc8r+dB7TJyvv1234" + } + } + } + } + } + } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "category": "dependabot", + "subcategory": "secrets" + } + } + }, + "/orgs/{org}/dependabot/secrets/{secret_name}": { + "get": { + "summary": "Get an organization secret", + "description": "Gets a single organization secret without revealing its encrypted value. You must authenticate using an access token with the `admin:org` scope to use this endpoint. GitHub Apps must have the `dependabot_secrets` organization permission to use this endpoint.", + "tags": [ + "dependabot" + ], + "operationId": "dependabot/get-org-secret", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/reference/dependabot#get-an-organization-secret" + }, + "parameters": [ + { + "name": "org", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "secret_name", + "description": "secret_name parameter", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Response", + "content": { + "application/json": { + "schema": { + "title": "Dependabot Secret for an Organization", + "description": "Secrets for GitHub Dependabot for an organization.", + "type": "object", + "properties": { + "name": { + "description": "The name of the secret.", + "example": "SECRET_TOKEN", + "type": "string" + }, + "created_at": { + "type": "string", + "format": "date-time" + }, + "updated_at": { + "type": "string", + "format": "date-time" + }, + "visibility": { + "description": "Visibility of a secret", + "enum": [ + "all", + "private", + "selected" + ], + "type": "string" + }, + "selected_repositories_url": { + "type": "string", + "format": "uri", + "example": "https://api.github.com/organizations/org/dependabot/secrets/my_secret/repositories" + } + }, + "required": [ + "name", + "created_at", + "updated_at", + "visibility" + ] + }, + "examples": { + "default": { + "value": { + "name": "NPM_TOKEN", + "created_at": "2019-08-10T14:59:22Z", + "updated_at": "2020-01-10T14:59:22Z", + "visibility": "selected", + "selected_repositories_url": "https://api.github.com/orgs/octo-org/dependabot/secrets/NPM_TOKEN/repositories" + } + } + } + } + } + } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "category": "dependabot", + "subcategory": "secrets" + } + }, + "put": { + "summary": "Create or update an organization secret", + "description": "Creates or updates an organization secret with an encrypted value. Encrypt your secret using\n[LibSodium](https://libsodium.gitbook.io/doc/bindings_for_other_languages). You must authenticate using an access\ntoken with the `admin:org` scope to use this endpoint. GitHub Apps must have the `dependabot_secrets` organization\npermission to use this endpoint.\n\n#### Example encrypting a secret using Node.js\n\nEncrypt your secret using the [tweetsodium](https://github.com/github/tweetsodium) library.\n\n```\nconst sodium = require('tweetsodium');\n\nconst key = \"base64-encoded-public-key\";\nconst value = \"plain-text-secret\";\n\n// Convert the message and key to Uint8Array's (Buffer implements that interface)\nconst messageBytes = Buffer.from(value);\nconst keyBytes = Buffer.from(key, 'base64');\n\n// Encrypt using LibSodium.\nconst encryptedBytes = sodium.seal(messageBytes, keyBytes);\n\n// Base64 the encrypted secret\nconst encrypted = Buffer.from(encryptedBytes).toString('base64');\n\nconsole.log(encrypted);\n```\n\n\n#### Example encrypting a secret using Python\n\nEncrypt your secret using [pynacl](https://pynacl.readthedocs.io/en/stable/public/#nacl-public-sealedbox) with Python 3.\n\n```\nfrom base64 import b64encode\nfrom nacl import encoding, public\n\ndef encrypt(public_key: str, secret_value: str) -> str:\n \"\"\"Encrypt a Unicode string using the public key.\"\"\"\n public_key = public.PublicKey(public_key.encode(\"utf-8\"), encoding.Base64Encoder())\n sealed_box = public.SealedBox(public_key)\n encrypted = sealed_box.encrypt(secret_value.encode(\"utf-8\"))\n return b64encode(encrypted).decode(\"utf-8\")\n```\n\n#### Example encrypting a secret using C#\n\nEncrypt your secret using the [Sodium.Core](https://www.nuget.org/packages/Sodium.Core/) package.\n\n```\nvar secretValue = System.Text.Encoding.UTF8.GetBytes(\"mySecret\");\nvar publicKey = Convert.FromBase64String(\"2Sg8iYjAxxmI2LvUXpJjkYrMxURPc8r+dB7TJyvvcCU=\");\n\nvar sealedPublicKeyBox = Sodium.SealedPublicKeyBox.Create(secretValue, publicKey);\n\nConsole.WriteLine(Convert.ToBase64String(sealedPublicKeyBox));\n```\n\n#### Example encrypting a secret using Ruby\n\nEncrypt your secret using the [rbnacl](https://github.com/RubyCrypto/rbnacl) gem.\n\n```ruby\nrequire \"rbnacl\"\nrequire \"base64\"\n\nkey = Base64.decode64(\"+ZYvJDZMHUfBkJdyq5Zm9SKqeuBQ4sj+6sfjlH4CgG0=\")\npublic_key = RbNaCl::PublicKey.new(key)\n\nbox = RbNaCl::Boxes::Sealed.from_public_key(public_key)\nencrypted_secret = box.encrypt(\"my_secret\")\n\n# Print the base64 encoded secret\nputs Base64.strict_encode64(encrypted_secret)\n```", + "tags": [ + "dependabot" + ], + "operationId": "dependabot/create-or-update-org-secret", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/reference/dependabot#create-or-update-an-organization-secret" + }, + "parameters": [ + { + "name": "org", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "secret_name", + "description": "secret_name parameter", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "encrypted_value": { + "type": "string", + "description": "Value for your secret, encrypted with [LibSodium](https://libsodium.gitbook.io/doc/bindings_for_other_languages) using the public key retrieved from the [Get an organization public key](https://docs.github.com/rest/reference/dependabot#get-an-organization-public-key) endpoint.", + "pattern": "^(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=|[A-Za-z0-9+/]{4})$" + }, + "key_id": { + "type": "string", + "description": "ID of the key you used to encrypt the secret." + }, + "visibility": { + "type": "string", + "description": "Configures the access that repositories have to the organization secret. Can be one of: \n\\- `all` - All repositories in an organization can access the secret. \n\\- `private` - Private repositories in an organization can access the secret. \n\\- `selected` - Only specific repositories can access the secret.", + "enum": [ + "all", + "private", + "selected" + ] + }, + "selected_repository_ids": { + "type": "array", + "description": "An array of repository ids that can access the organization secret. You can only provide a list of repository ids when the `visibility` is set to `selected`. You can manage the list of selected repositories using the [List selected repositories for an organization secret](https://docs.github.com/rest/reference/dependabot#list-selected-repositories-for-an-organization-secret), [Set selected repositories for an organization secret](https://docs.github.com/rest/reference/dependabot#set-selected-repositories-for-an-organization-secret), and [Remove selected repository from an organization secret](https://docs.github.com/rest/reference/dependabot#remove-selected-repository-from-an-organization-secret) endpoints.", + "items": { + "type": "string" + } + } + }, + "required": [ + "visibility" + ] + }, + "example": { + "encrypted_value": "c2VjcmV0", + "key_id": "012345678912345678", + "visibility": "selected", + "selected_repository_ids": [ + "1296269", + "1296280" + ] + } + } + } + }, + "responses": { + "201": { + "description": "Response when creating a secret", + "content": { + "application/json": { + "schema": { + "title": "Empty Object", + "description": "An object without any properties.", + "type": "object", + "properties": { + }, + "additionalProperties": false + } + } + } + }, + "204": { + "description": "Response when updating a secret" + } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "category": "dependabot", + "subcategory": "secrets" + } + }, + "delete": { + "summary": "Delete an organization secret", + "description": "Deletes a secret in an organization using the secret name. You must authenticate using an access token with the `admin:org` scope to use this endpoint. GitHub Apps must have the `dependabot_secrets` organization permission to use this endpoint.", + "tags": [ + "dependabot" + ], + "operationId": "dependabot/delete-org-secret", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/reference/dependabot#delete-an-organization-secret" + }, + "parameters": [ + { + "name": "org", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "secret_name", + "description": "secret_name parameter", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "204": { + "description": "Response" + } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "category": "dependabot", + "subcategory": "secrets" + } + } + }, + "/orgs/{org}/dependabot/secrets/{secret_name}/repositories": { + "get": { + "summary": "List selected repositories for an organization secret", + "description": "Lists all repositories that have been selected when the `visibility` for repository access to a secret is set to `selected`. You must authenticate using an access token with the `admin:org` scope to use this endpoint. GitHub Apps must have the `dependabot_secrets` organization permission to use this endpoint.", + "tags": [ + "dependabot" + ], + "operationId": "dependabot/list-selected-repos-for-org-secret", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/reference/dependabot#list-selected-repositories-for-an-organization-secret" + }, + "parameters": [ + { + "name": "org", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "secret_name", + "description": "secret_name parameter", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "page", + "description": "Page number of the results to fetch.", + "in": "query", + "schema": { + "type": "integer", + "default": 1 + } + }, + { + "name": "per_page", + "description": "Results per page (max 100)", + "in": "query", + "schema": { + "type": "integer", + "default": 30 + } + } + ], + "responses": { + "200": { + "description": "Response", + "content": { + "application/json": { + "schema": { + "type": "object", + "required": [ + "total_count", + "repositories" + ], + "properties": { + "total_count": { + "type": "integer" + }, + "repositories": { + "type": "array", + "items": { + "title": "Minimal Repository", + "description": "Minimal Repository", + "type": "object", + "properties": { + "id": { + "type": "integer", + "example": 1296269 + }, + "node_id": { + "type": "string", + "example": "MDEwOlJlcG9zaXRvcnkxMjk2MjY5" + }, + "name": { + "type": "string", + "example": "Hello-World" + }, + "full_name": { + "type": "string", + "example": "octocat/Hello-World" + }, + "owner": { + "title": "Simple User", + "description": "Simple User", + "type": "object", + "properties": { + "name": { + "nullable": true, + "type": "string" + }, + "email": { + "nullable": true, + "type": "string" + }, + "login": { + "type": "string", + "example": "octocat" + }, + "id": { + "type": "integer", + "example": 1 + }, + "node_id": { + "type": "string", + "example": "MDQ6VXNlcjE=" + }, + "avatar_url": { + "type": "string", + "format": "uri", + "example": "https://github.com/images/error/octocat_happy.gif" + }, + "gravatar_id": { + "type": "string", + "example": "41d064eb2195891e12d0413f63227ea7", + "nullable": true + }, + "url": { + "type": "string", + "format": "uri", + "example": "https://api.github.com/users/octocat" + }, + "html_url": { + "type": "string", + "format": "uri", + "example": "https://github.com/octocat" + }, + "followers_url": { + "type": "string", + "format": "uri", + "example": "https://api.github.com/users/octocat/followers" + }, + "following_url": { + "type": "string", + "example": "https://api.github.com/users/octocat/following{/other_user}" + }, + "gists_url": { + "type": "string", + "example": "https://api.github.com/users/octocat/gists{/gist_id}" + }, + "starred_url": { + "type": "string", + "example": "https://api.github.com/users/octocat/starred{/owner}{/repo}" + }, + "subscriptions_url": { + "type": "string", + "format": "uri", + "example": "https://api.github.com/users/octocat/subscriptions" + }, + "organizations_url": { + "type": "string", + "format": "uri", + "example": "https://api.github.com/users/octocat/orgs" + }, + "repos_url": { + "type": "string", + "format": "uri", + "example": "https://api.github.com/users/octocat/repos" + }, + "events_url": { + "type": "string", + "example": "https://api.github.com/users/octocat/events{/privacy}" + }, + "received_events_url": { + "type": "string", + "format": "uri", + "example": "https://api.github.com/users/octocat/received_events" + }, + "type": { + "type": "string", + "example": "User" + }, + "site_admin": { + "type": "boolean" + }, + "starred_at": { + "type": "string", + "example": "\"2020-07-09T00:17:55Z\"" + } + }, + "required": [ + "avatar_url", + "events_url", + "followers_url", + "following_url", + "gists_url", + "gravatar_id", + "html_url", + "id", + "node_id", + "login", + "organizations_url", + "received_events_url", + "repos_url", + "site_admin", + "starred_url", + "subscriptions_url", + "type", + "url" + ] + }, + "private": { + "type": "boolean" + }, + "html_url": { + "type": "string", + "format": "uri", + "example": "https://github.com/octocat/Hello-World" + }, + "description": { + "type": "string", + "example": "This your first repo!", + "nullable": true + }, + "fork": { + "type": "boolean" + }, + "url": { + "type": "string", + "format": "uri", + "example": "https://api.github.com/repos/octocat/Hello-World" + }, + "archive_url": { + "type": "string", + "example": "http://api.github.com/repos/octocat/Hello-World/{archive_format}{/ref}" + }, + "assignees_url": { + "type": "string", + "example": "http://api.github.com/repos/octocat/Hello-World/assignees{/user}" + }, + "blobs_url": { + "type": "string", + "example": "http://api.github.com/repos/octocat/Hello-World/git/blobs{/sha}" + }, + "branches_url": { + "type": "string", + "example": "http://api.github.com/repos/octocat/Hello-World/branches{/branch}" + }, + "collaborators_url": { + "type": "string", + "example": "http://api.github.com/repos/octocat/Hello-World/collaborators{/collaborator}" + }, + "comments_url": { + "type": "string", + "example": "http://api.github.com/repos/octocat/Hello-World/comments{/number}" + }, + "commits_url": { + "type": "string", + "example": "http://api.github.com/repos/octocat/Hello-World/commits{/sha}" + }, + "compare_url": { + "type": "string", + "example": "http://api.github.com/repos/octocat/Hello-World/compare/{base}...{head}" + }, + "contents_url": { + "type": "string", + "example": "http://api.github.com/repos/octocat/Hello-World/contents/{+path}" + }, + "contributors_url": { + "type": "string", + "format": "uri", + "example": "http://api.github.com/repos/octocat/Hello-World/contributors" + }, + "deployments_url": { + "type": "string", + "format": "uri", + "example": "http://api.github.com/repos/octocat/Hello-World/deployments" + }, + "downloads_url": { + "type": "string", + "format": "uri", + "example": "http://api.github.com/repos/octocat/Hello-World/downloads" + }, + "events_url": { + "type": "string", + "format": "uri", + "example": "http://api.github.com/repos/octocat/Hello-World/events" + }, + "forks_url": { + "type": "string", + "format": "uri", + "example": "http://api.github.com/repos/octocat/Hello-World/forks" + }, + "git_commits_url": { + "type": "string", + "example": "http://api.github.com/repos/octocat/Hello-World/git/commits{/sha}" + }, + "git_refs_url": { + "type": "string", + "example": "http://api.github.com/repos/octocat/Hello-World/git/refs{/sha}" + }, + "git_tags_url": { + "type": "string", + "example": "http://api.github.com/repos/octocat/Hello-World/git/tags{/sha}" + }, + "git_url": { + "type": "string" + }, + "issue_comment_url": { + "type": "string", + "example": "http://api.github.com/repos/octocat/Hello-World/issues/comments{/number}" + }, + "issue_events_url": { + "type": "string", + "example": "http://api.github.com/repos/octocat/Hello-World/issues/events{/number}" + }, + "issues_url": { + "type": "string", + "example": "http://api.github.com/repos/octocat/Hello-World/issues{/number}" + }, + "keys_url": { + "type": "string", + "example": "http://api.github.com/repos/octocat/Hello-World/keys{/key_id}" + }, + "labels_url": { + "type": "string", + "example": "http://api.github.com/repos/octocat/Hello-World/labels{/name}" + }, + "languages_url": { + "type": "string", + "format": "uri", + "example": "http://api.github.com/repos/octocat/Hello-World/languages" + }, + "merges_url": { + "type": "string", + "format": "uri", + "example": "http://api.github.com/repos/octocat/Hello-World/merges" + }, + "milestones_url": { + "type": "string", + "example": "http://api.github.com/repos/octocat/Hello-World/milestones{/number}" + }, + "notifications_url": { + "type": "string", + "example": "http://api.github.com/repos/octocat/Hello-World/notifications{?since,all,participating}" + }, + "pulls_url": { + "type": "string", + "example": "http://api.github.com/repos/octocat/Hello-World/pulls{/number}" + }, + "releases_url": { + "type": "string", + "example": "http://api.github.com/repos/octocat/Hello-World/releases{/id}" + }, + "ssh_url": { + "type": "string" + }, + "stargazers_url": { + "type": "string", + "format": "uri", + "example": "http://api.github.com/repos/octocat/Hello-World/stargazers" + }, + "statuses_url": { + "type": "string", + "example": "http://api.github.com/repos/octocat/Hello-World/statuses/{sha}" + }, + "subscribers_url": { + "type": "string", + "format": "uri", + "example": "http://api.github.com/repos/octocat/Hello-World/subscribers" + }, + "subscription_url": { + "type": "string", + "format": "uri", + "example": "http://api.github.com/repos/octocat/Hello-World/subscription" + }, + "tags_url": { + "type": "string", + "format": "uri", + "example": "http://api.github.com/repos/octocat/Hello-World/tags" + }, + "teams_url": { + "type": "string", + "format": "uri", + "example": "http://api.github.com/repos/octocat/Hello-World/teams" + }, + "trees_url": { + "type": "string", + "example": "http://api.github.com/repos/octocat/Hello-World/git/trees{/sha}" + }, + "clone_url": { + "type": "string" + }, + "mirror_url": { + "type": "string", + "nullable": true + }, + "hooks_url": { + "type": "string", + "format": "uri", + "example": "http://api.github.com/repos/octocat/Hello-World/hooks" + }, + "svn_url": { + "type": "string" + }, + "homepage": { + "type": "string", + "nullable": true + }, + "language": { + "type": "string", + "nullable": true + }, + "forks_count": { + "type": "integer" + }, + "stargazers_count": { + "type": "integer" + }, + "watchers_count": { + "type": "integer" + }, + "size": { + "type": "integer" + }, + "default_branch": { + "type": "string" + }, + "open_issues_count": { + "type": "integer" + }, + "is_template": { + "type": "boolean" + }, + "topics": { + "type": "array", + "items": { + "type": "string" + } + }, + "has_issues": { + "type": "boolean" + }, + "has_projects": { + "type": "boolean" + }, + "has_wiki": { + "type": "boolean" + }, + "has_pages": { + "type": "boolean" + }, + "has_downloads": { + "type": "boolean" + }, + "archived": { + "type": "boolean" + }, + "disabled": { + "type": "boolean" + }, + "visibility": { + "type": "string" + }, + "pushed_at": { + "type": "string", + "format": "date-time", + "example": "2011-01-26T19:06:43Z", + "nullable": true + }, + "created_at": { + "type": "string", + "format": "date-time", + "example": "2011-01-26T19:01:12Z", + "nullable": true + }, + "updated_at": { + "type": "string", + "format": "date-time", + "example": "2011-01-26T19:14:43Z", + "nullable": true + }, + "permissions": { + "type": "object", + "properties": { + "admin": { + "type": "boolean" + }, + "maintain": { + "type": "boolean" + }, + "push": { + "type": "boolean" + }, + "triage": { + "type": "boolean" + }, + "pull": { + "type": "boolean" + } + } + }, + "role_name": { + "type": "string", + "example": "admin" + }, + "template_repository": { + "title": "Repository", + "description": "A git repository", + "type": "object", + "properties": { + "id": { + "description": "Unique identifier of the repository", + "example": 42, + "type": "integer" + }, + "node_id": { + "type": "string", + "example": "MDEwOlJlcG9zaXRvcnkxMjk2MjY5" + }, + "name": { + "description": "The name of the repository.", + "type": "string", + "example": "Team Environment" + }, + "full_name": { + "type": "string", + "example": "octocat/Hello-World" + }, + "license": { + "title": "License Simple", + "description": "License Simple", + "type": "object", + "properties": { + "key": { + "type": "string", + "example": "mit" + }, + "name": { + "type": "string", + "example": "MIT License" + }, + "url": { + "type": "string", + "nullable": true, + "format": "uri", + "example": "https://api.github.com/licenses/mit" + }, + "spdx_id": { + "type": "string", + "nullable": true, + "example": "MIT" + }, + "node_id": { + "type": "string", + "example": "MDc6TGljZW5zZW1pdA==" + }, + "html_url": { + "type": "string", + "format": "uri" + } + }, + "required": [ + "key", + "name", + "url", + "spdx_id", + "node_id" + ], + "nullable": true + }, + "organization": { + "title": "Simple User", + "description": "Simple User", + "type": "object", + "properties": { + "name": { + "nullable": true, + "type": "string" + }, + "email": { + "nullable": true, + "type": "string" + }, + "login": { + "type": "string", + "example": "octocat" + }, + "id": { + "type": "integer", + "example": 1 + }, + "node_id": { + "type": "string", + "example": "MDQ6VXNlcjE=" + }, + "avatar_url": { + "type": "string", + "format": "uri", + "example": "https://github.com/images/error/octocat_happy.gif" + }, + "gravatar_id": { + "type": "string", + "example": "41d064eb2195891e12d0413f63227ea7", + "nullable": true + }, + "url": { + "type": "string", + "format": "uri", + "example": "https://api.github.com/users/octocat" + }, + "html_url": { + "type": "string", + "format": "uri", + "example": "https://github.com/octocat" + }, + "followers_url": { + "type": "string", + "format": "uri", + "example": "https://api.github.com/users/octocat/followers" + }, + "following_url": { + "type": "string", + "example": "https://api.github.com/users/octocat/following{/other_user}" + }, + "gists_url": { + "type": "string", + "example": "https://api.github.com/users/octocat/gists{/gist_id}" + }, + "starred_url": { + "type": "string", + "example": "https://api.github.com/users/octocat/starred{/owner}{/repo}" + }, + "subscriptions_url": { + "type": "string", + "format": "uri", + "example": "https://api.github.com/users/octocat/subscriptions" + }, + "organizations_url": { + "type": "string", + "format": "uri", + "example": "https://api.github.com/users/octocat/orgs" + }, + "repos_url": { + "type": "string", + "format": "uri", + "example": "https://api.github.com/users/octocat/repos" + }, + "events_url": { + "type": "string", + "example": "https://api.github.com/users/octocat/events{/privacy}" + }, + "received_events_url": { + "type": "string", + "format": "uri", + "example": "https://api.github.com/users/octocat/received_events" + }, + "type": { + "type": "string", + "example": "User" + }, + "site_admin": { + "type": "boolean" + }, + "starred_at": { + "type": "string", + "example": "\"2020-07-09T00:17:55Z\"" + } + }, + "required": [ + "avatar_url", + "events_url", + "followers_url", + "following_url", + "gists_url", + "gravatar_id", + "html_url", + "id", + "node_id", + "login", + "organizations_url", + "received_events_url", + "repos_url", + "site_admin", + "starred_url", + "subscriptions_url", + "type", + "url" + ], + "nullable": true + }, + "forks": { + "type": "integer" + }, + "permissions": { + "type": "object", + "properties": { + "admin": { + "type": "boolean" + }, + "pull": { + "type": "boolean" + }, + "triage": { + "type": "boolean" + }, + "push": { + "type": "boolean" + }, + "maintain": { + "type": "boolean" + } + }, + "required": [ + "admin", + "pull", + "push" + ] + }, + "owner": { + "title": "Simple User", + "description": "Simple User", + "type": "object", + "properties": { + "name": { + "nullable": true, + "type": "string" + }, + "email": { + "nullable": true, + "type": "string" + }, + "login": { + "type": "string", + "example": "octocat" + }, + "id": { + "type": "integer", + "example": 1 + }, + "node_id": { + "type": "string", + "example": "MDQ6VXNlcjE=" + }, + "avatar_url": { + "type": "string", + "format": "uri", + "example": "https://github.com/images/error/octocat_happy.gif" + }, + "gravatar_id": { + "type": "string", + "example": "41d064eb2195891e12d0413f63227ea7", + "nullable": true + }, + "url": { + "type": "string", + "format": "uri", + "example": "https://api.github.com/users/octocat" + }, + "html_url": { + "type": "string", + "format": "uri", + "example": "https://github.com/octocat" + }, + "followers_url": { + "type": "string", + "format": "uri", + "example": "https://api.github.com/users/octocat/followers" + }, + "following_url": { + "type": "string", + "example": "https://api.github.com/users/octocat/following{/other_user}" + }, + "gists_url": { + "type": "string", + "example": "https://api.github.com/users/octocat/gists{/gist_id}" + }, + "starred_url": { + "type": "string", + "example": "https://api.github.com/users/octocat/starred{/owner}{/repo}" + }, + "subscriptions_url": { + "type": "string", + "format": "uri", + "example": "https://api.github.com/users/octocat/subscriptions" + }, + "organizations_url": { + "type": "string", + "format": "uri", + "example": "https://api.github.com/users/octocat/orgs" + }, + "repos_url": { + "type": "string", + "format": "uri", + "example": "https://api.github.com/users/octocat/repos" + }, + "events_url": { + "type": "string", + "example": "https://api.github.com/users/octocat/events{/privacy}" + }, + "received_events_url": { + "type": "string", + "format": "uri", + "example": "https://api.github.com/users/octocat/received_events" + }, + "type": { + "type": "string", + "example": "User" + }, + "site_admin": { + "type": "boolean" + }, + "starred_at": { + "type": "string", + "example": "\"2020-07-09T00:17:55Z\"" + } + }, + "required": [ + "avatar_url", + "events_url", + "followers_url", + "following_url", + "gists_url", + "gravatar_id", + "html_url", + "id", + "node_id", + "login", + "organizations_url", + "received_events_url", + "repos_url", + "site_admin", + "starred_url", + "subscriptions_url", + "type", + "url" + ] + }, + "private": { + "description": "Whether the repository is private or public.", + "default": false, + "type": "boolean" + }, + "html_url": { + "type": "string", + "format": "uri", + "example": "https://github.com/octocat/Hello-World" + }, + "description": { + "type": "string", + "example": "This your first repo!", + "nullable": true + }, + "fork": { + "type": "boolean" + }, + "url": { + "type": "string", + "format": "uri", + "example": "https://api.github.com/repos/octocat/Hello-World" + }, + "archive_url": { + "type": "string", + "example": "http://api.github.com/repos/octocat/Hello-World/{archive_format}{/ref}" + }, + "assignees_url": { + "type": "string", + "example": "http://api.github.com/repos/octocat/Hello-World/assignees{/user}" + }, + "blobs_url": { + "type": "string", + "example": "http://api.github.com/repos/octocat/Hello-World/git/blobs{/sha}" + }, + "branches_url": { + "type": "string", + "example": "http://api.github.com/repos/octocat/Hello-World/branches{/branch}" + }, + "collaborators_url": { + "type": "string", + "example": "http://api.github.com/repos/octocat/Hello-World/collaborators{/collaborator}" + }, + "comments_url": { + "type": "string", + "example": "http://api.github.com/repos/octocat/Hello-World/comments{/number}" + }, + "commits_url": { + "type": "string", + "example": "http://api.github.com/repos/octocat/Hello-World/commits{/sha}" + }, + "compare_url": { + "type": "string", + "example": "http://api.github.com/repos/octocat/Hello-World/compare/{base}...{head}" + }, + "contents_url": { + "type": "string", + "example": "http://api.github.com/repos/octocat/Hello-World/contents/{+path}" + }, + "contributors_url": { + "type": "string", + "format": "uri", + "example": "http://api.github.com/repos/octocat/Hello-World/contributors" + }, + "deployments_url": { + "type": "string", + "format": "uri", + "example": "http://api.github.com/repos/octocat/Hello-World/deployments" + }, + "downloads_url": { + "type": "string", + "format": "uri", + "example": "http://api.github.com/repos/octocat/Hello-World/downloads" + }, + "events_url": { + "type": "string", + "format": "uri", + "example": "http://api.github.com/repos/octocat/Hello-World/events" + }, + "forks_url": { + "type": "string", + "format": "uri", + "example": "http://api.github.com/repos/octocat/Hello-World/forks" + }, + "git_commits_url": { + "type": "string", + "example": "http://api.github.com/repos/octocat/Hello-World/git/commits{/sha}" + }, + "git_refs_url": { + "type": "string", + "example": "http://api.github.com/repos/octocat/Hello-World/git/refs{/sha}" + }, + "git_tags_url": { + "type": "string", + "example": "http://api.github.com/repos/octocat/Hello-World/git/tags{/sha}" + }, + "git_url": { + "type": "string", + "example": "git:github.com/octocat/Hello-World.git" + }, + "issue_comment_url": { + "type": "string", + "example": "http://api.github.com/repos/octocat/Hello-World/issues/comments{/number}" + }, + "issue_events_url": { + "type": "string", + "example": "http://api.github.com/repos/octocat/Hello-World/issues/events{/number}" + }, + "issues_url": { + "type": "string", + "example": "http://api.github.com/repos/octocat/Hello-World/issues{/number}" + }, + "keys_url": { + "type": "string", + "example": "http://api.github.com/repos/octocat/Hello-World/keys{/key_id}" + }, + "labels_url": { + "type": "string", + "example": "http://api.github.com/repos/octocat/Hello-World/labels{/name}" + }, + "languages_url": { + "type": "string", + "format": "uri", + "example": "http://api.github.com/repos/octocat/Hello-World/languages" + }, + "merges_url": { + "type": "string", + "format": "uri", + "example": "http://api.github.com/repos/octocat/Hello-World/merges" + }, + "milestones_url": { + "type": "string", + "example": "http://api.github.com/repos/octocat/Hello-World/milestones{/number}" + }, + "notifications_url": { + "type": "string", + "example": "http://api.github.com/repos/octocat/Hello-World/notifications{?since,all,participating}" + }, + "pulls_url": { + "type": "string", + "example": "http://api.github.com/repos/octocat/Hello-World/pulls{/number}" + }, + "releases_url": { + "type": "string", + "example": "http://api.github.com/repos/octocat/Hello-World/releases{/id}" + }, + "ssh_url": { + "type": "string", + "example": "git@github.com:octocat/Hello-World.git" + }, + "stargazers_url": { + "type": "string", + "format": "uri", + "example": "http://api.github.com/repos/octocat/Hello-World/stargazers" + }, + "statuses_url": { + "type": "string", + "example": "http://api.github.com/repos/octocat/Hello-World/statuses/{sha}" + }, + "subscribers_url": { + "type": "string", + "format": "uri", + "example": "http://api.github.com/repos/octocat/Hello-World/subscribers" + }, + "subscription_url": { + "type": "string", + "format": "uri", + "example": "http://api.github.com/repos/octocat/Hello-World/subscription" + }, + "tags_url": { + "type": "string", + "format": "uri", + "example": "http://api.github.com/repos/octocat/Hello-World/tags" + }, + "teams_url": { + "type": "string", + "format": "uri", + "example": "http://api.github.com/repos/octocat/Hello-World/teams" + }, + "trees_url": { + "type": "string", + "example": "http://api.github.com/repos/octocat/Hello-World/git/trees{/sha}" + }, + "clone_url": { + "type": "string", + "example": "https://github.com/octocat/Hello-World.git" + }, + "mirror_url": { + "type": "string", + "format": "uri", + "example": "git:git.example.com/octocat/Hello-World", + "nullable": true + }, + "hooks_url": { + "type": "string", + "format": "uri", + "example": "http://api.github.com/repos/octocat/Hello-World/hooks" + }, + "svn_url": { + "type": "string", + "format": "uri", + "example": "https://svn.github.com/octocat/Hello-World" + }, + "homepage": { + "type": "string", + "format": "uri", + "example": "https://github.com", + "nullable": true + }, + "language": { + "type": "string", + "nullable": true + }, + "forks_count": { + "type": "integer", + "example": 9 + }, + "stargazers_count": { + "type": "integer", + "example": 80 + }, + "watchers_count": { + "type": "integer", + "example": 80 + }, + "size": { + "type": "integer", + "example": 108 + }, + "default_branch": { + "description": "The default branch of the repository.", + "type": "string", + "example": "master" + }, + "open_issues_count": { + "type": "integer", + "example": 0 + }, + "is_template": { + "description": "Whether this repository acts as a template that can be used to generate new repositories.", + "default": false, + "type": "boolean", + "example": true + }, + "topics": { + "type": "array", + "items": { + "type": "string" + } + }, + "has_issues": { + "description": "Whether issues are enabled.", + "default": true, + "type": "boolean", + "example": true + }, + "has_projects": { + "description": "Whether projects are enabled.", + "default": true, + "type": "boolean", + "example": true + }, + "has_wiki": { + "description": "Whether the wiki is enabled.", + "default": true, + "type": "boolean", + "example": true + }, + "has_pages": { + "type": "boolean" + }, + "has_downloads": { + "description": "Whether downloads are enabled.", + "default": true, + "type": "boolean", + "example": true + }, + "archived": { + "description": "Whether the repository is archived.", + "default": false, + "type": "boolean" + }, + "disabled": { + "type": "boolean", + "description": "Returns whether or not this repository disabled." + }, + "visibility": { + "description": "The repository visibility: public, private, or internal.", + "default": "public", + "type": "string" + }, + "pushed_at": { + "type": "string", + "format": "date-time", + "example": "2011-01-26T19:06:43Z", + "nullable": true + }, + "created_at": { + "type": "string", + "format": "date-time", + "example": "2011-01-26T19:01:12Z", + "nullable": true + }, + "updated_at": { + "type": "string", + "format": "date-time", + "example": "2011-01-26T19:14:43Z", + "nullable": true + }, + "allow_rebase_merge": { + "description": "Whether to allow rebase merges for pull requests.", + "default": true, + "type": "boolean", + "example": true + }, + "template_repository": { + "nullable": true, + "type": "object", + "properties": { + "id": { + "type": "integer" + }, + "node_id": { + "type": "string" + }, + "name": { + "type": "string" + }, + "full_name": { + "type": "string" + }, + "owner": { + "type": "object", + "properties": { + "login": { + "type": "string" + }, + "id": { + "type": "integer" + }, + "node_id": { + "type": "string" + }, + "avatar_url": { + "type": "string" + }, + "gravatar_id": { + "type": "string" + }, + "url": { + "type": "string" + }, + "html_url": { + "type": "string" + }, + "followers_url": { + "type": "string" + }, + "following_url": { + "type": "string" + }, + "gists_url": { + "type": "string" + }, + "starred_url": { + "type": "string" + }, + "subscriptions_url": { + "type": "string" + }, + "organizations_url": { + "type": "string" + }, + "repos_url": { + "type": "string" + }, + "events_url": { + "type": "string" + }, + "received_events_url": { + "type": "string" + }, + "type": { + "type": "string" + }, + "site_admin": { + "type": "boolean" + } + } + }, + "private": { + "type": "boolean" + }, + "html_url": { + "type": "string" + }, + "description": { + "type": "string" + }, + "fork": { + "type": "boolean" + }, + "url": { + "type": "string" + }, + "archive_url": { + "type": "string" + }, + "assignees_url": { + "type": "string" + }, + "blobs_url": { + "type": "string" + }, + "branches_url": { + "type": "string" + }, + "collaborators_url": { + "type": "string" + }, + "comments_url": { + "type": "string" + }, + "commits_url": { + "type": "string" + }, + "compare_url": { + "type": "string" + }, + "contents_url": { + "type": "string" + }, + "contributors_url": { + "type": "string" + }, + "deployments_url": { + "type": "string" + }, + "downloads_url": { + "type": "string" + }, + "events_url": { + "type": "string" + }, + "forks_url": { + "type": "string" + }, + "git_commits_url": { + "type": "string" + }, + "git_refs_url": { + "type": "string" + }, + "git_tags_url": { + "type": "string" + }, + "git_url": { + "type": "string" + }, + "issue_comment_url": { + "type": "string" + }, + "issue_events_url": { + "type": "string" + }, + "issues_url": { + "type": "string" + }, + "keys_url": { + "type": "string" + }, + "labels_url": { + "type": "string" + }, + "languages_url": { + "type": "string" + }, + "merges_url": { + "type": "string" + }, + "milestones_url": { + "type": "string" + }, + "notifications_url": { + "type": "string" + }, + "pulls_url": { + "type": "string" + }, + "releases_url": { + "type": "string" + }, + "ssh_url": { + "type": "string" + }, + "stargazers_url": { + "type": "string" + }, + "statuses_url": { + "type": "string" + }, + "subscribers_url": { + "type": "string" + }, + "subscription_url": { + "type": "string" + }, + "tags_url": { + "type": "string" + }, + "teams_url": { + "type": "string" + }, + "trees_url": { + "type": "string" + }, + "clone_url": { + "type": "string" + }, + "mirror_url": { + "type": "string" + }, + "hooks_url": { + "type": "string" + }, + "svn_url": { + "type": "string" + }, + "homepage": { + "type": "string" + }, + "language": { + "type": "string" + }, + "forks_count": { + "type": "integer" + }, + "stargazers_count": { + "type": "integer" + }, + "watchers_count": { + "type": "integer" + }, + "size": { + "type": "integer" + }, + "default_branch": { + "type": "string" + }, + "open_issues_count": { + "type": "integer" + }, + "is_template": { + "type": "boolean" + }, + "topics": { + "type": "array", + "items": { + "type": "string" + } + }, + "has_issues": { + "type": "boolean" + }, + "has_projects": { + "type": "boolean" + }, + "has_wiki": { + "type": "boolean" + }, + "has_pages": { + "type": "boolean" + }, + "has_downloads": { + "type": "boolean" + }, + "archived": { + "type": "boolean" + }, + "disabled": { + "type": "boolean" + }, + "visibility": { + "type": "string" + }, + "pushed_at": { + "type": "string" + }, + "created_at": { + "type": "string" + }, + "updated_at": { + "type": "string" + }, + "permissions": { + "type": "object", + "properties": { + "admin": { + "type": "boolean" + }, + "maintain": { + "type": "boolean" + }, + "push": { + "type": "boolean" + }, + "triage": { + "type": "boolean" + }, + "pull": { + "type": "boolean" + } + } + }, + "allow_rebase_merge": { + "type": "boolean" + }, + "temp_clone_token": { + "type": "string" + }, + "allow_squash_merge": { + "type": "boolean" + }, + "allow_auto_merge": { + "type": "boolean" + }, + "delete_branch_on_merge": { + "type": "boolean" + }, + "allow_update_branch": { + "type": "boolean" + }, + "allow_merge_commit": { + "type": "boolean" + }, + "subscribers_count": { + "type": "integer" + }, + "network_count": { + "type": "integer" + } + } + }, + "temp_clone_token": { + "type": "string" + }, + "allow_squash_merge": { + "description": "Whether to allow squash merges for pull requests.", + "default": true, + "type": "boolean", + "example": true + }, + "allow_auto_merge": { + "description": "Whether to allow Auto-merge to be used on pull requests.", + "default": false, + "type": "boolean", + "example": false + }, + "delete_branch_on_merge": { + "description": "Whether to delete head branches when pull requests are merged", + "default": false, + "type": "boolean", + "example": false + }, + "allow_merge_commit": { + "description": "Whether to allow merge commits for pull requests.", + "default": true, + "type": "boolean", + "example": true + }, + "allow_forking": { + "description": "Whether to allow forking this repo", + "type": "boolean" + }, + "subscribers_count": { + "type": "integer" + }, + "network_count": { + "type": "integer" + }, + "open_issues": { + "type": "integer" + }, + "watchers": { + "type": "integer" + }, + "master_branch": { + "type": "string" + }, + "starred_at": { + "type": "string", + "example": "\"2020-07-09T00:17:42Z\"" + } + }, + "required": [ + "archive_url", + "assignees_url", + "blobs_url", + "branches_url", + "collaborators_url", + "comments_url", + "commits_url", + "compare_url", + "contents_url", + "contributors_url", + "deployments_url", + "description", + "downloads_url", + "events_url", + "fork", + "forks_url", + "full_name", + "git_commits_url", + "git_refs_url", + "git_tags_url", + "hooks_url", + "html_url", + "id", + "node_id", + "issue_comment_url", + "issue_events_url", + "issues_url", + "keys_url", + "labels_url", + "languages_url", + "merges_url", + "milestones_url", + "name", + "notifications_url", + "owner", + "private", + "pulls_url", + "releases_url", + "stargazers_url", + "statuses_url", + "subscribers_url", + "subscription_url", + "tags_url", + "teams_url", + "trees_url", + "url", + "clone_url", + "default_branch", + "forks", + "forks_count", + "git_url", + "has_downloads", + "has_issues", + "has_projects", + "has_wiki", + "has_pages", + "homepage", + "language", + "archived", + "disabled", + "mirror_url", + "open_issues", + "open_issues_count", + "license", + "pushed_at", + "size", + "ssh_url", + "stargazers_count", + "svn_url", + "watchers", + "watchers_count", + "created_at", + "updated_at" + ], + "nullable": true + }, + "temp_clone_token": { + "type": "string" + }, + "delete_branch_on_merge": { + "type": "boolean" + }, + "subscribers_count": { + "type": "integer" + }, + "network_count": { + "type": "integer" + }, + "code_of_conduct": { + "title": "Code Of Conduct", + "description": "Code Of Conduct", + "type": "object", + "properties": { + "key": { + "type": "string", + "example": "contributor_covenant" + }, + "name": { + "type": "string", + "example": "Contributor Covenant" + }, + "url": { + "type": "string", + "format": "uri", + "example": "https://api.github.com/codes_of_conduct/contributor_covenant" + }, + "body": { + "type": "string", + "example": "# Contributor Covenant Code of Conduct\n\n## Our Pledge\n\nIn the interest of fostering an open and welcoming environment, we as contributors and maintainers pledge to making participation in our project and our community a harassment-free experience for everyone, regardless of age, body size, disability, ethnicity, gender identity and expression, level of experience, nationality, personal appearance, race, religion, or sexual identity and orientation.\n\n## Our Standards\n\nExamples of behavior that contributes to creating a positive environment include:\n\n* Using welcoming and inclusive language\n* Being respectful of differing viewpoints and experiences\n* Gracefully accepting constructive criticism\n* Focusing on what is best for the community\n* Showing empathy towards other community members\n\nExamples of unacceptable behavior by participants include:\n\n* The use of sexualized language or imagery and unwelcome sexual attention or advances\n* Trolling, insulting/derogatory comments, and personal or political attacks\n* Public or private harassment\n* Publishing others' private information, such as a physical or electronic address, without explicit permission\n* Other conduct which could reasonably be considered inappropriate in a professional setting\n\n## Our Responsibilities\n\nProject maintainers are responsible for clarifying the standards of acceptable behavior and are expected to take appropriate and fair corrective action in response\n to any instances of unacceptable behavior.\n\nProject maintainers have the right and responsibility to remove, edit, or reject comments, commits, code, wiki edits, issues, and other contributions that are not aligned to this Code of Conduct, or to ban temporarily or permanently any contributor for other behaviors that they deem inappropriate, threatening, offensive, or harmful.\n\n## Scope\n\nThis Code of Conduct applies both within project spaces and in public spaces when an individual is representing the project or its community. Examples of representing a project or community include using an official project e-mail address,\n posting via an official social media account, or acting as an appointed representative at an online or offline event. Representation of a project may be further defined and clarified by project maintainers.\n\n## Enforcement\n\nInstances of abusive, harassing, or otherwise unacceptable behavior may be reported by contacting the project team at [EMAIL]. The project team will review and investigate all complaints, and will respond in a way that it deems appropriate to the circumstances. The project team is obligated to maintain confidentiality with regard to the reporter of an incident. Further details of specific enforcement policies may be posted separately.\n\nProject maintainers who do not follow or enforce the Code of Conduct in good faith may face temporary or permanent repercussions as determined by other members of the project's leadership.\n\n## Attribution\n\nThis Code of Conduct is adapted from the [Contributor Covenant][homepage], version 1.4, available at [http://contributor-covenant.org/version/1/4][version]\n\n[homepage]: http://contributor-covenant.org\n[version]: http://contributor-covenant.org/version/1/4/\n" + }, + "html_url": { + "type": "string", + "format": "uri", + "nullable": true + } + }, + "required": [ + "url", + "html_url", + "key", + "name" + ] + }, + "license": { + "type": "object", + "properties": { + "key": { + "type": "string" + }, + "name": { + "type": "string" + }, + "spdx_id": { + "type": "string" + }, + "url": { + "type": "string" + }, + "node_id": { + "type": "string" + } + }, + "nullable": true + }, + "forks": { + "type": "integer", + "example": 0 + }, + "open_issues": { + "type": "integer", + "example": 0 + }, + "watchers": { + "type": "integer", + "example": 0 + }, + "allow_forking": { + "type": "boolean" + } + }, + "required": [ + "archive_url", + "assignees_url", + "blobs_url", + "branches_url", + "collaborators_url", + "comments_url", + "commits_url", + "compare_url", + "contents_url", + "contributors_url", + "deployments_url", + "description", + "downloads_url", + "events_url", + "fork", + "forks_url", + "full_name", + "git_commits_url", + "git_refs_url", + "git_tags_url", + "hooks_url", + "html_url", + "id", + "node_id", + "issue_comment_url", + "issue_events_url", + "issues_url", + "keys_url", + "labels_url", + "languages_url", + "merges_url", + "milestones_url", + "name", + "notifications_url", + "owner", + "private", + "pulls_url", + "releases_url", + "stargazers_url", + "statuses_url", + "subscribers_url", + "subscription_url", + "tags_url", + "teams_url", + "trees_url", + "url" + ] + } + } + } + }, + "examples": { + "default": { + "value": { + "total_count": 1, + "repositories": [ + { + "id": 1296269, + "node_id": "MDEwOlJlcG9zaXRvcnkxMjk2MjY5", + "name": "Hello-World", + "full_name": "octocat/Hello-World", + "owner": { + "login": "octocat", + "id": 1, + "node_id": "MDQ6VXNlcjE=", + "avatar_url": "https://github.com/images/error/octocat_happy.gif", + "gravatar_id": "", + "url": "https://api.github.com/users/octocat", + "html_url": "https://github.com/octocat", + "followers_url": "https://api.github.com/users/octocat/followers", + "following_url": "https://api.github.com/users/octocat/following{/other_user}", + "gists_url": "https://api.github.com/users/octocat/gists{/gist_id}", + "starred_url": "https://api.github.com/users/octocat/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/octocat/subscriptions", + "organizations_url": "https://api.github.com/users/octocat/orgs", + "repos_url": "https://api.github.com/users/octocat/repos", + "events_url": "https://api.github.com/users/octocat/events{/privacy}", + "received_events_url": "https://api.github.com/users/octocat/received_events", + "type": "User", + "site_admin": false + }, + "private": false, + "html_url": "https://github.com/octocat/Hello-World", + "description": "This your first repo!", + "fork": false, + "url": "https://api.github.com/repos/octocat/Hello-World", + "archive_url": "https://api.github.com/repos/octocat/Hello-World/{archive_format}{/ref}", + "assignees_url": "https://api.github.com/repos/octocat/Hello-World/assignees{/user}", + "blobs_url": "https://api.github.com/repos/octocat/Hello-World/git/blobs{/sha}", + "branches_url": "https://api.github.com/repos/octocat/Hello-World/branches{/branch}", + "collaborators_url": "https://api.github.com/repos/octocat/Hello-World/collaborators{/collaborator}", + "comments_url": "https://api.github.com/repos/octocat/Hello-World/comments{/number}", + "commits_url": "https://api.github.com/repos/octocat/Hello-World/commits{/sha}", + "compare_url": "https://api.github.com/repos/octocat/Hello-World/compare/{base}...{head}", + "contents_url": "https://api.github.com/repos/octocat/Hello-World/contents/{+path}", + "contributors_url": "https://api.github.com/repos/octocat/Hello-World/contributors", + "deployments_url": "https://api.github.com/repos/octocat/Hello-World/deployments", + "downloads_url": "https://api.github.com/repos/octocat/Hello-World/downloads", + "events_url": "https://api.github.com/repos/octocat/Hello-World/events", + "forks_url": "https://api.github.com/repos/octocat/Hello-World/forks", + "git_commits_url": "https://api.github.com/repos/octocat/Hello-World/git/commits{/sha}", + "git_refs_url": "https://api.github.com/repos/octocat/Hello-World/git/refs{/sha}", + "git_tags_url": "https://api.github.com/repos/octocat/Hello-World/git/tags{/sha}", + "git_url": "git:github.com/octocat/Hello-World.git", + "issue_comment_url": "https://api.github.com/repos/octocat/Hello-World/issues/comments{/number}", + "issue_events_url": "https://api.github.com/repos/octocat/Hello-World/issues/events{/number}", + "issues_url": "https://api.github.com/repos/octocat/Hello-World/issues{/number}", + "keys_url": "https://api.github.com/repos/octocat/Hello-World/keys{/key_id}", + "labels_url": "https://api.github.com/repos/octocat/Hello-World/labels{/name}", + "languages_url": "https://api.github.com/repos/octocat/Hello-World/languages", + "merges_url": "https://api.github.com/repos/octocat/Hello-World/merges", + "milestones_url": "https://api.github.com/repos/octocat/Hello-World/milestones{/number}", + "notifications_url": "https://api.github.com/repos/octocat/Hello-World/notifications{?since,all,participating}", + "pulls_url": "https://api.github.com/repos/octocat/Hello-World/pulls{/number}", + "releases_url": "https://api.github.com/repos/octocat/Hello-World/releases{/id}", + "ssh_url": "git@github.com:octocat/Hello-World.git", + "stargazers_url": "https://api.github.com/repos/octocat/Hello-World/stargazers", + "statuses_url": "https://api.github.com/repos/octocat/Hello-World/statuses/{sha}", + "subscribers_url": "https://api.github.com/repos/octocat/Hello-World/subscribers", + "subscription_url": "https://api.github.com/repos/octocat/Hello-World/subscription", + "tags_url": "https://api.github.com/repos/octocat/Hello-World/tags", + "teams_url": "https://api.github.com/repos/octocat/Hello-World/teams", + "trees_url": "https://api.github.com/repos/octocat/Hello-World/git/trees{/sha}", + "hooks_url": "http://api.github.com/repos/octocat/Hello-World/hooks" + } + ] + } + } + } + } + } + } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "category": "dependabot", + "subcategory": "secrets" + } + }, + "put": { + "summary": "Set selected repositories for an organization secret", + "description": "Replaces all repositories for an organization secret when the `visibility` for repository access is set to `selected`. The visibility is set when you [Create or update an organization secret](https://docs.github.com/rest/reference/dependabot#create-or-update-an-organization-secret). You must authenticate using an access token with the `admin:org` scope to use this endpoint. GitHub Apps must have the `dependabot_secrets` organization permission to use this endpoint.", + "tags": [ + "dependabot" + ], + "operationId": "dependabot/set-selected-repos-for-org-secret", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/reference/dependabot#set-selected-repositories-for-an-organization-secret" + }, + "parameters": [ + { + "name": "org", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "secret_name", + "description": "secret_name parameter", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "selected_repository_ids": { + "type": "array", + "description": "An array of repository ids that can access the organization secret. You can only provide a list of repository ids when the `visibility` is set to `selected`. You can add and remove individual repositories using the [Set selected repositories for an organization secret](https://docs.github.com/rest/reference/dependabot#set-selected-repositories-for-an-organization-secret) and [Remove selected repository from an organization secret](https://docs.github.com/rest/reference/dependabot#remove-selected-repository-from-an-organization-secret) endpoints.", + "items": { + "type": "integer" + } + } + }, + "required": [ + "selected_repository_ids" + ] + }, + "example": { + "selected_repository_ids": [ + 64780797 + ] + } + } + } + }, + "responses": { + "204": { + "description": "Response" + } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "category": "dependabot", + "subcategory": "secrets" + } + } + }, + "/orgs/{org}/dependabot/secrets/{secret_name}/repositories/{repository_id}": { + "put": { + "summary": "Add selected repository to an organization secret", + "description": "Adds a repository to an organization secret when the `visibility` for repository access is set to `selected`. The visibility is set when you [Create or update an organization secret](https://docs.github.com/rest/reference/dependabot#create-or-update-an-organization-secret). You must authenticate using an access token with the `admin:org` scope to use this endpoint. GitHub Apps must have the `dependabot_secrets` organization permission to use this endpoint.", + "tags": [ + "dependabot" + ], + "operationId": "dependabot/add-selected-repo-to-org-secret", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/reference/dependabot#add-selected-repository-to-an-organization-secret" + }, + "parameters": [ + { + "name": "org", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "secret_name", + "description": "secret_name parameter", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "repository_id", + "in": "path", + "required": true, + "schema": { + "type": "integer" + } + } + ], + "responses": { + "204": { + "description": "No Content when repository was added to the selected list" + }, + "409": { + "description": "Conflict when visibility type is not set to selected" + } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "category": "dependabot", + "subcategory": "secrets" + } + }, + "delete": { + "summary": "Remove selected repository from an organization secret", + "description": "Removes a repository from an organization secret when the `visibility` for repository access is set to `selected`. The visibility is set when you [Create or update an organization secret](https://docs.github.com/rest/reference/dependabot#create-or-update-an-organization-secret). You must authenticate using an access token with the `admin:org` scope to use this endpoint. GitHub Apps must have the `dependabot_secrets` organization permission to use this endpoint.", + "tags": [ + "dependabot" + ], + "operationId": "dependabot/remove-selected-repo-from-org-secret", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/reference/dependabot#remove-selected-repository-from-an-organization-secret" + }, + "parameters": [ + { + "name": "org", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "secret_name", + "description": "secret_name parameter", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "repository_id", + "in": "path", + "required": true, + "schema": { + "type": "integer" + } + } + ], + "responses": { + "204": { + "description": "Response when repository was removed from the selected list" + }, + "409": { + "description": "Conflict when visibility type not set to selected" + } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "category": "dependabot", + "subcategory": "secrets" + } + } + }, "/orgs/{org}/events": { "get": { "summary": "List public organization events", @@ -216842,6 +219429,442 @@ } } }, + "/repos/{owner}/{repo}/dependabot/secrets": { + "get": { + "summary": "List repository secrets", + "description": "Lists all secrets available in a repository without revealing their encrypted values. You must authenticate using an access token with the `repo` scope to use this endpoint. GitHub Apps must have the `dependabot_secrets` repository permission to use this endpoint.", + "tags": [ + "dependabot" + ], + "operationId": "dependabot/list-repo-secrets", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/reference/dependabot#list-repository-secrets" + }, + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "repo", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "per_page", + "description": "Results per page (max 100)", + "in": "query", + "schema": { + "type": "integer", + "default": 30 + } + }, + { + "name": "page", + "description": "Page number of the results to fetch.", + "in": "query", + "schema": { + "type": "integer", + "default": 1 + } + } + ], + "responses": { + "200": { + "description": "Response", + "content": { + "application/json": { + "schema": { + "type": "object", + "required": [ + "total_count", + "secrets" + ], + "properties": { + "total_count": { + "type": "integer" + }, + "secrets": { + "type": "array", + "items": { + "title": "Dependabot Secret", + "description": "Set secrets for Dependabot.", + "type": "object", + "properties": { + "name": { + "description": "The name of the secret.", + "example": "MY_ARTIFACTORY_PASSWORD", + "type": "string" + }, + "created_at": { + "type": "string", + "format": "date-time" + }, + "updated_at": { + "type": "string", + "format": "date-time" + } + }, + "required": [ + "name", + "created_at", + "updated_at" + ] + } + } + } + }, + "examples": { + "default": { + "value": { + "total_count": 2, + "secrets": [ + { + "name": "AZURE_DEVOPS_PAT", + "created_at": "2019-08-10T14:59:22Z", + "updated_at": "2020-01-10T14:59:22Z" + }, + { + "name": "MY_ARTIFACTORY_PASSWORD", + "created_at": "2020-01-10T10:59:22Z", + "updated_at": "2020-01-11T11:59:22Z" + } + ] + } + } + } + } + }, + "headers": { + "Link": { + "example": "; rel=\"next\", ; rel=\"last\"", + "schema": { + "type": "string" + } + } + } + } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "category": "dependabot", + "subcategory": "secrets" + } + } + }, + "/repos/{owner}/{repo}/dependabot/secrets/public-key": { + "get": { + "summary": "Get a repository public key", + "description": "Gets your public key, which you need to encrypt secrets. You need to encrypt a secret before you can create or update secrets. Anyone with read access to the repository can use this endpoint. If the repository is private you must use an access token with the `repo` scope. GitHub Apps must have the `dependabot_secrets` repository permission to use this endpoint.", + "tags": [ + "dependabot" + ], + "operationId": "dependabot/get-repo-public-key", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/reference/dependabot#get-a-repository-public-key" + }, + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "repo", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Response", + "content": { + "application/json": { + "schema": { + "title": "DependabotPublicKey", + "description": "The public key used for setting Dependabot Secrets.", + "type": "object", + "properties": { + "key_id": { + "description": "The identifier for the key.", + "type": "string", + "example": "1234567" + }, + "key": { + "description": "The Base64 encoded public key.", + "type": "string", + "example": "hBT5WZEj8ZoOv6TYJsfWq7MxTEQopZO5/IT3ZCVQPzs=" + } + }, + "required": [ + "key_id", + "key" + ] + }, + "examples": { + "default": { + "value": { + "key_id": "012345678912345678", + "key": "2Sg8iYjAxxmI2LvUXpJjkYrMxURPc8r+dB7TJyvv1234" + } + } + } + } + } + } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "category": "dependabot", + "subcategory": "secrets" + } + } + }, + "/repos/{owner}/{repo}/dependabot/secrets/{secret_name}": { + "get": { + "summary": "Get a repository secret", + "description": "Gets a single repository secret without revealing its encrypted value. You must authenticate using an access token with the `repo` scope to use this endpoint. GitHub Apps must have the `dependabot_secrets` repository permission to use this endpoint.", + "tags": [ + "dependabot" + ], + "operationId": "dependabot/get-repo-secret", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/reference/dependabot#get-a-repository-secret" + }, + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "repo", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "secret_name", + "description": "secret_name parameter", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Response", + "content": { + "application/json": { + "schema": { + "title": "Dependabot Secret", + "description": "Set secrets for Dependabot.", + "type": "object", + "properties": { + "name": { + "description": "The name of the secret.", + "example": "MY_ARTIFACTORY_PASSWORD", + "type": "string" + }, + "created_at": { + "type": "string", + "format": "date-time" + }, + "updated_at": { + "type": "string", + "format": "date-time" + } + }, + "required": [ + "name", + "created_at", + "updated_at" + ] + }, + "examples": { + "default": { + "value": { + "name": "MY_ARTIFACTORY_PASSWORD", + "created_at": "2019-08-10T14:59:22Z", + "updated_at": "2020-01-10T14:59:22Z" + } + } + } + } + } + } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "category": "dependabot", + "subcategory": "secrets" + } + }, + "put": { + "summary": "Create or update a repository secret", + "description": "Creates or updates a repository secret with an encrypted value. Encrypt your secret using\n[LibSodium](https://libsodium.gitbook.io/doc/bindings_for_other_languages). You must authenticate using an access\ntoken with the `repo` scope to use this endpoint. GitHub Apps must have the `dependabot_secrets` repository\npermission to use this endpoint.\n\n#### Example encrypting a secret using Node.js\n\nEncrypt your secret using the [tweetsodium](https://github.com/github/tweetsodium) library.\n\n```\nconst sodium = require('tweetsodium');\n\nconst key = \"base64-encoded-public-key\";\nconst value = \"plain-text-secret\";\n\n// Convert the message and key to Uint8Array's (Buffer implements that interface)\nconst messageBytes = Buffer.from(value);\nconst keyBytes = Buffer.from(key, 'base64');\n\n// Encrypt using LibSodium.\nconst encryptedBytes = sodium.seal(messageBytes, keyBytes);\n\n// Base64 the encrypted secret\nconst encrypted = Buffer.from(encryptedBytes).toString('base64');\n\nconsole.log(encrypted);\n```\n\n\n#### Example encrypting a secret using Python\n\nEncrypt your secret using [pynacl](https://pynacl.readthedocs.io/en/stable/public/#nacl-public-sealedbox) with Python 3.\n\n```\nfrom base64 import b64encode\nfrom nacl import encoding, public\n\ndef encrypt(public_key: str, secret_value: str) -> str:\n \"\"\"Encrypt a Unicode string using the public key.\"\"\"\n public_key = public.PublicKey(public_key.encode(\"utf-8\"), encoding.Base64Encoder())\n sealed_box = public.SealedBox(public_key)\n encrypted = sealed_box.encrypt(secret_value.encode(\"utf-8\"))\n return b64encode(encrypted).decode(\"utf-8\")\n```\n\n#### Example encrypting a secret using C#\n\nEncrypt your secret using the [Sodium.Core](https://www.nuget.org/packages/Sodium.Core/) package.\n\n```\nvar secretValue = System.Text.Encoding.UTF8.GetBytes(\"mySecret\");\nvar publicKey = Convert.FromBase64String(\"2Sg8iYjAxxmI2LvUXpJjkYrMxURPc8r+dB7TJyvvcCU=\");\n\nvar sealedPublicKeyBox = Sodium.SealedPublicKeyBox.Create(secretValue, publicKey);\n\nConsole.WriteLine(Convert.ToBase64String(sealedPublicKeyBox));\n```\n\n#### Example encrypting a secret using Ruby\n\nEncrypt your secret using the [rbnacl](https://github.com/RubyCrypto/rbnacl) gem.\n\n```ruby\nrequire \"rbnacl\"\nrequire \"base64\"\n\nkey = Base64.decode64(\"+ZYvJDZMHUfBkJdyq5Zm9SKqeuBQ4sj+6sfjlH4CgG0=\")\npublic_key = RbNaCl::PublicKey.new(key)\n\nbox = RbNaCl::Boxes::Sealed.from_public_key(public_key)\nencrypted_secret = box.encrypt(\"my_secret\")\n\n# Print the base64 encoded secret\nputs Base64.strict_encode64(encrypted_secret)\n```", + "tags": [ + "dependabot" + ], + "operationId": "dependabot/create-or-update-repo-secret", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/reference/dependabot#create-or-update-a-repository-secret" + }, + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "repo", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "secret_name", + "description": "secret_name parameter", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "encrypted_value": { + "type": "string", + "description": "Value for your secret, encrypted with [LibSodium](https://libsodium.gitbook.io/doc/bindings_for_other_languages) using the public key retrieved from the [Get a repository public key](https://docs.github.com/rest/reference/dependabot#get-a-repository-public-key) endpoint.", + "pattern": "^(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=|[A-Za-z0-9+/]{4})$" + }, + "key_id": { + "type": "string", + "description": "ID of the key you used to encrypt the secret." + } + } + }, + "example": { + "encrypted_value": "c2VjcmV0", + "key_id": "012345678912345678" + } + } + } + }, + "responses": { + "201": { + "description": "Response when creating a secret", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + }, + "additionalProperties": false + } + } + } + }, + "204": { + "description": "Response when updating a secret" + } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "category": "dependabot", + "subcategory": "secrets" + } + }, + "delete": { + "summary": "Delete a repository secret", + "description": "Deletes a secret in a repository using the secret name. You must authenticate using an access token with the `repo` scope to use this endpoint. GitHub Apps must have the `dependabot_secrets` repository permission to use this endpoint.", + "tags": [ + "dependabot" + ], + "operationId": "dependabot/delete-repo-secret", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/reference/dependabot#delete-a-repository-secret" + }, + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "repo", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "secret_name", + "description": "secret_name parameter", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "204": { + "description": "Response" + } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "category": "dependabot", + "subcategory": "secrets" + } + } + }, "/repos/{owner}/{repo}/deployments": { "get": { "summary": "List deployments", diff --git a/lib/rest/static/dereferenced/github.ae.deref.json b/lib/rest/static/dereferenced/github.ae.deref.json index 7ed46e9a62..fa9c701db4 100644 --- a/lib/rest/static/dereferenced/github.ae.deref.json +++ b/lib/rest/static/dereferenced/github.ae.deref.json @@ -35800,6 +35800,123 @@ } } }, + "/organizations/{org}/team/{team_slug}/external-groups": { + "get": { + "summary": "List a connection between an external group and a team", + "description": "Lists a connection between a team and an external group.\n\nYou can manage team membership with your identity provider using Enterprise Managed Users for GitHub Enterprise Cloud. For more information, see \"[GitHub's products](https://docs.github.com/github-ae@latest/github/getting-started-with-github/githubs-products)\" in the GitHub Help documentation.", + "tags": [ + "teams" + ], + "operationId": "teams/list-linked-external-idp-groups-to-team-for-org", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/github-ae@latest/rest/reference/teams#list-external-idp-group-team-connection" + }, + "parameters": [ + { + "name": "org", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "team_slug", + "description": "team_slug parameter", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Response", + "content": { + "application/json": { + "schema": { + "title": "ExternalGroups", + "description": "A list of external groups available to be connected to a team", + "type": "object", + "properties": { + "groups": { + "description": "An array of external groups available to be mapped to a team", + "example": [ + { + "group_id": 1, + "group_name": "group-azuread-test", + "updated_at": "2021-01-03 22:27:15:000 -700" + }, + { + "group_id": 2, + "group_name": "group-azuread-test2", + "updated_at": "2021-06-03 22:27:15:000 -700" + } + ], + "type": "array", + "items": { + "type": "object", + "required": [ + "group_id", + "group_name", + "updated_at" + ], + "properties": { + "group_id": { + "description": "The internal ID of the group", + "example": 1, + "type": "integer" + }, + "group_name": { + "description": "The display name of the group", + "example": "group-azuread-test", + "type": "string" + }, + "updated_at": { + "description": "The time of the last update for this group", + "example": "2019-06-03 22:27:15:000 -700", + "type": "string" + } + } + } + } + } + }, + "examples": { + "default": { + "value": { + "groups": [ + { + "group_id": "123", + "group_name": "Octocat admins", + "updated_at": "2021-01-24T11:31:04-06:00" + }, + { + "group_id": "456", + "group_name": "Octocat docs members", + "updated_at": "2021-03-24T11:31:04-06:00" + } + ] + } + } + } + } + } + } + }, + "x-github": { + "githubCloudOnly": true, + "enabledForGitHubApps": true, + "previews": [ + + ], + "category": "teams", + "subcategory": "external-groups" + } + } + }, "/orgs/{org}": { "get": { "summary": "Get an organization", From 83ee7f13cb3cc3518648b5702ac823db713dfd72 Mon Sep 17 00:00:00 2001 From: github-openapi-bot Date: Mon, 10 Jan 2022 20:02:58 +0000 Subject: [PATCH 26/68] Add decorated OpenAPI schema files --- lib/rest/static/decorated/api.github.com.json | 1365 +++++++++++++++++ lib/rest/static/decorated/github.ae.json | 71 + 2 files changed, 1436 insertions(+) diff --git a/lib/rest/static/decorated/api.github.com.json b/lib/rest/static/decorated/api.github.com.json index 1abdc8937f..8458a270e3 100644 --- a/lib/rest/static/decorated/api.github.com.json +++ b/lib/rest/static/decorated/api.github.com.json @@ -14361,6 +14361,77 @@ } ] }, + { + "verb": "get", + "requestPath": "/organizations/{org}/team/{team_slug}/external-groups", + "serverUrl": "https://api.github.com", + "parameters": [ + { + "name": "org", + "in": "path", + "required": true, + "schema": { + "type": "string" + }, + "descriptionHTML": "" + }, + { + "name": "team_slug", + "description": "team_slug parameter", + "in": "path", + "required": true, + "schema": { + "type": "string" + }, + "descriptionHTML": "

team_slug parameter

" + } + ], + "x-codeSamples": [ + { + "lang": "Shell", + "source": "curl \\\n -H \"Accept: application/vnd.github.v3+json\" \\\n https://api.github.com/organizations/ORG/team/TEAM_SLUG/external-groups", + "html": "
curl \\\n  -H \"Accept: application/vnd.github.v3+json\" \\\n  https://api.github.com/organizations/ORG/team/TEAM_SLUG/external-groups
" + }, + { + "lang": "JavaScript", + "source": "await octokit.request('GET /organizations/{org}/team/{team_slug}/external-groups', {\n org: 'org',\n team_slug: 'team_slug'\n})", + "html": "
await octokit.request('GET /organizations/{org}/team/{team_slug}/external-groups', {\n  org: 'org',\n  team_slug: 'team_slug'\n})\n
" + } + ], + "summary": "List a connection between an external group and a team", + "description": "Lists a connection between a team and an external group.\n\nYou can manage team membership with your identity provider using Enterprise Managed Users for GitHub Enterprise Cloud. For more information, see \"[GitHub's products](https://docs.github.com/github/getting-started-with-github/githubs-products)\" in the GitHub Help documentation.", + "tags": [ + "teams" + ], + "operationId": "teams/list-linked-external-idp-groups-to-team-for-org", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/reference/teams#list-external-idp-group-team-connection" + }, + "x-github": { + "githubCloudOnly": true, + "enabledForGitHubApps": true, + "previews": [], + "category": "teams", + "subcategory": "external-groups" + }, + "slug": "list-a-connection-between-an-external-group-and-a-team", + "category": "teams", + "categoryLabel": "Teams", + "subcategory": "external-groups", + "subcategoryLabel": "External groups", + "notes": [], + "bodyParameters": [], + "descriptionHTML": "

Lists a connection between a team and an external group.

\n

You can manage team membership with your identity provider using Enterprise Managed Users for GitHub Enterprise Cloud. For more information, see \"GitHub's products\" in the GitHub Help documentation.

", + "responses": [ + { + "httpStatusCode": "200", + "httpStatusMessage": "OK", + "description": "Response", + "payload": "
{\n  \"groups\": [\n    {\n      \"group_id\": \"123\",\n      \"group_name\": \"Octocat admins\",\n      \"updated_at\": \"2021-01-24T11:31:04-06:00\"\n    },\n    {\n      \"group_id\": \"456\",\n      \"group_name\": \"Octocat docs members\",\n      \"updated_at\": \"2021-03-24T11:31:04-06:00\"\n    }\n  ]\n}\n
" + } + ] + }, { "verb": "get", "requestPath": "/orgs/{org}", @@ -19228,6 +19299,846 @@ "bodyParameters": [], "descriptionHTML": "

Listing and deleting credential authorizations is available to organizations with GitHub Enterprise Cloud. For more information, see GitHub's products.

\n

An authenticated organization owner with the admin:org scope can remove a credential authorization for an organization that uses SAML SSO. Once you remove someone's credential authorization, they will need to create a new personal access token or SSH key and authorize it for the organization they want to access.

" }, + { + "verb": "get", + "requestPath": "/orgs/{org}/dependabot/secrets", + "serverUrl": "https://api.github.com", + "parameters": [ + { + "name": "org", + "in": "path", + "required": true, + "schema": { + "type": "string" + }, + "descriptionHTML": "" + }, + { + "name": "per_page", + "description": "Results per page (max 100)", + "in": "query", + "schema": { + "type": "integer", + "default": 30 + }, + "descriptionHTML": "

Results per page (max 100)

" + }, + { + "name": "page", + "description": "Page number of the results to fetch.", + "in": "query", + "schema": { + "type": "integer", + "default": 1 + }, + "descriptionHTML": "

Page number of the results to fetch.

" + } + ], + "x-codeSamples": [ + { + "lang": "Shell", + "source": "curl \\\n -H \"Accept: application/vnd.github.v3+json\" \\\n https://api.github.com/orgs/ORG/dependabot/secrets", + "html": "
curl \\\n  -H \"Accept: application/vnd.github.v3+json\" \\\n  https://api.github.com/orgs/ORG/dependabot/secrets
" + }, + { + "lang": "JavaScript", + "source": "await octokit.request('GET /orgs/{org}/dependabot/secrets', {\n org: 'org'\n})", + "html": "
await octokit.request('GET /orgs/{org}/dependabot/secrets', {\n  org: 'org'\n})\n
" + } + ], + "summary": "List organization secrets", + "description": "Lists all secrets available in an organization without revealing their encrypted values. You must authenticate using an access token with the `admin:org` scope to use this endpoint. GitHub Apps must have the `dependabot_secrets` organization permission to use this endpoint.", + "tags": [ + "dependabot" + ], + "operationId": "dependabot/list-org-secrets", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/reference/dependabot#list-organization-secrets" + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "category": "dependabot", + "subcategory": "secrets" + }, + "slug": "list-organization-secrets", + "category": "dependabot", + "categoryLabel": "Dependabot", + "subcategory": "secrets", + "subcategoryLabel": "Secrets", + "notes": [], + "bodyParameters": [], + "descriptionHTML": "

Lists all secrets available in an organization without revealing their encrypted values. You must authenticate using an access token with the admin:org scope to use this endpoint. GitHub Apps must have the dependabot_secrets organization permission to use this endpoint.

", + "responses": [ + { + "httpStatusCode": "200", + "httpStatusMessage": "OK", + "description": "Response", + "payload": "
{\n  \"total_count\": 3,\n  \"secrets\": [\n    {\n      \"name\": \"MY_ARTIFACTORY_PASSWORD\",\n      \"created_at\": \"2021-08-10T14:59:22Z\",\n      \"updated_at\": \"2021-12-10T14:59:22Z\",\n      \"visibility\": \"private\"\n    },\n    {\n      \"name\": \"NPM_TOKEN\",\n      \"created_at\": \"2021-08-10T14:59:22Z\",\n      \"updated_at\": \"2021-12-10T14:59:22Z\",\n      \"visibility\": \"all\"\n    },\n    {\n      \"name\": \"GH_TOKEN\",\n      \"created_at\": \"2021-08-10T14:59:22Z\",\n      \"updated_at\": \"2021-12-10T14:59:22Z\",\n      \"visibility\": \"selected\",\n      \"selected_repositories_url\": \"https://api.github.com/orgs/octo-org/dependabot/secrets/SUPER_SECRET/repositories\"\n    }\n  ]\n}\n
" + } + ] + }, + { + "verb": "get", + "requestPath": "/orgs/{org}/dependabot/secrets/public-key", + "serverUrl": "https://api.github.com", + "parameters": [ + { + "name": "org", + "in": "path", + "required": true, + "schema": { + "type": "string" + }, + "descriptionHTML": "" + } + ], + "x-codeSamples": [ + { + "lang": "Shell", + "source": "curl \\\n -H \"Accept: application/vnd.github.v3+json\" \\\n https://api.github.com/orgs/ORG/dependabot/secrets/public-key", + "html": "
curl \\\n  -H \"Accept: application/vnd.github.v3+json\" \\\n  https://api.github.com/orgs/ORG/dependabot/secrets/public-key
" + }, + { + "lang": "JavaScript", + "source": "await octokit.request('GET /orgs/{org}/dependabot/secrets/public-key', {\n org: 'org'\n})", + "html": "
await octokit.request('GET /orgs/{org}/dependabot/secrets/public-key', {\n  org: 'org'\n})\n
" + } + ], + "summary": "Get an organization public key", + "description": "Gets your public key, which you need to encrypt secrets. You need to encrypt a secret before you can create or update secrets. You must authenticate using an access token with the `admin:org` scope to use this endpoint. GitHub Apps must have the `dependabot_secrets` organization permission to use this endpoint.", + "tags": [ + "dependabot" + ], + "operationId": "dependabot/get-org-public-key", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/reference/dependabot#get-an-organization-public-key" + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "category": "dependabot", + "subcategory": "secrets" + }, + "slug": "get-an-organization-public-key", + "category": "dependabot", + "categoryLabel": "Dependabot", + "subcategory": "secrets", + "subcategoryLabel": "Secrets", + "notes": [], + "bodyParameters": [], + "descriptionHTML": "

Gets your public key, which you need to encrypt secrets. You need to encrypt a secret before you can create or update secrets. You must authenticate using an access token with the admin:org scope to use this endpoint. GitHub Apps must have the dependabot_secrets organization permission to use this endpoint.

", + "responses": [ + { + "httpStatusCode": "200", + "httpStatusMessage": "OK", + "description": "Response", + "payload": "
{\n  \"key_id\": \"012345678912345678\",\n  \"key\": \"2Sg8iYjAxxmI2LvUXpJjkYrMxURPc8r+dB7TJyvv1234\"\n}\n
" + } + ] + }, + { + "verb": "get", + "requestPath": "/orgs/{org}/dependabot/secrets/{secret_name}", + "serverUrl": "https://api.github.com", + "parameters": [ + { + "name": "org", + "in": "path", + "required": true, + "schema": { + "type": "string" + }, + "descriptionHTML": "" + }, + { + "name": "secret_name", + "description": "secret_name parameter", + "in": "path", + "required": true, + "schema": { + "type": "string" + }, + "descriptionHTML": "

secret_name parameter

" + } + ], + "x-codeSamples": [ + { + "lang": "Shell", + "source": "curl \\\n -H \"Accept: application/vnd.github.v3+json\" \\\n https://api.github.com/orgs/ORG/dependabot/secrets/SECRET_NAME", + "html": "
curl \\\n  -H \"Accept: application/vnd.github.v3+json\" \\\n  https://api.github.com/orgs/ORG/dependabot/secrets/SECRET_NAME
" + }, + { + "lang": "JavaScript", + "source": "await octokit.request('GET /orgs/{org}/dependabot/secrets/{secret_name}', {\n org: 'org',\n secret_name: 'secret_name'\n})", + "html": "
await octokit.request('GET /orgs/{org}/dependabot/secrets/{secret_name}', {\n  org: 'org',\n  secret_name: 'secret_name'\n})\n
" + } + ], + "summary": "Get an organization secret", + "description": "Gets a single organization secret without revealing its encrypted value. You must authenticate using an access token with the `admin:org` scope to use this endpoint. GitHub Apps must have the `dependabot_secrets` organization permission to use this endpoint.", + "tags": [ + "dependabot" + ], + "operationId": "dependabot/get-org-secret", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/reference/dependabot#get-an-organization-secret" + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "category": "dependabot", + "subcategory": "secrets" + }, + "slug": "get-an-organization-secret", + "category": "dependabot", + "categoryLabel": "Dependabot", + "subcategory": "secrets", + "subcategoryLabel": "Secrets", + "notes": [], + "bodyParameters": [], + "descriptionHTML": "

Gets a single organization secret without revealing its encrypted value. You must authenticate using an access token with the admin:org scope to use this endpoint. GitHub Apps must have the dependabot_secrets organization permission to use this endpoint.

", + "responses": [ + { + "httpStatusCode": "200", + "httpStatusMessage": "OK", + "description": "Response", + "payload": "
{\n  \"name\": \"NPM_TOKEN\",\n  \"created_at\": \"2019-08-10T14:59:22Z\",\n  \"updated_at\": \"2020-01-10T14:59:22Z\",\n  \"visibility\": \"selected\",\n  \"selected_repositories_url\": \"https://api.github.com/orgs/octo-org/dependabot/secrets/NPM_TOKEN/repositories\"\n}\n
" + } + ] + }, + { + "verb": "put", + "requestPath": "/orgs/{org}/dependabot/secrets/{secret_name}", + "serverUrl": "https://api.github.com", + "parameters": [ + { + "name": "org", + "in": "path", + "required": true, + "schema": { + "type": "string" + }, + "descriptionHTML": "" + }, + { + "name": "secret_name", + "description": "secret_name parameter", + "in": "path", + "required": true, + "schema": { + "type": "string" + }, + "descriptionHTML": "

secret_name parameter

" + } + ], + "x-codeSamples": [ + { + "lang": "Shell", + "source": "curl \\\n -X PUT \\\n -H \"Accept: application/vnd.github.v3+json\" \\\n https://api.github.com/orgs/ORG/dependabot/secrets/SECRET_NAME \\\n -d '{\"visibility\":\"visibility\"}'", + "html": "
curl \\\n  -X PUT \\\n  -H \"Accept: application/vnd.github.v3+json\" \\\n  https://api.github.com/orgs/ORG/dependabot/secrets/SECRET_NAME \\\n  -d '{\"visibility\":\"visibility\"}'
" + }, + { + "lang": "JavaScript", + "source": "await octokit.request('PUT /orgs/{org}/dependabot/secrets/{secret_name}', {\n org: 'org',\n secret_name: 'secret_name',\n visibility: 'visibility'\n})", + "html": "
await octokit.request('PUT /orgs/{org}/dependabot/secrets/{secret_name}', {\n  org: 'org',\n  secret_name: 'secret_name',\n  visibility: 'visibility'\n})\n
" + } + ], + "summary": "Create or update an organization secret", + "description": "Creates or updates an organization secret with an encrypted value. Encrypt your secret using\n[LibSodium](https://libsodium.gitbook.io/doc/bindings_for_other_languages). You must authenticate using an access\ntoken with the `admin:org` scope to use this endpoint. GitHub Apps must have the `dependabot_secrets` organization\npermission to use this endpoint.\n\n#### Example encrypting a secret using Node.js\n\nEncrypt your secret using the [tweetsodium](https://github.com/github/tweetsodium) library.\n\n```\nconst sodium = require('tweetsodium');\n\nconst key = \"base64-encoded-public-key\";\nconst value = \"plain-text-secret\";\n\n// Convert the message and key to Uint8Array's (Buffer implements that interface)\nconst messageBytes = Buffer.from(value);\nconst keyBytes = Buffer.from(key, 'base64');\n\n// Encrypt using LibSodium.\nconst encryptedBytes = sodium.seal(messageBytes, keyBytes);\n\n// Base64 the encrypted secret\nconst encrypted = Buffer.from(encryptedBytes).toString('base64');\n\nconsole.log(encrypted);\n```\n\n\n#### Example encrypting a secret using Python\n\nEncrypt your secret using [pynacl](https://pynacl.readthedocs.io/en/stable/public/#nacl-public-sealedbox) with Python 3.\n\n```\nfrom base64 import b64encode\nfrom nacl import encoding, public\n\ndef encrypt(public_key: str, secret_value: str) -> str:\n \"\"\"Encrypt a Unicode string using the public key.\"\"\"\n public_key = public.PublicKey(public_key.encode(\"utf-8\"), encoding.Base64Encoder())\n sealed_box = public.SealedBox(public_key)\n encrypted = sealed_box.encrypt(secret_value.encode(\"utf-8\"))\n return b64encode(encrypted).decode(\"utf-8\")\n```\n\n#### Example encrypting a secret using C#\n\nEncrypt your secret using the [Sodium.Core](https://www.nuget.org/packages/Sodium.Core/) package.\n\n```\nvar secretValue = System.Text.Encoding.UTF8.GetBytes(\"mySecret\");\nvar publicKey = Convert.FromBase64String(\"2Sg8iYjAxxmI2LvUXpJjkYrMxURPc8r+dB7TJyvvcCU=\");\n\nvar sealedPublicKeyBox = Sodium.SealedPublicKeyBox.Create(secretValue, publicKey);\n\nConsole.WriteLine(Convert.ToBase64String(sealedPublicKeyBox));\n```\n\n#### Example encrypting a secret using Ruby\n\nEncrypt your secret using the [rbnacl](https://github.com/RubyCrypto/rbnacl) gem.\n\n```ruby\nrequire \"rbnacl\"\nrequire \"base64\"\n\nkey = Base64.decode64(\"+ZYvJDZMHUfBkJdyq5Zm9SKqeuBQ4sj+6sfjlH4CgG0=\")\npublic_key = RbNaCl::PublicKey.new(key)\n\nbox = RbNaCl::Boxes::Sealed.from_public_key(public_key)\nencrypted_secret = box.encrypt(\"my_secret\")\n\n# Print the base64 encoded secret\nputs Base64.strict_encode64(encrypted_secret)\n```", + "tags": [ + "dependabot" + ], + "operationId": "dependabot/create-or-update-org-secret", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/reference/dependabot#create-or-update-an-organization-secret" + }, + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "encrypted_value": { + "type": "string", + "description": "

Value for your secret, encrypted with LibSodium using the public key retrieved from the Get an organization public key endpoint.

", + "pattern": "^(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=|[A-Za-z0-9+/]{4})$", + "name": "encrypted_value", + "in": "body", + "rawType": "string", + "rawDescription": "Value for your secret, encrypted with [LibSodium](https://libsodium.gitbook.io/doc/bindings_for_other_languages) using the public key retrieved from the [Get an organization public key](https://docs.github.com/rest/reference/dependabot#get-an-organization-public-key) endpoint.", + "childParamsGroups": [] + }, + "key_id": { + "type": "string", + "description": "

ID of the key you used to encrypt the secret.

", + "name": "key_id", + "in": "body", + "rawType": "string", + "rawDescription": "ID of the key you used to encrypt the secret.", + "childParamsGroups": [] + }, + "visibility": { + "type": "string", + "description": "

Required. Configures the access that repositories have to the organization secret. Can be one of:
\n- all - All repositories in an organization can access the secret.
\n- private - Private repositories in an organization can access the secret.
\n- selected - Only specific repositories can access the secret.

", + "enum": [ + "all", + "private", + "selected" + ], + "name": "visibility", + "in": "body", + "rawType": "string", + "rawDescription": "Configures the access that repositories have to the organization secret. Can be one of: \n\\- `all` - All repositories in an organization can access the secret. \n\\- `private` - Private repositories in an organization can access the secret. \n\\- `selected` - Only specific repositories can access the secret.", + "childParamsGroups": [] + }, + "selected_repository_ids": { + "type": "array of strings", + "description": "

An array of repository ids that can access the organization secret. You can only provide a list of repository ids when the visibility is set to selected. You can manage the list of selected repositories using the List selected repositories for an organization secret, Set selected repositories for an organization secret, and Remove selected repository from an organization secret endpoints.

", + "items": { + "type": "string" + }, + "name": "selected_repository_ids", + "in": "body", + "rawType": "array", + "rawDescription": "An array of repository ids that can access the organization secret. You can only provide a list of repository ids when the `visibility` is set to `selected`. You can manage the list of selected repositories using the [List selected repositories for an organization secret](https://docs.github.com/rest/reference/dependabot#list-selected-repositories-for-an-organization-secret), [Set selected repositories for an organization secret](https://docs.github.com/rest/reference/dependabot#set-selected-repositories-for-an-organization-secret), and [Remove selected repository from an organization secret](https://docs.github.com/rest/reference/dependabot#remove-selected-repository-from-an-organization-secret) endpoints.", + "childParamsGroups": [] + } + }, + "required": [ + "visibility" + ] + }, + "example": { + "encrypted_value": "c2VjcmV0", + "key_id": "012345678912345678", + "visibility": "selected", + "selected_repository_ids": [ + "1296269", + "1296280" + ] + } + } + } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "category": "dependabot", + "subcategory": "secrets" + }, + "slug": "create-or-update-an-organization-secret", + "category": "dependabot", + "categoryLabel": "Dependabot", + "subcategory": "secrets", + "subcategoryLabel": "Secrets", + "contentType": "application/json", + "notes": [], + "responses": [ + { + "httpStatusCode": "201", + "httpStatusMessage": "Created", + "description": "Response when creating a secret" + }, + { + "httpStatusCode": "204", + "httpStatusMessage": "No Content", + "description": "Response when updating a secret" + } + ], + "descriptionHTML": "

Creates or updates an organization secret with an encrypted value. Encrypt your secret using\nLibSodium. You must authenticate using an access\ntoken with the admin:org scope to use this endpoint. GitHub Apps must have the dependabot_secrets organization\npermission to use this endpoint.

\n

Example encrypting a secret using Node.js

\n

Encrypt your secret using the tweetsodium library.

\n
const sodium = require('tweetsodium');\n\nconst key = \"base64-encoded-public-key\";\nconst value = \"plain-text-secret\";\n\n// Convert the message and key to Uint8Array's (Buffer implements that interface)\nconst messageBytes = Buffer.from(value);\nconst keyBytes = Buffer.from(key, 'base64');\n\n// Encrypt using LibSodium.\nconst encryptedBytes = sodium.seal(messageBytes, keyBytes);\n\n// Base64 the encrypted secret\nconst encrypted = Buffer.from(encryptedBytes).toString('base64');\n\nconsole.log(encrypted);\n
\n

Example encrypting a secret using Python

\n

Encrypt your secret using pynacl with Python 3.

\n
from base64 import b64encode\nfrom nacl import encoding, public\n\ndef encrypt(public_key: str, secret_value: str) -> str:\n  \"\"\"Encrypt a Unicode string using the public key.\"\"\"\n  public_key = public.PublicKey(public_key.encode(\"utf-8\"), encoding.Base64Encoder())\n  sealed_box = public.SealedBox(public_key)\n  encrypted = sealed_box.encrypt(secret_value.encode(\"utf-8\"))\n  return b64encode(encrypted).decode(\"utf-8\")\n
\n

Example encrypting a secret using C#

\n

Encrypt your secret using the Sodium.Core package.

\n
var secretValue = System.Text.Encoding.UTF8.GetBytes(\"mySecret\");\nvar publicKey = Convert.FromBase64String(\"2Sg8iYjAxxmI2LvUXpJjkYrMxURPc8r+dB7TJyvvcCU=\");\n\nvar sealedPublicKeyBox = Sodium.SealedPublicKeyBox.Create(secretValue, publicKey);\n\nConsole.WriteLine(Convert.ToBase64String(sealedPublicKeyBox));\n
\n

Example encrypting a secret using Ruby

\n

Encrypt your secret using the rbnacl gem.

\n
require \"rbnacl\"\nrequire \"base64\"\n\nkey = Base64.decode64(\"+ZYvJDZMHUfBkJdyq5Zm9SKqeuBQ4sj+6sfjlH4CgG0=\")\npublic_key = RbNaCl::PublicKey.new(key)\n\nbox = RbNaCl::Boxes::Sealed.from_public_key(public_key)\nencrypted_secret = box.encrypt(\"my_secret\")\n\n# Print the base64 encoded secret\nputs Base64.strict_encode64(encrypted_secret)\n
", + "bodyParameters": [ + { + "type": "string", + "description": "

Value for your secret, encrypted with LibSodium using the public key retrieved from the Get an organization public key endpoint.

", + "pattern": "^(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=|[A-Za-z0-9+/]{4})$", + "name": "encrypted_value", + "in": "body", + "rawType": "string", + "rawDescription": "Value for your secret, encrypted with [LibSodium](https://libsodium.gitbook.io/doc/bindings_for_other_languages) using the public key retrieved from the [Get an organization public key](https://docs.github.com/rest/reference/dependabot#get-an-organization-public-key) endpoint.", + "childParamsGroups": [] + }, + { + "type": "string", + "description": "

ID of the key you used to encrypt the secret.

", + "name": "key_id", + "in": "body", + "rawType": "string", + "rawDescription": "ID of the key you used to encrypt the secret.", + "childParamsGroups": [] + }, + { + "type": "string", + "description": "

Required. Configures the access that repositories have to the organization secret. Can be one of:
\n- all - All repositories in an organization can access the secret.
\n- private - Private repositories in an organization can access the secret.
\n- selected - Only specific repositories can access the secret.

", + "enum": [ + "all", + "private", + "selected" + ], + "name": "visibility", + "in": "body", + "rawType": "string", + "rawDescription": "Configures the access that repositories have to the organization secret. Can be one of: \n\\- `all` - All repositories in an organization can access the secret. \n\\- `private` - Private repositories in an organization can access the secret. \n\\- `selected` - Only specific repositories can access the secret.", + "childParamsGroups": [] + }, + { + "type": "array of strings", + "description": "

An array of repository ids that can access the organization secret. You can only provide a list of repository ids when the visibility is set to selected. You can manage the list of selected repositories using the List selected repositories for an organization secret, Set selected repositories for an organization secret, and Remove selected repository from an organization secret endpoints.

", + "items": { + "type": "string" + }, + "name": "selected_repository_ids", + "in": "body", + "rawType": "array", + "rawDescription": "An array of repository ids that can access the organization secret. You can only provide a list of repository ids when the `visibility` is set to `selected`. You can manage the list of selected repositories using the [List selected repositories for an organization secret](https://docs.github.com/rest/reference/dependabot#list-selected-repositories-for-an-organization-secret), [Set selected repositories for an organization secret](https://docs.github.com/rest/reference/dependabot#set-selected-repositories-for-an-organization-secret), and [Remove selected repository from an organization secret](https://docs.github.com/rest/reference/dependabot#remove-selected-repository-from-an-organization-secret) endpoints.", + "childParamsGroups": [] + } + ] + }, + { + "verb": "delete", + "requestPath": "/orgs/{org}/dependabot/secrets/{secret_name}", + "serverUrl": "https://api.github.com", + "parameters": [ + { + "name": "org", + "in": "path", + "required": true, + "schema": { + "type": "string" + }, + "descriptionHTML": "" + }, + { + "name": "secret_name", + "description": "secret_name parameter", + "in": "path", + "required": true, + "schema": { + "type": "string" + }, + "descriptionHTML": "

secret_name parameter

" + } + ], + "x-codeSamples": [ + { + "lang": "Shell", + "source": "curl \\\n -X DELETE \\\n -H \"Accept: application/vnd.github.v3+json\" \\\n https://api.github.com/orgs/ORG/dependabot/secrets/SECRET_NAME", + "html": "
curl \\\n  -X DELETE \\\n  -H \"Accept: application/vnd.github.v3+json\" \\\n  https://api.github.com/orgs/ORG/dependabot/secrets/SECRET_NAME
" + }, + { + "lang": "JavaScript", + "source": "await octokit.request('DELETE /orgs/{org}/dependabot/secrets/{secret_name}', {\n org: 'org',\n secret_name: 'secret_name'\n})", + "html": "
await octokit.request('DELETE /orgs/{org}/dependabot/secrets/{secret_name}', {\n  org: 'org',\n  secret_name: 'secret_name'\n})\n
" + } + ], + "summary": "Delete an organization secret", + "description": "Deletes a secret in an organization using the secret name. You must authenticate using an access token with the `admin:org` scope to use this endpoint. GitHub Apps must have the `dependabot_secrets` organization permission to use this endpoint.", + "tags": [ + "dependabot" + ], + "operationId": "dependabot/delete-org-secret", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/reference/dependabot#delete-an-organization-secret" + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "category": "dependabot", + "subcategory": "secrets" + }, + "slug": "delete-an-organization-secret", + "category": "dependabot", + "categoryLabel": "Dependabot", + "subcategory": "secrets", + "subcategoryLabel": "Secrets", + "notes": [], + "responses": [ + { + "httpStatusCode": "204", + "httpStatusMessage": "No Content", + "description": "Response" + } + ], + "bodyParameters": [], + "descriptionHTML": "

Deletes a secret in an organization using the secret name. You must authenticate using an access token with the admin:org scope to use this endpoint. GitHub Apps must have the dependabot_secrets organization permission to use this endpoint.

" + }, + { + "verb": "get", + "requestPath": "/orgs/{org}/dependabot/secrets/{secret_name}/repositories", + "serverUrl": "https://api.github.com", + "parameters": [ + { + "name": "org", + "in": "path", + "required": true, + "schema": { + "type": "string" + }, + "descriptionHTML": "" + }, + { + "name": "secret_name", + "description": "secret_name parameter", + "in": "path", + "required": true, + "schema": { + "type": "string" + }, + "descriptionHTML": "

secret_name parameter

" + }, + { + "name": "page", + "description": "Page number of the results to fetch.", + "in": "query", + "schema": { + "type": "integer", + "default": 1 + }, + "descriptionHTML": "

Page number of the results to fetch.

" + }, + { + "name": "per_page", + "description": "Results per page (max 100)", + "in": "query", + "schema": { + "type": "integer", + "default": 30 + }, + "descriptionHTML": "

Results per page (max 100)

" + } + ], + "x-codeSamples": [ + { + "lang": "Shell", + "source": "curl \\\n -H \"Accept: application/vnd.github.v3+json\" \\\n https://api.github.com/orgs/ORG/dependabot/secrets/SECRET_NAME/repositories", + "html": "
curl \\\n  -H \"Accept: application/vnd.github.v3+json\" \\\n  https://api.github.com/orgs/ORG/dependabot/secrets/SECRET_NAME/repositories
" + }, + { + "lang": "JavaScript", + "source": "await octokit.request('GET /orgs/{org}/dependabot/secrets/{secret_name}/repositories', {\n org: 'org',\n secret_name: 'secret_name'\n})", + "html": "
await octokit.request('GET /orgs/{org}/dependabot/secrets/{secret_name}/repositories', {\n  org: 'org',\n  secret_name: 'secret_name'\n})\n
" + } + ], + "summary": "List selected repositories for an organization secret", + "description": "Lists all repositories that have been selected when the `visibility` for repository access to a secret is set to `selected`. You must authenticate using an access token with the `admin:org` scope to use this endpoint. GitHub Apps must have the `dependabot_secrets` organization permission to use this endpoint.", + "tags": [ + "dependabot" + ], + "operationId": "dependabot/list-selected-repos-for-org-secret", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/reference/dependabot#list-selected-repositories-for-an-organization-secret" + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "category": "dependabot", + "subcategory": "secrets" + }, + "slug": "list-selected-repositories-for-an-organization-secret", + "category": "dependabot", + "categoryLabel": "Dependabot", + "subcategory": "secrets", + "subcategoryLabel": "Secrets", + "notes": [], + "bodyParameters": [], + "descriptionHTML": "

Lists all repositories that have been selected when the visibility for repository access to a secret is set to selected. You must authenticate using an access token with the admin:org scope to use this endpoint. GitHub Apps must have the dependabot_secrets organization permission to use this endpoint.

", + "responses": [ + { + "httpStatusCode": "200", + "httpStatusMessage": "OK", + "description": "Response", + "payload": "
{\n  \"total_count\": 1,\n  \"repositories\": [\n    {\n      \"id\": 1296269,\n      \"node_id\": \"MDEwOlJlcG9zaXRvcnkxMjk2MjY5\",\n      \"name\": \"Hello-World\",\n      \"full_name\": \"octocat/Hello-World\",\n      \"owner\": {\n        \"login\": \"octocat\",\n        \"id\": 1,\n        \"node_id\": \"MDQ6VXNlcjE=\",\n        \"avatar_url\": \"https://github.com/images/error/octocat_happy.gif\",\n        \"gravatar_id\": \"\",\n        \"url\": \"https://api.github.com/users/octocat\",\n        \"html_url\": \"https://github.com/octocat\",\n        \"followers_url\": \"https://api.github.com/users/octocat/followers\",\n        \"following_url\": \"https://api.github.com/users/octocat/following{/other_user}\",\n        \"gists_url\": \"https://api.github.com/users/octocat/gists{/gist_id}\",\n        \"starred_url\": \"https://api.github.com/users/octocat/starred{/owner}{/repo}\",\n        \"subscriptions_url\": \"https://api.github.com/users/octocat/subscriptions\",\n        \"organizations_url\": \"https://api.github.com/users/octocat/orgs\",\n        \"repos_url\": \"https://api.github.com/users/octocat/repos\",\n        \"events_url\": \"https://api.github.com/users/octocat/events{/privacy}\",\n        \"received_events_url\": \"https://api.github.com/users/octocat/received_events\",\n        \"type\": \"User\",\n        \"site_admin\": false\n      },\n      \"private\": false,\n      \"html_url\": \"https://github.com/octocat/Hello-World\",\n      \"description\": \"This your first repo!\",\n      \"fork\": false,\n      \"url\": \"https://api.github.com/repos/octocat/Hello-World\",\n      \"archive_url\": \"https://api.github.com/repos/octocat/Hello-World/{archive_format}{/ref}\",\n      \"assignees_url\": \"https://api.github.com/repos/octocat/Hello-World/assignees{/user}\",\n      \"blobs_url\": \"https://api.github.com/repos/octocat/Hello-World/git/blobs{/sha}\",\n      \"branches_url\": \"https://api.github.com/repos/octocat/Hello-World/branches{/branch}\",\n      \"collaborators_url\": \"https://api.github.com/repos/octocat/Hello-World/collaborators{/collaborator}\",\n      \"comments_url\": \"https://api.github.com/repos/octocat/Hello-World/comments{/number}\",\n      \"commits_url\": \"https://api.github.com/repos/octocat/Hello-World/commits{/sha}\",\n      \"compare_url\": \"https://api.github.com/repos/octocat/Hello-World/compare/{base}...{head}\",\n      \"contents_url\": \"https://api.github.com/repos/octocat/Hello-World/contents/{+path}\",\n      \"contributors_url\": \"https://api.github.com/repos/octocat/Hello-World/contributors\",\n      \"deployments_url\": \"https://api.github.com/repos/octocat/Hello-World/deployments\",\n      \"downloads_url\": \"https://api.github.com/repos/octocat/Hello-World/downloads\",\n      \"events_url\": \"https://api.github.com/repos/octocat/Hello-World/events\",\n      \"forks_url\": \"https://api.github.com/repos/octocat/Hello-World/forks\",\n      \"git_commits_url\": \"https://api.github.com/repos/octocat/Hello-World/git/commits{/sha}\",\n      \"git_refs_url\": \"https://api.github.com/repos/octocat/Hello-World/git/refs{/sha}\",\n      \"git_tags_url\": \"https://api.github.com/repos/octocat/Hello-World/git/tags{/sha}\",\n      \"git_url\": \"git:github.com/octocat/Hello-World.git\",\n      \"issue_comment_url\": \"https://api.github.com/repos/octocat/Hello-World/issues/comments{/number}\",\n      \"issue_events_url\": \"https://api.github.com/repos/octocat/Hello-World/issues/events{/number}\",\n      \"issues_url\": \"https://api.github.com/repos/octocat/Hello-World/issues{/number}\",\n      \"keys_url\": \"https://api.github.com/repos/octocat/Hello-World/keys{/key_id}\",\n      \"labels_url\": \"https://api.github.com/repos/octocat/Hello-World/labels{/name}\",\n      \"languages_url\": \"https://api.github.com/repos/octocat/Hello-World/languages\",\n      \"merges_url\": \"https://api.github.com/repos/octocat/Hello-World/merges\",\n      \"milestones_url\": \"https://api.github.com/repos/octocat/Hello-World/milestones{/number}\",\n      \"notifications_url\": \"https://api.github.com/repos/octocat/Hello-World/notifications{?since,all,participating}\",\n      \"pulls_url\": \"https://api.github.com/repos/octocat/Hello-World/pulls{/number}\",\n      \"releases_url\": \"https://api.github.com/repos/octocat/Hello-World/releases{/id}\",\n      \"ssh_url\": \"git@github.com:octocat/Hello-World.git\",\n      \"stargazers_url\": \"https://api.github.com/repos/octocat/Hello-World/stargazers\",\n      \"statuses_url\": \"https://api.github.com/repos/octocat/Hello-World/statuses/{sha}\",\n      \"subscribers_url\": \"https://api.github.com/repos/octocat/Hello-World/subscribers\",\n      \"subscription_url\": \"https://api.github.com/repos/octocat/Hello-World/subscription\",\n      \"tags_url\": \"https://api.github.com/repos/octocat/Hello-World/tags\",\n      \"teams_url\": \"https://api.github.com/repos/octocat/Hello-World/teams\",\n      \"trees_url\": \"https://api.github.com/repos/octocat/Hello-World/git/trees{/sha}\",\n      \"hooks_url\": \"http://api.github.com/repos/octocat/Hello-World/hooks\"\n    }\n  ]\n}\n
" + } + ] + }, + { + "verb": "put", + "requestPath": "/orgs/{org}/dependabot/secrets/{secret_name}/repositories", + "serverUrl": "https://api.github.com", + "parameters": [ + { + "name": "org", + "in": "path", + "required": true, + "schema": { + "type": "string" + }, + "descriptionHTML": "" + }, + { + "name": "secret_name", + "description": "secret_name parameter", + "in": "path", + "required": true, + "schema": { + "type": "string" + }, + "descriptionHTML": "

secret_name parameter

" + } + ], + "x-codeSamples": [ + { + "lang": "Shell", + "source": "curl \\\n -X PUT \\\n -H \"Accept: application/vnd.github.v3+json\" \\\n https://api.github.com/orgs/ORG/dependabot/secrets/SECRET_NAME/repositories \\\n -d '{\"selected_repository_ids\":[42]}'", + "html": "
curl \\\n  -X PUT \\\n  -H \"Accept: application/vnd.github.v3+json\" \\\n  https://api.github.com/orgs/ORG/dependabot/secrets/SECRET_NAME/repositories \\\n  -d '{\"selected_repository_ids\":[42]}'
" + }, + { + "lang": "JavaScript", + "source": "await octokit.request('PUT /orgs/{org}/dependabot/secrets/{secret_name}/repositories', {\n org: 'org',\n secret_name: 'secret_name',\n selected_repository_ids: [\n 42\n ]\n})", + "html": "
await octokit.request('PUT /orgs/{org}/dependabot/secrets/{secret_name}/repositories', {\n  org: 'org',\n  secret_name: 'secret_name',\n  selected_repository_ids: [\n    42\n  ]\n})\n
" + } + ], + "summary": "Set selected repositories for an organization secret", + "description": "Replaces all repositories for an organization secret when the `visibility` for repository access is set to `selected`. The visibility is set when you [Create or update an organization secret](https://docs.github.com/rest/reference/dependabot#create-or-update-an-organization-secret). You must authenticate using an access token with the `admin:org` scope to use this endpoint. GitHub Apps must have the `dependabot_secrets` organization permission to use this endpoint.", + "tags": [ + "dependabot" + ], + "operationId": "dependabot/set-selected-repos-for-org-secret", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/reference/dependabot#set-selected-repositories-for-an-organization-secret" + }, + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "selected_repository_ids": { + "type": "array of integers", + "description": "

Required. An array of repository ids that can access the organization secret. You can only provide a list of repository ids when the visibility is set to selected. You can add and remove individual repositories using the Set selected repositories for an organization secret and Remove selected repository from an organization secret endpoints.

", + "items": { + "type": "integer" + }, + "name": "selected_repository_ids", + "in": "body", + "rawType": "array", + "rawDescription": "An array of repository ids that can access the organization secret. You can only provide a list of repository ids when the `visibility` is set to `selected`. You can add and remove individual repositories using the [Set selected repositories for an organization secret](https://docs.github.com/rest/reference/dependabot#set-selected-repositories-for-an-organization-secret) and [Remove selected repository from an organization secret](https://docs.github.com/rest/reference/dependabot#remove-selected-repository-from-an-organization-secret) endpoints.", + "childParamsGroups": [] + } + }, + "required": [ + "selected_repository_ids" + ] + }, + "example": { + "selected_repository_ids": [ + 64780797 + ] + } + } + } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "category": "dependabot", + "subcategory": "secrets" + }, + "slug": "set-selected-repositories-for-an-organization-secret", + "category": "dependabot", + "categoryLabel": "Dependabot", + "subcategory": "secrets", + "subcategoryLabel": "Secrets", + "contentType": "application/json", + "notes": [], + "responses": [ + { + "httpStatusCode": "204", + "httpStatusMessage": "No Content", + "description": "Response" + } + ], + "descriptionHTML": "

Replaces all repositories for an organization secret when the visibility for repository access is set to selected. The visibility is set when you Create or update an organization secret. You must authenticate using an access token with the admin:org scope to use this endpoint. GitHub Apps must have the dependabot_secrets organization permission to use this endpoint.

", + "bodyParameters": [ + { + "type": "array of integers", + "description": "

Required. An array of repository ids that can access the organization secret. You can only provide a list of repository ids when the visibility is set to selected. You can add and remove individual repositories using the Set selected repositories for an organization secret and Remove selected repository from an organization secret endpoints.

", + "items": { + "type": "integer" + }, + "name": "selected_repository_ids", + "in": "body", + "rawType": "array", + "rawDescription": "An array of repository ids that can access the organization secret. You can only provide a list of repository ids when the `visibility` is set to `selected`. You can add and remove individual repositories using the [Set selected repositories for an organization secret](https://docs.github.com/rest/reference/dependabot#set-selected-repositories-for-an-organization-secret) and [Remove selected repository from an organization secret](https://docs.github.com/rest/reference/dependabot#remove-selected-repository-from-an-organization-secret) endpoints.", + "childParamsGroups": [] + } + ] + }, + { + "verb": "put", + "requestPath": "/orgs/{org}/dependabot/secrets/{secret_name}/repositories/{repository_id}", + "serverUrl": "https://api.github.com", + "parameters": [ + { + "name": "org", + "in": "path", + "required": true, + "schema": { + "type": "string" + }, + "descriptionHTML": "" + }, + { + "name": "secret_name", + "description": "secret_name parameter", + "in": "path", + "required": true, + "schema": { + "type": "string" + }, + "descriptionHTML": "

secret_name parameter

" + }, + { + "name": "repository_id", + "in": "path", + "required": true, + "schema": { + "type": "integer" + }, + "descriptionHTML": "" + } + ], + "x-codeSamples": [ + { + "lang": "Shell", + "source": "curl \\\n -X PUT \\\n -H \"Accept: application/vnd.github.v3+json\" \\\n https://api.github.com/orgs/ORG/dependabot/secrets/SECRET_NAME/repositories/42", + "html": "
curl \\\n  -X PUT \\\n  -H \"Accept: application/vnd.github.v3+json\" \\\n  https://api.github.com/orgs/ORG/dependabot/secrets/SECRET_NAME/repositories/42
" + }, + { + "lang": "JavaScript", + "source": "await octokit.request('PUT /orgs/{org}/dependabot/secrets/{secret_name}/repositories/{repository_id}', {\n org: 'org',\n secret_name: 'secret_name',\n repository_id: 42\n})", + "html": "
await octokit.request('PUT /orgs/{org}/dependabot/secrets/{secret_name}/repositories/{repository_id}', {\n  org: 'org',\n  secret_name: 'secret_name',\n  repository_id: 42\n})\n
" + } + ], + "summary": "Add selected repository to an organization secret", + "description": "Adds a repository to an organization secret when the `visibility` for repository access is set to `selected`. The visibility is set when you [Create or update an organization secret](https://docs.github.com/rest/reference/dependabot#create-or-update-an-organization-secret). You must authenticate using an access token with the `admin:org` scope to use this endpoint. GitHub Apps must have the `dependabot_secrets` organization permission to use this endpoint.", + "tags": [ + "dependabot" + ], + "operationId": "dependabot/add-selected-repo-to-org-secret", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/reference/dependabot#add-selected-repository-to-an-organization-secret" + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "category": "dependabot", + "subcategory": "secrets" + }, + "slug": "add-selected-repository-to-an-organization-secret", + "category": "dependabot", + "categoryLabel": "Dependabot", + "subcategory": "secrets", + "subcategoryLabel": "Secrets", + "notes": [], + "responses": [ + { + "httpStatusCode": "204", + "httpStatusMessage": "No Content", + "description": "No Content when repository was added to the selected list" + }, + { + "httpStatusCode": "409", + "httpStatusMessage": "Conflict", + "description": "Conflict when visibility type is not set to selected" + } + ], + "bodyParameters": [], + "descriptionHTML": "

Adds a repository to an organization secret when the visibility for repository access is set to selected. The visibility is set when you Create or update an organization secret. You must authenticate using an access token with the admin:org scope to use this endpoint. GitHub Apps must have the dependabot_secrets organization permission to use this endpoint.

" + }, + { + "verb": "delete", + "requestPath": "/orgs/{org}/dependabot/secrets/{secret_name}/repositories/{repository_id}", + "serverUrl": "https://api.github.com", + "parameters": [ + { + "name": "org", + "in": "path", + "required": true, + "schema": { + "type": "string" + }, + "descriptionHTML": "" + }, + { + "name": "secret_name", + "description": "secret_name parameter", + "in": "path", + "required": true, + "schema": { + "type": "string" + }, + "descriptionHTML": "

secret_name parameter

" + }, + { + "name": "repository_id", + "in": "path", + "required": true, + "schema": { + "type": "integer" + }, + "descriptionHTML": "" + } + ], + "x-codeSamples": [ + { + "lang": "Shell", + "source": "curl \\\n -X DELETE \\\n -H \"Accept: application/vnd.github.v3+json\" \\\n https://api.github.com/orgs/ORG/dependabot/secrets/SECRET_NAME/repositories/42", + "html": "
curl \\\n  -X DELETE \\\n  -H \"Accept: application/vnd.github.v3+json\" \\\n  https://api.github.com/orgs/ORG/dependabot/secrets/SECRET_NAME/repositories/42
" + }, + { + "lang": "JavaScript", + "source": "await octokit.request('DELETE /orgs/{org}/dependabot/secrets/{secret_name}/repositories/{repository_id}', {\n org: 'org',\n secret_name: 'secret_name',\n repository_id: 42\n})", + "html": "
await octokit.request('DELETE /orgs/{org}/dependabot/secrets/{secret_name}/repositories/{repository_id}', {\n  org: 'org',\n  secret_name: 'secret_name',\n  repository_id: 42\n})\n
" + } + ], + "summary": "Remove selected repository from an organization secret", + "description": "Removes a repository from an organization secret when the `visibility` for repository access is set to `selected`. The visibility is set when you [Create or update an organization secret](https://docs.github.com/rest/reference/dependabot#create-or-update-an-organization-secret). You must authenticate using an access token with the `admin:org` scope to use this endpoint. GitHub Apps must have the `dependabot_secrets` organization permission to use this endpoint.", + "tags": [ + "dependabot" + ], + "operationId": "dependabot/remove-selected-repo-from-org-secret", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/reference/dependabot#remove-selected-repository-from-an-organization-secret" + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "category": "dependabot", + "subcategory": "secrets" + }, + "slug": "remove-selected-repository-from-an-organization-secret", + "category": "dependabot", + "categoryLabel": "Dependabot", + "subcategory": "secrets", + "subcategoryLabel": "Secrets", + "notes": [], + "responses": [ + { + "httpStatusCode": "204", + "httpStatusMessage": "No Content", + "description": "Response when repository was removed from the selected list" + }, + { + "httpStatusCode": "409", + "httpStatusMessage": "Conflict", + "description": "Conflict when visibility type not set to selected" + } + ], + "bodyParameters": [], + "descriptionHTML": "

Removes a repository from an organization secret when the visibility for repository access is set to selected. The visibility is set when you Create or update an organization secret. You must authenticate using an access token with the admin:org scope to use this endpoint. GitHub Apps must have the dependabot_secrets organization permission to use this endpoint.

" + }, { "verb": "get", "requestPath": "/orgs/{org}/events", @@ -55844,6 +56755,460 @@ } ] }, + { + "verb": "get", + "requestPath": "/repos/{owner}/{repo}/dependabot/secrets", + "serverUrl": "https://api.github.com", + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + }, + "descriptionHTML": "" + }, + { + "name": "repo", + "in": "path", + "required": true, + "schema": { + "type": "string" + }, + "descriptionHTML": "" + }, + { + "name": "per_page", + "description": "Results per page (max 100)", + "in": "query", + "schema": { + "type": "integer", + "default": 30 + }, + "descriptionHTML": "

Results per page (max 100)

" + }, + { + "name": "page", + "description": "Page number of the results to fetch.", + "in": "query", + "schema": { + "type": "integer", + "default": 1 + }, + "descriptionHTML": "

Page number of the results to fetch.

" + } + ], + "x-codeSamples": [ + { + "lang": "Shell", + "source": "curl \\\n -H \"Accept: application/vnd.github.v3+json\" \\\n https://api.github.com/repos/octocat/hello-world/dependabot/secrets", + "html": "
curl \\\n  -H \"Accept: application/vnd.github.v3+json\" \\\n  https://api.github.com/repos/octocat/hello-world/dependabot/secrets
" + }, + { + "lang": "JavaScript", + "source": "await octokit.request('GET /repos/{owner}/{repo}/dependabot/secrets', {\n owner: 'octocat',\n repo: 'hello-world'\n})", + "html": "
await octokit.request('GET /repos/{owner}/{repo}/dependabot/secrets', {\n  owner: 'octocat',\n  repo: 'hello-world'\n})\n
" + } + ], + "summary": "List repository secrets", + "description": "Lists all secrets available in a repository without revealing their encrypted values. You must authenticate using an access token with the `repo` scope to use this endpoint. GitHub Apps must have the `dependabot_secrets` repository permission to use this endpoint.", + "tags": [ + "dependabot" + ], + "operationId": "dependabot/list-repo-secrets", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/reference/dependabot#list-repository-secrets" + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "category": "dependabot", + "subcategory": "secrets" + }, + "slug": "list-repository-secrets", + "category": "dependabot", + "categoryLabel": "Dependabot", + "subcategory": "secrets", + "subcategoryLabel": "Secrets", + "notes": [], + "bodyParameters": [], + "descriptionHTML": "

Lists all secrets available in a repository without revealing their encrypted values. You must authenticate using an access token with the repo scope to use this endpoint. GitHub Apps must have the dependabot_secrets repository permission to use this endpoint.

", + "responses": [ + { + "httpStatusCode": "200", + "httpStatusMessage": "OK", + "description": "Response", + "payload": "
{\n  \"total_count\": 2,\n  \"secrets\": [\n    {\n      \"name\": \"AZURE_DEVOPS_PAT\",\n      \"created_at\": \"2019-08-10T14:59:22Z\",\n      \"updated_at\": \"2020-01-10T14:59:22Z\"\n    },\n    {\n      \"name\": \"MY_ARTIFACTORY_PASSWORD\",\n      \"created_at\": \"2020-01-10T10:59:22Z\",\n      \"updated_at\": \"2020-01-11T11:59:22Z\"\n    }\n  ]\n}\n
" + } + ] + }, + { + "verb": "get", + "requestPath": "/repos/{owner}/{repo}/dependabot/secrets/public-key", + "serverUrl": "https://api.github.com", + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + }, + "descriptionHTML": "" + }, + { + "name": "repo", + "in": "path", + "required": true, + "schema": { + "type": "string" + }, + "descriptionHTML": "" + } + ], + "x-codeSamples": [ + { + "lang": "Shell", + "source": "curl \\\n -H \"Accept: application/vnd.github.v3+json\" \\\n https://api.github.com/repos/octocat/hello-world/dependabot/secrets/public-key", + "html": "
curl \\\n  -H \"Accept: application/vnd.github.v3+json\" \\\n  https://api.github.com/repos/octocat/hello-world/dependabot/secrets/public-key
" + }, + { + "lang": "JavaScript", + "source": "await octokit.request('GET /repos/{owner}/{repo}/dependabot/secrets/public-key', {\n owner: 'octocat',\n repo: 'hello-world'\n})", + "html": "
await octokit.request('GET /repos/{owner}/{repo}/dependabot/secrets/public-key', {\n  owner: 'octocat',\n  repo: 'hello-world'\n})\n
" + } + ], + "summary": "Get a repository public key", + "description": "Gets your public key, which you need to encrypt secrets. You need to encrypt a secret before you can create or update secrets. Anyone with read access to the repository can use this endpoint. If the repository is private you must use an access token with the `repo` scope. GitHub Apps must have the `dependabot_secrets` repository permission to use this endpoint.", + "tags": [ + "dependabot" + ], + "operationId": "dependabot/get-repo-public-key", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/reference/dependabot#get-a-repository-public-key" + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "category": "dependabot", + "subcategory": "secrets" + }, + "slug": "get-a-repository-public-key", + "category": "dependabot", + "categoryLabel": "Dependabot", + "subcategory": "secrets", + "subcategoryLabel": "Secrets", + "notes": [], + "bodyParameters": [], + "descriptionHTML": "

Gets your public key, which you need to encrypt secrets. You need to encrypt a secret before you can create or update secrets. Anyone with read access to the repository can use this endpoint. If the repository is private you must use an access token with the repo scope. GitHub Apps must have the dependabot_secrets repository permission to use this endpoint.

", + "responses": [ + { + "httpStatusCode": "200", + "httpStatusMessage": "OK", + "description": "Response", + "payload": "
{\n  \"key_id\": \"012345678912345678\",\n  \"key\": \"2Sg8iYjAxxmI2LvUXpJjkYrMxURPc8r+dB7TJyvv1234\"\n}\n
" + } + ] + }, + { + "verb": "get", + "requestPath": "/repos/{owner}/{repo}/dependabot/secrets/{secret_name}", + "serverUrl": "https://api.github.com", + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + }, + "descriptionHTML": "" + }, + { + "name": "repo", + "in": "path", + "required": true, + "schema": { + "type": "string" + }, + "descriptionHTML": "" + }, + { + "name": "secret_name", + "description": "secret_name parameter", + "in": "path", + "required": true, + "schema": { + "type": "string" + }, + "descriptionHTML": "

secret_name parameter

" + } + ], + "x-codeSamples": [ + { + "lang": "Shell", + "source": "curl \\\n -H \"Accept: application/vnd.github.v3+json\" \\\n https://api.github.com/repos/octocat/hello-world/dependabot/secrets/SECRET_NAME", + "html": "
curl \\\n  -H \"Accept: application/vnd.github.v3+json\" \\\n  https://api.github.com/repos/octocat/hello-world/dependabot/secrets/SECRET_NAME
" + }, + { + "lang": "JavaScript", + "source": "await octokit.request('GET /repos/{owner}/{repo}/dependabot/secrets/{secret_name}', {\n owner: 'octocat',\n repo: 'hello-world',\n secret_name: 'secret_name'\n})", + "html": "
await octokit.request('GET /repos/{owner}/{repo}/dependabot/secrets/{secret_name}', {\n  owner: 'octocat',\n  repo: 'hello-world',\n  secret_name: 'secret_name'\n})\n
" + } + ], + "summary": "Get a repository secret", + "description": "Gets a single repository secret without revealing its encrypted value. You must authenticate using an access token with the `repo` scope to use this endpoint. GitHub Apps must have the `dependabot_secrets` repository permission to use this endpoint.", + "tags": [ + "dependabot" + ], + "operationId": "dependabot/get-repo-secret", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/reference/dependabot#get-a-repository-secret" + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "category": "dependabot", + "subcategory": "secrets" + }, + "slug": "get-a-repository-secret", + "category": "dependabot", + "categoryLabel": "Dependabot", + "subcategory": "secrets", + "subcategoryLabel": "Secrets", + "notes": [], + "bodyParameters": [], + "descriptionHTML": "

Gets a single repository secret without revealing its encrypted value. You must authenticate using an access token with the repo scope to use this endpoint. GitHub Apps must have the dependabot_secrets repository permission to use this endpoint.

", + "responses": [ + { + "httpStatusCode": "200", + "httpStatusMessage": "OK", + "description": "Response", + "payload": "
{\n  \"name\": \"MY_ARTIFACTORY_PASSWORD\",\n  \"created_at\": \"2019-08-10T14:59:22Z\",\n  \"updated_at\": \"2020-01-10T14:59:22Z\"\n}\n
" + } + ] + }, + { + "verb": "put", + "requestPath": "/repos/{owner}/{repo}/dependabot/secrets/{secret_name}", + "serverUrl": "https://api.github.com", + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + }, + "descriptionHTML": "" + }, + { + "name": "repo", + "in": "path", + "required": true, + "schema": { + "type": "string" + }, + "descriptionHTML": "" + }, + { + "name": "secret_name", + "description": "secret_name parameter", + "in": "path", + "required": true, + "schema": { + "type": "string" + }, + "descriptionHTML": "

secret_name parameter

" + } + ], + "x-codeSamples": [ + { + "lang": "Shell", + "source": "curl \\\n -X PUT \\\n -H \"Accept: application/vnd.github.v3+json\" \\\n https://api.github.com/repos/octocat/hello-world/dependabot/secrets/SECRET_NAME \\\n -d '{\"encrypted_value\":\"encrypted_value\"}'", + "html": "
curl \\\n  -X PUT \\\n  -H \"Accept: application/vnd.github.v3+json\" \\\n  https://api.github.com/repos/octocat/hello-world/dependabot/secrets/SECRET_NAME \\\n  -d '{\"encrypted_value\":\"encrypted_value\"}'
" + }, + { + "lang": "JavaScript", + "source": "await octokit.request('PUT /repos/{owner}/{repo}/dependabot/secrets/{secret_name}', {\n owner: 'octocat',\n repo: 'hello-world',\n secret_name: 'secret_name',\n encrypted_value: 'encrypted_value'\n})", + "html": "
await octokit.request('PUT /repos/{owner}/{repo}/dependabot/secrets/{secret_name}', {\n  owner: 'octocat',\n  repo: 'hello-world',\n  secret_name: 'secret_name',\n  encrypted_value: 'encrypted_value'\n})\n
" + } + ], + "summary": "Create or update a repository secret", + "description": "Creates or updates a repository secret with an encrypted value. Encrypt your secret using\n[LibSodium](https://libsodium.gitbook.io/doc/bindings_for_other_languages). You must authenticate using an access\ntoken with the `repo` scope to use this endpoint. GitHub Apps must have the `dependabot_secrets` repository\npermission to use this endpoint.\n\n#### Example encrypting a secret using Node.js\n\nEncrypt your secret using the [tweetsodium](https://github.com/github/tweetsodium) library.\n\n```\nconst sodium = require('tweetsodium');\n\nconst key = \"base64-encoded-public-key\";\nconst value = \"plain-text-secret\";\n\n// Convert the message and key to Uint8Array's (Buffer implements that interface)\nconst messageBytes = Buffer.from(value);\nconst keyBytes = Buffer.from(key, 'base64');\n\n// Encrypt using LibSodium.\nconst encryptedBytes = sodium.seal(messageBytes, keyBytes);\n\n// Base64 the encrypted secret\nconst encrypted = Buffer.from(encryptedBytes).toString('base64');\n\nconsole.log(encrypted);\n```\n\n\n#### Example encrypting a secret using Python\n\nEncrypt your secret using [pynacl](https://pynacl.readthedocs.io/en/stable/public/#nacl-public-sealedbox) with Python 3.\n\n```\nfrom base64 import b64encode\nfrom nacl import encoding, public\n\ndef encrypt(public_key: str, secret_value: str) -> str:\n \"\"\"Encrypt a Unicode string using the public key.\"\"\"\n public_key = public.PublicKey(public_key.encode(\"utf-8\"), encoding.Base64Encoder())\n sealed_box = public.SealedBox(public_key)\n encrypted = sealed_box.encrypt(secret_value.encode(\"utf-8\"))\n return b64encode(encrypted).decode(\"utf-8\")\n```\n\n#### Example encrypting a secret using C#\n\nEncrypt your secret using the [Sodium.Core](https://www.nuget.org/packages/Sodium.Core/) package.\n\n```\nvar secretValue = System.Text.Encoding.UTF8.GetBytes(\"mySecret\");\nvar publicKey = Convert.FromBase64String(\"2Sg8iYjAxxmI2LvUXpJjkYrMxURPc8r+dB7TJyvvcCU=\");\n\nvar sealedPublicKeyBox = Sodium.SealedPublicKeyBox.Create(secretValue, publicKey);\n\nConsole.WriteLine(Convert.ToBase64String(sealedPublicKeyBox));\n```\n\n#### Example encrypting a secret using Ruby\n\nEncrypt your secret using the [rbnacl](https://github.com/RubyCrypto/rbnacl) gem.\n\n```ruby\nrequire \"rbnacl\"\nrequire \"base64\"\n\nkey = Base64.decode64(\"+ZYvJDZMHUfBkJdyq5Zm9SKqeuBQ4sj+6sfjlH4CgG0=\")\npublic_key = RbNaCl::PublicKey.new(key)\n\nbox = RbNaCl::Boxes::Sealed.from_public_key(public_key)\nencrypted_secret = box.encrypt(\"my_secret\")\n\n# Print the base64 encoded secret\nputs Base64.strict_encode64(encrypted_secret)\n```", + "tags": [ + "dependabot" + ], + "operationId": "dependabot/create-or-update-repo-secret", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/reference/dependabot#create-or-update-a-repository-secret" + }, + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "encrypted_value": { + "type": "string", + "description": "

Value for your secret, encrypted with LibSodium using the public key retrieved from the Get a repository public key endpoint.

", + "pattern": "^(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=|[A-Za-z0-9+/]{4})$", + "name": "encrypted_value", + "in": "body", + "rawType": "string", + "rawDescription": "Value for your secret, encrypted with [LibSodium](https://libsodium.gitbook.io/doc/bindings_for_other_languages) using the public key retrieved from the [Get a repository public key](https://docs.github.com/rest/reference/dependabot#get-a-repository-public-key) endpoint.", + "childParamsGroups": [] + }, + "key_id": { + "type": "string", + "description": "

ID of the key you used to encrypt the secret.

", + "name": "key_id", + "in": "body", + "rawType": "string", + "rawDescription": "ID of the key you used to encrypt the secret.", + "childParamsGroups": [] + } + } + }, + "example": { + "encrypted_value": "c2VjcmV0", + "key_id": "012345678912345678" + } + } + } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "category": "dependabot", + "subcategory": "secrets" + }, + "slug": "create-or-update-a-repository-secret", + "category": "dependabot", + "categoryLabel": "Dependabot", + "subcategory": "secrets", + "subcategoryLabel": "Secrets", + "contentType": "application/json", + "notes": [], + "responses": [ + { + "httpStatusCode": "201", + "httpStatusMessage": "Created", + "description": "Response when creating a secret" + }, + { + "httpStatusCode": "204", + "httpStatusMessage": "No Content", + "description": "Response when updating a secret" + } + ], + "descriptionHTML": "

Creates or updates a repository secret with an encrypted value. Encrypt your secret using\nLibSodium. You must authenticate using an access\ntoken with the repo scope to use this endpoint. GitHub Apps must have the dependabot_secrets repository\npermission to use this endpoint.

\n

Example encrypting a secret using Node.js

\n

Encrypt your secret using the tweetsodium library.

\n
const sodium = require('tweetsodium');\n\nconst key = \"base64-encoded-public-key\";\nconst value = \"plain-text-secret\";\n\n// Convert the message and key to Uint8Array's (Buffer implements that interface)\nconst messageBytes = Buffer.from(value);\nconst keyBytes = Buffer.from(key, 'base64');\n\n// Encrypt using LibSodium.\nconst encryptedBytes = sodium.seal(messageBytes, keyBytes);\n\n// Base64 the encrypted secret\nconst encrypted = Buffer.from(encryptedBytes).toString('base64');\n\nconsole.log(encrypted);\n
\n

Example encrypting a secret using Python

\n

Encrypt your secret using pynacl with Python 3.

\n
from base64 import b64encode\nfrom nacl import encoding, public\n\ndef encrypt(public_key: str, secret_value: str) -> str:\n  \"\"\"Encrypt a Unicode string using the public key.\"\"\"\n  public_key = public.PublicKey(public_key.encode(\"utf-8\"), encoding.Base64Encoder())\n  sealed_box = public.SealedBox(public_key)\n  encrypted = sealed_box.encrypt(secret_value.encode(\"utf-8\"))\n  return b64encode(encrypted).decode(\"utf-8\")\n
\n

Example encrypting a secret using C#

\n

Encrypt your secret using the Sodium.Core package.

\n
var secretValue = System.Text.Encoding.UTF8.GetBytes(\"mySecret\");\nvar publicKey = Convert.FromBase64String(\"2Sg8iYjAxxmI2LvUXpJjkYrMxURPc8r+dB7TJyvvcCU=\");\n\nvar sealedPublicKeyBox = Sodium.SealedPublicKeyBox.Create(secretValue, publicKey);\n\nConsole.WriteLine(Convert.ToBase64String(sealedPublicKeyBox));\n
\n

Example encrypting a secret using Ruby

\n

Encrypt your secret using the rbnacl gem.

\n
require \"rbnacl\"\nrequire \"base64\"\n\nkey = Base64.decode64(\"+ZYvJDZMHUfBkJdyq5Zm9SKqeuBQ4sj+6sfjlH4CgG0=\")\npublic_key = RbNaCl::PublicKey.new(key)\n\nbox = RbNaCl::Boxes::Sealed.from_public_key(public_key)\nencrypted_secret = box.encrypt(\"my_secret\")\n\n# Print the base64 encoded secret\nputs Base64.strict_encode64(encrypted_secret)\n
", + "bodyParameters": [ + { + "type": "string", + "description": "

Value for your secret, encrypted with LibSodium using the public key retrieved from the Get a repository public key endpoint.

", + "pattern": "^(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=|[A-Za-z0-9+/]{4})$", + "name": "encrypted_value", + "in": "body", + "rawType": "string", + "rawDescription": "Value for your secret, encrypted with [LibSodium](https://libsodium.gitbook.io/doc/bindings_for_other_languages) using the public key retrieved from the [Get a repository public key](https://docs.github.com/rest/reference/dependabot#get-a-repository-public-key) endpoint.", + "childParamsGroups": [] + }, + { + "type": "string", + "description": "

ID of the key you used to encrypt the secret.

", + "name": "key_id", + "in": "body", + "rawType": "string", + "rawDescription": "ID of the key you used to encrypt the secret.", + "childParamsGroups": [] + } + ] + }, + { + "verb": "delete", + "requestPath": "/repos/{owner}/{repo}/dependabot/secrets/{secret_name}", + "serverUrl": "https://api.github.com", + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + }, + "descriptionHTML": "" + }, + { + "name": "repo", + "in": "path", + "required": true, + "schema": { + "type": "string" + }, + "descriptionHTML": "" + }, + { + "name": "secret_name", + "description": "secret_name parameter", + "in": "path", + "required": true, + "schema": { + "type": "string" + }, + "descriptionHTML": "

secret_name parameter

" + } + ], + "x-codeSamples": [ + { + "lang": "Shell", + "source": "curl \\\n -X DELETE \\\n -H \"Accept: application/vnd.github.v3+json\" \\\n https://api.github.com/repos/octocat/hello-world/dependabot/secrets/SECRET_NAME", + "html": "
curl \\\n  -X DELETE \\\n  -H \"Accept: application/vnd.github.v3+json\" \\\n  https://api.github.com/repos/octocat/hello-world/dependabot/secrets/SECRET_NAME
" + }, + { + "lang": "JavaScript", + "source": "await octokit.request('DELETE /repos/{owner}/{repo}/dependabot/secrets/{secret_name}', {\n owner: 'octocat',\n repo: 'hello-world',\n secret_name: 'secret_name'\n})", + "html": "
await octokit.request('DELETE /repos/{owner}/{repo}/dependabot/secrets/{secret_name}', {\n  owner: 'octocat',\n  repo: 'hello-world',\n  secret_name: 'secret_name'\n})\n
" + } + ], + "summary": "Delete a repository secret", + "description": "Deletes a secret in a repository using the secret name. You must authenticate using an access token with the `repo` scope to use this endpoint. GitHub Apps must have the `dependabot_secrets` repository permission to use this endpoint.", + "tags": [ + "dependabot" + ], + "operationId": "dependabot/delete-repo-secret", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/reference/dependabot#delete-a-repository-secret" + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "category": "dependabot", + "subcategory": "secrets" + }, + "slug": "delete-a-repository-secret", + "category": "dependabot", + "categoryLabel": "Dependabot", + "subcategory": "secrets", + "subcategoryLabel": "Secrets", + "notes": [], + "responses": [ + { + "httpStatusCode": "204", + "httpStatusMessage": "No Content", + "description": "Response" + } + ], + "bodyParameters": [], + "descriptionHTML": "

Deletes a secret in a repository using the secret name. You must authenticate using an access token with the repo scope to use this endpoint. GitHub Apps must have the dependabot_secrets repository permission to use this endpoint.

" + }, { "verb": "get", "requestPath": "/repos/{owner}/{repo}/deployments", diff --git a/lib/rest/static/decorated/github.ae.json b/lib/rest/static/decorated/github.ae.json index 1621e4368a..7d89ca391b 100644 --- a/lib/rest/static/decorated/github.ae.json +++ b/lib/rest/static/decorated/github.ae.json @@ -12015,6 +12015,77 @@ } ] }, + { + "verb": "get", + "requestPath": "/organizations/{org}/team/{team_slug}/external-groups", + "serverUrl": "https://{hostname}/api/v3", + "parameters": [ + { + "name": "org", + "in": "path", + "required": true, + "schema": { + "type": "string" + }, + "descriptionHTML": "" + }, + { + "name": "team_slug", + "description": "team_slug parameter", + "in": "path", + "required": true, + "schema": { + "type": "string" + }, + "descriptionHTML": "

team_slug parameter

" + } + ], + "x-codeSamples": [ + { + "lang": "Shell", + "source": "curl \\\n -H \"Accept: application/vnd.github.v3+json\" \\\n https://{hostname}/api/v3/organizations/ORG/team/TEAM_SLUG/external-groups", + "html": "
curl \\\n  -H \"Accept: application/vnd.github.v3+json\" \\\n  https://{hostname}/api/v3/organizations/ORG/team/TEAM_SLUG/external-groups
" + }, + { + "lang": "JavaScript", + "source": "await octokit.request('GET /organizations/{org}/team/{team_slug}/external-groups', {\n org: 'org',\n team_slug: 'team_slug'\n})", + "html": "
await octokit.request('GET /organizations/{org}/team/{team_slug}/external-groups', {\n  org: 'org',\n  team_slug: 'team_slug'\n})\n
" + } + ], + "summary": "List a connection between an external group and a team", + "description": "Lists a connection between a team and an external group.\n\nYou can manage team membership with your identity provider using Enterprise Managed Users for GitHub Enterprise Cloud. For more information, see \"[GitHub's products](https://docs.github.com/github-ae@latest/github/getting-started-with-github/githubs-products)\" in the GitHub Help documentation.", + "tags": [ + "teams" + ], + "operationId": "teams/list-linked-external-idp-groups-to-team-for-org", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/github-ae@latest/rest/reference/teams#list-external-idp-group-team-connection" + }, + "x-github": { + "githubCloudOnly": true, + "enabledForGitHubApps": true, + "previews": [], + "category": "teams", + "subcategory": "external-groups" + }, + "slug": "list-a-connection-between-an-external-group-and-a-team", + "category": "teams", + "categoryLabel": "Teams", + "subcategory": "external-groups", + "subcategoryLabel": "External groups", + "notes": [], + "bodyParameters": [], + "descriptionHTML": "

Lists a connection between a team and an external group.

\n

You can manage team membership with your identity provider using Enterprise Managed Users for GitHub Enterprise Cloud. For more information, see \"GitHub's products\" in the GitHub Help documentation.

", + "responses": [ + { + "httpStatusCode": "200", + "httpStatusMessage": "OK", + "description": "Response", + "payload": "
{\n  \"groups\": [\n    {\n      \"group_id\": \"123\",\n      \"group_name\": \"Octocat admins\",\n      \"updated_at\": \"2021-01-24T11:31:04-06:00\"\n    },\n    {\n      \"group_id\": \"456\",\n      \"group_name\": \"Octocat docs members\",\n      \"updated_at\": \"2021-03-24T11:31:04-06:00\"\n    }\n  ]\n}\n
" + } + ] + }, { "verb": "get", "requestPath": "/orgs/{org}", From 34fe90adce5fa73a1702959914f2d5735970f7d5 Mon Sep 17 00:00:00 2001 From: Aaron Wilson <1125196+aarontwf@users.noreply.github.com> Date: Tue, 11 Jan 2022 10:46:02 +1300 Subject: [PATCH 27/68] Update release webhook short description API link --- data/reusables/webhooks/release_short_desc.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/data/reusables/webhooks/release_short_desc.md b/data/reusables/webhooks/release_short_desc.md index a8d506f409..ce963fac06 100644 --- a/data/reusables/webhooks/release_short_desc.md +++ b/data/reusables/webhooks/release_short_desc.md @@ -1 +1 @@ -Activity related to a release. {% data reusables.webhooks.action_type_desc %} For more information, see the "[releases](/rest/reference/repos#releases)" REST API. +Activity related to a release. {% data reusables.webhooks.action_type_desc %} For more information, see the "[releases](/rest/reference/releases)" REST API. From 7ac605741ccb8dbefbf72b49ad876ed11edbcced Mon Sep 17 00:00:00 2001 From: Andre Kolodochka <59625655+andrekolodochka@users.noreply.github.com> Date: Tue, 11 Jan 2022 09:15:24 +1100 Subject: [PATCH 28/68] Change `can` to `must` for SCIM in EMUs SCIM user provisioning in EMUs is not an option --- ...onfiguring-scim-provisioning-for-enterprise-managed-users.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/content/admin/authentication/managing-your-enterprise-users-with-your-identity-provider/configuring-scim-provisioning-for-enterprise-managed-users.md b/content/admin/authentication/managing-your-enterprise-users-with-your-identity-provider/configuring-scim-provisioning-for-enterprise-managed-users.md index a310edc239..b88044ee86 100644 --- a/content/admin/authentication/managing-your-enterprise-users-with-your-identity-provider/configuring-scim-provisioning-for-enterprise-managed-users.md +++ b/content/admin/authentication/managing-your-enterprise-users-with-your-identity-provider/configuring-scim-provisioning-for-enterprise-managed-users.md @@ -14,7 +14,7 @@ topics: ## About provisioning for {% data variables.product.prodname_emus %} -You can configure provisioning for {% data variables.product.prodname_emus %} to create, manage, and deactivate user accounts for your enterprise members. When you configure provisioning for {% data variables.product.prodname_emus %}, users assigned to the {% data variables.product.prodname_emu_idp_application %} application in your identity provider are provisioned as new user accounts on {% data variables.product.prodname_dotcom %} via SCIM, and the users are added to your enterprise. +You must configure provisioning for {% data variables.product.prodname_emus %} to create, manage, and deactivate user accounts for your enterprise members. When you configure provisioning for {% data variables.product.prodname_emus %}, users assigned to the {% data variables.product.prodname_emu_idp_application %} application in your identity provider are provisioned as new user accounts on {% data variables.product.prodname_dotcom %} via SCIM, and the users are added to your enterprise. When you update information associated with a user's identity on your IdP, your IdP will update the user's account on GitHub.com. When you unassign the user from the {% data variables.product.prodname_emu_idp_application %} application or deactivate a user's account on your IdP, your IdP will communicate with {% data variables.product.prodname_dotcom %} to invalidate any SAML sessions and disable the member's account. The disabled account's information is maintained and their username is changed to a hash of their original username with the short code appended. If you reassign a user to the {% data variables.product.prodname_emu_idp_application %} application or reactivate their account on your IdP, the {% data variables.product.prodname_managed_user %} account on {% data variables.product.prodname_dotcom %} will be reactivated and username restored. From fcc9b904dd28b50770314cce9932f030df6e4409 Mon Sep 17 00:00:00 2001 From: Robert Sese Date: Mon, 10 Jan 2022 16:47:46 -0600 Subject: [PATCH 29/68] Comment on why we do manual email validation (#24192) * Comment on why we do manual email validation * One 'do' --- components/page-footer/Survey.tsx | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/components/page-footer/Survey.tsx b/components/page-footer/Survey.tsx index 8033bb11d2..7d62241f31 100644 --- a/components/page-footer/Survey.tsx +++ b/components/page-footer/Survey.tsx @@ -34,6 +34,10 @@ export const Survey = () => { } } + // Though we set `type="email"` on the email address input which gives us browser + // validation of the field, that has accessibility issues (e.g. some screen + // readers won't read the error message) so we need to do manual validation + // ourselves. function handleEmailInputChange() { const emailRegex = /[^@\s.][^@\s]*@\[?[a-z0-9.-]+\]?/i const surveyEmail = getFormData()?.get('survey-email')?.toString() From 3d2a641f6f0cb37f2b6291d71ea1d6bbd881d07c Mon Sep 17 00:00:00 2001 From: hubwriter Date: Tue, 11 Jan 2022 01:17:08 +0000 Subject: [PATCH 30/68] Adding a Codespaces policy to constrain available machine types (#23814) Co-authored-by: Mike McDonald <2575327+asciimike@users.noreply.github.com> Co-authored-by: Steve Guntrip <12534592+stevecat@users.noreply.github.com> --- .../codespaces/add-constraint-dropdown.png | Bin 0 -> 93978 bytes .../codespaces/change-machine-type-choice.png | Bin 0 -> 76064 bytes .../codespaces/choose-custom-machine-type.png | Bin 31396 -> 116098 bytes .../codespaces/edit-machine-constraint.png | Bin 0 -> 34857 bytes .../machine-types-limited-choice.png | Bin 0 -> 99479 bytes .../help/codespaces/new-codespace-button.png | Bin 155258 -> 244965 bytes .../images/help/codespaces/policy-delete.png | Bin 0 -> 25743 bytes assets/images/help/codespaces/policy-edit.png | Bin 0 -> 40891 bytes .../help/codespaces/policy-select-repos.png | Bin 0 -> 110448 bytes .../codespaces-policy-sidebar.png | Bin 0 -> 10808 bytes .../organizations/codespaces-sidebar-tab.png | Bin 10091 -> 13956 bytes .../about-billing-for-codespaces.md | 6 ++ ...managing-spending-limits-for-codespaces.md | 5 + .../understanding-billing-for-codespaces.md | 4 + ...ing-the-machine-type-for-your-codespace.md | 9 +- .../creating-a-codespace.md | 7 +- .../using-codespaces-in-visual-studio-code.md | 32 +++--- ...abling-codespaces-for-your-organization.md | 2 +- .../index.md | 1 + ...ing-for-codespaces-in-your-organization.md | 2 + ...ository-and-organization-for-codespaces.md | 2 +- ...ccess-for-your-organizations-codespaces.md | 2 +- .../restricting-access-to-machine-types.md | 94 ++++++++++++++++++ ...organizations-audit-logs-for-codespaces.md | 2 +- ...g-encrypted-secrets-for-your-codespaces.md | 2 +- ...g-repository-access-for-your-codespaces.md | 2 +- ...ewing-your-security-logs-for-codespaces.md | 2 +- .../index.md | 1 + ...um-specification-for-codespace-machines.md | 53 ++++++++++ .../codespaces-machine-type-availability.md | 5 + .../creating-a-codespace-in-vscode.md | 4 +- 31 files changed, 211 insertions(+), 26 deletions(-) create mode 100644 assets/images/help/codespaces/add-constraint-dropdown.png create mode 100644 assets/images/help/codespaces/change-machine-type-choice.png create mode 100644 assets/images/help/codespaces/edit-machine-constraint.png create mode 100644 assets/images/help/codespaces/machine-types-limited-choice.png create mode 100644 assets/images/help/codespaces/policy-delete.png create mode 100644 assets/images/help/codespaces/policy-edit.png create mode 100644 assets/images/help/codespaces/policy-select-repos.png create mode 100644 assets/images/help/organizations/codespaces-policy-sidebar.png create mode 100644 content/codespaces/managing-codespaces-for-your-organization/restricting-access-to-machine-types.md create mode 100644 content/codespaces/setting-up-your-project-for-codespaces/setting-a-minimum-specification-for-codespace-machines.md create mode 100644 data/reusables/codespaces/codespaces-machine-type-availability.md diff --git a/assets/images/help/codespaces/add-constraint-dropdown.png b/assets/images/help/codespaces/add-constraint-dropdown.png new file mode 100644 index 0000000000000000000000000000000000000000..eeeb1a2441a6cffe2d18aa5f2428a6cd0533a307 GIT binary patch literal 93978 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

+)y!O0%(I zZFS4(>Ts39ml<*`;9fAz8lQl@nR4Z)iZs7RDjj_?r)wcKGjecsT%p>)g8ONX!&>)P zjVq(&RFS1YbCc)g>?AT@k#a+I)!WH2>0sS2WkwMB+BFeX)}!q~<^D(4*p4RC2mE9C z#wAX>bE0@0)&?0}H;xlmF@q^JfHEbgAKzYC&Q=7bnp{=cj8m#re=+~D4DQ9Txoh_B zD#QUd^+c%_PS3d6l+FwC0X#cW7mp9XMNXVg#GK%wWlRA4v$YfsOQYMjxG9IDQp&_P zW8IB~OZ=WvXo=tLUDA_@)7ik$nMP$BN+8~4dIJ7NMGX29!@58#LU5*JaC$f>AI zOFNdmmTnRF9=}U7V}+xcd95d{Usb>@8Liw05I@pQB;6zkHYhirt`?PMQ4r{Tkeu{yf;ig zx1d>P+)n#05ci&e0h~U&gNGb8n>q4=1rS1_dz$A%mtrJkGmqpE5Y!~kcLI`e_f5V# z8qV;v92Gocm1y?5r&kl|WG!nxTw0znS-x+J+!!BeE?YhHzIDN6fA@aje0SNy;R1La zAoLjNd&OV3Suns(v%>@K=v!C6T%eUsppWzjase7Y`gmuizaq7pX1MMfc^Em{4rtwS zU3fsb?w+>&-a-a+!jb$ZPg1~ukz%jl_c;4Pr(ZrcOmi?_Bkz)uB)fQ@Tb+betl!d{ zhTCOrYQ-vy#}S~R6dXy&YinkvKC9Uewo)RKF4B?y{SS zxr}epo57v?sdJo!M7_R@U-)ybS|0sahmvSJ!H0scM z%cXC47**z(DLnKI2@uNhUbd#cQeFV_(r<}=>u9y(Bz(RF|BDI9;^X}erwEf#g3?vjr0Pbg{VYq*3zIvi5ByQyzHYabu0Q||fD zLp#_~!?|#R(om0i+*$`z;#%v7r0)@_ws#3N`2A0Kl%z;riLM>3lAZJw&34}z`dE+| zi203h7zg<|o$pM>fm>Z(B*Jyl;)IQ)p6AnP)KVLvA8by0aM;YzeSAsJ4BZU}Zj6H* zD>RS%0!&RoTa6TWATL|sF%!e2q|ESs2=uxdrFyWw@X1S(?K0n1V&2~D<<1h5tGEQknn}yhpaC)gfFa%eNp%r+=;ha{bWGCx z7YocwO@hpWA9X0Q;+Wyy)Wjsr5p(PvQymvKf)KCZMN~>}sr#D~3V4R$ug;O9giXn% zRB?YBzpzSFD2j*m6X1R2bT@GeHi5jp-6(huM>YH7p6ZF6IBvG|ksgtH{xaA*A)3~THrxx2qU9Eb&;>19AV z!U5M%!?D=*=w3Jjz@5TTgWq(y!KCsy($l%FZgvMc^Krxc%URPMQ`P2i<5cv}_ z1RbLTbxQQRR&Kk3RswCC)xl7!#kxN&!__;hzI^!>#JQ~Ba8mf4PX zzN>=g^KY~S{t}i0AE`7^_yg_0g^H%tX(jE9v)ywTn$9`4#sqYqCMN36{#~QC^O4H_ zBjPSbxuW-%n^XDYtM#V`Tw<57xdKIyJ_no=%`GHYG)hIy$zEypuu;?1tiiOPG^{ne zTA=x2SN{FwZqSRVxEyJ*g%04EBnoa7Vpk4VMAzVOak*lAv^h^rl`N;pY*p8Mf~0-Z z2`a;hwEaUJ12e0JQL2;X$E^dnk$@T(ZK^nE@OsW~fc%We{^7Y-2V$vWBXBvK5UUNs zl9Kq{c%7Uv%&2~T3@rlrQRZ4c?$d$K-k@)L9iE5(RXM+^alT~*!X?JeNxVxjNy%El z{esa4qw>7EMGHITuPK2GGufZ#h+KBP$MCTYsbKSxxSmnna}JHl&u2y8!C+ir>u*(U zh~~SkAmuPB)MyT`{IpO_@#j8(zmoM_nOS~W+lBLk1A>MP74$^jd+P*WzPlpI^D=sF zNhqPH4Z=W*s3_d?tseK=b32wS0e0$#jWskFPn!eyAvlaPpK;-M}Y9^w7 zq#kUHsoU=Z>4U96XoAqAVeSISrvLr7=2mx!A70PD`&!U3J|J`~A3mOk(rPNvKVQ^8 z?0DQRhn8p<`CixZ+7bitfOiF_Y z*v0(s)An9#a4gr2fxzRo1Oi>rQ5YufrvpXV@>&Cqm_d;pm#lJeG%_&_6HcM*)x_oT z8-x*Qdi2KP2t^a{e5hK5iDZ8+f-}g%Gx$E!a=Bgg{(XAE^Z`5D6ag}pfLozH=9OTe zf&2N#d-^l)8G@9-O)t>mm<4B%k8BuiSOS||xta(p&od|Xb*mmQ9I|{qg7zNKi|tq2 z-YH1uJqqGBCf^&A9#s(y2dg z1p@w;=ch5Sw`^EpSLE^OA@M4w|3jSJQvFc4If42P?(OOp0|_ZA=hWKsJ?u(jl?&s8 zhC6lm2-vJ_47)AgzvK7W5Yb2_2$p*DZ&;3s0xj{EWxMWRR;_&D1abFR2AHY>jUL6J zO;1RWJe7X*(|k?J&uJtAWS8>ELDwxI@^=+a`VQtwU+|%IKdUo6M(G=EAHCuSXHZMx zbB38%SST%%QG;0xd}=jEFkkE6bfU?@D(2CBp$C!$lIXO+dGZ$ukI;s;*QrLU4x?@r zf`n;FtOQu3>hSrrMBGQ%<7(m6t#>d%H9yGTRFu;~u68h3#HBp=`+;E`T-(q7)>|>C zIKCh2eIFPj04j}5CXLm!lGHyIZIz305j??Ct#SZ!Jx(niFwJJ?{ZeblOIxDy3ku6h zyAeM}LX+#dzs7d&mG&pMo^RGvWM|*HPCGP;-u*X3F&QJK@R_+Y(2VUB#%rh{T!t|wU}jQ?&G`V0 zF*48JHOwft?9E2gY<8q^*O^9fv!`QShu))+oXYT_w1#cT%Xs~V zf#Km&)r^1VU=T+j*Xd2pC(MikHvR=$i%3o^Ll+zw_f##opPI-Auh8B(?j?5#YI=u) zoDTwi9bP6UV%TO~yOcN2hi{&bU3x~RHA$wjJ&~Ky)j8Oziu%P!1 zlO49o>EB%sr`g$>Z*f4CQG6lwA zqK{9Dcz;{1kg%}OgGoa?Zz6q0aS7r@S@RD>2wKs+zhS7^>b-1f5!!+_O@pSJ0fw2B z;aTqKY3wXzs6My2LS_NAUwU7Nelky8u=@GUgO`yxA5J)C`iw59RGZ63S7~NC1^9=e zkCHpWCpd+W+R`E?1PZ&%ZM_Wzc9!TW%&lS6IflpR`c)pCYJGbO8$G%+Pldr=S@ODY zzs}Uh_l#x6*n8`yW8#jQYWQ|vJ|9&7F-uB(cX+42MQ=dbfuni-{US^DV5ul2iz}d! z6v?n_Ou za2~HEl!uhNel!;V)_&D*_Qja-cRNj`Q3H- z0i#LDgUISEG&?cUGi2?%CJ(h<(( z4afL`N-{lKJpp;=8!`Z&llDQe&)_fQ<3zM)J&x~r>swoU2$#zqx5{rr75p34UcwkB z|4Iq~$GxaihJeDNYgoM%~Ya*LJR5f$_Azxv@$cmAJQnnZLd@k0=^AZDFWDPbuH>kUy zROD#Oidh6#4GBMQbLs=XI3vu3K;*OkhzCyH0#9K&(^MC=b8A>?T|41Ps&6$L@MfahMSBGFJj413a>BJr>?qQow#V zoNt~bX=XNVVQ8pQkEDNW+k5%+;9XSGe6WQr`BM2kl3zR6Z$BlyT%Jvb6z;j0LOb=Z z%J9VZfyO%T44C<-#<))$0Uo>}gs1vY{ArA&3J6{ISMrjD~SG(^GtZBY>|*h!S3SlxrI&p#zDZl$=;>^OG^;;2YUO zbYVW`n}WMIT%!^uZ}!(7eS5ftV`yo5;nqbBVf&kZK{T>P&x5G_a5KCufzaX;kw1<1 zf0#D^l;-lk!$%b6{^2uXJA$F(O#mf@jtz`kG;|gMmm5un?QI~7mRR2G^iPxAnqC-~ zaxnkL1Ov~73W}0!$&HVNR)+Idl5e59z^OU2&2MAUQ1)CP@0xeB$NI`b{%E{ZorRsH zd#g&I#IAssO^Z+KyJv^Gu9aH{dxWxGZr zACl4z1bCPKw7M@`R;*F(?r>sn`07>5zX1^pD!f0I-6}8AyMMpvo&r$(L@u~q@lm|o#(Py9UMCCBP(z;dF4jGah z_!SXzpVc{m;=AW~;Uj&Cp$|@=8?NEdhwDtkK#8{dShw7|{Yj6Q>WrhWa z&k9QI*HprGOQrS8zd9Pq^oG%o6L$PqPprCR2E?jIAXesI)*XOH8Tu_KZ0mg+Uhowz zB|_I}#O)d{TYT*%CB(ryRFWIeO!45WdY5S0EOFG0&dfm zts4g|1I!SaEbh+Pf-wm66t|RwQ~?;?B6@<@jBo5P3@Dj4S~B~uaZ4Q4n>$`-6vm<+ zG!@+SGji(#S+ew&NoiGkpdjT=&WC50UWQJsnTa%6I|sAYHbc2T>r^qfD19eK<*h<_ zOsAI-s4scN?-1jYtP+pj#6*=fUPOhs1Mlxgco#=ry5gZtrOQzIblPyP!d{q^1tZP} zAq|ew>>?eUrx=`Ib15eSU&OTBKJT8QO@VSQCYf z74^(-_F`vx;|D*b?7gOKGfKj$LB-kfcLF_t?jXSz4^!`aKnV#a1V2nPs2=kaHb{X7 zJrjlgr*)NI+tQ5r9y`g=3VHoIKHRw|3e%n})m>8}*S;)t8Ov}LHxFaW4UEK=b33EB z`1X+HymU}_$uzz&6UA>T=xaS4@z`o6=oejE8K~pHU1V#A$YbMql?&^S%OmlOo?{vw zS@m@bYENWV9^kf!mCHOU(RES(*?Dv`VL+SNsnt6>eNt-1IRAufuX-G1d7bQ!z<=mxDNDU9`DIbbn<+4}NQ=V?Tz zZvG_Q2nSv{l<`a4V$n?~5aom?L#|y8@0n>I@R--B0l=r9rA3BG7V1_fWhs*%hNR;P z-*zJ1-NBv~nV!$X0Trkg-mlu)xeXdSC@;eI{{okA%+aBa;jDSF!YN<9WrHTUUzSw^ z={(!WIGj29JiC(Ft_8v1O{NfzXoIdvTMwt_=KDTZI2x~>^bZd@XS5UaS-|%U7Wk=nvlA8d_?#Q7J7gX@D^i;N(f&kV-OC0nDPMF3a7#6mNl;@Tbvv5HF77?e zob1h%!HZpY>|pz?SA0y7)^+H<<+N@n!-@C}*PNdHQwRDU8INte-6+GLeYPuRm)f8M z%T8V8&prD^Im|7<+u;g28YKk*kHb{CS5{d>g{| zlcB_eBtd|kDY87n*Hore$??bB_DiGljI{%g2&1@icV_^F`Waf?0-IpK&%A7S!FH_~ z@)Q5vPkZr+9em!CV3M$@Kfjuq+)fz(R>u;66kgGc^2x8y>%HPQOY|pDW)vtTwdu&kUA6 z9|yhmzE{lvt=*HIaUo1YJVpe_7^4J4AcN$YiepCU7YU?)5kER!ZPNENmUD$#pPnDe z!F}Gt7XKkIsgaBsNgF8yv;e4{`wz&1#I0-_X8eBhR+ITY9u9M_kMDyJ4};vzCON!s z_`U|;Eav(>q+b7JJe04GMIFW13}Ky_>14EY8Im3N3j^;<;Dfvi7ugOgUUQh*0WJw< zbtMYU5!xX^1z}-9`S)2B4@-(m&&>+NZNnKEpT+RP?)KIkq7Jgz))Ty%xG3=a zpxrM{Wz+oBm^?>^D^@6w>>9q0wDdCDw6RxVJ)X^9ic3<%&1@elF}(b#6}32;CAhO8 z1By!+w#Ly2{j;Z5uanMWNw~(MLrISEzYOSKlM8J05X$)?yOEP|eK?+*U!OY%C$o}& znHrvnzU{uN3g(}-7lXyyU2Z9xkN3Ms$5s`;%f)61M^(y^&h(NVPETgmVF9GM@E7{A z3AkHhpodOWL7IZ_`H?I`{4l@6wgJXA*dWV_8$bl*&=SOQkDFm3DZd^8c;2?c3svax8}Cq zPGe8PdK2bdf$$=H#A7v!+~Y1CZ&!yXlb2^&TyHAr)(u`_jvTW#ABw@m0XOOXFAtG^ zR|F>pQjA>9u~T!RBHgcbzM;ce^N>|&eqZ7rbX0>^A`%AEWWARRyp3C>oYH{6zYt=FyKKN|+)wXxCfw3t6 zwl4VBGr=vflleU%QdR=twm!Ef35cjT>CC#fm^eM12eW(!WJ@wUR+C!Rvn5~C^YSl_ zSH5`<=lbrtJVKo=2Y8u~+13}+pvi!O46Sr9=yp2iu~W+&8d2wD(q8tg23}Sh#zdv z@>BDB*D`L2?OBI1a>Hz~CM#aYa$az<4qR#rs)u{su<5BsV`Znu2BRn-_x)b2RJe)B zPi=_jvQ#oS8+aGUpgzt|dLKISv#pBtKk@Z<`G^(M9bH$)#q{|%qy0bs#$mzLUjyTC z#O1%=3{{{QTziR7$rk^=T8zJKrXu-k%aYsI^555ne-DJKMv#pEr^fr=m~9+fd{Zae_@ zko$opy!*d~P5)dB?XUj|9wyv^<^Qxio*Mo$iTCh-2_pYq3GWkJOGQQaUpkL}Zuw3U z{xio_YRcbh#8Wx$j~ns(LOMnG&r5Ny3TWn!fP1PyO24 zTI-oBVb+zC^Q}I!u0m!Wmu8;QcXUO@{^qE-l<`492>g!gh6e)ihGi6jm!{y~#ri7( zlOQ5}1FAimu&EWLkPCRCB`anpN^NbmhG(E|Fdo1uy z=fRbc_YkTO%uF)q{|YBMMaMEVdInXvkUMh3%f9qc<(;QZW}-vT3Nzr2A~ zzurE%EgXRRi|mx%uBOv?;RsDHFY zZ&r@>gM3q8@aNUCZgT#OiWZNxXJ-iMq1yWigFAMU?BsroH}}}68ZBK?+v6Ku=rdc% z(Kqk4K^bcR7F%GOsK8ZQm7jspCTghYD+W7&kwTg*ov)m>?OLU(q4t}1Y~^3BJc@R5 zh9@7JgVz-D%oEs>Bn8iX7;qWn$!hgH!=Xy>F+Z6B_t~F(c&c#wjMpx9Jzu$1hm`sy zbfA>i?`tyYUhi?{ar?V3DdmZM*=bbpt$OX)M$6LWwmpZZA&}oO+H) zA`0FU$sbosNawar-lrEb+9bOe{8?XMcDd`k=HP#t^sQaM1mULI;Ayq@X@6-gPNcO- zMhLtY3nZ#>fja>@Z)uiAd4^>~_gZXs^kpZTF=^<0M5i@%41q0bg5QE3j~>f#4)S=R zM@aoj5>VrX}w*U15c(DQabXU)@we|Jlaj4v9 zjq|ZhI-6gvtodH$A?p&u1)<=8=1m|>X3#!Z)!E5Y)A1 zpy*XdiB@f|dFyK8mj7Cj0u1h7qBihLuQ~bZXhl^z?fLp-h31dIt%uSI)LrC@R#njo<9{PmLURJ%bQ$Z0w3xBfghxE##=bv0XPgz-y% zh)2L0Ga)4;83yd>Xp%wm^nT#B=1;^C0Coegp(SIImqJ;E zV|hPA{vJpX^ds~qO<)-IA?CA5xLo#)(f%=bHQ8RYJ)w%GEP%$YQGlK? z;#?Q)I69~r5o=&rKq;9KL1JtyBLgYG{o}$X7+fB>b3mkjo{05xt;VZZdEK8?iL~NN z0walMm=I_rjddPf<{``z%{}OT4+w}R{zXlRI7(!Y_KukC4wU8!T--0gB@dL>u+y>IA-ZbO*#72O=)v;sEo_iH-?t$s%{uWL?rJVZ=HRP( zw+EcN9fxOIiXNx(pqpSslqLVq+Yg6hN2`68dZ&}W^GAZ}TH$+c-e#iSGKqZI8|6lI7!348L7rpWN*rf6 zXArzL3y4A%&}Rot-)YvZ z=tWWLQl)^f7#Aa?ALA4e=GTeI{N19nOz{4p?3ycdqT}mLfZy%e7U>DO$NI>y zeVD&jFkvZgD8o({Bfp8&T3HroD$8T-=;-bKs`Eb z#BQm34xr0u?J@pE3`>Y`Z=bY*&&f!=9^Bt;g@Mk$$4=0_CPT!gj%eExC&JnlWGOI? z!eAySQ=`3%NJ#0)<0Z|`Enbr&Z)=_(?~9jTM9LApKQpa;{;sO%+I(8m$~Ig4)G8Ap zrs`9TRudvM8=;6+Dw+gg; z_bWU;#o@eZ)Zm#RpHrZg#!J6>0H^zR>?n zCJH^h`|R=}1SbOEM-1ooQ*~norT|M7Py6hJWCF8}wFxsqsa6q{?Q#{ezprxH%%ZD%F z6x%m=oUiw%22|tKiFsW@*n>U^nho zDr@sYYGEoyB4q)x$YtUemkz%S3vTQ>cEXK#ifu2r+Moj+U(Sf!pU63D=#7j{%N}W|XPv9flya9(tEC!#WP?;dMOs`6FbxwAYKgXy$A` z4_E&r>7I$%oH|Od`#-fB9eD6}Vu1_YMH{4=6_USZz*G}q=6w2~LKK9le$`~7m zp1l;NU(6pjpvvG^0bsvFN*2PzdvXGg-rs+woQt6lfIiASZ)~~kTG4r5zCGo)lVH2S z^MX$i#-gktae7jg4bOckcW^g`J#=$yRZ*$qvT}LmWfgHLZ**0y=~|QyOnm8J?jR-8cP-Qnc^;!tt%R1_4iY&Z{{%`j(RM3uf zvD~wd6ua#h%)_>yj?Z5rqKyz#e<-lx#24YqG;q8*7??3`UCsB=yuBnVyBK?oWleqp z9?Pz+s*Kf)!az+2F@EIx9xsBpeT2c&7k%Dhd^v`}d9_*W09AuAbj^KDZD&_ESM`>k zN{A62v4Ku*f{FHtZ#eL{C%UaZ$^SLuNQ->A$@h4dUE-vril3Z*tY3K>uro=HrxNhFzgEXNB$5iA zx=26dZqq@-9YMevyB`s4?R*k{TVNE^BfQ-lgWD#SiidxWy+I2Q-qU^9U^OaX5frJJsW=^8aOs?)^?@hx5NIWJ;?vlO z=x_GX@kYLu04jtI!%B?OAU!P6+7zmuo5Ok2o(=VQqx#B$~N%w zGagh}i?1k^UFyeZi9|0MtJkZCS%ZiZdRw6{i7 zZZdBXt1J|29t3lbB~&a-ZODYRGVQp8+Wx#LH}zNL@4xXXwRt=c8G_+DxKNn)yZE3PhYDn>RRY~Ilu<^HsNvEvF28rRr&K^z8MXIsZ zq!v4nHvGj+&*5V#;2S)1awS;RbFOBKiN+y}a}B7gzxvb)gJnDL`2 zp&aJ?yVJBigY%dLBg^6O>@@8C=?zZ304=|%R*DL@@H*_b|z%mizkE zLJ{S30cAp?^=5YIw9sIgbct?w=H#%pl`?9Sat-8jO$m{#P=6J!tZMs zo`(MRKMuVATX?0gf(;L;$xF8~7oK|l0MYi3!9fcIV;E$EEB8glH25453&XEe z`FRYbFg=5zl)v!?@z5}GM?2BJ+`W~np;}GRdEUF#cj>2~Y zg~)v+oBGZhjohi!wgX=$LUKE}wox_L_8%VmK(9q_YDpsp#B4guot4yH1f4H>g`Yfz zx#%jUpy$~7h2RAb;7JT;B&=Qoc7JJgtcOh0b>6rySP9;$B-uTKPFt4FI|gp%84H;{ zERFXW#6w}EJ7Eumqc6?B@xkVIWe!>#{8u3T(GbiB><}Lu%defeI5<3aQ;)q0)qeU% zq#m?m983eLj|?*wJRkWb%7U)Bd7o8^->c>|gl_0I#*L7lzw9u|O7dU*4biqSBXJDs3rv z&Uk8S4UGrs0H_!VJbKDNO&4gABh~q@2BD+IW7ss3?Rb{tNOJiTd<{C~$PzEyo*aPw zdd{45O*=B`Bo@RXF* zm3$~xXZzR-ZKo8lFCY-bE;wfxE=(nx{$qWs%Uo{NphCX;blk-BXk9aFaZC<6o5^2J zt5U60VbbKhf0awK&_g2q$?99lrn!WZNi>;-Zbs7=wmD)=inywHk$c&929>b&z59GS*|5pud#hbTtWdz%}vE9Vn>#P*O;UHE0|L0GEr;u zwN)KPnTWz;be+8-K60N%69kqq&!qU2r#LUD$vYNGvqw&^yyjZJTE>nrgWY-=B0JS# z*Iu(18$Ax0-Ysj7Y>#Ejaz-cmAuIR8*Cm z)@aso5li#-Fhl4%@&+kb{#}}Do>1VE_tw~z~s)VYv?D55oWH!Rj^$4TvNqw$k*L$kjuu- zs$!Qz5S^fX->aCOxs?m>^Q0ZPu?JO03~zg-voDxlwZy+j5V)&|dR^bS%AT4o8dz_n3NP7w1!2J_%w^vuiaOZ2Bjod*6dKTIT=fA z{dK|mYHE2TDiyt*%5^Vp(~p{)Uem(ZAohlTXX*Y*&KGobk~ZJXrCnB#J*S&z_nUsc zMF$Cit>swt)yj_G%7ChITQ=K{an|&^h?TB8Q`zNaHZ`llYqDlv zmRnZ)<7?reTi6~uE4|V!9AY7ylNuEA?>|~ZV^{C7-R;K!=E|?Npq*$nk zl2J1nwCOLWG$CPS$?%v=H~m&2B%HRQ9QkRzppsPY`!`gzkkaW;)k4vWr5?q4emjy8 z^4P4vQwaF}EFgOAG!9Kq%7f+&R}DnJnLtj}(4!qs2`OUxzsL<2 z3&M!PcqN~<;lI5Aw3=+wd~7zC?4KX+$|N*ca#Y*g^Nt9r8B|1avjiQoeU8tId=pS9 z8o*@iEsHe=CmySAkd_RzAKrrlbc-0WB7yaFfA@$3ZkG;FGxO!=rcaNFv~}0oDV3ak<1CD8ZSYLHhXKj?6ZcrI!Dzas#B*SgNt!_ z>DBVtHoWpE_{k40F;sjj8;#4*?Mv0IXWU+(&^6wiMKwI~5 zgi=3PAia!PZSvBQCeRTxT7eZH%W*?gO~daR^mZ>-e{fsE??6Hgzk{-}@`lEa)!g)V zX(9$8U`MCvD7y^cK;Y9f-rvdhpLh444@++}u3|qfLT2slS5g^964FyXskTz^=r{cP z?En6Ft5jwG~Vp9%`>vSOkiRnQC4uuJut6*d#f9qqcEN}5CPhU>EA?)6)n zBr@ljbPJ$fuE+BoW6f%gTpWJ~*?$_!h7^S!7{6o>o{A>t?>uSUqb&Q9GCI&m9pK0; z3v7CdF`fNPM@~ofaP>KR&ZC`H1k!ff<^%WBj31rS4v*e;Uv~20^-syNfd=@Bct!bW z`$|cq(~y-tZ72d2%(Hw(zgBgqwp1j3P;(1dzliy6lqXddCE(_9vN&_nG8JS0aMJs+ zc*j@7?jGxQSLgN0X3rPv+S-!_C;KsB_t(tw5887dy8i#pjY0DSM6V+gxXpd? zd}a~*6~={pdFyi_8VRJA=gV{<@2clet{I;p*e~7;PvJ1%b#NR-I}Tp9skNKV))7_L zEKx%?20qKvY4xtPc&wh7m0H^Nz5kwe`a=c~+q``#^1S`J-g5xoW4W^L=LZv_|J!L; z@NKx*K#n-#%JG6rOZ9Djtnfz6(_qSz#*rl&o=}cOwqFOcUeh!nzsFMDOd#oVP0_6= zl#RjE(7CqjW{LkkEDa=V5%U1uQfy7$LS)cnq5Zh!vC?zP>pRazBJ=jowD9dJbY^HQ#g79oWZYTK`+( z-(;XNhKzR>n?y*9w&|={K9gEcCy07T@clYy` zfdH>*OtO%QCuo9VD_+2haT#LoUw#kP)jwBTeP-C~WGyzoq_DWKwq40q(Ra#OI&;H; z9$xEiwA(SC(@Qf$C@MDj{{7VfvxHQdFaFjz3UO?V{N?0l(YtL<11wJFUcB_E>*Iy4 zB+Sd$3gi)k3Mvb6M9$K1METyfhvOajYG2d~T&y~Z`sm?@HU04nc9%kQQjC~_|Afsy z4Id#5oV8o5ahIX=*K)=;LR&C3k3lt%%Sg6;X)gGN;|gIh7!h~gKyiggwfN{Ar;8BZ zNn*ls50UR4O9-);CD;rWMeCe}oH{?TAf zMWIUxC%Jy}|J?NrF+4t>ABolq%37+~*TS&L$eB*=@}i=+2MU{958{PlC|wWLvWGjV zo2f0gdgYC2d6sNG5Ps05Ck?;$Zxev|-ZV;+FC{g3d_i;erj+-IEdLatdexLggofwv)Gng0uceNo#V1`c>d?;kJ z^q`<#(z}i@ty+hvLU~!=b4=>)4-=rx-lQtybRx^!i9V35KwZ&S<|E^y_fi!qecoJz zS%MyudC8>zn*83NBfvbC3|5Ljz>PW*&dH~3nKjn}his&DUm4zzDa+tqA;^5t}`*S|i&4k94C z`7P;P+F|zNmB55%zqFs;yGeCM?M7quKVOm^{{NRLh$I_^L$bUc-1|-zIf8&mGwQxU z#uju;SSE$^%NO6sT)lsP4Ga=|o-d!iNb9eUl9XbOT-7o;oBcjJJc&uO5zh6R zLzl~vL(683^%L95wW+hwZ!ERzd<%fA#0Jz6d%gvagy#1Y>JgP+0sq99X_S~sZH4=Z zcKv7K{Mpj&p*9>&z#}gjZU*|Rw&YfUoZnN0MQ^y~g>@o@c`iP?n2li+PppB^+Z2@T}34(pcOGv)zn$e2Xj5x-MM>kEq59$`%|@agY8{hMdL^@%#WNV2zM z^XCS4@k?Ieb|%#6k3Fup%iqcyZbcrYQlCS5t@?9b+J~R?Hs;6jX>qBYr-QAgESi>{ z?-hCdc8^V)B~fu*_cH%-qB9+Ps)bG9=SzPXGCYai2KM}A`z;UWaEclO+giBCLDN5b zt;cV_-^w{$m>JHygDR>8FQ;EyqsgciDtN$CTpNR34{*~!>&3m!=_)GVyiL}0axL)T zWT(yP!l`mMflaJ_Xj$a`>e7^=CJ@dbJFf{`s?8Zl@bpb=vlcdj2U^-vd1$;y%w1(V zE{3NRB2F;H10Qa-t66FHW+b_OG#}Tr3U0z_tpI<&1iMhwSfTThazqw97h~PE$KE-i zWTOSw*fsch8XgeD*am*}iT!pD_@g&nw%uK81v2Pmdh(1l?xX5Y`7Eczy7u|sMQBR~ zd5PX`0`58bDE&eNPg4)+-4=vcYX#6aJk7n_Ek0p%VN$Ev@!EeEyd9oW!Kh$ud2DKi zs+}mf1sGRHn0rr`%ZrPmy5#hY|)Iq$b55{ z28CmK%Ww|4eI#2@l%FSCbJw|>8g-gfQ@6Jqcx!Qc;{$jH(i<*P5WQ_~+y71HKSSZQ zA2?t=e6&HA?F4CqRRU$&5kJ(W_@&$|xCAZP&1J=#o&1xC{9Q~lY(kU!aW4!Y_u)Q} zC)`JtS+-5;SJoQb_)pt?ts;H96)b)5a|}Enz_TA?v};|4!GdBb|iL;u#lL)nh}}9-ZZR z8PKTj@Uux4u4KRJJ^Nm~0g4!RJNC7a$x8JbUkXRy)g7))Drdq(e#j#*G4T$HkQBE% zayquZDBV@{Rett^Nj{?{e$VZaxqoaEK60nL4c!K8naxDwiYi?DxqkE)GbLZtuPj)< z__p>q(Fz?T!zoli&rD`E*wFVg$>ZH26BGz+)(@v{yALyHAgSJMxPGh4)FIZ%rRclo z=ds@AGs}S((%8CL#EaRL#P)L98;xmHL*6k zE^wf#;w0ot=^b`h!uccn^pmLtm)*uMTAu+VkN!-uCR(AD0@32KRMq~uVd|2Bq3YQF0=f{P9aEQWb zzt*_QIz~K1Psj2J+cT^RkI@Jt$(lxiDVWfGVxReC@(BEh4$!%sCGuG)`qO^Gm@ucj zsBGH0l<=Zfg<~a*+zl$eD97RVu!1WjJ-l_L8lz~PRpq50AKgpd0zD)<-8Fa`wb}5* zN#s$}xNmH`-+fnK&em#X#?7t#|JZx0hB%w0Z8Ras-~$AA2<}dBCundBu7g7e?(P=c zeQ>wnVbI|2PJ+8Td-A-p)_Q-yKKf2)Zt3p3r2DF?sy+){=C?iDzse(J>!6PaCw4@F zhn~guY_SZ3xVJ)uTYhoO8W{*^wv&Dqy!}qd1S6fZCfN8f2WKnI?WlBjrPB8ya-N=* z+q>9JU;A4s)oFKj+p&&`t|QI3z-vTT@g~=^k5uZC6b_K=;qLzRrCab3QvO1$Eb!B~ z>WR7YWsbkDSQUN1IQXv{HI4l#u$YR!wF(*XLqBZ>6AgGzgeAnfdlNC~e!uHrIh`0Y zV2*uC?whrgakoX|e+skC@p@SNoq4)N3HZ~vCC1DLSD$Dd|CXsp$1RJ1@=--y$&3%FFeiaO!JpzH<$jy+9tj51IFqUob;xmLI7G z0)g}%!#*71Fd^IMzAtUK?0CD4(8#+rwiewnqmRZ_Xk5_8nZZr*{W)P@md*#TaES5= zO@=WPdn)zG#_Ejdlu%I^u;TMRS4O8^|I4Fy*kkRFH0Vx1Z`i` zLM4~d=6zd+qXa_kMmB3okKU}PyL+iA(1)?u3C#k`uiqN(n8lWrnS^NIn?yV;ILw!_N;Q3ncnHVxa zlcV4`K;&NX1ZueWbMR0c05A3)GEIf+GaUPx`+SpJ;*2bCveMk0|7XixW#~Q4$ciC# z_gfS`NzS3y_E+J$xY`L}ae+3art!!aw)C&QRc(KK6UNugaC3G$-5=&xPU^moxe7pF z?wpfO&nGEEsmduGUQcei?wvUCK#e~JSSP)z$vGYD+ai3^g#tmKs?Kv>5Bu#C;NwA=&SQxE*0B?yNe;` zyY&NhZFjCCpUL{V1dC9%U+<=Wz4)-b8mzfBJ{~BC4tsJ@-=nO(H2eN~_FZnSi(T>M z%rSUfawMt7=h(elkB~X_+USoWP?kHBooqDw8|_1Zp$7H(srXfVm$C24I5K~#YU{N^ z>W?8gUUT0SG>E~zYo?~=M5f7d&^_Am`~@HQjuXfm*md(jsIPPnJ>i(*UVIL~4DUh2 za&ca^$F(0)DR+R!PYsM-ceW_LeBKB|C(eoMk6rImNWW4{O}b=zp&cN4rgD7^d_A{S zz#@Wz?SJ4_DvF z_d(lDFpL~ob~1YEl^{;3r|2b`#yRYe3e7+Rycs{rX(p-ix}IGx5Xudz0_k>gB5X{PT#l=E>{nwhvs^ z0RRRd1B3*#e+5nLq4)b_-%$s5igh~73Uk^EW0>ncvo~SwSX8ibq`clq@feKUlO%qG zz|t4+eA-$2qLDhOb40%*Cu_iWL>Aj;ZQprph$-%IRci5$k>%#r|B(JE7vD`sqk0|V z=nV0V2`u-S-_5eM>v;PE*8N}4Ev`gWzH91B* zYdOram>?FQ^WnsI`}cN&4`xtN$KF$Y`@Qa;{vn+uLgBPQ;f8_m&k(V+UD`7LZT^Er zDEpJky_#9zbi|Y)RqlKhlFdKznvFo>vTXlFwIGer2H~HbHK#J{6A#(gWSasW3xm^n znf6FfjPObMNg%rLS5>fA{I#0l)qTGAmmnOjzNvmbXtrkJ-&jx&s1YBk)ruU(zB2BQ>)mgY}lir?Uk}9krWao|8yZn*1Ir89- z0h582!EDN+CS?F(;J6#D>7D#NLc-GoT}(RHTxHb;_Bf8 z4tD|TD>(5GZ6H`8Pw#OPfd-G?mL@&>+mW)&j&^mehxZLWO&g)l4WY2G2DHviP_bIW z{K+QB%%Ru2PMxrNNhb>Rq-ie9Qn1oH{Zxmos@$c zn{$GI&ImJvT87vytp~q2GdG1pb|9Kq51EE&Q92rrnc({`X0I_2uWBaVw$R1%C6r`+ z|A>b~a2o!LXdM6B&rZ*~L|^De`PUE|0xwC9^O6jkCZ;y)V=70Uw({0T39{f+CpEWi zPYh8Uqvk?|fJN}p?$>d$>{X?~v$TuYNB8GgmP;`l0-h43@gO^0xg4lY(w%Sf4aX)p zjgY7p^tubtdbxB`rT5X2uaMCA@V`R)q^&^1-T5iUD}T`}f9hC~U(MsM8ag|l-$~$Y z_LMz>6}C8;!3d>Cvj^#1BTu~AG9e$0%`hO`gyzCAGU&^#8|~0&c}2{A4myKOxn}jv zShU2CsZN&8vw#H`42X)}vdJxC%xArz8pjGRtu#oXA1zy|Jn(_%z1o3QPnB7SA3Ntp z`N-D>IHCygV&ewb1w-+k5R?d<+g$+$UfgZGr~5?9?7Tma#8Qr@>sFgmODv8O+S1Eg zCG|TY2Y4;?V1@fjN!_@g{cT6RY<tH-xkS9%#6ldX;!7<1FWgi=@3!BS7Pbi1~v~!*#3ODC6lD7(2EPp8;0`mDx;8vj%A{Uu!xcGhd2@mOKv@MXSjZxL_c>&s2s7IWXuXjR0| zzCI!6c819zdd}NJ)knRsg!pfMxI2sO2nhbt4m+av@a1iFL^F%bexieSaK{@*( z0SQ-CJ6~N$z`K~Gg<2M!M2D}@mAFn!C<&3LJ$ZDH1&ABPZ}iv-5>gguv7l-)kI6?; zZwicBp)(zLS(Er zAPh02S`@f|8u=B+^|D#7s^`7$r@h$c^1NE#fJXEm8dOtPbI*UK;gO=HI`6!zzY8q4 z|JwYr^#K3HbP%3~Sa^x<=*-|dtuBB-g4cLuL&43YNH+)9mPWo?CKv^FUe9%D?D1W$ zBpq%}4m4pS^>!R^h=PgQJSB!vr+zovu10r?a{4Pk60uuAy@jwjURoLsQ- z6Cf+s-u?t0SgF`gyp}x`-DE-3B1?!bu!P)d538F-tP@R}l>Xp=iSklFn-l1&M1qtk z7Eh=*Bh}C)J_0KwN;nJ2PgGFkm)hB z7m=W%9qSjhY#!5(bkt4Qif>R-&qD{}RVHUe!F?2>D%ROgScVwZY6?@s%E^l@%g;-x*e`N!BSB;T^4B$K+IbqEL6Ji1fr2qtg9{}^aRS{1aTJ@)Q zi5KVXpfBm2iBw2CS`I}=>>Vfh)$Db4jVSda zpE81f9a}bHC;FM-meZPc@jbAIzzDhcnfJBw1Ft2?Ui)2)*usP>Sw$7K)ru?8pXh&J zN01_*!A>!-v6cWPjVxE5-TCFI+0#m0k4brA>~$^aq6PANU*$_xUGBs~E^YKu5L8er z1y(i+VJ`@wIT|uDU*w>am6%YjkKf~Jl(8^Chm=ZLf>W_-HQ$mhg#v0lZadIDq?IYS zgJH2a^XLhtBL=yc2I#rC@5#H*UMuM(81Kt!$qS1yVbnj(81*#qs)&ZLmKs?bEI=X~H6-%za^Q5x@kumox}(|IenDyyFb4czBN~>fXCu| z6LPuqddn~XZ`eCM@6dS1TN_XGD7Zq_iM3fZlH(=R*P)Hwn!cy)*t=l&)Mwuz&Lxk1 zvu>jXhIvb^%c`aHLwSSPbv5HX(gIB&w@RfVsfz=Q+|rMi-LCT;c|=CdHVcWKpLSC~ zwB^=xyf~B5Oj*$7FF&C<21@2Oox4oDD{f7_zeRRBuDuj`yg#Y?+^ag zJq1vdHjHwRT`|ntb*e}obBidS85sy#xN143J*^3mqP8M@{F&*QPql^7}fALk1lGTj7k8OIM-{E#g?F z_omD#sOX3szYzNAAN)%xV-wLQJ8}`Rs9`JLpOVMkIyXP*a7)V*C#SL2Sa^4sgT~Q6 z%)KgHQ07D!zVUUR=8|y&G9lEz^jO=;{z|pwFfSxUj+#DhevvP~fA7Czj^U$%0YQ%` z+YGVv{jq(@)qu$BXTMm-MJLi-Vf0z3#0uIwH)J6db*i@adO-FNb?Z-(v}tE-{goYmE!o=ebvolUv`5Q$gy-q*g22ezJsaZ(qy}u{%PC=6Icye- zfgLhIU4sCSPse1qVjY)7AgzhDS#pcWo=d}Y1oU72-i~!N5PUe(F~e}1DDj(Bn1A|d zFb+pUut6-i{UrC@$*-k1PdEmOQf)1fqwn0XPx6(3W7>iCu+i=DcEy^-Gkkzfk!Ma-CSHjE^E#d_WMr3 zY1^-DH=#bUD8yg%_6f1pOB)A)C!}IIj2||36C)H;1O*|_ae^EhJ??GLBx%eyj9LWUh}u}$=$ zz-)x0@u;(6Ym#>>`hmwen_tUj54w>zsXi^}r{7E-RR)8L<8}z*s;bS3BbpT84Gq=N z-DlxHZl|9r-P0jj(ZEYe4Xect{WKIjO(G{2zSD}|NbPgveab1=AnvK2SMhLSQuQT0fv0kH6g!P1WP>5-$lNryMy% z+p2avj_ov{ltsOHZRNOg*3>)b647o%bM*JWHNhsAL?l9Avi~f7l@q)rQ8i9v@bhS4 z^kj9RQv5Go{#rNJdPEdMH~)SgK@~`KkpK3_PUw0$n^cvPt$l5@#WgN|DiC#lgNCyoqEQOW9JmJx zqo4WraEIV%4lYeXe)iTQ>A9WY(-mBrUAEsznY@tS1@OFu`!-ARG-!d<;$l{$kGvq` z1Bw;6@*`j(tGN(>@-fG=F>k|nx4t8fUym2;Bs3*hM56AW9fzkQK?Yy<9@kxt)JRpJ z;T%X)LGZSF2A4&ZF9Ht~{Im$aCt{vYMIZUpDxrjQV+8pub8cjhgL){RbGKQsT(j2o z_z=Ttu$Hm?VW9^@J%c#JyY3YULcP7Uc%sx8_CC4R1j-O7k^1QZU)`S{Ck>vY{jg+t zRrI~ql5^?}Lk|V(rd%?!D=QkWdI&>>GZ$P>uoJWJ9sp$@(_E+mY=W66Be+!jnOoeN z%2%R(Dthv&{QlgH0;Li%Gjl9yY|TvEh?Z%NgF|^>uzcnX&R7)QVURZtFS>ebZgi zq#lO z{iO3QWmGwQiJO0&@c%MUq9gs%6uFpR=Gw@Wlwd>9iMJeJ zLWj&aIRAstLV)x)M*(S3$_Dp~rBEDr(!_W2rI8o5CUhPZ@yp6@TgZPum5Ickx0CjF zhK_)UJN!@i;tLdz3AY7{tVzDTHx#P-?^laBN&UPld0H35;=G8pOt7BR&!l#hvl029 z|Dg=IPXIgvHQo({30k5#xYKZ4y23qox6zn?csu{iv!Qi?&2Lw_65xA%sFEIDc2|Jz zD@wwpC$sjE^DQS8CaC`*8U4>I;Q_Rt3oYT*D?uTDlLN>N6>51|Wbf*Fvp7y_%O5-kI&rx^jH@w}uf2R!PiU4}grP2q0kZl;$(vmhd(E@-S z3rq0#PO|hSyVa%h&CHp?4oNje{l^4usMCLl zs17}hV|)CCj3MTQ3KMpL*I3(!oM`PY!O~<8Vtd1w;C3}H=-71b-s;5u$6GL96KNul zh=zFBM&g>0E;9z-r_ZuNH>euT3_djvm_c+b6VUoT-(f-!3CKtN^gnS}qYY!fONez*}A(nBs-efsMYZwfauAtq&ZHM8e-G znEYU$hdT7HrA7+!L&7sE^HMEq5D{k>vV+cJr&hfwK@az9>YAkz-T0VEE+`{6{ni+|1}xV+b1Rf4VKgW zEI*~-(6G71vLk9!A|A+!;Gmh{4mn$L1vP-r#=o?{qVyC=psi z=#VT2<=7a^0BrXIL7En%q`4dcUaBhk*NPYden-4%M|__W;)OhL#++XECSHc1 z3HN3n!SJi4Pu>g6ozfOq59u)+73`ky)YIn%Q~a! z7WQ`kgn{#^v;Za;i9l^qKoCteh8&9*lXt=QUrRYi^7fBe1DqiG^cmh-u+#J2N6RZ- z=Ff-0r8l;gc7M$rp-;4aMhe9T!CgrtxF{vS1a7!MOi$hKQa{noIZD*n#?PbEPICWl zRR?ilhUO=-Nf<~A+&$3NF$L$^Sy5x@s&{pGm`CTmbaeQsL7bQTW5Ym97UTe!!hu41 zpi=gs(GV9?`9R@A9#hP=N{;sR=iwlC7n^_inGg|bfP_2Y0W`HhR{zewIGlgpOMx!o zKRv?TKCOmnG*Yeyx>}#r_5jt6BhFza zR7?fC$>yPchy;t9bA?vHEb#BPiTZ`&%ml8yqhDuRSqDjHX-$!w@r<+>pW8(R$&f zv#m)i-71db#5|ZBH6C>@nYjMfFuxTiTL;j_795A{LKSFo`(ey7h27}m@$l3U2J~5; zN9k$``Y1tfy+ya+i_IE{N|Au2Doc~rOXgSq=Q+7~z_1J6%@&e@qQA!&-jA`v(;xS^ z1e-ZI{+bk&YHH1NToHU<=xBeu4V`baD^oi>bQYZFRPX#h-pdBV&mz14)S11@Q1scB zp~`ny4*jnK>nW8bZL;sP>bP3}o^Aeu}7sdhm$7mK@ zgk4ZNXB~1W;9K(zOnwc{HetJh8WWDL$aY$K*gfRD-3QEIF>yB{#f~bMhSeH@fu+x! z>tp}%&7rC^UTDSQ(NT4IrsF2Re4SN%uzsORX&4}7Ws}~Atsk)$Imrlb7s&Zb2N8q@ zOeq+&PpaE2Y|YuP98B+UArsm+ zWM68#Td1%zR-=jtS1)s_o%NQQ9X(?}yDr32RiGV9EH>D50;s3pY~-Jk7~t?cd4eZg zY!8lvzK!);rIC2?4x4Tw_`8X+H;lJN3KK?)*UENCP^0=eJtG>mEdm>*vR~~j{ zHMH4@ABEA0B@BO-zkaT*8C;E(XHw5^m-5w9DDos`IfwxH@0k+W{jiw~V6)mfd+y&I zqJtbrT=b(Il(yp|&vfaKix-*;%YNN4QFu0>aL=6`&u>Z2? zoVnMA8o$~uC;zb1Yx6LO*QksbPBiJSShTY>e9)l5b75lvlmO#x_e&T`oHm^tdAI%W4MUu*q{ICR8CC#%fO^)@uwFIEs^ky$fq{_DSjXd($kO+>qNQ@XTc+kD9@UTxISiHe zA)`SkyXMTRzlBokML8p{eOdM|jVw2Tduz4P0_BJb{qo`R*Lw(y-lsTry>kiV6IXx1 zkLfOHZioQI1T|~c1+_YcsOjp%wO#+nqTS$zf33NOJCSUbg5&@gY~ZXB(ei^i{}&$j zw>WD}4II^}I;7w?U=JvG@64cCc>}g4<_in8il0mjPCD6cA=I^wFILQ+(9U#l`ZB#l z0ma#jg}cPWwp^^{mrxHhw%~_~TX++EDdJ;Dyj&Z*rd4s0Ten@0)l6MGc)`=^4R!_z z7B^M%nyt6y)hS`1B0D#hFNt(9ZPxW5l)qL3Wu|gmO4LvNH(POi(luV-Ny*bGPZxgr$wq*vmtVji%)`98VU=0ulLp}9T6t|I)pFxb=DvB zDfxfAr9k;DcGTiuZ&xIN7*RkjxYUZ(cl&O44J?1DsS$dW)m*ovSw=!=w23OTO`qy10n3>#ZTT8=Bd-lS>K- zL`71ChPP}XyG8}6U&u>-azcKlBqf0}QNY?|Nwk)#-%-$``i+iTovWfH{2=71?1@FI zanR(U)@yY!aV=p+ED}|p;W>#f>Ep7kO``hrd4X)UB^BQ?dXFObij0kCMMu1WYFmI2 z`XT|?Y_lRnqLNr(v-XbKT5Z8dZDUU&vel~W5>sV|><`CnYPuXlNLU11lk!wc{P;rt z*pneb2sC-%?6ySyMB&lJtk%|Yc|?~QHIomt zN}c|kw2|)y_5)n-{5Qs^=zG@eCQP05kCU3-5`x(*tlN0Iz6X;zLe>rbK>hj4F9yP! z*SCF~07BQB-UUxnyQOsL-fw@rwbiR4Ssm}6FBw+$J)Io|`F6k`OUrX~t83|2cJq_8 z83+f61)6T^6RjULgu4Jol;g~s_LKSEv`Zhwwg~KJM*rueGP(x(s*76FHwHUcZmGM;otds&@UZ$4&~LV5>7Wb=wS+)(_tO z_b3ISxwWz`veIpsMSXH9d_utM$Ey=;CY5ckgR6rQDG&cJ)oJsQDODcx-)98!wN@@_ zc%N_*-}TQ!Ydh^XTcFC*)@jndwfhA zOXrwJ{%A@DKqcklh31H!bmLB2e7MZV$e55|(rM=mx30@2BBMn;S|3MFHWIQ8NSTWB zf435$Ufyn*u;csz<#@wt2k37bV`CgHf`xf`K=;D3+UAT{Z%rKf%myCI8uCv2QENB` zO?Il&aiX{WasZEdM9NSzi3iq}AQay~L4=k}&H)fO?XrB*C*UzxyWmX;44=jd=zcL- zYWq%f_u?A-3pqH-4yv*RK@?PcKxQ-!vrA~n$uEbv2y<$7@p~E!D@CEsw>vs5QC)cl z#@{cG-`SY8=beqZwx#|)rWrqj7Cu-n#HR-RCN!|F{zDemGcGdx_Lun*J20%O#(qg{ zy8W#=UsBv#u?mUtRKbDDxMz%meCIlLK?4`@YV5Rb%n6L>-7L5fqF45I6DOKM!-H-71w69nAlsL0NX%%tiuFE||e~G@XB($)HxH zycaB&!ct9cDuK*4mWIhmMsKPV(}@AVWiI2N(ry@4+ZB+DOzuTiG#q&r;SI-3M?Vo) z8_Xr*9l;?2GF~cR*XeXQ%u>&5h%KH7&^}K5N|mWKsmD}o-925Owf^McY_olD*G<(?c|H|F?yeZu)QblZ-d0lN+w zJsL|Jw^{TwExIc#lsh!tweA;L^}?`aJ1xRy>?~YApvS*mVLW>ye4uVKm|JhCwL;q8 zrYOd+D{Di$C`A;#Q@N0ua`Tlqc9sV=oe~B-35s#8j2}RGmwgEKR;KQZFaF&&U_(>L z-F>p_w95pnPqONdQr}dpLyE>%4VDN(!nfwcB<}0xQCFjp*G^=O7RAaRar9iY&MRIx z=|RCv*F>x*9`Vin#_e`ETi=EY2-7GU;Ws&9UIJ2aeGJH>SQ7i#SNyGcbiRa!Purc5o_n1}ltd2-3lsrobT;*s*OxlCT`Ia`y_RD-6UX8kx9|!Mh&tSrM zi*|1$G$2>_nnGRe#9_*UWOmi!>n*{$qTis56#~W)S_k@u#s0b12Hw?udwZ{#zGFt6YR~&w@<;my&AB#ib{Fx^?oyN10WBya39K-9jNcPG~~z`f|o9z zu7mDp3(VGE8!QZ{qqg9U40D^;o>`AQ_TL|AHO6c6nGu$ultUQa?EtCMNIwCnHSmST zFi_6+l^~g*efFC}tqN^B{|XQ~!32vtiQvy8v%NTfF8LH%@nzO%5UQByyZSQbtm#;l zz@jzFJs`y!X9&(f~X;^uaIu! z<+2PHLJ(1YiUO9@Yx{FsON`mW9NVLUuv-1X4}%bl|5?j7~PA1;lS)SXaJHsV~C=zB#EJh?pQ`} z(x5iWvhD;9NhV;gauJD^Iqe>_lv8%zgyLsnI*9^fzN4=b z;k!1-bMIPd^dh-1H)y5$771k?>Z6NW*PNF8bN*S?rz~3+J*YRzMZ!*r!OY373>2(; zjcRmJTw?Gs+aT@hq3PGR0O*;gKlg3vsKZxFVVxB0 zzQsC^>V~8e`TQb8eA}w-y}G}uwh_sZXg;+#2uG!*!1X}wm1r8Ba8{A(z+xO3u}mhiZ1kZj0Uz zG&k745~NBMO?uPIJVE&<@aB#2?30}F(EDbZfw914#LH|q@S>_e`*@{~5T_5kY~ zaQ^jf3&~!r_hWjTk+DYtA~7?{!yP?Vf$d{T>uRX2OLJEyYrzK?l}}j3njDV+@l;Ma zBXI9i{t{kCHoYW&E+^RjOS7JOLy>FG~xe&8^L= zjs&txg*B1CrxpV@Fgs<`O&ySaeo*TFxMa}A2icGs=Du>DVWBzzlHSC|!Wns!H;9zd zsxRmc6%ZRW8azt@skLg+xo{;6RYU{%K%ul)=?add`2lcZa7#3&3FOCRN)m)=N_w{z z-WyT+^8$#%8R)WH$!bC>gfOCEFO#6ce6)Q3;kI1mKl4f?ta+sm)eOQ>J-Ove&PlOt zA=F}sMxwzeqbAj`UL-UAMCRW>QA)Y;U322rxdHG(Z|F_;uJh^+x(X@C-ZJpY%`RYe45j-?@y!;^;#WvDCREXCp***%J^C8?f1PNcq zHEQJxHfM5mWxq^yafS=6!bbdPhkP?SgQftWp=v4-XFTd_PBKq!eFDHGw^AMl^fHfl*MP*j+2}e#=7*N_m6aN=?``z z{kw|qq=MDT8mV(36eQ^Ji}m0p6<6`3OusB|X>BT~CdeikN^AoVjIlX^@>{Uc`szza zmFV@AGm@#>wB1A&a=axy6Vj!DBfi8|u;kv?T1EqmfB>0TzJ`R@xDc86WXfux03&Gz ze@ndUGt|vCBawN`E^+Q1UFA)d_XqhXT{rV>s^J-W&Yy9@{3JY`-Wk>SrYvcx@Vp0# z`%5iT9kbX<(#`y^StWR9)gTt(y~oV6 zDB}Hz6VN&+%N^z8?FszNj&t*=MD*e@@azp%)=(y*dI`IYGDmq$WwiR(Mf$*jw9i;1dL%20$0Z0i4cY|2j@dWz}GI94u z8Y>Mq`-$`#<5jm z8#>Wm6CLJlhvti(CvFJ%qhlP!$>b#laM;HuJtpg%v$hNJT`CB9WV}4O)wtmD-sBDF z7DT1zJ61#VDkjZ?#Nc1JB;XF`o151KVwIY*sEjrBZhusrhs=xR5Q@Em^Y=)|ONajO z=giJKNHVEkF;Il}N!|}R3seM&0|;7_x(tK)bgyHqvHC`&w@kWEMsqZR=Zkd5FAi>9 zw2`LM;zZ5+IzB3+Px|a}M9(1*<@a_HOae3}*&TN!Tp{CI`GIXM;vc-u0Elda?3cU~ zuZNWfe!x7|TqFO2V`c-@XZeyA?ePn%k)DYjqt!E#>o8CX?M3@F5VY2?Ae-`*Dcq3AeobzutD#CPwBX>j+h z=Vrv2^Y9bF)3$;_;3>2BZjCNVRJ%R%)SbJ_T2!7ioKyjhs60FwbZx#+y82AU4Xa`h z3U@8C<}6}yI#mQS=2^nao&^reFIQE23D?%Y$}`S@p~YTG zRGqw?dk!f*QmBb@f4vslq~2x)w%)hb5Vbi9Q)M*J9dqULmEnUw%ASs{ZMY=S%ICd8 zPdgbzgzxD47Vi%m!RaxFnmhWsSwQOSq)%Fel9nQ2s|plv$ox74>-lCJTb=%fIx@7e z-K|^~0rpC_urahQ;ii&Tv|P&&16bd5f8!8v5YiK-{0w@%}57 zydmHesrK@&IHBuI2UDzgXJ{|fgpjkQ%jS({2RSJLyi11E8&NkX{W(jtF3+Iqg~mrX zT0~BCd6Ia15-C_L?uK+0`uS+f2_m8R+QTUBVixfwc<*`ArB22&Vf0DuEGR99&l`OE zR+Kl&I7xxDWv;s-`dJV>o|)yv>@K99JAKpUdVG*vS+eG>f9WK%`18cwNCGiFf)2g> zWD)2^`>3+=Y;H_rn>u44+_Az@V^ZEg%nQ%pBuC2HwEcmoLdC){sQu>us0YnQy z#aCmvvf|zbkMHTD-1*zYeHKD2J~XOJxZyNPP12^B6%>VZK3wnX4P)@PXP>ZTj0MNc z&K$0kx-7_Zl5QfkSJP}qs~F(Vx5Ld+ivd0*F_hb*ncLVX;z=z=G{v8M>?Dn%yVA~E ztvOa=RcK!IN~U}|-4K0Vg+bf_#v}*<;~uXMx5eLwjynlGgyJ7jb)wn)xb?3nImJ6l ziL-oUO*$$+y9*6Bd@qo2G%-RWd-ZrN*y;x6Yj?@#WqiGE>>b-+9jx|I9u2bo$nDB6 z#qDlg^$k)5t!fvg)bQ}ajytjtv)-8CdA5qwg&^5_DZXc1jqF7YR3eF4909%!Q9w!p z@{TPPM?Ox=F|-@{jSq6DduoC3r``>GE2#~IcW*>jCE_yuSiv?N1(@rYqD@!7dhFX39fpfx0k}TO1 z_%p~5XO_O^>-fT?z@B&cG%ORBe5c$28b0TQN#j@NMsY@5eDSVMZ?D2)hZX15dZ=W$ z*FFUB&4s!-tSG|}Z@iDK7kK=hJ4=ggOK1`VAwKn%%6{qQ6?za2_T0a8w(~U7DX%cC zv&tG>2CzIvrH(_ORf_OF^zWU zjyo#KZcK_MSUa=4$)|uKg8SJ;QADP+PpV0~^qVf9f&MV4m>HMdzqdJ84LH$emcJY6 zYMjj9Ke}F1%YmZQ0!0k~c+YK3=WWT-1#*r);3JZloDr06o!fz2G@TESt(e#&46%%f z?&VK$Xp7ZbCXPD>HFZl}2u9%mO@uH%%;*O-T;0zuDe-r$n8l0{a#int#98ur*Xm^6mJt>YHv4*UIE(wSy?s2@ZrMNBDR zxo(06sfN_NpZ`4aX<-N=`}?5+4&T#%JtC?A+B6M5PG~%+Pzw#1JC()EMS3Ef+klr$ zF=-sJuaxd%@wq69eR_tve2s!F+|V)LG5KG;fR9p)I0GBAn3ECMc3$+54$P_jcUX*K zg_zeRAJb(ecLCzn{2B#m-MWk)yog?;<;Tci%aPIc2=o;XQwP;;+~!5)3m|(c*XmMo zwHgOEC-1v>K9xNTO7h0I(pytPB%yUb%0f6sECRcCdryN0wRVr!sd|<)+NsFT{+6%& zMwnr5U6z_5RZzN?M$N~}iKomY#XIv*6>64o$rb>YBZe{ZRU8?Q4;L2fB{eeTf}9kf zPQSyqZt|wQgu|oraj>BSdkcj$T>_P0;`7L=RXThvPdE~O11aB{#gc*Uz4(B$!>zn7 zlP7b9Q;#XsT#xD^PABP(YMu#$Viea)YkGvmz1jJit+zXyzR*;^r673!g6$FgaFm#Z z+K8(l{>XR(F9JA945oM!ExXr{Gn(pDDPCBfQr3VkZKr8Vk!;J=?BYuNwE#; zP{XDJfwpsvkr+iJ?y3h-9MT8bbN$UCIl>@|d$Sp^xNepOVugSt8X_)*2_LWHSw~P? zx@XQY^KW7_H9dTzg}dq?S+t77O=6kP-qGdZ2L1S3L8Gz)c}6K3HWxlJN0wp@g~n%+ z;Tf)-m*&4Z>2DQuj^~EWKit(5HOnbD^?2P{97Bf!=dZEFYdN-|uxH1ET}&aLwlf?- zixCSMeI&r7Z=eP62Et$24%$`Nis$x`ZxBC8iif|-YHPbRJuC(^`D|;P{(tPfWmH_t z_bnQ{3D$(*4gnIJ;K3nSun-d5o#5{74#6D)L4s@JPUG(GE{!+N>-^;Y&pG$Lk8iy3 z#&{olkKL=PR;^l9yXLG}dH>X130Jw7s>HI&0HE(tiyHA85|*Y!8Agp9Eo9II@oVGh>~G&I0R*ec z&{FQnqQ~Xn|wp|zw*ofEeHkv z!?p#tBFwb?lg}0aW40;=a8Kv|m9h7S%g*s<9mH`>TJiK(8s49?_EaBX#;BTMvi$$U zp8Xd=J-hM`Tu}+}x%w+*_m8pHlz-~JE?4{RuQcvIM<*g9VeX0aL@D_T75Cr90Dp`D ztbfb>^(?`^q(&|Na1f68bRYjpyZ>WMJOpM;+(pUq(?7U=!UlhMf(EN_hkre2@W=T6XB)!NewRjUqCMV?`PHThy=a|D7;Iubhq{7NNE0QZ%Myt z{%$i_z$CL+wR+~y4Omx)i%q{|7kA8HeFm%3Sl=JF^>Md1TJs?8jA*RQg!+ut<#k6A zu`$-=!nEcZU{@sGn2RA}+K|F%5Z|J3Z;RNCZy#0!-0L$18t*rUHMp8e&q1#C#tWg} ziWxi}nW!2{blN%`O;?!_Odexys6i@c8&nsIiU#U-MrcFmycKk=?kpLb^ zI6KdJ)Cy@2+$e?b8z}S2n14SJWLJbO{8pH!{bP~-@q)S^GS?v`r2~aWd`QtZDZsnW zy;1vS>>CS!#lb6=;vo~*Rpcu=Z)WT4N~67Hq@~m1TbWYovgF*SI-F^<;)i(-4!q+` zr%sAk9$}ql=ZT_dy=5(6tJh zK`52dQI+RzL)O&r)}w(%%0~S0ebPHji^tT3e)dl>CwT3=9(bCzZUeYBvaW(tFl zqkR~+_pX)-{d^O>mdWf8`4X}Ti5v}i=z<#b3?$g;%+mCZ6*Vti;Y3b71cuXiNA~{m zUKNZ@EmE*O>UC|g+XNd@g2!vkO=gP+Sm<0SBN4nJIzo5Rb;v??e~JZPzaLql0!(=@ z*GPjaKM5uuSBz{T-u~?2f0cY>+Q~pIvWI{_J3u-ggtNFe?wSZjVxsz1>~la+N{Iz`L0;b9k+Oo z8Hp4R@(#l7QpTqC*#q?!_gGmXTDfbwS~Oerf0?taDl}75o<)o#IR`=DTTCoJo{E|; zf}G3e*o;4vpJrn0&8ql)d*iV}fa1BAyzkxNC;r6SYmKqNYqHerox%)nc(HOiG@8VA zy23yPyDT*kQa3RNS+lX4_jtaM&cDI;+-d)*=@onvh3WaiRfjDn@D7kU4zX!9*&WK* zEr%vR(BOH6v*a@ApFsmq1EFYki1ws9e@ABL}D|=bv20v^#lzNqlyZoXy?yrg*NQDyPVizp7bCww_>63 z?`BROg6&e_z~S0;Ss?%<-%bnOF)5)$O^y!9HI$OjtDhf##`;Znf}dS zq^-p+v9RIGg02*bi`5^vD?2CaWhP-{Yu1k#*Za){2d%>tZfCl}=genc9AF+K6`j#u zXfGR&6|UTqM8GF3R4DoJ*pDUkVN5-Ie|M zbzOetwM5A8I@%xHqZ4N#3ht}54`ZFZANks9xO6ntQ9YTpBmyWZF5kOp+EB10Q&fcX zB6hAcdiLHKI5v%EvXrz@J@`tJ^iB@Dix>WCK}JE2qr?%MtTDX$`Ai|)E&Fymv%!;P zo)r#j>46v#>+anRHDb3B;};fd_KnWhaalO4G{=L^PJ@WF6_nm|Cj<)nyKhZXYn^a! ztqR$VvRRJeUnn;ldg`GYTLh#yg&ih3Kb&z?l>vhG1tn8HJv#6L*2-LnSi|}1{V2mK zY?Vx1$dLyZoli8L+uzTpY4Wt?vWmO|9+>IXD@3cUjW`n*>>3#z6?jiZYrWkfwLJ3N z?G9b%X8hvX>p5Yuoi6TnpVAGQw$8|4Dfi-O!G%Y81;>#o&x&u_LWwM5GO+Ze!<|E) zt$`*$`uB_>>Smu|^mP>K91<3R%DGQY2wfP@qw$Ge1@L_`kKTt74MEdV-I9KPY5Ng^ zugQJmRWrpY4&ebg%s{mH`3Zd4u^53&CNmD~gXFL8WY`e}*MfsyBd3PqNuUm51bnu) zytAWum&{l~4phzFM?hnxA{&CtNJs;IfBbH)5?OD#g7L0s;{zF}mE8&t zeJLMEG!E?A8zShkKR(#b7N8+n9kILRBjolaXg1}}Ty;NvtIA`XHG;CkW9$@)W-oRh zG3WfAjg8DEXkWxVnpM2XKqNtPr%3M+Zd zmxy_Uv+e=r6^34kwV4~Wbn@J~F?2K{;S8wmp`ZO+7i|)W<6>re@}b_O_4KtHQTJ|h zs9d0m3)C2g7|+~QL~s9MyK%W`vGDZq>fa^Gu>C>b)x==Q_9?G|e+71s&5jRnMMr)!W#@a(r6-(~=1T*#BAluVq zi__C}ARPbh?3fQq|CmPldVlq82Lb37xx)bb`i<(s<}EX%zAbB~k4QU=XQP&N zaRta=50UM6wA)}Ipmlug4KT(Ktw2C4q0^0OAV*GnxR^+6=*5oqNZHd{dW$l2w{@Fw zp{TiM5ijVMm6X;`0%AxuVPvcqTt9!|OVb&MGXz8wljGfsGrhs~GBp`MqWlWxuzo}c z!ffRDb`oq94lnvnR35Kmu7h7}O-j`!k92QP314PAAU67t3^Ik+#DonU_$7UaVn8Xl zFv<8*^tUI=RQTO^mR_H z1V4GWd*I?tWl>?5OaZq}|Is_!deRA?G=(NQCw8;TO!yu!Y6~C;t*pSKf2-9_U_M0xnTa{MjGh70YR6?Be`Gs?QD_*dTG$Os> zmwMzjf+v|_ZdJ1p-dkG?1cq%k1Y37&{gT2r|KOQcpC_UY+^nmt!R9+eP3o>U1fz3C z;7SU4BD9S!LCxK%r~?@62{Y|orfzLE>p6;df(?@_`m;RIk~;bs@ZPLez~h}q#4K1~ z^JA(IP|+o0(~U+u2ncxh)+TZeZ(<{ZspVL=ne*<000HY7wm-?cJuzut8>8@>Grb-C zzzU4eJIYZVqbncdO4L?%zlVkgcD;)!?|QPG z;Dw}T^sd4EWDBzkpgm%7o{xJKHo4e8{F-z7%A`h(G2#_+PE1v{gIQ2>x@#-(#FZ_b zd4vMjb%H=Mw3StUlQj<&i>Ddn#W(!|y<;J{ilMmlKAxL1)QP8Bla>T6mQhAzwgqWZB zG~j56V0!dQ2H=1JUvIYdsr}=cY%KeCX7tZ$cwahsC<9p4y4AnHR4~7q4{C7dG}bjJ zKS+#vj$x)w-CKYE;^{|CO6yV6a!ipd4;ysBheP+=R>{+*5--yK0hghhY@`_Zhpebs@`o~89SNGfKiW8 zU*t^&S(|yobfA|xGG2+Z89w3y+)nVdo`2AqpV90k5y3=sWl12ak!;dr3d4jk#wP)I z?}H`O&K3-r*OvC1Gsix35o~ElhHRNlr7ESQ`GtIml1ozrnURV5P~5}P0kHx*%$y3>x8UkS&qT!uzpa>sS#4{^HRf% zMj5f=-r!R+% zF3R*f!MOC4zgK8}8TTO2d?$nbl@+QP?Fe`$Np@^R8P#mAoC=?d;BtR3sq>C-B9Fg&7Ym9VP#9hpL^<3S$1>wrGu=0cljPk+duU*^ z-dc0hR>R!eHPZxEow4VWE`al2n*v0u)$gz~gi3i`Jd0*<>NxI<|FV7S! zyDRD-zSK-4TUTdOQ$CgsDm5>4vGk2&+R2 z8{T{f60wtDX2jzJqkalT!-DR$C98G4_fHWBXPw#j%oekls%Y0GRnY$?PF&Y@yvDko zlEQ)_VqImZyL)RuUmcHPX5x*>ulXbPnO`pV6%3zU344jhGxS_H#UoK*3mAGBIg+nL z6JRb9XYRVvFnGc;?_x-Uir@pgti4%neZ%BT8C2h8sMc?a!xGF+X!|_J${@?64=v)j zS`Sjurn2i#?qNLlN^shy@?Id!_wxd_CQ02G9?pQu@GIonP z&n5=fex|LdIFvtnC0#G5@o@aH1qDUs5cNT=)I6&pq@-o(hsS0?N1tK^RedeN;LCv3-M_?GYA^ILY7t9=;s^nFse#pcodtyVrB66V1j zAqF~G!jNv-2ssaMe8Z*8wsVh+7J0rpd|xlL*4WMSgZ2~<(d0-4a&jj)V6!Gx;Heyk zJ0^}sdm1TMTXopha%Bt&zfNrJT2-Wlng7y<{&u)&xfw3wW!&(ezqq1p z>W79Ldu?s0-dMMFl1x$4lGRu}R3g7u#a~X+7pLPCBq%rMY=;z_z&Myb6PxA;R zk1`@Z*C$M(YGQAlzmi4jWbtN|VQnZOZMO_`8n|-;B5HjOyRdhb2#_{W-sn01m0|Nc zFo<#3{)k94RSi#&!1m57n(eE$bxE2YpITQA?y8z5sKni5Yl27@3#M@NJkp4q^p1E@ z)u8LfY4-#HhpW!NxDbuV{Ts_2qj!l+=hbQE@o(fO#`An@R^zE$s?|u13~A`bRs;84 z8nnpmwr)dfDJwi;QZ@8ezH(}Ug}{5BlYYgPMQh|zJ^H4loGIeoYY$~cQXfr)B-p*T zI8j5ndef_Tx5R-LdI3@Y)cB~m=% zpzEd&Hi{0@NQhLxW7U#fGt;-z)ewLBj*4lU-oAudF8f;*-#vB(Q0 zHSs{9ki9KkV|R9&#CIaqP zg1N2dS7lGFcLj!!f)PYpX-sagAA`4h-WgjoF9BpLSvT}-(FT9k>x?F7aZRk7n&07e z`r|BiO<;{Rf)R0EvCxjM*OIB3irrX?5q;9G6~zl33QCQEO-H zi31w`g!II1V&z^FCM^2=tGwVH;7gs{JD2t;NMds);FlSEG@}SECB{+p0a9)h7x}s1 za0@hAc{bcSs_HZei~u6nSt1{p6t)#frdpL-TAe)1lwv;tJy_w7LzlxkxZ`>(-V2U9 zdlaj(plz0pavwPb^$`5DQZp#+?fQ@f&TziOC~(P0X2A1v*SHjLSDnyr_HQ1w(Sc1Z zH>Ii7Z+k^@b}Uy>en~X36d*<}8x+3Ad;!n;4S*rfC?&_v+$_^1y{%@wW(K+&s7t6v zYOfzjPJ0nPmC|=(@I&9)0k3IOFm~p2mOh;Q_h>{zc&%R^bWP7}HqK$mW-N5L0#P2{w4?F)75oqiDB^S%N@^?~*#)MQBA}(u-H3 zw**-!ZhOnafb}qwF&>DDKpdd45H5XR#*`XpqhQmKxLR6;C!rF5l?@0=Rrt_o@0faiI7WPQtA-%)7yg2GbnA%mr$#*!BP zHKdX;7QdTQ`|F7Q8lzuI&T~D`cWpb>r86r`9tGMnyoNvXCfNto7vn^&wnU|1kdL%M z_+UZjJOT-6_Abu2d2puXKH4u~$77swdQw7SknS zf_(0Q;-e|;pZoI}aBbo`N~%JS%TqR+qp`6{Gzm65e(Jh%aO)3966GPWDS(+9#leqG zLuxrTcMxH!3U+m}zK!BB(QH>lAdyF`$ifc8eLzaQ{%`lNE`2j zuQY=9Y-aDazwhvG{7z=o&ccotqf4GRGOZV9=ZTH+aHSl(q!jIA1>eW=>Jwlu;~ld9No>eTMr2^=?PWZUC$)t^YmR!D;OzSd}ywXNX# z!q||cdy+LQo~d4t?u|?1!airQRj8nkzE4}dcejBnyV0B+L95Ok{3EX3!faHx*+jmH z<)98-Z`Av&X!&Pj4c!0<8*!guyZw(8BK6(kOmdfSBO9T;_;K|wvhD67XjTdwI=FVGTgUs2nB4flcG^kA?f!1s2P@8$ z>}L!1mIoa}FFb9aKgdJGIP-%Kd7PVa8byR0F<7mWS(Y$@5&f%dJkl|rCq=k!U+C`f zhMrV#Tu60^b3l&#(c3OxlQPHayEr^EI|3tF)vlFBCz_*2i05=5`W=oambcngJw{hddzxNljPF=Zi+fK(wl)V*gShM{b~f)A3H9P z$niLPm4Pcg<^~6m44F|nV%js-laBt<-GTXuoVaiaPmt~0HfqDq_+W-s#XA{U@dMo6 zaz}+WgXYs#F*VJ;Y;=z#SH|=ep>q%JORT#%sQ4WU6d;lwsTA^)@=dYz^ryHdr=6*^ zRhDhNrDnHnJMkC2@W;$<0K7_FOiZtp2sD;`eryZcQkJ}X*2hrmg<0O7GZ%1_?f#Qo z7J^tnTn!qL!N(QbEPf3Elb)-w#}3i#-XY_0I>(BatC7DR@9x=i)U!OC8;OexKGXu> zxZApfxAc6ft9k_x@zH5>)X~k9`G=m858ol+z~r)0ojImuBh(fQf~v8smR?5S9~7T zQZ8BOWANb2A1!I>qPu1pv8}lZ_@N58)m#f+Ty4y_p;SYH52s(oU6BNpO7SO0{`{K9 zLcw2e#Hi3}s_*G3%YGKNA+-Q&WFSuTY@vnK_-Wu=WT#0B%fgKKCT<5+@zNRlz=nC- z#;!OdyvCWKx98{fwTt*7cyqU*uG+g`P|;y&Rlzc@EY1sr4~I&0+@n&221hw2ifA*f zi%(OtZrZ2z(1#d=x1z<>he;`hqk-nD@`V%o)LvsLve;O-1qd%H3?LCj{GFkKMfu`) z6%YuIf&y0)Fgtt&o*h|>j&xUKG)(7O^_Z~?324`*SYxK_wS0`10s!DBDG+~S$B6&= zw0Q+Ds+&da!}9PeJgy_mmn-E8t3$4%j+J@id(CL^B5scXnl|1i=*M7jC-I(=S0t~4 z(-hnktw2)>S93amivECo6~oG9o#CGoQzF8C5~Mblp8x>g$8ce@v%AVXx96Xa8Y^9z z@2!iix+zBGm6lb#r_HRfr65uuPy+)uWeho7gZy@{EL(sNtp2bD{i|}YAErJ&h>^%I z_G|zC7zlrh9g`hP&ffF4w_!iB;ox6!5WUEo{fm)*y|X0=tC!c%Yq9@j``>@{MFvQX znZAh8hIyR=@h|1W>V!&k%cg|>_s0~7L=+Svxp2a6Oo)xRzQ@PMR;B71hqVp2zf1QS zZ2$Z6vY!v;(P3iZSAhUw96(8FIbAf_C~bP-mB^&@AMTSew5H-0DBloLF>cZ1B4Jv#J5N?pat`}fUvM1n9QeyF+dm(UPEKCe`m*d!ak2~A96VOa$>@S zn3%X9ww>$mvyK|)TwqpiTd1N_f~%pS(LbImiC{ny+yfsF16Nwo8ltn`iV43K^ck(J z^i2Tzgy--uT#h9J!*llRB1*y1J>g0cSDCMowRO2C$Zle8)bdvqsXXEvQ<4!Ul~O1i z{3t%&kNJk%yxyl4=*U%FlBugvZReIIk24pqp86WKKn6a?HBqpeu#n4TUqI;9*3Fu* z-S))SZ)4PwQEv+5qv&7;;!vByU|q7u4-Yav39>yNDhl12>h2%Gm!kR8*Dql`^vz~3 z7`Ug6I5VpgG;l@6mlzS5xwjHlS7~e_pY`bm2lan-Yb16|MkSlX%W)&X+JK^=2n#cj z__9!l3P)L&!oxD-+I79BT%(y|W2-jg5*Lc&v3&8$vNg$yYbybi71&t2)Kf^Hy>?G; zl6CO`M6|0?UMH${UdOwBYZbC;_1#fWSJh!?ZkRv?vbaI&S)+FTG-h$bvt+da-rs6r zsWo^yqp=nwYn`v7S1)rr-Zzrcd55#=MMgjIY_>_YJ*dPSc+3x9W$Mt1@zsxu>hvj? zo9Sw{e=G2!LvC+8Zr-qKMw|zOR45bXK-wGVUG>e&+?%7@3qzxA@pC(S>gG-=R*Ue$ z-d>3~U*9Jlm-^@nm`LZ-E}BgL%(Zgg^D?L$Wj2kjT7dzFOK_3VBJiz3Gf!HTpxfme zJ#3J|spN2=iJ>76uk((BAD;qsqdi1Kl$ZbMARIs8K|U(_o7vu?;;Q;~7gCWLiIjn! z?K{`+WyWbnln5Xe>tITa^bGNmUlh@ik;7q&1joULIF8PZ&ug)zO{%530r&ABR6KMn zcSuK<;q(NFfGriT^&_~SEngu59g9vOb0m=K0$Q&xmnrlNZp2z)pC1u&&skB4deyPWtE|ipB;ba{oWq-ZzQB_~_Rgb`C{P6G)!z_PN@3>#-iGiPxqzMWlSs@x?b>)r>6`~Mf;1vq{kB@DwN0v|z4>u}1U_!n_aOE8x9b4y9hTGpXM>~9dKO1L7m&xg1nqN67F^`(s zn$5SaZW~@9Z9dga=LI}hM9SgNIfDhTMibnG>LNu6f|JWB?rS&@zK&JO)tQohi`BN@EeqPmUj^o`L?u=@mA}f?K;f=kKw|k#^o0 z--K*>`Z?0?_nb5%crzjtD15u`=z6={;N13V^& z+Z+GPy{+x}w31DBde!~Ls+63GnK>Bpn2ee}R)I>+S_E8uJ!F&m87~GJ!#2ol2&7dI z+~=5VbH0DvCf$6vHxLVhU2FFZ(PaRs?jm0|M~5}&S1;Qgo@1NCnH2DPvvKVwVYEi( z%5T)_hghA3$BI6v*zKfe`@PMbtEOOE^!584WGyXv|ox+kW6x zG-<$v+t2z`ZVA3{SYS-ZM7#6nGDkf(*6wZv+VhtIFGhxro4$GaBu)9+p660QCrj@wgUSNUAIKLtX#oSCw-e$r2HBb?Mh4kgK~)_-+(hx^s+xP5X2&TU zV~ls*`?5-Whs3k*TCMR=7y-R8Am%_v*-Tsp@v-CQ&4I;srjc7d$v$K@Z$N{GhI{x|Y|iHp|+s@ioAC0Tey z2n$B|@82RsynDpcY>)BM46pF3k72Vij|C6=*&fY}f5r^Je+|c8cfY`?#C&S0=PDwG zWo+s<>4)4@%bUq&?0Ql3O*<2`aX-ihc69|BD)Pvt_C!=-ACezO>Ru0(NCOvjFP7Od znV8DoV37-7^yS9=u%8cD}SE$qJ z<-$~$#fmAq%_fJRtr zHz(8%m1=ND`-347XFni}qxCYbAMf#f!Cv_Hpdb+#k*q0aKX&B55dnwr2|J4F$J$lAp2RX~Dye1E=h7=`XPc{08*Y4HXnh36^uQI_9tZ@ zJksdUS?*S{*_r_Nm+t^MxpA7)I*}LnH^5_f@ zQJ^@I^)?@jM>8sjve}%dFbJ$p&1;2NBcu~;)~vKl!!wd)mziE3>o;0GM9uoTG)t(^ zem_W@wkBnmmvck+dmhveoF1YAZ71FIdRsp@nU}D5megn;PA#^iY-!mrm zQ^2K}sEyB(+|=qlL70yS5u0xYRC?*ybeCiM)@#Dn`68{dCjmQC{^4<)Wx}8$n8D5{ z!X~F!`+V_LMwugat1%dWocQ-Sh>)v`B*E`rH1`l8H1>z(x6^KQ{2Tv>AEME4kv1=*+*@U2l+QVjFvB- zWb>PQTi|oxjV)l|v>8&?-I!M9*ad-g__4uh( z+1p0bW^}%_je5zQUxny2?Q8}K&s(RsrMi_odNRzsktEYtlk5&$$ktVw?Y1hD?v-iR zbD^Sn!qcL9Bc^(4Q_r^kDp=TY_X(l;jXoRMOHt%iKZX{5CTkO~-TmjhTf;g!)vvZ^ zoit2*GbS8qt6qiH%4#|i>fFiGZs-hgZz4D% zZ~_<*(MoM0>!d>@-Y~q^KatcNE>4r72oE7>QZaQS@TT@ozI1oLW@8nATcQ@4;(Ozn zd(ZFM7?{7}{HnF(2UIb)r0af8|I1<1u)bF)3A+Zf&&&YFNH8niaK=fGx*27&_b6JO z4arZ1o-*pDe!4fwcjdUNI!q;f^yU#4R9j}&(Q%G))=CRN@B7Tj2!~7vT`{_N)^t^) zp4>&x!2T0Vnt!9ANhO!#Jl?!(#*=6I0Ii18UeYEbBA!Q;X^y~O{A?(&M8i-ErkEUU z0WDn%s;|CR9)F6aVDr5FqPp32^O1Lt?qQuO{Qcg~hBN84)5N2wV#LT3Q_1O{aPT8Q zBc#O&q|VR$g_|a=b*;E~Y{ot7DFvbAmc_J(4%*2hw_VQZfuV!>j(+pTKE}F1ly=Sm z4om!PP#MojBPYG6-Q>sRV;an0AoeM@_6iJL?5fe^XfuQn$+&D#bt~V@`BG}gRlx}l z34{0R?geMQzuz}*DC|~FH69deS)%s|M`jj!d~E4J3T^#hz=vKNb|<^oa$VH`$(!fD zcXQUXs(4$GNiS!XKeGy5FH>4+Km6h<$>zPQ@=-AT)g-f;sYXUox93Ya=I{y1l5nGEx#9$}JQLx_GICfL$vs2r^%j((Dxi?hIZM&m$9XIej z7yfPKj#oUjE8O?|3Jo>_cE7KdS#?;SM9lO8o`l}>XJjwwH5-nIu!(5_c|LDcXd^7h zJ=5ucwOaK?gCUU~ebJ@<^KzASV}xPZ&zL~iz6$1NgQCJ7>=4gSlSTFBA4{~*_?`(a z@L4?MdhLzN5(h;;JXm?5B)yybudH%j9M>A2q{S}p1K1*FU%Dj2 zQYj;c-9u$x3aK(#yz{VL@uWO#Rl;1RWhk@6D1uuP@c8W9!&?|QyNU0d#-%~LZS(5v;rf(DBbr-PA%Y^_{q*G; z%wrW*a;)9Ty=InBs|)F*V%YdzVPn<`QhvC8^4SK`a>}um=#FMVuN;zpwmDOOWOp)5 z=mmxSlC7NR3e@2^HPe@kLW;k<=Wn}+4~Kwft4^2ex2Z;0o~)V$*WIfsgBtU9r8Hj~ zKs9wXztue3OOfAF4E1*NkXx^`y9%%=f|VP~ddv=6AOCF634sUnvMAcUo|C^5`lO)G zsVsqRyL#T#$*xr&pfkIJQRKpz@{QW5F(&-Rq-O1~O}`$`O%03gs+tPpgma~xSF(8W zo3S_Ca`~Pyi$oF?YqMtDjQwP$B$J)qLR~^B80^oa1k@~rV zJ}B5l?%51!n`yQv^el#Hby%P^t;!CAGD3W@j3igkDq%gWD#&fjn;#Q3Hj2TVAbiQQ z#PpfY@_e1In`wM8%)Gg9iQ6C>J%T13{yDbcE4G5eDKO@6s>7T;q5cIt<9mORUi5U@ zhnac%B^2$IT)mFycpSwP4jGiM37AD;oAxul>;-2R#wVMl-+0p_gfc5b2r=m0r#FcQ z4V_?E8u0rmGn9$u9rUBCz8P(so8I-$*4p#(UX@hfv+wvmu{G`> zrZr9JYVxiP$N^;L35dEdoH+bcanOUVm`)Tf%^ORSkEQ3^Mu5;+71R!@iQKdsO(F6c zK{%7Jh?K!Q=E~w3R`&3A?XBl|R$k8C-)#Z;rs5f@mqIdPefcqxU*&N z8`Fi6Q=7w2?6)rDa!~e-iP;U>m4u@}gB7eX#O6b_E#tf~Cx;VeSW{oUc2P)uLZC+Di zZZ@;{L`|+W8CvN+*-$C$Aj_*-Pg^;;4vMP*0ehSKoCF>PfYTbeRNWI^-SIa39U}bq zAu7v@YoUEn50x zpYJ13AE*t1qfn)b~}HAEYhc1eb6qxm>-5pE-iN}%vy4{ zU9c86^#|9NnwsdmS+-CMi;x`7Ck-CdVBWxcM{FCm^)2t2U67Mcf|L5P$7SE^8HP0( zJl6z%qCyO4rxbg!YKqUn6N~Q)4~`&Jt|;Wm;1yU0HNN~0#=*l1;HX0*Oa5J${RjT? z^$+y97ivyJRyJtI_BX{2dim)eA6dT(LiPfTsh>|8N64Z1LUL;P{REALUa1u>){1V)(lo8VO-;TV87Xo%WA%|19D^ zAU0Rw{@o4B5iqy?|L)KJ|BUC8C9SGL%?T>Q|BZK&SBODTSR_AE$%eiU z{Iq3Vl>3GE_rAU-f=%_;ju(YC;@B}kxo_>l=>8{od}k;q!X?aYzS93aFogjh0VJ-c zd$usxE#1P}S~A-4A0Y<|{I^lFq6(0U!&Z1%SK?~(d1bk~sE3Kw+~Q8UROItLNcNcc`-!`|Evs$X!g6=qV4JF-ww(u zI$s}Wu>PKRC}62AqCF~md{W8PYpZWW0IPsSfyN&JVg0fHta58;Un!xY5gY!WX7jN3 zDzEV6vPM9a4Jq9y_rGu^A8}O()={o`EY2$#P)6GqfEN>C z5+k40lf`p1wG&HjJ22w#H+QHIl;Kg^Myt?{^m{*CibGByOHgz_U< z0vYKf6<3mM8Rn-9 z;WY-(Y@ASiZ6af-r8AZLwkrTzI7Z7g<&8aqM*s2c@D@nWB{l++Os*BOAbg%OhydGM z`{vpPn^6tgYWoD4Mq5y#7nG}l6^v<2YcRBE7-2!ygq@tSDC>2c#u72_{;mJOa+0yl zxm75IK=20%gzpFX)zzEcsOzsQuwiQ=2in|pF?oM$D?jAIdaMI_T=eyqZ{t0KD-&jMEJ$v@d-m~xfb6=NL1|4|9kX*6j z{Koh^1(JZuLP+-`Kpc$K3~_O#y&sQ)4}rM_O8tG^MeYmI_z2%O{>(vKRl}?>EWQ33 zBG*VgsnM@B6LdqcU)H%+l<`-P^gm`i=;;~yyY0zo zI#P+ui8FG>bcJeaY9>TIzx24<|5#gHPc;2Z;M~QlqjUFp-NqgPq3N3M!yoXHz&x|c z-p_lh2`SI!4(MEiuR1?*AwN#`Kuiyo*_-`8D;`%xuW0St5`wq{tMU3Q(cMqrHsq5aP zvXbduJJ$~nEIsM0ba-=m60{V|vKq;*Np~;W)(O|AS6ep!kXT|Z>s#4VjJ9)~y5VjA z^(%{NrLl8+M`juVX)3l*wY(?j{2B0r%k9znlE!Z$!u-)=kBH=6p^7XFE5O#uD*^l% zR4@eLAuY8k(;IraW*!-u@IQ;_K@T`wGC^OOP;+e#97Z@Xs7|DB4BCO$l==Ca5{jV{ z-H@T0n(a*c)@6<*pX*Zj!TpbRw%r?f=AC4tYimI@)@KJRKGK9LX;n%_xOqR{p9mB%hbFYtN~1LiVUfowcGyA#;}i$UK--f2S@&8d7Z(HLw>CB29S*Hlc`CS6d>f{`_moDu za;FR9pTV%=vLO}Uy^O7?Y+^Zbs&~j4^15_a)57G?YXb=vCcO2-w)IZ?1nmXKl{4Aw9jq>5R|&nr1loIdjx_rf3ol zE-q6>Mn+eDGO^4A1%o)vw>C4a-hM76FKiiRf*#&v~~vDCnCxb)pYV{{CF| zOYN@91QnbuUNB>p#v7bB7Jo_pP50-TjDKj5s=gj)Sw|YuK`8oqMk?7NdUDAOw^Y0* z$oi`#(?t)RxwcREbGW&SV$s3)0{rg?{hF|JR+m!Z%bs?cjDin+5wHvMY4pJSUQbG7 zZmF6ouy+6QgX3jg<7rSx`$HNv`>EaDgHugvw~5$%)$(vC{)31XW&#AeXKei8qbMpH)m6>|5`8Dh16cX1wO%=Oe(4@~)1ZCCAJ=2U&Nd5i?CXn*I% zGgTluI=1gFx<;uI0eW9&-kp4sqV9FRrSr4GqOu;qs_Q^-TlZsPz@(ZB_}qR=wnllA z1k=t~Sq$fojcEc&hd`wGt( zDp&+sch&ILJP@K=vT;nb_E2csk;&Mkh%Bvfy?6Ut&Ebd_V_^-|C=pX_>KJs5l zr5vE15c$+U`JiP(!-77ZEksOK*theO^;wA3!z?eufJ-V8e4)V%jfHS^t!%w=`P!zd z_swNDmffIo&bV694}*g`K?eOkLQN|Sbc_X zfOzM)hI7V%GXXDWCMe^rVE@KrcEuMOQNK+w*7;&6v=Lz?`j}nqw_yuF>UWftPl^BV zI9mF~IKHw{M|*sk3vS|U;pHQDa@&|hqsKQuR`_3K2+fh}w6V20X$0L*(7VC&S9Ba? z6Qeo;#0{e~mCot>*uHydvqk)JB`jX+bQbU>?&3Lh&xZV?{`S`0P7W>n8_JHfEakhq zNFn5kUf9%aw;CV_EeUu3m^&h&@#R|(+Tx<^5Eba|OaS6fu+ph1&}eT}7P1Y7MI>}- z*lLA1s++GkBkE{MsrQx=lYZJ0plT0w82jECEd==a`{)JAL>X&vyW$UKyB>a+WTivC zNq4r@VkfDSB*c-x=1#oRBrz_G+h`_4l@<&eSn>!E=LLFvAvn|0gnlEzDOc%n`JSgu z9(K3GM(H+1nbu>D%Qwwc(TgiDYhoPP>4Lu5JYh1ax~1={H=V6jY3FWU8n-ulKjoP; z{1{!LhwFNbY3C^E>B?c+P8krsuM5UmV-Q|xZ(>NiWMhIsvL5ibLvXs)sLO)@&uez* zl+D19sy3f2VI6MPI4rW9^mmqHol222=~>#j4+=)F6()f>)I#Z*AZOl8|8s@@=GGA+ z=QV%*+FH-Ht0c6gQ!#&ynU}0oq6qudcb?7X@6wD`8#@TVZ&x|n7C16*GD;ZpqHm8^ z;-&Qxrr9bMOXd@6k~4Jb4th7_ut#^b8o7_C!eY*%Ovk)3F*Pw^Y6QB5oDDtc_GK$C z^6_XILS*nr`A@MdMd$Pv#gnehD2&)=%H!#yDT)8f=HZ80%vYFI((TuqdbaD+m zaGxh6VqLAU92DIXkaA?Te#ey*lW4p zlQ702I1#I#>)8!NEg%~RL&@T+c-m1Q6|vTK)$sv%ON zpA|jXdNznMt>vehyCXAR!k+v?@A9E3qmW6f(evn&dRR&ZBZlM9IAK=>Zj=^7H_Y{L z+k=Htj}@fm03+r#KS@nlX@7Cc@3y~Gdlts;l!s~(Bo^-V15#F@HB>v>)1yig9J#<9 zU~zidj+wMMNfQS=0?0_@(7#Xo?WR`$^5ly}qp2YwTSDgDDXaDFY{iU>!S0)bLEN zW{VhXP4#l3Lv0Cmhv!(qc)U+U7|op=r)P=c>2RvAtSwiWbE@FCZQzokpksho6wpkl zTH3J3Z?*6}nhMp?l7|pXXn#lSfo%mnN6J|N0#8>*tQ(0oYZ8P#jY(&F%5Ru4+=;jZ ztOOFkPf624{5kvrr8$qW)7qF)2nZs|if)aZFdy+)EYsas+MF#E4*|o6Hnvw?W?iAT zU~e<_``w-t39@r5tqO;ylw~;^_;sBm9KTf0xKA2qFJD+#-dS&Z2Z8ps$b<{0uVWl4^lCkx0TFL2fl5$pwA-Ck1^ zs9rKY6;$~Z{F1|&)j^w@j!sv^vE;HeRtVHMP?s<}#$g#!N>>>A-9jal#U=Ba^zA(E zmf`j3@-L|cWu;7gwE87emf9nf73@@2nllY>^UW4UaxfO6x9XU{Ot z+&8|t9uZDnY@sFXZAf4vygwW6`>dv(=l9|&DFfXK2zpK@;IN?*zZt)ja-5wVVZ?B? zPu63Wn6~_8$O7V3-WF?_?a=XM8LeWkq?+BBDcyUDn^fc9Pbwf9BXJ$_@0sGU<@ z-#hCyKT`yYfd;k6@)zc5Bv?tfe^W*k6?2e?RS1)CSHChh8U463>+lU^55e*g%32M< zxfF9iHvwE~@Mk)eDGY;Cc+g+~<*uLKMbJ=)IE4=~)P5Rzkji(W5r?0@V zYyqe_guc@i?g%y?JW_Xb!fdM+2CqA~SD)+i_qL}>(g!76Ps&y*$Mq3nQB~US{mv`8 zwy_=Ymb#&b7vVjq27>^^O%b_O+3HzS7IGV|^oEV;X}~i6w={s?_m=aW}M0YF`7tDw!6z8b%j%Gm9)?ncF6w5BO8p za2%&YrQcbI3$|l+WpJ_}sPwAeBQ5u}DQ1laCTq-<^B#&oJCHuChT83fsI3yY2&4a9p$i(7L}7Y$gMNM2bHaEJm>0WO|cp^I3St7%sL zyIL#3ndC+aNh3YSeb>L)H{EXA1;yO5E-$asX1U5B#v#sK>~rGaYUvrS>syQ4Jp_Wv zp67yqW02JLqoPgTGK8*N)$hrz(@*x>h3dn@3m5E-n@@?Ry9;S;Z8lv*Yd(J%R^Z*Y ziyOff8)1aGRm(JUXn>0Q93HJA?eOzQC-A+Bs6YMP0o3m6vGyfv|J8fAP86mK&c;%( zC4}5{PP@(5tysk)(`#PLtb5em=^^?Y1W{YFIWUEAEz5WaHs{erJ0(ZVI8-C1W3n8Nn3d#U z-xm1}yrwgJim`N`wj4$Ax=Bxsnv|T%LiRZQp0M;<)lFx@Whsr*0<@cIDK9(PK9l6T zCnRsa2=MwB9SnFy!tYnNxg5pc;vP zs)gN{o9T*vbadywXZ1U3d-*`H!=fam0NmEt zG+RI(yyo55J60&SeswK!;3P7&i*W%W6@6T+0J*~(Px;o317%>|;*%xP^$D$a#Bk~_ zzuHMBQih{a!Wd+D9Xl>+dFQ|EDFrk$OC#C3HUw9;XPbzE5-qEYn!#MCobe0H&wc`i~Lx1?6 z%`gl-8Ap3jQ;;u|9K|qapyarZx`tnAugB3Q7UgSK=^<;XgtCHW0e?f*pE>E6~ z>uzgo${gk%EAHj?29q8LQ%q+6oIS6$s^ADV3Qtw_1*BMGYJ23HUxJdkAbh#A&F%E< zRG~3-b+?jX1-mKFGem(DgMROw({3=~sLHYB#soYP8)*g1Fn8>&8&kQ;wBHhvr`A4m zMinOLXI)I8xAzL10+kp}o}`CJ{lUqCjTQS8=H7m;>hsn~COogBIfP7Q3+U0Leqtt@ zV(Vrce*Q9bhfQMZYB0lD2fNl}r+_`{;Pwi0M6u*)+{Gf`J&tdBtR8$G$Ut_FAK^xY z^p9o|Y0u5t1K2bZc?xFp(UaYnjKsNe_L|uPu6uv>94s`u{0af*Ym0>kcVQPSW-*fB z*WgdSkHI;D!i;wl;k-pkKI(VAkEZVo{A^7y{G4~l3-@G+mqd{C)>tD%JJ4S zyxBcJ>wEZ!vPAQjyhY0kz8&-V!qrJi4%60;Ln@<6MFStRm;r@l&3bZE?h0wP-PJf= z<5t$b-t-t*Kgd>dWUT|cCD10uW$DnDi7{5Ka6`t zvqe7d{w9nE&UtvZgminL*i(`^S#Hh0MjR7Y-DhZt>NUFU9EEK7RJFCAlx#2zRTTd^ zpHMt+F%^BX**wNB<{?kU_HUx8BD92ePKz5oV|5aj3y*N&)7H;USy(;b^nJ1poZVh- zT=%hbU|_Rz9|2(RKOtz?nV)JZ3<4reeZP2wRYW#X$Bs}o5iDc42jZvaZ5Wh;4nMTq zdS|oLe3%9No#gwBIbDTB?U#$)BB@V5sTtT;yyL%+RZ z=0Ye*I7(2D>D1P_&FyM-;hLjNSUQ`|T0G94IXD06VxJ8sIDDaxDQj22j_y_ru_S+~ za(w1q5Yk6F;Eo<8%SVDXFricD`~#3@+8z9sc^v;E;au42B$l2P6dCOK3AVNhe4O{+ zHD7QYnd$jcGemGABVCgn4fH3f5V#O-Hl6zV&UEpzxwQp0ZqcgaUZ3&U%6A%XeWKnp z$K}|LJI9jP-3_M79P=nU@bP zngUO|SwVpthD^kTg)?jSP|IbkJ~dt_t7U94r;^1f+4jcFe5X&+xZMlT^$$F~wD)v4 zp5%`@K09q8snjAhb$E7BYVKmD1i(F-?i8%iz~whH$1}#DhRbdjU&&WUwq=9qD|ATPVh7TdE<$#5_u9 zcvAeTHkjUZiM%1QS2I&8K%5}w5Dvh>xj+ItQ=g}_2{*z5`UuWi#NV}-tTOL@K7l{)v8IbtT}Oel($29Yr+W2SEd#*{kLMnHnQISN0 zf%Ze`#bgx*V8#1fkPSa9&2r=B>eo;y*~LRCDY;nfrWN`!RJJ$D+v+PO1m_YNk+McXE_V6LyP^xP#cR-6aj9oJSIofBqZsgN58ZVFgz z;Y7+vVw=x;p1~RvDnXi=}Bs9H~Ai-D?SPRh)XCli^L0e2^Bm!B?+r?j|)MO zS-?A!`u#EIrG!uYo!00(VxGb4>1+4G9K&iF^we;=o9e7TpNbDg)Q2jT-C0qer`pM2 z>$clzzn|_F=w=MuVJCcHK)XS4%NK{&BW5c3EnRm?ikg*ARS-ttq5;2WV2!ldE6sd=Is}oCsJK*b`=^>ggLq9!@*^W;K7MSlaU<+!JS-5iB-H|~+s@KKk2Y(>$&gvxgEX29=x zB>Fh?_~=r%&!)+RMqM=3P&#_>$j*Jl!a;$%o;erIV4VeWVQT)&H(Y!r%7EsL0*&en z98rm`D;_G@UN`7{iFwQBl%F#oY1;Ou;RV`J6qmHp_xgm77u`Lj=W6?Rp0C$});V1J zf?qoI2gWm<3)wo@GUGtmx`%_S1H6}qzi2+LeW$ZemTo;QOJv!4AKB4t-J!F8V^3S49AMB%obr#%!2<@7^% zs{~8!I;4d#8ajsY94kfRh+kN z*+u1W1)v@ggh6Y7nbI?)qnqMwCz;;0pNfrOo7zq~fkSTC7@l;-`eYyqWp)*wRp}b0 zRT|&3W~%dr1Rv;>%%z93l|5efE08{X5_Hqib`y54DxxS)m;YpoLiv2?Pv7$scQH1s z^(z~-BYg3}@YP7Yl*=yVk^zz%>7M?sN=1Q0#L?MA@E4!U)q_~gfq4bh@CpB$)^`?Z zEf2KK8P(4`hEqGQQ2Z_))b1zse>j+w{aFRouuZK;A%XQ-UUJlw%UyCmg8k7w^Jt0*H^;mwdYIe z;Jp(jHg5*!WOoa=dEN!>D7>Ft1~>6qd@`0+;4 z*vo%3Rn7Msd~3jitZJ@>iSijg-#ltbGt-fNibB540zQstICVfJJF7dD<| zU|%mq*weWFKOZFUjg;BNQPJsQOC;J^>~gHag=Sq0J!v0BOL#@7EG#bFNljJK`g1cA zKwDS~nlpl%?lt~&tZl}mPleh;E^aI+1Rsymu7dfMR9J8#ci5jc_| zQOe+pc)qo|{w`SqtSPqjy%TKZOWed${ZI#?vz001()4N|5WMlI+&WZ$F~SKm{QUbsC5+8cyaTH(D%PT|d|irn^Axu5HDShkuCqjk@h| zL2dOlTW_q;#fI+*8@(nGdgc`>)NQw<{yz*GGWj|1#QD@|tzG2|QBFXB{HqgvmR8g{ z?rxl+@Uvr6NSo{8#Kz+DNHMqRS36SAj{3m0RMQITWWx6a^zHX3uY(LAGYojb(iXAt59BAZJ0nvB0Cg09j*SsB5h;CTZmY|ImbH zQ%?&U#HZP%R(LKKd386O-rWaOmA`W`M&hT=#u>`bN&j<@0Av~a>`eQRKcZ)AsEN8= z(eG*3>(cx{<5CGEktv3h*|tU39=Pnp=E zDP-gdzTr5IJ87m>3WEMpueeCr`ytp!LW~ulN!R)IvK(tO_~K&g7vX@AYi19nw4^ck zAAk(54<4rbH~aBX4FaA;Q~T$%tPsztG5)6|gkWJczA&UtPhj3aJw(B3i>)}f0PpIBeoi{gbmm9J?LpMh!+s6m$L%l;6 z@+b}~ZCRb=nMmINAtBMZb5F+a4(~%dA87m%JE2C%#5%bM*YwR-VZTdW9bH3Z!=&f4 zwptv_aJaAigckW<*>xmAbNLOS^R=*;+4G?yIR5qBvuEs2A3sQZw%yPb>pz98wLSrL zbbRBHl0kCgIiR`+^bEO;`)*V2r(@6Bnig`&95HVuavDl|`l7&ZAk@_!3s-N2556!b0vmw3tBE6rdesbtC*A4Il86UBF83cEEMFl2ZP^!WRt43h|++5jY zW4*ItL-v5lHwZa8KKC8& z`5f;NfcC821^#UAe4XSzT8EiN#P25#F3xepk14D|eBN9J5!s(5QF}dta}i%zCg2fB ziVeQV@lGQHzq5^Uh9~3uM3xYh*mOJoJ^)puD6m7AZ!x|t>7YycS<3tR9sEaExSN^OEBoYbH6J8bDRmHM7gY;6*4A|>*ygVOJ_ z>qVbCdRm@kAQGDFDLQqau2cMs)F#=TelBe(ZlSuWX6nZzcV<{B0+?}Y!BBDBhcz5IaxYA1{v zGvp1P1?){I%td#st!+oMmm28mU@0CT8H$hwAWn7jn;-m99&{w|JPl!AFM1?$JIr=~ zJ@briyS%(olZ?;zi{B~q~eF=#~50#p1cB2;E1q5_#cel9k8LV_}*O=6jm`IX4OQEKex4A9Z=lvvg z4pn;a_-a>vAYHGrm%WHOXchX=@hj3cqx9XBOw-v4_5_ErA+WrRtHVsYg50uz*^R`` z&uJ?eD{fiy^oD~r+rRNgwP)vU*>tzkQs~*{<2}#r8ke>P9&9=Pn(7?sJdt-uC6;^w z@;X1SS-pOPwE3tw6gjzDSo-E^!MC`?f#q@q;x}zJc2#uj|Bnt9!q(+Uhz5pS#G9X9 z72%MUD|uIx>kz>LueB0i;9qw$BZArc$8}Q=?K@iu)J27B5QokYDl0?KJqQc)87;q2 zC%a8C_$K&l^Dl=!#7Sxc6mz8XL_rBs+xav=h8#M0^?KXq^fzfOzE!pSTlO>g2_%rJ zlsLy!=|fdb?_DZ}&6|8qF(d64CyJEd2R9cE-EuvES-OF5w2;@f^_}6JU)*aOLmG;d zFz#cEr!Kz8md@pqrF!=MCa$crXy^0P7*3sxZ<8_#H%&0pu_c?r_G1FGf5pY!`E83 zVVKB0V_0zoo~shM_-b5Q7E)h372PmhOjr^%!GQoNy`@%b7wxQw^9R`OZoe1DQ_S>} zcLs&Q<-s8WC1y*F1Yx{VY1nerk3NF#Hb90=^H+oe=Omh|-bQ8);?idk{ZW8vT4G`I z?6Pl2AowNIYbIP~CT=Eb^rV6QHriYzaQ?)+fZ-{McIF-$& z=+TKhRp%?MZtd`u?oG=b*H9({4sVT0D_2T?oJcoNsA{kao!*kvNtPdH+D z`t2-bSEyea)8;C-W%`X!`m27E=xJXRHmw+x-MGHVyO9AR-u*mb+kSiwjN`4_tM&|@ zCc@Mk-kvDcM`2y4wD2Ln6=Y1emv`WR?~gySAOatEdIKL|vOZ^jeC~)F@b@7lthl3I zmevgaK=uHL0IgE`~dfDmF=Fin15&R55bQIIA40sJhPqsI{LBW?m+kC+=_G}o$E8rP^ z@+QlqM}Sz#BL|DKj8ik_tp^FOo^|tN;-8OcAsz0~X+eW$nKn7+8zJNc(RM*(=r6E& z?7Kq=gZMAnZ~;JO8M_fh*2~Mw(%CJWh4IOrfq9KOd8BBO^&DQgkhVm%xGLtQ42xv* z#n)F5K6UFuWX>3~pHeG!ppNk+Uo#yUUG*<4CKQucdtIIFXj(3TCt+Z!_D8vg`q?g< zIo=*a0p3;M&Lc*`Vli|h+qNyV>p3TrcD1lAPOVu)V^v{I(`EW3q3!0BWGhlS$k%vf z>7`8Q*DhghPh^P*4I5Dm>_a&mQw0`~aK_)`ct~JNVG^0e0yQMK_sXH7p?bNz(=85t z%*Gl6)~`p0ijBNVEY1XabC@fd=5dt=eYX%yAU)v+3EYNGexwGFJ7>`2(-wA*b_Gux znTTf@Z|V;Ue!1?V55D|<7UTG0gbwwYZ_?Mo2t>s7alX!{&~l`1d>~r)JNOUY{Sjs0 zAcy%6CRCg`JanV(Klle587-IWQ;u{nVmYn!1YM| z?_1ksdKiQDfSyPg;3Z=D2odxnwo@5yL)t;r5B3V)93d8}XWpXo4ZrE#93<-#TzVkV zcZX4*DUkF|Zyvc=sbDG`7unl&TQX0afEJh5ey6zZwuUttXK~?EG_-_t^vJxu5*r@! zh*I_V8%(B^?qLK&f_NJsA!Ma~O?TmQ=&0iLxhm~so6@CfXP&$pD{2QI6NQS9e;ZYH z5`FP|c9`)8Z8_X7BH+hv)t>6j7cQQMrl}qtadX316(u}>t@q!erR(HaD<@4TchaNI zY@!EkC{p6!X})4YVd5D*0`4^cj?g|Vu=Zzi5&UFE#b5Fxdj&j);U~AXXKwGMZX8M) zF#i)@BD>PA;^>`&mapmE>F^bwdjy z;UVauksbgU>z(_TUE1D4CJwtfDVMu;Xk?#w4|^Gm+!O*mREG{&?)U(o%$6{e9+8+1 zac_{Dj;E5ez5J8-k1I!#etv}Lz6v1RSSd$l9pv?Qsh>fFX3{Qbu?pw|aMSu_+jHTJt&p3x^t&Z$Xu0y4QE)?P*Hez}R5K ziLGZp4f>h}_$AHLi3vcDOw9iTs%;K$ZXa0K++I|L;lJDbDkut21bEs=ilh1?yoRH-^ar%1PMme>HWf|N zTdsfyWqMqu?2Wb;MD84AFR1C<4AH=a!X~4pV8O1KUCO+dJR^#iMr1N8zh`G7hEm@5tgFY_&y>2HCt?#(k5?J4 zbqx+cAkNau$=TssShK7An}RDKLh>-Bun2#K%ynIH;re=@ezUv;z}b4P3t#IU>9W~ngymFH)8~!dv*r(oSk>c$fl-2sX*kbm3UwGON%5-_fH~KU7OP>!-cIkKAz9cy zG@47h>keaI>%g(qfnLZE=Kdj3*z7}QpTnWT>fLS$k360JR`qFb2B_DQ&jq{(FYYJ% zTvqN3sR%I;_Mapb&b$p`lP13BIyJE=fbc44K+}AUbhhug+*C10ed@Xo)9}Ly22a(T z0jt;nXtCd0mDFM=1*}THY*h*fn3*qWVGkcI$x8WSv>UUhV-U&4K@Xn+dryA#X z;dGmB%n>#H=p<72cap=FbpCVFEc+w1!{==mO~zMMOQ&_bTk>I-sTC$&IwxAy^%nya zX|%!QXhZ3k2rueIT=Onhc5kif)FJsTaR|K#DfK=!7oVNh1MYMn#;6Ye34jbCdP>?b z9PvCKP$TuZLb^|S+LmeDp+DSmx{9=D&h*^NIo(sM%piO@7O|zdZ#gWJ`jQfo^(Bco zZ)t!y2fMVtUGC$S&3#fsAcxOGotKshc+H1|#%@GF)ixTrdtXDU5l6;^h7q#P!k*DT z<9Wq1Ut=6!iHm)ZPR!fAZOpN6y`IjP+Vmp9U{C*2}HE5vDXv_rOJ*Z#)L@+M|u_TR313q46go8fYX&&A))i*D4k7)Ydf|43 zZ3cB=F;#1oXnf`N&I?|*zU?3g(W!qq%|~_JyN}=r7~I^glHUA0Yq}Ue{EjIuRfBB} zho04M%Bq!|A#(SlFpMfHith1gb?JHCNK=mtMGeRlu(0j_(DJ1EoQAZyYBuby(x>CA z$(z$71l13j^ut*(s$|F-=HZyth43N7P*c~734I!we3N6yhZux>&&iVbwGbbI1yW+u zwTNfY{iHZ(V{i3d7%YN=Lr5qs?Cjw|W{ogjFffbM1Z*(R(R+D-VM`$%t0;T8>+<-m z_8uN!%XTPMBoH_*t?$YLTCzf%Lo5XHFpCJn7GCfxOo|ISMN4*G`qxOC6b7i~YbY+w!F$Xem>TH?SPZf?DP2*}=rKJf>@-K%4 zIZ3!W0T$#+OR=7;7gR$txH9)G9upsY-<%n_e7v_Ja#|3jwh<88J&pRCH$M6MfrC25 zt^8ByE3GC-xAR3R22T9o^SeiU7U$U<^!JVus_ekbskwwS!i4s3H+3f zj9GZ!n&HA=)34vr^3ibDrq@vbFQ^+hRP|tp3I}A48Z;UmW~X$9WA(~Y2p?<@5HVK6 zB$0{ovz4(gs#8$PzMKaI-rWtIhP~n(8e%a+e$wn4`Qoo=r0Q8o~3thPQ|Duepdrw#KzK@qC z4e*?q(>;q-&A@kvr@Qv&r!3O|u+XDtNLM^-1ZM)ac9yD@$JIy^2QHKsKN}`3oIM#D ztR?}H*4fez7K&j|KulxQM1R@-C^p1Au&2Vmx90`5M>?3jDE&DR5NUhGbGf16y3tv| z0x2%|lY?dhy&H(ho=t?_|9N(qRE#g(wy3H0TM18W3m<&@M5GiUV_rz?uulbjOoPrRP1lD z!2EB4r!dja^NrC?A-#@_IR*Y#tzqka^O~1J?4BL*xF-a+fo*Kgs|Dy71e23w9|ml# z(x0iMm`Tww`Q8%xU3t>S_V!diME1Ov1ZslVSkZaSdH8WjQBDk!=T)+4jJT0B@(h%d*9i+ie2XYJ z=H?L5wfRmSWTsz*Ok2%wx=VGF;uQODOq(Q&l`xlCVu3O+e2_KqOElJ;AKnfZlQf}# z=FNskq%n*BM)vI40njEmVDJ%F-(@{uQ{FdKArKh%CVTRt7nJ>X3p;L;f&*oHgh~5v z+MPZ1?`ay-Hw?oW^VkIh{#}q)8XAV*pD{zYyD1Tn7&yZKU88TVscd_Sp@9K z`Y|%e(*S;+26xIPoj*xA#HLPzy98hUdd|?CLy2)Q%&%loU=QpzE19@_h*#>gh_Hg8 zzF02U4juUU`)>rPO|=xrJ~D5P1FEcDv23_yv1t#hrJO z_GGnXI!({QgimvCfl2!Pe&(!4{YyA8T5}A}W~8a6mLIjQ@iWY_qWdW^V6y2pH(5_)7!KFF3!60Dm^hWH z>#qX_FZu5sF~RXI_3)U%t(y@6Jau0c-@CP$BD%k6F#jz6=PyI}UBPqQ9PqF}%nZTZ zq^`+OP`?yMy%2;$s**qqNf6)#mernkdX3(JDs<<2o=s@0By;tIS~p zhIf93)d<0Cd06V_I|Kv#pYDE-ZW)RBJoG`igAy1z=fjKDS=1F1%hsM@>;#Xz0+r6a zRe^7Az`oOn2qf}f$i>xiORD}kd-J?7;s>c`e)W}$h)I2L((fPsKDX!VmSL>VJh=&| zNei~#=r<3Ro$ju1ioW2nDD-KOoaOY%9AJ<3;5iub$qFFd_~T*T8wo2|;I&YC_~6YS zBjvG4AZo-^H+<#)1chAwT?K{73v|y{3wl4W*_G|^OjXWR6v$?8b{V6|gNNPBiNY|cvzKuHt!kLc?$R^zLXT?& z%&q*200JAexs@!|alH38IO$UE=@KSo^Q8_}s`1PxU z1r3DaB2`MjvOXGb82xY%4Qjr*1K9sLb03YMHW z>Z>2$(fhxD5A7%84U|Uy{Xfm(^MHDqxKj$0BL)<#OaKZKPVHNI?osnz!neT@nKr1$ z+SD#o+hsumR0@jXk>!>DHvIb^kN};RmnlE3qVRt{hiq0(LH6|El3(Dz zL-6k_is&dWVH-Dg7~ zI?wU*`|PvwpuN)JS9?=HOE2(e~)gm4u*P0c-h;TWYX!KE2aKcxhy2q`yNT zZxzF4#l|}1|2?{L)^`Sq;@A}&m8j0$-G}KxTJUVc^~~^1@1+UvF8l#+C+b!s;{6G+ zcOMMadbp#R!%z|T;JF*$)Z{+Q?ezJ7PFP$WIRr`{$xlZKw6&X6**MsU>Ueni#*XI4 z_3yd3{owX3J{KMD<}39%cE@u#jkGw7N(~*Z?=>kd($cayl1WITLa?E-n}~}m8y$?; z$p0BLYkBeclA=N!_g#P@qd@M15k$mg$3b@;Iy889y8NINgoo4g&ACP!hS=x?{+j^* zr%Uz#!ThPvWD}6mcOfbeJ98}0RNINU-Ae8^sl#ttwO{{x{obI)S}(kOue6Q?S{oJ= z61vWOTw9xc{#Scv{to58#&IUah`uGtmZd=$*|#j&x9pU4Y~O?lGh~Ue4)U$+S%$`v zC?PZ`hGFd65RoNB*~!w_CfUw7U(~tIIe);puJio*T+ege*Zq0luls#}u4jSHKPy(+ zTh~S4%|~}fGIH197fWpM0`GdyIo#WrCg?V2j8xESY7~UA_4Un)AiS=au(qvZ=O-p6 zR6AzPJeMIgyL&TBck6S%ExGyRVacC?Nd}{0^=|IJd3#F%flKcQO7*%nFVFN~bw@&f zKyxhQhmpeGlFruN_FsQIPMf;CDXu>^^I!)QWArh3T9gi|DAbp`Ct_xs0*$}0y3J`A zwGk5|+5N&i{yy|QAx>!*V%yliFx(Grh8ynjOZVljZ*6T&)XR`MT>C=|gZImZ{75kS z)Vu6Tx`z_?*aUubRd>eQ4k!b7DK*)Qk_vOqyjE}aXIyj^F*_4YcUcU}nnN*ND+o6? zCv4H8SH@9aCw?xsex6twwjvU8rvG%F?VI*)pY3+;j$>wN+I>@VOTmzK@1Duf?FQ0V z>&>y7(tE0Y-Pq4=0wXl$10ptR!h9EB{lL}Mp8F8TZilzL+6YO_k{8VlGp%iMzh+gI z1>-pjZGBRIu`m71dknyggTxgmxH4ReDNUW}UeIVDjLDuyA#B=q@L1lpJZhFLZIrfCK_7f8J>G@jQ3hXlupil>rML`=!$9n`ap4tVC|d>5a%Wehhm+? zY1dg(8z*Nc5&>fd>Cp7lb_VxHiC;GFb6izf-KfDQqe65~4LY$ZV&i*j@k)2kffS<| z6z%5w=}-0ZMhp)8VZJRVj90lse0ro)=Qwf&I+t__5rGVK(?Arb*(+6lC#JkWz*e=R zOT>4^{f=ou^INdFNqR|C^OWENSB91r^9p#%vS~!KZ2L(RPlTeN(MOT1HbO7^Xbq!J z1$wQ(JcE7T;r0d#2d6P~=w3w`pC21jivImr)l2HbAzn*&yF=?j9~nQPS@R7^v+F2L z>JZbujL-K{B#FgR&zb}}IyqHY;CdvQm`@gTpd}Gu_PJk%UmP-514MBo3{HjEJdAau&>3*Ir6^CNJMkf%~K#VqG`zAAEs>D|Y*4rM?(8Sb#

0H}yEc6MagL_iXSD#ccv^??(|ob!CrLu1n3qq8 z;)+4ClsMMnuGxD@++9lb$@BUMtYbbq}e+7`pg1g_&vD*tE>i6LPd6uLYYIOd|?uw|#cj2|4A| zt&UOjNA(gly0xJ zLu8^3q5j3~d{2+;$ddECVS@5vUcG5R%JUd~icc#OC@p+4?1oP>)_)S=|Fml}rBC=1 z8u~;!>}$iB$tJBoVQO34yXZ7Uc8?wKQbqkkZ8is0Sz((>!_?=$) zQ|ce9tx~`!1c&w1j$pj1p0?d0$ zF)xq_kPM6KDdwHwTuPe44T=KYS^7&B#7EcInVI5JvZhc3(&G3z5Wq7bA@Ngr?y|3y z_yy49U@PHH@cvr&3aAaEwfWIv>)S0B*ie5~>Izbxv0-@z2jiWbZ`p92#{Q5&(}5tb z8a$pG^aH;yiZv83wy_2vMjs7v@E$sR`O-|SqEOd#(cT_IEIg4k8+nz~ICtA|aXDDX%yx6M z+~XqKP1~60Zg=41VLNQeBHOYb6$!jabr$C>^w(s@UcLyC8DjS!zb{Ch_io!boxXC& zpgPo*XW7JQ7IZk3oPKBw-C!?66^)n1^5>d9MAOT@(AVjIqupMW%ql&XMr(IqIwK`t zP#HHDSg&gZK6>8-ijF zK;b!Ia(OSmE0X#bYuZNR;u1|)!*bN&4@B{-nruR=M&1qR{qA=`pl8`);_FUA$F7ox z3%ShD(=!Jfv649Qh6hF}I+`3_TMrs@6wg5zRl3S*Io0m2UB~Y4!0w8Z4dDL+{U6Eb z21^!s9uRSJcORtw{`%MA*0llM+?SH>(0q2EI?37yAS=o;r?XQJ#cMUbBkIIkCi|NX zRme|H2W?4vSIDjq4+b#qD2(5Ihvh)a*qHn1+r}KHe@!hs-vy8xK{iVbJEM6Q6-~)f zV=jyJ@Fc2QJ||Tf#8?t6*pFrBq0I%!OWE|PXav`uCW}gi{MUjHmNMgTCUD7EtWLgA zz<>70+%It~xHE{vW`@2;TH#o^miuq1jr}go* zdUBNB;@)MS*OmPQ1zhLcZiE0#=i9ez_X)NvOvu5)Z_TS&V2uR2*!-IOiOr(I=AuGW zhk;^&cv{JE;Hm0>R|Ig0S(G!lgs`we936L5Oh$nr6WJ?RFVku5$n$k*sq#oo2?G%Q+YGtg#5{2GaCNy@bS4bsep=$FL)!y@ zxp_EUD28Lkv2z(-tbk;+GPhLAkt+S5F{B;YVpUo^*n4(tU=xNZs~!Qs?w2J-^A6Azt|eIUn>~Eb7N=ctBB?|8iRw7s*h^v&VA$Cq^%kf$NK-yZT#sQvxNq zo@IZac%t$<2Dy;FWa17J#mkS^`d~AlhrH3D`Tt=5Q)ZF-)P4>?zbTQ7LJIPsqhX+4 ItZE?w%X+Kc^>uAb% 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�FXKc<7AjdVzg7b8D89KRWF4N9V^6q{dO@<2hN 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 Q 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 literal 31396 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

r*__%Z$# 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 literal 0 HcmV?d00001 diff --git a/assets/images/help/codespaces/new-codespace-button.png b/assets/images/help/codespaces/new-codespace-button.png index 7a1198d1d806d5206d3e9f82fef97ca59c1b43aa..344728946a0dbebc8c9e78aeeab7512db74de923 100644 GIT binary patch literal 244965 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

HE2N6H-8tw-2{#Qp~LA9P3#rPmm-7 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

Wz3O_ECNn=%r2rGy$jGri|wpI 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

<7CWgds8?)J;me^akO0<*I3u6VeC6E$_YEL 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 <%F< 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 z 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 Qx&QzG07*qoM6N<$g0%%^jQ{`u diff --git a/assets/images/help/codespaces/policy-delete.png b/assets/images/help/codespaces/policy-delete.png new file mode 100644 index 0000000000000000000000000000000000000000..5c3e7d8a0826dc131faf8fdb7a2df78ba7c87c08 GIT binary patch literal 25743 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

if{s_(_i1+QlA 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 AT>t<8 literal 0 HcmV?d00001 diff --git a/assets/images/help/codespaces/policy-edit.png b/assets/images/help/codespaces/policy-edit.png new file mode 100644 index 0000000000000000000000000000000000000000..d2dd72045077fc648a554bab669ae521e1148cce GIT binary patch literal 40891 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 ZWqo(rfciKgP>BWjGd3{SFVKTU{0~dXf4cwx literal 0 HcmV?d00001 diff --git a/assets/images/help/codespaces/policy-select-repos.png b/assets/images/help/codespaces/policy-select-repos.png new file mode 100644 index 0000000000000000000000000000000000000000..01978088abbb21606d38c0548058150521064d6d GIT binary patch literal 110448 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

f@M@q62kHdU)) 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 PWo;_Ts=>>pP5l2CD;637 literal 0 HcmV?d00001 diff --git a/assets/images/help/organizations/codespaces-sidebar-tab.png b/assets/images/help/organizations/codespaces-sidebar-tab.png index 774dbc9fbd27f028cf70e7870d365985b6cc30a9..558205a2eba6f1949ec2b5b2cb6687a7497e7fe5 100644 GIT binary patch literal 13956 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

n?KX!<#<)~phZG}|OPg3gLnh zhV)+x%)+Hct#*NmAtuy){U)_94(z{>bDB61;0i^MQIUtO* z;R`57&YO>iicYMifJw`~LD$@4cE98VZq)-7C~{#cm)W3t9Y&tM*zWEy6-3RK2Za;3 zstvYPU!F~l%4%n0l(~GU;;MMe%wO8*dU;t!B4jJ!z;1^zOa|}@VY=s|E~)y1MN3!l zW?RT#vHQ^U$3crSFnHQQ%f#pS;tkyoEtbH_ zzWe-wCUz+T(WmI42&d}qv|p8W^U)av0Hjz|LQ-Mge^9OIoOC3L`^E&T)GQd&pdzVn z*82y-s&4zLC*vQ!3#&kyzz@Ml(f|1^+JzsSkef*Jwv4N$pC}{#vFDDX(Ha14ZM=$> zv%87@QCxvWZ#leKxO;en|1BbYWKC6C^zu1m?G$M)dM*JNWg6dt!o>FPrd> z)f#Jqx=^|Yx%kbVbJ?mN5)OTkPqx-jioc{2dS!hfFTS}cGo^??G* z0oR{lAOim`2Z|)Vt(;5*K>RI#4!XovW)i>xGy$!%eVHgF5(vh#&syheE>56f_Jk48 zIt`97ha`c7YyGTshI}Ieg3C=ZpmmnJg={@H)p7xGTwi=7>iHp-1+>mtfi6eD=7Jbl zdwI5*6tFbkXRQ;SVbloNct!(S=d3a()&KSKSDRCLxVX6Bax>pOUn6i*20Th597dI8 z_?HKPSldgAeyM|Vvlo0L8$JS=czhB9zEHhP2Gv;%sN&+$aC7(SNf-4m`o1P$U&6AzCZyc9M7Q`&~ORc zu48EEfC3QC^O=Zp5CN_|dCpZUUVRDA^M?UrB`DG`0oUFD#}abfYCP~xU{-*P!)s2Y{ zm@^FZX5S+ST$CtB%fKL;^K;Rqt+7#CN9UwloF8x{ZbOo&1iDcax}l3g^qV(&aaCuI zGD>oZB?nA0GKvXpo)UZ#Kzp(*G083Q7deqHf|LPm|G}0HzRXNkM$NL6!6F73Ma7i; zeXE_7N{ehvGJZ8fvTuP~bMblZTkxDy=2{IAHbr^)8USZW#k>=uJ>MBizPY)PJHy2E zv$PU?eikf|4t@H5jQ&cUw70QI;wo>apI~P{16qd$?w9Yw1WSBvY)V=l?{sSWi7zwW ztJrlhBIx_+T9(Ey8DfH^p<)GlB#X35b=nz&!>aKl zgBEKnn*rFr;GzxmOfqts$$wfcHI6hjHLcnzEmc)hV+y}}mwdX>H?S##moa|0P^-)E zAr??q`5bQwhrbDl(<-G?^eLq$*e=$~+1h4clE$$(?TjXa#ZiXJmX7;l$OO_?TW<@5Xx6bSK4w4{`zoqLk|gR76Ft2QhdP2A z&{ubLu*8awk8h{PBEa~`Ouk(TXw6NhC|#+T2p$+Aq6gY*t1Qpo&bJvCR1X)`$hA7p z7dsyP@D`!Wk zOpr3>nQnQu=rIg3QUh8yks$9Bnw`E~Sqkf?eYLPuRzHQVDkayu4o zy#CQ_dhk^R%frelqNUX-HDZzrpf!l}pTOd?{MOR>S=WLV4k0?8wUdR%fzdOw(fN6K zgG+8pdrTr)8Ds4ybad|6ER9OGvap#Y&i2PrQbBKtvJ9b5Qutf^Mj1d`I5i!O>|-!w z7TR{3Pm*!Tug*Ldj@MgEkMNNQd4w0Om?9_?kmYV&3m#-O*x z{(&4EYBj1EY&qYdMaKSw8@fQhAU=n>;_FvyOz+=2@J!NLe7oR^0F5Hk1tNlnrs^$5jV4oujamWB4f)VZYMH)U!(^jCu8`Ug4-XFpeySy(-k~xK42%pA z);q!eaMfRmUrma%ARn$P*A7!&ahRp^Y(!UPxfazHsjZ! zMC)e}vWLE@mZ?4^a9m9db&RITP%N^P2`hTX+H4hoLJKKTY@@jdWh(4A7HY_`2y@Sj z47;-Q=4BgN8qr?Qo#It_UE9r;N?u>YxeC?Wc*vD@t#KTFv!)gj8i^ijElnf`4N_*b zLh};AJEIw?;r#a)j7NpNd^w3=P7p%D?%Xm~ zhE0dOgO7ON=$qqs9_Msi7@ODYwXOyeTWH32Z%Y-i$BlDV*^XcghNw#Z4R2M&OyN@F zq^Z9q==+e5NJ5ebtyv)Jve2Zi z_(O2d&b1_hv3GTQ>^r=vQ<~&U4Qzv!&uO~^eugz|cOVEoLW&RSs!Dt9*(#A*XNdSA zrNz+W_2fd6?e`cujYb)wu27fA(CKeoXGBp%p9e-R_NHo^g+}vcv(_7+spF*l&Jwh{ zx&4yw?Ry&Lepz$^7Kwqc8cWfJ@hp>VP+p-p$XJof=~8O*tmi0=m&gg<^bC*%>{r(yKw-* z5EpC#^pSCL0L5RLX{{g0yb1CJffR!{mjKD z<9TZs_CSya2k;B=`YzlDlFw6N@ap8Ufg7N^~Ot8;gHd u(DvNEUIIC@ff7&$@p0In8{Ts9ZVY5@qGUJ_6Acl7e=?Ga5@is>FaHCjFL!7F literal 10091 zcmaia1yCGHvn~YpKnSo{kOWBZ#XWe?;IO#u;_d|3-~?G%TmppPi@OC~G&lrFaJS(0 z$bZhMdv4wL?yK6}>YC~Pre|uT`|FKRQI^HSCdWoXLc)`KC#8mjgbaK95@9}hY{{t< z3qnF-1jO`~B4s31v+ANqru6QNKw{~@4-r>#?1)mQs^Ujj;%seQm&4el6_ zHQ2`z1`UK-0dl~)?kF{i2qe}C;A8tg;#))w?%%C{#6LZ(6L3GWKw~SI5xO4?imY1* z4*1I+{a@mLp`t&Ef0Rc5vH$-M0(a2+#|qKo=f(dDZfkOTf5FEOjG%4UkkWycHZU<6 z#|A{F_N#tJN>JV9=?;p)VY@(PKi6IkJGdX&=F*#L*UiV5XA+ETRXV3LH~$9w28^9T z`QfTGI>-aDXgE5r00V$PQ-J9l;@yU@V1nV)A=L}Y+7=6~2rI%@s##JLE3Q&}bnXcx zR5Ht#uYe~H;e?2L1D5;{3ck>bOvt!R635VvCP@|URr}0G@JDdRK#5y|Ruh-QM{s|? zB%o?<-yxD&IPPMZ3Ig&+=V5lLkYv|;`kgKTI#RM{`}Mf$ef5^uL%D9|D?M1F=Du9R z_Z0BiTC(9gg(-_-@Aj_Rm{Z5&)sU-|;w%D{1nFS2uq)_N=ofbdkkzt)2iOYr7BfjQ{dzU1Zs_!KE= zTxW5~n17{pvJ9Byx{5!@*AUKHIrju_*9NT5TOC8-V-D)gM|qoc$hea^ACFS>anF-?e7#?tNW@I@@GfoNn=Ou#TA^0LF)!I0X={$JA3)Qkz3$o}d1$Mm6qx7^?4{(K zt_s!E)fJfApvA0RHZt6X*dd$m!I%C!C~sw0f_c24N@V60!N~~H^x+gvL65RmR`luN zycCVhtkUdRuPA(0mbSx{cehL2B0)mFJ0a>8*pW$ObNbmEXO%HIslolsmmdU7^-x1M zWXq4KF{?(*uY5u0Agf5uWlg^%#yIhaA;OB*i&C_G=A2DZ*_LYcHcn2{OdR`kcPlLG zb(X97gSj-?-}54NNeCZF^EE7T;i(x~Zm$fbFmQLbjVF|cd{{NZ4Fw7i{t*X;Dd_te zy&E8@?2X_^~iv{!WwCxIhhr`iwRC9EV_fG!K5ZvM}33cTN!-_LQljoif$kyk8e zYriO!kT=EA^dIa%F=v~3jn$CHsNTe*B9SSCac}5tTQzj85{%N{pLj|GjR~rIpn>8A zSEkS=tz*Af_HX5k_?|9y<#q?)-Tg~ zkw3u-Wwm0#IQLyq7&Q|%2t!#P`;_q{AhEny(OuN>D}&Xi-po~$`&O$2csK@k1*!+K zy5%P_#?1?#Qk%y>cbFCEVp8s44@bdk4yefX@wpj|fI zyOpFKlPKs>_+TaA!y!4=6vbTw_`$#=vp;yEke&HWZo6h7Bemk~syviqm>)MU(3#JYaB;Uz&cDVTUzL;!t_+(sI5Y7$P&_-dM_ zUD4=?;xM(0e5**XN})QPPz=FU>yKcxHMbF#b}5;xq)zp+bM-Q9jz!~gU*#I7YFpI! zPU4c&peoHkjRQ?On71EW%=qzXMe18$*zKCD-?Guc-rAx21}Cz(Z>!HQkH{+_`q0(W z=^NYZldf)F%tO(-L7WH|0VTyK*Ya<16U~|J9DyU52WwHsX3w!s=%U(NPhAUoQ6+|@ zgN)8ciKE1KDMgh^*q^;(f}R>TK?`^k`)CeA!i{Hd_6Sq50@jxwg`Q_>Pe*%X##an1!QB!E{C`up0;#4OrmLF);;4PF1d7%YqS7%cM_ zuctS(DNGC?&pp?@oLaF%^XF{w-5C<8dOGvZ#EOU+a{~jvb?3TAz^-v_64TTVDu4ct z`N^(GBNY1<=DIbXXGrI?M<81FRkXq1dcSB^snV=%pw+{SugBkHcF4masQqr9E^Mj{L-&Z;MO* zVHf`jCcum69^(TfaJ8QZRWjL`v$C>)FjwHu&x`vpF)@dmvG^~k zsfCh0~7 z$&BVN=39`I>~?i@wDhk_^z>Uhs?v_Q&%Ax7x1gKP17y!v&e2O%a4etE&u_$;Hx<;Y zKulLA4U@vAIV*ZTbMz+Gg@sp5jpYmk$h9Xr7fkP;pW6wYZLPXs5M+6MvfkhFn4gCZ zPKhS^y$`7#3v+rG?oq6yc1o^?8Wkr(1L3?13sYM`y$N3l{iy4~Mx?>|JM6_s)8HDs}=^LWCoZtQ}y! zFDaAe-20Z7CSI9k!(bbo!IqizAUerzI9V9vCGm)7^x)AjLw3F@U-6W+CS!y~lg69F zM3Ra7&3gL`VW*?f_WRriN`VjiOG5t6q%A+Dd9xHX6~AV6z;nXv$--Sd!@XzwkUZbY zbmQXe41KUF_u@G%duUp_K8sY`O?BsF5TCM4KTb`AU7@Z6jXrCzkl-+QB|5%@4w!p* z+S%Dj{9A$*nJ0&y8`YLU2QdL|`d95wtM{IG_EZFi}5JpeT0!LAv+TQ2r-Q zEeMftOf?`*0Fe4Vei$;rP^|IBD&gHrzuVt^rcUHBy|#9C9=7cdm&r#`nBD)~NhFFD z)S-YEErJt9$Q1CjtLak(Sh>P|`U<1SMa^2HKB7NWF&ex6jp*4%c^b#ICk38uXTzF@iLo z7rc^&rH%|`*yZ1x9Q7~NnnV?-(N9B9V8r68*s+S;chfL z_^YSHWw$+CT1CS=FEt%nv7f~wzfgI?{B-qTqSPZ@fMV9TH=m_Rq3${E)mF^=qC_Y_ zT?+A+PToXx(OfsL3n~KMX)89E*K9s18(s>Qjvfb^cZ6?oFTAg|<&uT7@TGc1cCN;Q zrIZJMsrGIJ1!n&P^2-XU&V?(UAUx7*fph5ni&fgs%T*6E)0q}wX*R5IQrDW{xoFE6a5BjI z+Zl|cj>rZc$+&}0bDq%ggA*RxSMbiYos_s~I9;zLAe3MZ@(bPDxc?a|GsXiaiMMS^O1NR3IZ~`TxDIZcwhB#TH zq8{{3H&(JUnU|Y%%W8&F>2$+zF9V1K?ngBt`VVn-fZecWC{8R!9MXNa)vmdRT~#iB|+Nhf>5O|H-NLqV2xvSj{nx!L1iL@&8V;D0Kh##OdfW zSofcF=uf8gcRuy6r0ZV*DVfzr*7P^OF56FT_U-i@ciPDHcMc+5(_guzjA80}T#(2u zqIvKed_J(3L<4;Hg&{&xOyH#!0w3DLXNM;GH}xs*%~;H`smb%lzP%A+>0CMR2 z+Lf9sAJ0i9(J^%0XR7W6~KhARTRUG4O-r8WNB!*N0A_=Qrr3%ZLYlD)hN z3LoRI#(ETm5^|E?$WS#g9+W>>JXbt}s<2d7&m_7H#($#=v#WMxt01RQA8Gvt6Ps%8 z`aCH2TgpAm>az}mW^YGy4#~!MVIv++*34>A(dLVJby7pwH#I*gY_?MjiY$a7J4gYyfTqDqJjTpBMz72Pa9pONzM*=x{0hONBAn=M zQ9&wtjGOft(}(rl8$#-cdvS`Rx9f|HX>nS@)=y19zor;edkd1jQy&kTE*O@Vnmj_p_=%~m+mlnp_qiiU!-amHysOLD zPh2C{`P?D%%wWfORZb^vciApX-d@Vd=cRaS=2dF;*_X$21e_<@uB|~S+E(p-$>%1Nre& zF;l$~2m=^CpkKxjdvp-pDmD2U6FCkJz}*{c8(I`u)yZ8bzA3$1;i<$8GII7e2y`zU)bszp1{lj=$II)DUIpCxBJ;fp5eoVx5pQ zW{L%DpsU_jOC1b>RdBoy4Yg$wfT&m^xngEKlp#m^s?O#|^f`Li0opiU<%ux!e@+G% z!-9zJwxMfM)!R%^KYHMK6grF0MV3P%Ph)dfIeQev_hG!ooLlV3>f2|$w#47Y?Jb6m zoHV{G>sK90*^eaO6{8dR<())7915aFBKk3L=KAL2QuX%wgCVA*l7UlP~XlH#`<-Q^N91UU11 z22arLKCdhhl9LW&wUmpt1Y|RFSmv21EEMEaDAe^vW##<>zdxBFoa_=@r4e|$ExGs; zt@}peQq0e890wYia_pT@%^GWiQav=Mz3|RxsgifPak!rh5wUYUy~y)JSh*FYz0xHG z9jS){3GE`A8%Xa1L7x)>X}xzBK-1k|@BNSteg5Q;Q2aw0{`*JrZz}OWRG?4}_>p}4 z-(R@D9y%~tvDcjrFRhZ(!TS3ljrs^iT$9?&p-=Ap2#sQvd)jyW z@PgmNLvmzMo2~?eXlic$dGSg*vTfV;G<7(ADA?#&s2&!0JvOyi4<9neWL;QTNCYpk zCCk4;@bd9_!5bSJ2L|LoP^M&gXfCQ24Z8jBAt1i|3%D&9+`~#iNjYROH$DKe%4Zs+ ze+;tfaXG2sxEAszbN&7A>=DG$uU)7e0HVSaP$ea$Q1=79?Vic*|yT5PC2jk%2 zOiWCenVCH%642N341a-D=H-KD)oQ@?_4T*)qobq4@csS$+FG702M8q0qHM|xRXs@xBwo7-!3 z%XG`Mba`gK8u{I{R#ddFsS<~3QCX(&RPX?)l#C`8-Q%MDigvesQ9F>iJ5Za|Arl4c zgC_*3jjX4fT-Dsw23+{`w%^w>rnD?r7+^7TJF9C!7e5WLX4V?c7A(1Yb$f8)Y9dn} zZnE3FeLqfGpM956O=`ct_uyx;G4Y;DOFJm++jhOqEHAnsM8X*B&@#U?o_J+Cs|0_#>BbnZXVfqt+eaq0bS!1q3gs&3G-dfsNH>pQklz|m`Y3Tf31(v*ul zxI1r4>2M5(x0nVlz_wZ}jO8JZr5!9c!nBI(ZNROS+!EaksR2>d+JNmc|Mr<$8oY1o z*=R)EdKhUEl&xDxy9);k@JEqa(pqn%jc+u0+1c8kqIDgC2A@f*mU3E6Re#ZE>qgvS zV@0KyErt%U?&4ciS%#%mOqP}hHQCObk5Iq(v#g<7tFX z; z=;A^M<*@yBp3e+p=GG*_x&HnThrRW>d$I?`KUi&vX*%_x%7$cQfZl}i{z0~auyo5; zUozKFVsXqnN(j}Xs1t?=i&Fr*t0{Bw-HfOYY}7lP`BpmS3mOzaa*RoyNu4h@D{`cL zoRs=Hci>FqAGcCF1*r8|ATv4h=*&$bgV_6ZzU${>uzLEj$JjYvP_K0(Cx;~QBO)X% zD!Bo1&(LeP0z{}AycFZ+OgNWb(&hksmmB%U_AAYFC#q)`sPF)FqMZ|1SHXZCsNJvm&#!yT|wu} zTRv|^qMG*CI%Ypk4p-KCCEc9*3(NUG!7>WQXYN}N<~P%Kl12sX5~EHdY#-w+fbyA6 zx;2|28_&-18VCa8zaU=baC}63R+Xx#w8EfVmkq3DEqEUeup$Gy7eNN(LGgzps&cB89`B;Va7F+t5^=) zgPDL^ZcK{mUmZ?HomkpV#blWnAF(!oJ>p-OOFy24G}sb^GHp|*nEK-nZs2UKH%AKyiL}=Mi6lYD3=0BrTC#hSE0vyjD zo;+#9ZQMJAsC@tu0rkERh#rP|V8QO|Q1MQYcXH9OkW#ENy4;VmgjZWo^!y02VYpuh zEYj3WLw1CDQJKG^1iocU3_u758g$Y>ug^+Kzr(Z4BG9?rcW6>Y3%qo7c$W*a}t>sFhAaegW(h}E=*Lx zWoMY@`_7_;rLd=Dc%pvUXGKa9ZVBe&vo!IDcmxT-x?`=?#pL?Qk0xQZbmX>Z%x4)bFY*FPW5T4|#w z|8XqkjJ2!)=fZGT-yx{*A!O)#8LaG$La%txg*uG;XMt>weL zJlvZ>86^`Z3+Q}!F=IdGS7*2I=OZwH8opBbeyR1y?_Xu_e~Ev})`n=0@$3IAg$oh< zkJ9*mwEnjKp9OC{9ewXABv!7Jz{bBS?fg>&EcvzR5$zF?noHtP#M48XVuDqIQ53yO%{)?h$ zre;rkNVCu9`gfz_)^(yV@gtfD{Zy`y-pKE1@S|rnd(Z3k`sE$2FZSI>x&`dkBUT?C zYKULasooDU%EiHbzoq-~wC8Co*#z5mrQ7_MmyKZ|M==8m|Ji zDg4U)dr{~qW#If5p#{&#DEBfJM59vk5$K4zAMJ$g3PIv=#0iZ-t3Fs~3=SMnP4o ziUY(iSorOpYK^8%=G1UWcb#B9v5hbNG+1}<$`ICRSR*w!e-rM`^Xn;YuSzag(#gk( zPZFmoFlRtD77<5{-Xe@-h_JEDOWDs%p8HBUogB)_R@Ok2QrUvh6ge0A>8g}B5S`XSbU@Um@D~)n;_lN9MkYljA(^6gr~%JUMYnpi}4dl?EIS zKKulpYIq(g`w}R};V2!e`*i;eAGw zbO?Y_t+Y7>g-jZ)f1Ene`B{B2W1A=jt?WehNH1gU<|cU9EJZv`NnfnZ?;VP!N5R;~ zeg(a^*DPil%!PcUG6TfTY1BK-mk1DV6Rn3UsPL49A%;%%e&egal;;r~2$&}B-ond^)I9Lh`VQds!o76*c1O+`d&if4!_!a1 zKwq5$k#O*0_As?eD-wpI2&tnr`chSJg)v~!rD1FGUj1`x-yXN#JR_5~Q#Fk^J@?Lj z6>fVRKp(Cgapyhe*Vaj9WMM!b^m$(u9#cHtm4z&wkA+|K9yW5w&Md>)eFr{G9IGiX zcu?bL0b1ipalu(O-S0*SHx{%9?dI)*&Y9=uWo(fQuUUfEV+8JM8lyc0bX+0>2z*K3 zQd%*@3nsgan}>>B`aqEzuQfTg>?v+Y7R<1tj2H}DH*e4t6x(rj%BpZ5vT;{y+ydX` zIu{-7TYb2@OBq$#koGVAQX3Mo&Q+5v0v5~$ABhBpR+uHse?7o|p_$$q?gg$}DudM7 z-hFN17U%;de}7|9mtn2f!eMWSN!cG`k;SR^NK4+J`jQ^8&QR4l`TNj14O96LB31JGJdqDV1C^ Date: Mon, 10 Jan 2022 19:30:10 -0600 Subject: [PATCH 31/68] a11y: add title text for view all links (#24193) * Add optional 'view all' title text in the context * Use viewAllTitleText in ArticleList * Set viewAllTitleText for sections with 'view all' links --- components/context/ProductLandingContext.tsx | 1 + components/landing/ArticleList.tsx | 14 ++++++++++++-- components/landing/FeaturedArticles.tsx | 2 ++ 3 files changed, 15 insertions(+), 2 deletions(-) diff --git a/components/context/ProductLandingContext.tsx b/components/context/ProductLandingContext.tsx index a7f21a98ab..8d77096f83 100644 --- a/components/context/ProductLandingContext.tsx +++ b/components/context/ProductLandingContext.tsx @@ -51,6 +51,7 @@ export type ProductLandingContextT = { featuredArticles: Array<{ label: string // Guides viewAllHref?: string // If provided, adds a "View All ->" to the header + viewAllTitleText?: string // Adds 'title' attribute text for the "View All" href articles: Array }> changelogUrl?: string diff --git a/components/landing/ArticleList.tsx b/components/landing/ArticleList.tsx index 916d4645bc..39ff055cf9 100644 --- a/components/landing/ArticleList.tsx +++ b/components/landing/ArticleList.tsx @@ -11,17 +11,27 @@ import { BumpLink } from 'components/ui/BumpLink' export type ArticleListPropsT = { title?: string viewAllHref?: string + viewAllTitleText?: string articles: Array } -export const ArticleList = ({ title, viewAllHref, articles }: ArticleListPropsT) => { +export const ArticleList = ({ + title, + viewAllHref, + viewAllTitleText, + articles, +}: ArticleListPropsT) => { return ( <> {title && (

@@ -31,6 +32,7 @@ export const FeaturedArticles = () => { { return { title: link.title, From a340162d841e7ae6a0b319eb6e5af229e77d857f Mon Sep 17 00:00:00 2001 From: Rachael Sewell Date: Mon, 10 Jan 2022 17:53:12 -0800 Subject: [PATCH 32/68] reorganize repository apis (#23728) Co-authored-by: Lucas Costi Co-authored-by: Peter Bengtsson --- components/article/ArticlePage.tsx | 36 + .../article/ClientsideRedirectExceptions.tsx | 35 + components/page-header/RestRepoBanner.tsx | 4 +- content/rest/reference/branches.md | 14 +- content/rest/reference/collaborators.md | 4 +- content/rest/reference/commits.md | 8 +- content/rest/reference/deployments.md | 31 +- content/rest/reference/index.md | 6 +- .../{repository-metrics.md => metrics.md} | 8 +- content/rest/reference/pages.md | 2 +- content/rest/reference/releases.md | 8 +- content/rest/reference/webhooks.md | 34 +- .../webhooks/webhooks-rest-api-links.md | 2 +- .../static/rest-api-redirect-exceptions.json | 124 +++ lib/rest/index.js | 11 - lib/rest/static/decorated/api.github.com.json | 772 ++++++++---------- lib/rest/static/decorated/ghes-3.0.json | 688 +++++++--------- lib/rest/static/decorated/ghes-3.1.json | 694 +++++++--------- lib/rest/static/decorated/ghes-3.2.json | 734 ++++++++--------- lib/rest/static/decorated/ghes-3.3.json | 746 ++++++++--------- lib/rest/static/decorated/github.ae.json | 718 ++++++++-------- middleware/contextualizers/rest.js | 9 +- script/rest/update-files.js | 31 +- script/rest/utils/operation.js | 25 +- script/rest/utils/rest-api-overrides.json | 612 ++++++++++++++ tests/rendering/rest.js | 3 +- .../rest/reference/repository-metrics.md | 61 -- .../rest/reference/repository-metrics.md | 61 -- .../rest/reference/repository-metrics.md | 61 -- .../rest/reference/repository-metrics.md | 61 -- 30 files changed, 2904 insertions(+), 2699 deletions(-) create mode 100644 components/article/ClientsideRedirectExceptions.tsx rename content/rest/reference/{repository-metrics.md => metrics.md} (91%) create mode 100644 lib/redirects/static/rest-api-redirect-exceptions.json create mode 100644 script/rest/utils/rest-api-overrides.json delete mode 100644 translations/es-ES/content/rest/reference/repository-metrics.md delete mode 100644 translations/ja-JP/content/rest/reference/repository-metrics.md delete mode 100644 translations/pt-BR/content/rest/reference/repository-metrics.md delete mode 100644 translations/zh-CN/content/rest/reference/repository-metrics.md diff --git a/components/article/ArticlePage.tsx b/components/article/ArticlePage.tsx index 08133d768c..483bb44f5b 100644 --- a/components/article/ArticlePage.tsx +++ b/components/article/ArticlePage.tsx @@ -1,4 +1,6 @@ +import { useState, useEffect } from 'react' import { useRouter } from 'next/router' +import dynamic from 'next/dynamic' import cx from 'classnames' import { ActionList, Heading } from '@primer/components' @@ -17,6 +19,10 @@ import { ArticleGridLayout } from './ArticleGridLayout' import { PlatformPicker } from 'components/article/PlatformPicker' import { ToolPicker } from 'components/article/ToolPicker' +const ClientSideRedirectExceptions = dynamic(() => import('./ClientsideRedirectExceptions'), { + ssr: false, +}) + // Mapping of a "normal" article to it's interactive counterpart const interactiveAlternatives: Record = { '/actions/automating-builds-and-tests/building-and-testing-nodejs': { @@ -79,8 +85,38 @@ export const ArticlePage = () => { ) } + // We have some one-off redirects for rest api docs + // currently those are limited to the repos page, but + // that will grow soon as we restructure the rest api docs. + // This is a workaround to updating the hardcoded links + // directly in the REST API code in a separate repo, which + // requires many file changes and teams to sign off. + // While the organization is turbulent, we can do this. + // Once it's more settled, we can refactor the rest api code + // to leverage the OpenAPI urls rather than hardcoded urls. + // The code below determines if we should bother loading this redirecting + // component at all. + // The reason this isn't done at the server-level is because there you + // can't possibly access the URL hash. That's only known in client-side + // code. + const [loadClientsideRedirectExceptions, setLoadClientsideRedirectExceptions] = useState(false) + useEffect(() => { + const { hash, pathname } = window.location + // Today, Jan 2022, it's known explicitly what the pathname. + // In the future there might be more. + // Hopefully, we can some day delete all of this and no longer + // be dependent on the URL hash to do the redirect. + if (hash && pathname.endsWith('/rest/reference/repos')) { + setLoadClientsideRedirectExceptions(true) + } + }, []) + return ( + {/* Doesn't matter *where* this is included because it will + never render anything. It always just return null. */} + {loadClientsideRedirectExceptions && } +
{title}} diff --git a/components/article/ClientsideRedirectExceptions.tsx b/components/article/ClientsideRedirectExceptions.tsx new file mode 100644 index 0000000000..8c3923a814 --- /dev/null +++ b/components/article/ClientsideRedirectExceptions.tsx @@ -0,0 +1,35 @@ +import { useEffect } from 'react' +import { useRouter } from 'next/router' + +import overrides from '../../lib/redirects/static/rest-api-redirect-exceptions.json' +const overrideRedirects: Record = overrides + +export default function ClientSideRedirectExceptions() { + const router = useRouter() + useEffect(() => { + // We have some one-off redirects for rest api docs + // currently those are limited to the repos page, but + // that will grow soon as we restructure the rest api docs. + // This is a workaround to updating the hardcoded links + // directly in the REST API code in a separate repo, which + // requires many file changes and teams to sign off. + // While the organization is turbulent, we can do this. + // Once it's more settled, we can refactor the rest api code + // to leverage the OpenAPI urls rather than hardcoded urls. + const { hash, pathname } = window.location + + // The `hash` will start with a `#` but all the keys in + // `overrideRedirects` do not. Hence, this slice. + const combined = pathname + hash + const overrideKey = combined + .replace(`/${router.locale}`, '') + .replace(`/${router.query.versionId || ''}`, '') + const redirectToName = overrideRedirects[overrideKey] + if (redirectToName) { + const newPathname = combined.replace(overrideKey, redirectToName) + router.replace(newPathname) + } + }, []) + + return null +} diff --git a/components/page-header/RestRepoBanner.tsx b/components/page-header/RestRepoBanner.tsx index ec0230d528..07d229abec 100644 --- a/components/page-header/RestRepoBanner.tsx +++ b/components/page-header/RestRepoBanner.tsx @@ -11,7 +11,7 @@ const restDisplayPages = [ '/rest/reference/pages', '/rest/reference/releases', '/rest/reference/repos', - '/rest/reference/repository-metrics', + '/rest/reference/metrics', '/rest/reference/webhooks', ] const restRepoCategoryExceptionsTitles = { @@ -21,7 +21,7 @@ const restRepoCategoryExceptionsTitles = { deployments: 'Deployments', pages: 'GitHub Pages', releases: 'Releases', - 'repository-metrics': 'Repository metrics', + metrics: 'Metrics', webhooks: 'Webhooks', } diff --git a/content/rest/reference/branches.md b/content/rest/reference/branches.md index 60a187a93b..e6f2f12982 100644 --- a/content/rest/reference/branches.md +++ b/content/rest/reference/branches.md @@ -12,19 +12,11 @@ topics: miniTocMaxHeadingLevel: 3 --- -## Branches {% for operation in currentRestOperations %} - {% if operation.subcategory == 'branches' %}{% include rest_operation %}{% endif %} + {% unless operation.subcategory %}{% include rest_operation %}{% endunless %} {% endfor %} -## Merging - -The Repo Merging API supports merging branches in a repository. This accomplishes -essentially the same thing as merging one branch into another in a local repository -and then pushing to {% data variables.product.product_name %}. The benefit is that the merge is done on the server side and a local repository is not needed. This makes it more appropriate for automation and other tools where maintaining local repositories would be cumbersome and inefficient. - -The authenticated user will be the author of any merges done through this endpoint. - +## Protected branches {% for operation in currentRestOperations %} - {% if operation.subcategory == 'merging' %}{% include rest_operation %}{% endif %} + {% if operation.subcategory == 'branch-protection' %}{% include rest_operation %}{% endif %} {% endfor %} \ No newline at end of file diff --git a/content/rest/reference/collaborators.md b/content/rest/reference/collaborators.md index c4842b7049..bec03092ee 100644 --- a/content/rest/reference/collaborators.md +++ b/content/rest/reference/collaborators.md @@ -12,10 +12,8 @@ topics: miniTocMaxHeadingLevel: 3 --- -## Collaborators - {% for operation in currentRestOperations %} - {% if operation.subcategory == 'collaborators' %}{% include rest_operation %}{% endif %} + {% unless operation.subcategory %}{% include rest_operation %}{% endunless %} {% endfor %} ## Invitations diff --git a/content/rest/reference/commits.md b/content/rest/reference/commits.md index 79591a09a6..4a017fd456 100644 --- a/content/rest/reference/commits.md +++ b/content/rest/reference/commits.md @@ -1,6 +1,6 @@ --- title: Commits -intro: 'The commits API allows you to retrieve information and commits, create commit comments, and create commit statuses.' +intro: 'The commits API allows you to list, view, and compare commits in a repository. You can also interact with commit comments and commit statuses.' allowTitleToDifferFromFilename: true versions: fpt: '*' @@ -12,12 +12,8 @@ topics: miniTocMaxHeadingLevel: 3 --- -## Commits - -The Repo Commits API supports listing, viewing, and comparing commits in a repository. - {% for operation in currentRestOperations %} - {% if operation.subcategory == 'commits' %}{% include rest_operation %}{% endif %} + {% unless operation.subcategory %}{% include rest_operation %}{% endunless %} {% endfor %} ## Commit comments diff --git a/content/rest/reference/deployments.md b/content/rest/reference/deployments.md index 1170b20485..c83f7a5ae4 100644 --- a/content/rest/reference/deployments.md +++ b/content/rest/reference/deployments.md @@ -12,18 +12,6 @@ topics: miniTocMaxHeadingLevel: 3 --- -## Deploy keys - -{% data reusables.repositories.deploy-keys %} - -Deploy keys can either be setup using the following API endpoints, or by using GitHub. To learn how to set deploy keys up in GitHub, see "[Managing deploy keys](/developers/overview/managing-deploy-keys)." - -{% for operation in currentRestOperations %} - {% if operation.subcategory == 'keys' %}{% include rest_operation %}{% endif %} -{% endfor %} - -## Deployments - Deployments are requests to deploy a specific ref (branch, SHA, tag). GitHub dispatches a [`deployment` event](/developers/webhooks-and-events/webhook-events-and-payloads#deployment) that external services can listen for and act on when new deployments are created. Deployments enable developers and organizations to build loosely coupled tooling around deployments, without having to worry about the implementation details of delivering different types of applications (e.g., web, native). Deployment statuses allow external services to mark deployments with an `error`, `failure`, `pending`, `in_progress`, `queued`, or `success` state that systems listening to [`deployment_status` events](/developers/webhooks-and-events/webhook-events-and-payloads#deployment_status) can consume. @@ -66,7 +54,6 @@ Keep in mind that GitHub is never actually accessing your servers. It's up to yo Note that the `repo_deployment` [OAuth scope](/developers/apps/scopes-for-oauth-apps) grants targeted access to deployments and deployment statuses **without** granting access to repository code, while the {% ifversion not ghae %}`public_repo` and{% endif %}`repo` scopes grant permission to code as well. - ### Inactive deployments When you set the state of a deployment to `success`, then all prior non-transient, non-production environment deployments in the same repository with the same environment name will become `inactive`. To avoid this, you can set `auto_inactive` to `false` when creating the deployment status. @@ -74,7 +61,23 @@ When you set the state of a deployment to `success`, then all prior non-transien You can communicate that a transient environment no longer exists by setting its `state` to `inactive`. Setting the `state` to `inactive` shows the deployment as `destroyed` in {% data variables.product.prodname_dotcom %} and removes access to it. {% for operation in currentRestOperations %} - {% if operation.subcategory == 'deployments' %}{% include rest_operation %}{% endif %} + {% unless operation.subcategory %}{% include rest_operation %}{% endunless %} +{% endfor %} + +## Deployment statuses + +{% for operation in currentRestOperations %} + {% if operation.subcategory == 'statuses' %}{% include rest_operation %}{% endif %} +{% endfor %} + +## Deploy keys + +{% data reusables.repositories.deploy-keys %} + +Deploy keys can either be setup using the following API endpoints, or by using GitHub. To learn how to set deploy keys up in GitHub, see "[Managing deploy keys](/developers/overview/managing-deploy-keys)." + +{% for operation in currentRestOperations %} + {% if operation.subcategory == 'keys' %}{% include rest_operation %}{% endif %} {% endfor %} {% ifversion fpt or ghes > 3.1 or ghae or ghec %} diff --git a/content/rest/reference/index.md b/content/rest/reference/index.md index 5494db97e9..b17a0da794 100644 --- a/content/rest/reference/index.md +++ b/content/rest/reference/index.md @@ -19,32 +19,32 @@ children: - /codes-of-conduct - /code-scanning - /codespaces - - /commits - /collaborators + - /commits - /dependabot - /deployments - /emojis - /enterprise-admin - /gists - /git - - /pages - /gitignore - /interactions - /issues - /licenses - /markdown - /meta + - /metrics - /migrations - /oauth-authorizations - /orgs - /packages + - /pages - /projects - /pulls - /rate-limit - /reactions - /releases - /repos - - /repository-metrics - /scim - /search - /secret-scanning diff --git a/content/rest/reference/repository-metrics.md b/content/rest/reference/metrics.md similarity index 91% rename from content/rest/reference/repository-metrics.md rename to content/rest/reference/metrics.md index aea394d6e0..e7e1dd1926 100644 --- a/content/rest/reference/repository-metrics.md +++ b/content/rest/reference/metrics.md @@ -1,7 +1,9 @@ --- -title: Repository metrics +title: Metrics intro: 'The repository metrics API allows you to retrieve community profile, statistics, and traffic for your repository.' allowTitleToDifferFromFilename: true +redirect_from: + - /rest/reference/repository-metrics versions: fpt: '*' ghes: '*' @@ -12,6 +14,10 @@ topics: miniTocMaxHeadingLevel: 3 --- +{% for operation in currentRestOperations %} + {% unless operation.subcategory %}{% include rest_operation %}{% endunless %} +{% endfor %} + {% ifversion fpt or ghec %} ## Community diff --git a/content/rest/reference/pages.md b/content/rest/reference/pages.md index 713ca428fc..4892f85cfe 100644 --- a/content/rest/reference/pages.md +++ b/content/rest/reference/pages.md @@ -28,5 +28,5 @@ In {% data variables.product.prodname_pages %} API endpoints that return GitHub - `path`: The repository directory from which the site publishes. Will be either `/` or `/docs`. {% for operation in currentRestOperations %} - {% if operation.subcategory == 'pages' %}{% include rest_operation %}{% endif %} + {% unless operation.subcategory %}{% include rest_operation %}{% endunless %} {% endfor %} \ No newline at end of file diff --git a/content/rest/reference/releases.md b/content/rest/reference/releases.md index a434451bea..db97fc243f 100644 --- a/content/rest/reference/releases.md +++ b/content/rest/reference/releases.md @@ -19,5 +19,11 @@ miniTocMaxHeadingLevel: 3 {% endnote %} {% for operation in currentRestOperations %} - {% if operation.subcategory == 'releases' %}{% include rest_operation %}{% endif %} + {% unless operation.subcategory %}{% include rest_operation %}{% endunless %} +{% endfor %} + +## Release assets + +{% for operation in currentRestOperations %} + {% if operation.subcategory == 'assets' %}{% include rest_operation %}{% endif %} {% endfor %} \ No newline at end of file diff --git a/content/rest/reference/webhooks.md b/content/rest/reference/webhooks.md index c9908012c1..c3ca959dc8 100644 --- a/content/rest/reference/webhooks.md +++ b/content/rest/reference/webhooks.md @@ -19,18 +19,36 @@ If you would like to set up a single webhook to receive events from all of your In addition to the REST API, {% data variables.product.prodname_dotcom %} can also serve as a [PubSubHubbub](#pubsubhubbub) hub for repositories. {% for operation in currentRestOperations %} - {% if operation.subcategory == 'webhooks' %}{% include rest_operation %}{% endif %} + {% unless operation.subcategory %}{% include rest_operation %}{% endunless %} {% endfor %} -### Receiving Webhooks +## Repository webhooks + +{% for operation in currentRestOperations %} + {% if operation.subcategory == 'repos' %}{% include rest_operation %}{% endif %} +{% endfor %} + +## Repository webhook configuration + +{% for operation in currentRestOperations %} + {% if operation.subcategory == 'repo-config' %}{% include rest_operation %}{% endif %} +{% endfor %} + +## Repository webhook deliveries + +{% for operation in currentRestOperations %} + {% if operation.subcategory == 'repo-deliveries' %}{% include rest_operation %}{% endif %} +{% endfor %} + +## Receiving Webhooks In order for {% data variables.product.product_name %} to send webhook payloads, your server needs to be accessible from the Internet. We also highly suggest using SSL so that we can send encrypted payloads over HTTPS. -#### Webhook headers +### Webhook headers {% data variables.product.product_name %} will send along several HTTP headers to differentiate between event types and payload identifiers. See [webhook headers](/developers/webhooks-and-events/webhook-events-and-payloads#delivery-headers) for details. -### PubSubHubbub +## PubSubHubbub GitHub can also serve as a [PubSubHubbub](https://github.com/pubsubhubbub/PubSubHubbub) hub for all repositories. PSHB is a simple publish/subscribe protocol that lets servers register to receive updates when a topic is updated. The updates are sent with an HTTP POST request to a callback URL. Topic URLs for a GitHub repository's pushes are in this format: @@ -39,21 +57,21 @@ Topic URLs for a GitHub repository's pushes are in this format: The event can be any available webhook event. For more information, see "[Webhook events and payloads](/developers/webhooks-and-events/webhook-events-and-payloads)." -#### Response format +### Response format The default format is what [existing post-receive hooks should expect](/post-receive-hooks/): A JSON body sent as the `payload` parameter in a POST. You can also specify to receive the raw JSON body with either an `Accept` header, or a `.json` extension. Accept: application/json https://github.com/{owner}/{repo}/events/push.json -#### Callback URLs +### Callback URLs Callback URLs can use the `http://` protocol. # Send updates to postbin.org http://postbin.org/123 -#### Subscribing +### Subscribing The GitHub PubSubHubbub endpoint is: `{% data variables.product.api_url_code %}/hub`. A successful request with curl looks like: @@ -67,7 +85,7 @@ curl -u "user" -i \ PubSubHubbub requests can be sent multiple times. If the hook already exists, it will be modified according to the request. -##### Parameters +#### Parameters Name | Type | Description -----|------|-------------- diff --git a/data/reusables/webhooks/webhooks-rest-api-links.md b/data/reusables/webhooks/webhooks-rest-api-links.md index 3c55718e76..affa74f408 100644 --- a/data/reusables/webhooks/webhooks-rest-api-links.md +++ b/data/reusables/webhooks/webhooks-rest-api-links.md @@ -1,5 +1,5 @@ The webhook REST APIs enable you to manage repository, organization, and app webhooks.{% ifversion fpt or ghes > 3.2 or ghae or ghec %} You can use this API to list webhook deliveries for a webhook, or get and redeliver an individual delivery for a webhook, which can be integrated into an external app or service.{% endif %} You can also use the REST API to change the configuration of the webhook. For example, you can modify the payload URL, content type, SSL verification, and secret. For more information, see: -- [Repository Webhooks REST API](/rest/reference/repos#webhooks) +- [Repository Webhooks REST API](/rest/reference/webhooks#repository-webhooks) - [Organization Webhooks REST API](/rest/reference/orgs#webhooks) - [{% data variables.product.prodname_github_app %} Webhooks REST API](/rest/reference/apps#webhooks) diff --git a/lib/redirects/static/rest-api-redirect-exceptions.json b/lib/redirects/static/rest-api-redirect-exceptions.json new file mode 100644 index 0000000000..7bb45b7b9f --- /dev/null +++ b/lib/redirects/static/rest-api-redirect-exceptions.json @@ -0,0 +1,124 @@ +{ + "/rest/reference/repos#list-repository-collaborators": "/rest/reference/collaborators#list-repository-collaborators", + "/rest/reference/repos#check-if-a-user-is-a-repository-collaborator": "/rest/reference/collaborators#check-if-a-user-is-a-repository-collaborator", + "/rest/reference/repos#add-a-repository-collaborator": "/rest/reference/collaborators#add-a-repository-collaborator", + "/rest/reference/repos#remove-a-repository-collaborator": "/rest/reference/collaborators#remove-a-repository-collaborator", + "/rest/reference/repos#get-repository-permissions-for-a-user": "/rest/reference/collaborators#get-repository-permissions-for-a-user", + "/rest/reference/repos#list-commit-comments-for-a-repository": "/rest/reference/commits#list-commit-comments-for-a-repository", + "/rest/reference/repos#get-a-commit-comment": "/rest/reference/commits#get-a-commit-comment", + "/rest/reference/repos#update-a-commit-comment": "/rest/reference/commits#update-a-commit-comment", + "/rest/reference/repos#delete-a-commit-comment": "/rest/reference/commits#delete-a-commit-comment", + "/rest/reference/repos#list-commits": "/rest/reference/commits#list-commits", + "/rest/reference/repos#list-branches-for-head-commit": "/rest/reference/commits#list-branches-for-head-commit", + "/rest/reference/repos#list-commit-comments": "/rest/reference/commits#list-commit-comments", + "/rest/reference/repos#create-a-commit-comment": "/rest/reference/commits#create-a-commit-comment", + "/rest/reference/repos#list-pull-requests-associated-with-a-commit": "/rest/reference/commits#list-pull-requests-associated-with-a-commit", + "/rest/reference/repos#get-a-commit": "/rest/reference/commits#get-a-commit", + "/rest/reference/repos#get-the-combined-status-for-a-specific-reference": "/rest/reference/commits#get-the-combined-status-for-a-specific-reference", + "/rest/reference/repos#list-commit-statuses-for-a-reference": "/rest/reference/commits#list-commit-statuses-for-a-reference", + "/rest/reference/repos#get-community-profile-metrics": "/rest/reference/metrics#get-community-profile-metrics", + "/rest/reference/repos#compare-two-commits": "/rest/reference/commits#compare-two-commits", + "/rest/reference/repos#get-all-environments": "/rest/reference/deployments#get-all-environments", + "/rest/reference/repos#get-an-environment": "/rest/reference/deployments#get-an-environment", + "/rest/reference/repos#create-or-update-an-environment": "/rest/reference/deployments#create-or-update-an-environment", + "/rest/reference/repos#delete-an-environment": "/rest/reference/deployments#delete-an-environment", + "/rest/reference/repos#list-repository-invitations": "/rest/reference/collaborators#list-repository-invitations", + "/rest/reference/repos#update-a-repository-invitation": "/rest/reference/collaborators#update-a-repository-invitation", + "/rest/reference/repos#delete-a-repository-invitation": "/rest/reference/collaborators#delete-a-repository-invitation", + "/rest/reference/repos#list-deploy-keys": "/rest/reference/deployments#list-deploy-keys", + "/rest/reference/repos#create-a-deploy-key": "/rest/reference/deployments#create-a-deploy-key", + "/rest/reference/repos#get-a-deploy-key": "/rest/reference/deployments#get-a-deploy-key", + "/rest/reference/repos#delete-a-deploy-key": "/rest/reference/deployments#delete-a-deploy-key", + "/rest/reference/repos#get-a-github-pages-site": "/rest/reference/pages#get-a-github-pages-site", + "/rest/reference/repos#create-a-github-pages-site": "/rest/reference/pages#create-a-github-pages-site", + "/rest/reference/repos#update-information-about-a-github-pages-site": "/rest/reference/pages#update-information-about-a-github-pages-site", + "/rest/reference/repos#delete-a-github-pages-site": "/rest/reference/pages#delete-a-github-pages-site", + "/rest/reference/repos#list-github-pages-builds": "/rest/reference/pages#list-github-pages-builds", + "/rest/reference/repos#request-a-github-pages-build": "/rest/reference/pages#request-a-github-pages-build", + "/rest/reference/repos#get-latest-pages-build": "/rest/reference/pages#get-latest-pages-build", + "/rest/reference/repos#get-github-pages-build": "/rest/reference/pages#get-github-pages-build", + "/rest/reference/repos#get-a-dns-health-check-for-github-pages": "/rest/reference/pages#get-a-dns-health-check-for-github-pages", + "/rest/reference/repos#get-the-weekly-commit-activity": "/rest/reference/metrics#get-the-weekly-commit-activity", + "/rest/reference/repos#get-the-last-year-of-commit-activity": "/rest/reference/metrics#get-the-last-year-of-commit-activity", + "/rest/reference/repos#get-all-contributor-commit-activity": "/rest/reference/metrics#get-all-contributor-commit-activity", + "/rest/reference/repos#get-the-weekly-commit-count": "/rest/reference/metrics#get-the-weekly-commit-count", + "/rest/reference/repos#get-the-hourly-commit-count-for-each-day": "/rest/reference/metrics#get-the-hourly-commit-count-for-each-day", + "/rest/reference/repos#create-a-commit-status": "/rest/reference/commits#create-a-commit-status", + "/rest/reference/repos#get-repository-clones": "/rest/reference/metrics#get-repository-clones", + "/rest/reference/repos#get-top-referral-paths": "/rest/reference/metrics#get-top-referral-paths", + "/rest/reference/repos#get-top-referral-sources": "/rest/reference/metrics#get-top-referral-sources", + "/rest/reference/repos#get-page-views": "/rest/reference/metrics#get-page-views", + "/rest/reference/repos#list-repository-invitations-for-the-authenticated-user": "/rest/reference/collaborators#list-repository-invitations-for-the-authenticated-user", + "/rest/reference/repos#accept-a-repository-invitation": "/rest/reference/collaborators#accept-a-repository-invitation", + "/rest/reference/repos#decline-a-repository-invitation": "/rest/reference/collaborators#decline-a-repository-invitation", + "/rest/reference/repos#list-branches": "/rest/reference/branches#list-branches", + "/rest/reference/repos#get-a-branch": "/rest/reference/branches#get-a-branch", + "/rest/reference/repos#rename-a-branch": "/rest/reference/branches#rename-a-branch", + "/rest/reference/repos#sync-a-fork-branch-with-the-upstream-repository": "/rest/reference/branches#sync-a-fork-branch-with-the-upstream-repository", + "/rest/reference/repos#merge-a-branch": "/rest/reference/branches#merge-a-branch", + "/rest/reference/repos#add-app-access-restrictions": "/rest/reference/branches#add-app-access-restrictions", + "/rest/reference/repos#add-status-check-contexts": "/rest/reference/branches#add-status-check-contexts", + "/rest/reference/repos#add-team-access-restrictions": "/rest/reference/branches#add-team-access-restrictions", + "/rest/reference/repos#add-user-access-restrictions": "/rest/reference/branches#add-user-access-restrictions", + "/rest/reference/repos#create-commit-signature-protection": "/rest/reference/branches#create-commit-signature-protection", + "/rest/reference/repos#delete-access-restrictions": "/rest/reference/branches#delete-access-restrictions", + "/rest/reference/repos#delete-admin-branch-protection": "/rest/reference/branches#delete-admin-branch-protection", + "/rest/reference/repos#delete-branch-protection": "/rest/reference/branches#delete-branch-protection", + "/rest/reference/repos#delete-commit-signature-protection": "/rest/reference/branches#delete-commit-signature-protection", + "/rest/reference/repos#delete-pull-request-review-protection": "/rest/reference/branches#delete-pull-request-review-protection", + "/rest/reference/repos#get-access-restrictions": "/rest/reference/branches#get-access-restrictions", + "/rest/reference/repos#get-admin-branch-protection": "/rest/reference/branches#get-admin-branch-protection", + "/rest/reference/repos#get-all-status-check-contexts": "/rest/reference/branches#get-all-status-check-contexts", + "/rest/reference/repos#list-apps-with-access-to-the-protected-branch": "/rest/reference/branches#list-apps-with-access-to-the-protected-branch", + "/rest/reference/repos#update-pull-request-review-protection": "/rest/reference/branches#update-pull-request-review-protection", + "/rest/reference/repos#get-branch-protection": "/rest/reference/branches#get-branch-protection", + "/rest/reference/repos#get-commit-signature-protection": "/rest/reference/branches#get-commit-signature-protection", + "/rest/reference/repos#get-pull-request-review-protection": "/rest/reference/branches#get-pull-request-review-protection", + "/rest/reference/repos#get-status-checks-protection": "/rest/reference/branches#get-status-checks-protection", + "/rest/reference/repos#list-teams-with-access-to-the-protected-branch": "/rest/reference/branches#list-teams-with-access-to-the-protected-branch", + "/rest/reference/repos#list-users-with-access-to-the-protected-branch": "/rest/reference/branches#list-users-with-access-to-the-protected-branch", + "/rest/reference/repos#remove-app-access-restrictions": "/rest/reference/branches#remove-app-access-restrictions", + "/rest/reference/repos#remove-status-check-contexts": "/rest/reference/branches#remove-status-check-contexts", + "/rest/reference/repos#remove-status-check-protection": "/rest/reference/branches#remove-status-check-protection", + "/rest/reference/repos#remove-team-access-restrictions": "/rest/reference/branches#remove-team-access-restrictions", + "/rest/reference/repos#remove-user-access-restrictions": "/rest/reference/branches#remove-user-access-restrictions", + "/rest/reference/repos#set-admin-branch-protection": "/rest/reference/branches#set-admin-branch-protection", + "/rest/reference/repos#set-app-access-restrictions": "/rest/reference/branches#set-app-access-restrictions", + "/rest/reference/repos#set-status-check-contexts": "/rest/reference/branches#set-status-check-contexts", + "/rest/reference/repos#set-team-access-restrictions": "/rest/reference/branches#set-team-access-restrictions", + "/rest/reference/repos#set-user-access-restrictions": "/rest/reference/branches#set-user-access-restrictions", + "/rest/reference/repos#update-branch-protection": "/rest/reference/branches#update-branch-protection", + "/rest/reference/repos#update-status-check-protection": "/rest/reference/branches#update-status-check-protection", + "/rest/reference/repos#create-a-deployment-status": "/rest/reference/deployments#create-a-deployment-status", + "/rest/reference/repos#list-deployment-statuses": "/rest/reference/deployments#list-deployment-statuses", + "/rest/reference/repos#get-a-deployment-status": "/rest/reference/deployments#get-a-deployment-status", + "/rest/reference/repos#list-deployments": "/rest/reference/deployments#list-deployments", + "/rest/reference/repos#create-a-deployment": "/rest/reference/deployments#create-a-deployment", + "/rest/reference/repos#get-a-deployment": "/rest/reference/deployments#get-a-deployment", + "/rest/reference/repos#delete-a-deployment": "/rest/reference/deployments#delete-a-deployment", + "/rest/reference/repos#list-releases": "/rest/reference/releases#list-releases", + "/rest/reference/repos#create-a-release": "/rest/reference/releases#create-a-release", + "/rest/reference/repos#generate-release-notes": "/rest/reference/releases#generate-release-notes", + "/rest/reference/repos#get-the-latest-release": "/rest/reference/releases#get-the-latest-release", + "/rest/reference/repos#get-a-release-by-tag-name": "/rest/reference/releases#get-a-release-by-tag-name", + "/rest/reference/repos#get-a-release": "/rest/reference/releases#get-a-release", + "/rest/reference/repos#update-a-release": "/rest/reference/releases#update-a-release", + "/rest/reference/repos#delete-a-release": "/rest/reference/releases#delete-a-release", + "/rest/reference/repos#delete-a-release-asset": "/rest/reference/releases#delete-a-release-asset", + "/rest/reference/repos#get-a-release-asset": "/rest/reference/releases#get-a-release-asset", + "/rest/reference/repos#list-release-assets": "/rest/reference/releases#list-release-assets", + "/rest/reference/repos#update-a-release-asset": "/rest/reference/releases#update-a-release-asset", + "/rest/reference/repos#upload-a-release-asset": "/rest/reference/releases#upload-a-release-asset", + "/rest/reference/repos#list-repository-webhooks": "/rest/reference/webhooks#list-repository-webhooks", + "/rest/reference/repos#create-a-repository-webhook": "/rest/reference/webhooks#create-a-repository-webhook", + "/rest/reference/repos#get-a-repository-webhook": "/rest/reference/webhooks#get-a-repository-webhook", + "/rest/reference/repos#update-a-repository-webhook": "/rest/reference/webhooks#update-a-repository-webhook", + "/rest/reference/repos#delete-a-repository-webhook": "/rest/reference/webhooks#delete-a-repository-webhook", + "/rest/reference/repos#ping-a-repository-webhook": "/rest/reference/webhooks#ping-a-repository-webhook", + "/rest/reference/repos#test-the-push-repository-webhook": "/rest/reference/webhooks#test-the-push-repository-webhook", + "/rest/reference/repos#get-a-webhook-configuration-for-a-repository": "/rest/reference/webhooks#get-a-webhook-configuration-for-a-repository", + "/rest/reference/repos#update-a-webhook-configuration-for-a-repository": "/rest/reference/webhooks#update-a-webhook-configuration-for-a-repository", + "/rest/reference/repos#get-a-delivery-for-a-repository-webhook": "/rest/reference/webhooks#get-a-delivery-for-a-repository-webhook", + "/rest/reference/repos#list-deliveries-for-a-repository-webhook": "/rest/reference/webhooks#list-deliveries-for-a-repository-webhook", + "/rest/reference/repos#redeliver-a-delivery-for-a-repository-webhook": "/rest/reference/webhooks#redeliver-a-delivery-for-a-repository-webhook" +} \ No newline at end of file diff --git a/lib/rest/index.js b/lib/rest/index.js index d698dc27f2..b6572babd0 100644 --- a/lib/rest/index.js +++ b/lib/rest/index.js @@ -8,17 +8,6 @@ import { readCompressedJsonFileFallback } from '../read-json-file.js' const __dirname = path.dirname(fileURLToPath(import.meta.url)) const schemasPath = path.join(__dirname, 'static/decorated') -export const restRepoCategoryExceptions = [ - 'branches', - 'collaborators', - 'commits', - 'deployments', - 'pages', - 'releases', - 'repository-metrics', - 'webhooks', -] - export default async function getRest() { const operations = {} fs.readdirSync(schemasPath).forEach((filename) => { diff --git a/lib/rest/static/decorated/api.github.com.json b/lib/rest/static/decorated/api.github.com.json index 8458a270e3..359bdb0d19 100644 --- a/lib/rest/static/decorated/api.github.com.json +++ b/lib/rest/static/decorated/api.github.com.json @@ -40387,10 +40387,8 @@ "subcategory": "branches" }, "slug": "list-branches", - "category": "repos", - "categoryLabel": "Repos", - "subcategory": "branches", - "subcategoryLabel": "Branches", + "category": "branches", + "categoryLabel": "Branches", "notes": [], "descriptionHTML": "", "bodyParameters": [], @@ -40472,10 +40470,8 @@ "subcategory": "branches" }, "slug": "get-a-branch", - "category": "repos", - "categoryLabel": "Repos", - "subcategory": "branches", - "subcategoryLabel": "Branches", + "category": "branches", + "categoryLabel": "Branches", "notes": [], "descriptionHTML": "", "responses": [ @@ -40566,10 +40562,10 @@ "subcategory": "branches" }, "slug": "get-branch-protection", - "category": "repos", - "categoryLabel": "Repos", - "subcategory": "branches", - "subcategoryLabel": "Branches", + "category": "branches", + "categoryLabel": "Branches", + "subcategory": "branch-protection", + "subcategoryLabel": "Branch protection", "notes": [], "bodyParameters": [], "descriptionHTML": "

Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see GitHub's products in the GitHub Help documentation.

", @@ -41478,10 +41474,10 @@ "subcategory": "branches" }, "slug": "update-branch-protection", - "category": "repos", - "categoryLabel": "Repos", - "subcategory": "branches", - "subcategoryLabel": "Branches", + "category": "branches", + "categoryLabel": "Branches", + "subcategory": "branch-protection", + "subcategoryLabel": "Branch protection", "contentType": "application/json", "notes": [], "responses": [ @@ -42338,10 +42334,10 @@ "subcategory": "branches" }, "slug": "delete-branch-protection", - "category": "repos", - "categoryLabel": "Repos", - "subcategory": "branches", - "subcategoryLabel": "Branches", + "category": "branches", + "categoryLabel": "Branches", + "subcategory": "branch-protection", + "subcategoryLabel": "Branch protection", "notes": [], "responses": [ { @@ -42422,10 +42418,10 @@ "subcategory": "branches" }, "slug": "get-admin-branch-protection", - "category": "repos", - "categoryLabel": "Repos", - "subcategory": "branches", - "subcategoryLabel": "Branches", + "category": "branches", + "categoryLabel": "Branches", + "subcategory": "branch-protection", + "subcategoryLabel": "Branch protection", "notes": [], "bodyParameters": [], "descriptionHTML": "

Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see GitHub's products in the GitHub Help documentation.

", @@ -42502,10 +42498,10 @@ "subcategory": "branches" }, "slug": "set-admin-branch-protection", - "category": "repos", - "categoryLabel": "Repos", - "subcategory": "branches", - "subcategoryLabel": "Branches", + "category": "branches", + "categoryLabel": "Branches", + "subcategory": "branch-protection", + "subcategoryLabel": "Branch protection", "notes": [], "bodyParameters": [], "descriptionHTML": "

Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see GitHub's products in the GitHub Help documentation.

\n

Adding admin enforcement requires admin or owner permissions to the repository and branch protection to be enabled.

", @@ -42582,10 +42578,10 @@ "subcategory": "branches" }, "slug": "delete-admin-branch-protection", - "category": "repos", - "categoryLabel": "Repos", - "subcategory": "branches", - "subcategoryLabel": "Branches", + "category": "branches", + "categoryLabel": "Branches", + "subcategory": "branch-protection", + "subcategoryLabel": "Branch protection", "notes": [], "responses": [ { @@ -42666,10 +42662,10 @@ "subcategory": "branches" }, "slug": "get-pull-request-review-protection", - "category": "repos", - "categoryLabel": "Repos", - "subcategory": "branches", - "subcategoryLabel": "Branches", + "category": "branches", + "categoryLabel": "Branches", + "subcategory": "branch-protection", + "subcategoryLabel": "Branch protection", "notes": [], "bodyParameters": [], "descriptionHTML": "

Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see GitHub's products in the GitHub Help documentation.

", @@ -42941,10 +42937,10 @@ "subcategory": "branches" }, "slug": "update-pull-request-review-protection", - "category": "repos", - "categoryLabel": "Repos", - "subcategory": "branches", - "subcategoryLabel": "Branches", + "category": "branches", + "categoryLabel": "Branches", + "subcategory": "branch-protection", + "subcategoryLabel": "Branch protection", "contentType": "application/json", "notes": [], "descriptionHTML": "

Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see GitHub's products in the GitHub Help documentation.

\n

Updating pull request review enforcement requires admin or owner permissions to the repository and branch protection to be enabled.

\n

Note: Passing new arrays of users and teams replaces their previous values.

", @@ -43190,10 +43186,10 @@ "subcategory": "branches" }, "slug": "delete-pull-request-review-protection", - "category": "repos", - "categoryLabel": "Repos", - "subcategory": "branches", - "subcategoryLabel": "Branches", + "category": "branches", + "categoryLabel": "Branches", + "subcategory": "branch-protection", + "subcategoryLabel": "Branch protection", "notes": [], "responses": [ { @@ -43274,10 +43270,10 @@ "subcategory": "branches" }, "slug": "get-commit-signature-protection", - "category": "repos", - "categoryLabel": "Repos", - "subcategory": "branches", - "subcategoryLabel": "Branches", + "category": "branches", + "categoryLabel": "Branches", + "subcategory": "branch-protection", + "subcategoryLabel": "Branch protection", "notes": [], "bodyParameters": [], "descriptionHTML": "

Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see GitHub's products in the GitHub Help documentation.

\n

When authenticated with admin or owner permissions to the repository, you can use this endpoint to check whether a branch requires signed commits. An enabled status of true indicates you must sign commits on this branch. For more information, see Signing commits with GPG in GitHub Help.

\n

Note: You must enable branch protection to require signed commits.

", @@ -43359,10 +43355,10 @@ "subcategory": "branches" }, "slug": "create-commit-signature-protection", - "category": "repos", - "categoryLabel": "Repos", - "subcategory": "branches", - "subcategoryLabel": "Branches", + "category": "branches", + "categoryLabel": "Branches", + "subcategory": "branch-protection", + "subcategoryLabel": "Branch protection", "notes": [], "bodyParameters": [], "descriptionHTML": "

Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see GitHub's products in the GitHub Help documentation.

\n

When authenticated with admin or owner permissions to the repository, you can use this endpoint to require signed commits on a branch. You must enable branch protection to require signed commits.

", @@ -43444,10 +43440,10 @@ "subcategory": "branches" }, "slug": "delete-commit-signature-protection", - "category": "repos", - "categoryLabel": "Repos", - "subcategory": "branches", - "subcategoryLabel": "Branches", + "category": "branches", + "categoryLabel": "Branches", + "subcategory": "branch-protection", + "subcategoryLabel": "Branch protection", "notes": [], "responses": [ { @@ -43528,10 +43524,10 @@ "subcategory": "branches" }, "slug": "get-status-checks-protection", - "category": "repos", - "categoryLabel": "Repos", - "subcategory": "branches", - "subcategoryLabel": "Branches", + "category": "branches", + "categoryLabel": "Branches", + "subcategory": "branch-protection", + "subcategoryLabel": "Branch protection", "notes": [], "bodyParameters": [], "descriptionHTML": "

Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see GitHub's products in the GitHub Help documentation.

", @@ -43714,10 +43710,10 @@ "subcategory": "branches" }, "slug": "update-status-check-protection", - "category": "repos", - "categoryLabel": "Repos", - "subcategory": "branches", - "subcategoryLabel": "Branches", + "category": "branches", + "categoryLabel": "Branches", + "subcategory": "branch-protection", + "subcategoryLabel": "Branch protection", "contentType": "application/json", "notes": [], "descriptionHTML": "

Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see GitHub's products in the GitHub Help documentation.

\n

Updating required status checks requires admin or owner permissions to the repository and branch protection to be enabled.

", @@ -43889,10 +43885,10 @@ "subcategory": "branches" }, "slug": "remove-status-check-protection", - "category": "repos", - "categoryLabel": "Repos", - "subcategory": "branches", - "subcategoryLabel": "Branches", + "category": "branches", + "categoryLabel": "Branches", + "subcategory": "branch-protection", + "subcategoryLabel": "Branch protection", "notes": [], "responses": [ { @@ -43968,10 +43964,10 @@ "subcategory": "branches" }, "slug": "get-all-status-check-contexts", - "category": "repos", - "categoryLabel": "Repos", - "subcategory": "branches", - "subcategoryLabel": "Branches", + "category": "branches", + "categoryLabel": "Branches", + "subcategory": "branch-protection", + "subcategoryLabel": "Branch protection", "notes": [], "bodyParameters": [], "descriptionHTML": "

Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see GitHub's products in the GitHub Help documentation.

", @@ -44097,10 +44093,10 @@ "subcategory": "branches" }, "slug": "add-status-check-contexts", - "category": "repos", - "categoryLabel": "Repos", - "subcategory": "branches", - "subcategoryLabel": "Branches", + "category": "branches", + "categoryLabel": "Branches", + "subcategory": "branch-protection", + "subcategoryLabel": "Branch protection", "contentType": "application/json", "notes": [], "descriptionHTML": "

Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see GitHub's products in the GitHub Help documentation.

", @@ -44250,10 +44246,10 @@ "subcategory": "branches" }, "slug": "set-status-check-contexts", - "category": "repos", - "categoryLabel": "Repos", - "subcategory": "branches", - "subcategoryLabel": "Branches", + "category": "branches", + "categoryLabel": "Branches", + "subcategory": "branch-protection", + "subcategoryLabel": "Branch protection", "contentType": "application/json", "notes": [], "descriptionHTML": "

Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see GitHub's products in the GitHub Help documentation.

", @@ -44397,10 +44393,10 @@ "subcategory": "branches" }, "slug": "remove-status-check-contexts", - "category": "repos", - "categoryLabel": "Repos", - "subcategory": "branches", - "subcategoryLabel": "Branches", + "category": "branches", + "categoryLabel": "Branches", + "subcategory": "branch-protection", + "subcategoryLabel": "Branch protection", "contentType": "application/json", "notes": [], "descriptionHTML": "

Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see GitHub's products in the GitHub Help documentation.

", @@ -44501,10 +44497,10 @@ "subcategory": "branches" }, "slug": "get-access-restrictions", - "category": "repos", - "categoryLabel": "Repos", - "subcategory": "branches", - "subcategoryLabel": "Branches", + "category": "branches", + "categoryLabel": "Branches", + "subcategory": "branch-protection", + "subcategoryLabel": "Branch protection", "notes": [], "bodyParameters": [], "descriptionHTML": "

Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see GitHub's products in the GitHub Help documentation.

\n

Lists who has access to this protected branch.

\n

Note: Users, apps, and teams restrictions are only available for organization-owned repositories.

", @@ -44586,10 +44582,10 @@ "subcategory": "branches" }, "slug": "delete-access-restrictions", - "category": "repos", - "categoryLabel": "Repos", - "subcategory": "branches", - "subcategoryLabel": "Branches", + "category": "branches", + "categoryLabel": "Branches", + "subcategory": "branch-protection", + "subcategoryLabel": "Branch protection", "notes": [], "responses": [ { @@ -44665,10 +44661,10 @@ "subcategory": "branches" }, "slug": "get-apps-with-access-to-the-protected-branch", - "category": "repos", - "categoryLabel": "Repos", - "subcategory": "branches", - "subcategoryLabel": "Branches", + "category": "branches", + "categoryLabel": "Branches", + "subcategory": "branch-protection", + "subcategoryLabel": "Branch protection", "notes": [], "bodyParameters": [], "descriptionHTML": "

Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see GitHub's products in the GitHub Help documentation.

\n

Lists the GitHub Apps that have push access to this branch. Only installed GitHub Apps with write access to the contents permission can be added as authorized actors on a protected branch.

", @@ -44793,10 +44789,10 @@ "subcategory": "branches" }, "slug": "add-app-access-restrictions", - "category": "repos", - "categoryLabel": "Repos", - "subcategory": "branches", - "subcategoryLabel": "Branches", + "category": "branches", + "categoryLabel": "Branches", + "subcategory": "branch-protection", + "subcategoryLabel": "Branch protection", "contentType": "application/json", "notes": [], "descriptionHTML": "

Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see GitHub's products in the GitHub Help documentation.

\n

Grants the specified apps push access for this branch. Only installed GitHub Apps with write access to the contents permission can be added as authorized actors on a protected branch.

\n\n\n\n\n\n\n\n\n\n\n\n\n\n
TypeDescription
arrayThe GitHub Apps that have push access to this branch. Use the app's slug. Note: The list of users, apps, and teams in total is limited to 100 items.
", @@ -44935,10 +44931,10 @@ "subcategory": "branches" }, "slug": "set-app-access-restrictions", - "category": "repos", - "categoryLabel": "Repos", - "subcategory": "branches", - "subcategoryLabel": "Branches", + "category": "branches", + "categoryLabel": "Branches", + "subcategory": "branch-protection", + "subcategoryLabel": "Branch protection", "contentType": "application/json", "notes": [], "descriptionHTML": "

Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see GitHub's products in the GitHub Help documentation.

\n

Replaces the list of apps that have push access to this branch. This removes all apps that previously had push access and grants push access to the new list of apps. Only installed GitHub Apps with write access to the contents permission can be added as authorized actors on a protected branch.

\n\n\n\n\n\n\n\n\n\n\n\n\n\n
TypeDescription
arrayThe GitHub Apps that have push access to this branch. Use the app's slug. Note: The list of users, apps, and teams in total is limited to 100 items.
", @@ -45076,10 +45072,10 @@ "subcategory": "branches" }, "slug": "remove-app-access-restrictions", - "category": "repos", - "categoryLabel": "Repos", - "subcategory": "branches", - "subcategoryLabel": "Branches", + "category": "branches", + "categoryLabel": "Branches", + "subcategory": "branch-protection", + "subcategoryLabel": "Branch protection", "contentType": "application/json", "notes": [], "descriptionHTML": "

Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see GitHub's products in the GitHub Help documentation.

\n

Removes the ability of an app to push to this branch. Only installed GitHub Apps with write access to the contents permission can be added as authorized actors on a protected branch.

\n\n\n\n\n\n\n\n\n\n\n\n\n\n
TypeDescription
arrayThe GitHub Apps that have push access to this branch. Use the app's slug. Note: The list of users, apps, and teams in total is limited to 100 items.
", @@ -45175,10 +45171,10 @@ "subcategory": "branches" }, "slug": "get-teams-with-access-to-the-protected-branch", - "category": "repos", - "categoryLabel": "Repos", - "subcategory": "branches", - "subcategoryLabel": "Branches", + "category": "branches", + "categoryLabel": "Branches", + "subcategory": "branch-protection", + "subcategoryLabel": "Branch protection", "notes": [], "bodyParameters": [], "descriptionHTML": "

Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see GitHub's products in the GitHub Help documentation.

\n

Lists the teams who have push access to this branch. The list includes child teams.

", @@ -45304,10 +45300,10 @@ "subcategory": "branches" }, "slug": "add-team-access-restrictions", - "category": "repos", - "categoryLabel": "Repos", - "subcategory": "branches", - "subcategoryLabel": "Branches", + "category": "branches", + "categoryLabel": "Branches", + "subcategory": "branch-protection", + "subcategoryLabel": "Branch protection", "contentType": "application/json", "notes": [], "descriptionHTML": "

Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see GitHub's products in the GitHub Help documentation.

\n

Grants the specified teams push access for this branch. You can also give push access to child teams.

\n\n\n\n\n\n\n\n\n\n\n\n\n\n
TypeDescription
arrayThe teams that can have push access. Use the team's slug. Note: The list of users, apps, and teams in total is limited to 100 items.
", @@ -45447,10 +45443,10 @@ "subcategory": "branches" }, "slug": "set-team-access-restrictions", - "category": "repos", - "categoryLabel": "Repos", - "subcategory": "branches", - "subcategoryLabel": "Branches", + "category": "branches", + "categoryLabel": "Branches", + "subcategory": "branch-protection", + "subcategoryLabel": "Branch protection", "contentType": "application/json", "notes": [], "descriptionHTML": "

Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see GitHub's products in the GitHub Help documentation.

\n

Replaces the list of teams that have push access to this branch. This removes all teams that previously had push access and grants push access to the new list of teams. Team restrictions include child teams.

\n\n\n\n\n\n\n\n\n\n\n\n\n\n
TypeDescription
arrayThe teams that can have push access. Use the team's slug. Note: The list of users, apps, and teams in total is limited to 100 items.
", @@ -45589,10 +45585,10 @@ "subcategory": "branches" }, "slug": "remove-team-access-restrictions", - "category": "repos", - "categoryLabel": "Repos", - "subcategory": "branches", - "subcategoryLabel": "Branches", + "category": "branches", + "categoryLabel": "Branches", + "subcategory": "branch-protection", + "subcategoryLabel": "Branch protection", "contentType": "application/json", "notes": [], "descriptionHTML": "

Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see GitHub's products in the GitHub Help documentation.

\n

Removes the ability of a team to push to this branch. You can also remove push access for child teams.

\n\n\n\n\n\n\n\n\n\n\n\n\n\n
TypeDescription
arrayTeams that should no longer have push access. Use the team's slug. Note: The list of users, apps, and teams in total is limited to 100 items.
", @@ -45688,10 +45684,10 @@ "subcategory": "branches" }, "slug": "get-users-with-access-to-the-protected-branch", - "category": "repos", - "categoryLabel": "Repos", - "subcategory": "branches", - "subcategoryLabel": "Branches", + "category": "branches", + "categoryLabel": "Branches", + "subcategory": "branch-protection", + "subcategoryLabel": "Branch protection", "notes": [], "bodyParameters": [], "descriptionHTML": "

Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see GitHub's products in the GitHub Help documentation.

\n

Lists the people who have push access to this branch.

", @@ -45816,10 +45812,10 @@ "subcategory": "branches" }, "slug": "add-user-access-restrictions", - "category": "repos", - "categoryLabel": "Repos", - "subcategory": "branches", - "subcategoryLabel": "Branches", + "category": "branches", + "categoryLabel": "Branches", + "subcategory": "branch-protection", + "subcategoryLabel": "Branch protection", "contentType": "application/json", "notes": [], "descriptionHTML": "

Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see GitHub's products in the GitHub Help documentation.

\n

Grants the specified people push access for this branch.

\n\n\n\n\n\n\n\n\n\n\n\n\n\n
TypeDescription
arrayUsernames for people who can have push access. Note: The list of users, apps, and teams in total is limited to 100 items.
", @@ -45958,10 +45954,10 @@ "subcategory": "branches" }, "slug": "set-user-access-restrictions", - "category": "repos", - "categoryLabel": "Repos", - "subcategory": "branches", - "subcategoryLabel": "Branches", + "category": "branches", + "categoryLabel": "Branches", + "subcategory": "branch-protection", + "subcategoryLabel": "Branch protection", "contentType": "application/json", "notes": [], "descriptionHTML": "

Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see GitHub's products in the GitHub Help documentation.

\n

Replaces the list of people that have push access to this branch. This removes all people that previously had push access and grants push access to the new list of people.

\n\n\n\n\n\n\n\n\n\n\n\n\n\n
TypeDescription
arrayUsernames for people who can have push access. Note: The list of users, apps, and teams in total is limited to 100 items.
", @@ -46099,10 +46095,10 @@ "subcategory": "branches" }, "slug": "remove-user-access-restrictions", - "category": "repos", - "categoryLabel": "Repos", - "subcategory": "branches", - "subcategoryLabel": "Branches", + "category": "branches", + "categoryLabel": "Branches", + "subcategory": "branch-protection", + "subcategoryLabel": "Branch protection", "contentType": "application/json", "notes": [], "descriptionHTML": "

Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see GitHub's products in the GitHub Help documentation.

\n

Removes the ability of a user to push to this branch.

\n\n\n\n\n\n\n\n\n\n\n\n\n\n
TypeDescription
arrayUsernames of the people who should no longer have push access. Note: The list of users, apps, and teams in total is limited to 100 items.
", @@ -46225,10 +46221,8 @@ "subcategory": "branches" }, "slug": "rename-a-branch", - "category": "repos", - "categoryLabel": "Repos", - "subcategory": "branches", - "subcategoryLabel": "Branches", + "category": "branches", + "categoryLabel": "Branches", "contentType": "application/json", "notes": [], "descriptionHTML": "

Renames a branch in a repository.

\n

Note: Although the API responds immediately, the branch rename process might take some extra time to complete in the background. You won't be able to push to the old branch name while the rename process is in progress. For more information, see \"Renaming a branch\".

\n

The permissions required to use this endpoint depends on whether you are renaming the default branch.

\n

To rename a non-default branch:

\n
    \n
  • Users must have push access.
  • \n
  • GitHub Apps must have the contents:write repository permission.
  • \n
\n

To rename the default branch:

\n
    \n
  • Users must have admin or owner permissions.
  • \n
  • GitHub Apps must have the administration:write repository permission.
  • \n
", @@ -53032,10 +53026,8 @@ "subcategory": "collaborators" }, "slug": "list-repository-collaborators", - "category": "repos", - "categoryLabel": "Repos", - "subcategory": "collaborators", - "subcategoryLabel": "Collaborators", + "category": "collaborators", + "categoryLabel": "Collaborators", "notes": [], "bodyParameters": [], "descriptionHTML": "

For organization-owned repositories, the list of collaborators includes outside collaborators, organization members that are direct collaborators, organization members with access through team memberships, organization members with access through default organization permissions, and organization owners.

\n

Team members will include the members of child teams.

\n

You must have push access to the repository in order to list collaborators.

", @@ -53115,10 +53107,8 @@ "subcategory": "collaborators" }, "slug": "check-if-a-user-is-a-repository-collaborator", - "category": "repos", - "categoryLabel": "Repos", - "subcategory": "collaborators", - "subcategoryLabel": "Collaborators", + "category": "collaborators", + "categoryLabel": "Collaborators", "notes": [], "responses": [ { @@ -53236,10 +53226,8 @@ "subcategory": "collaborators" }, "slug": "add-a-repository-collaborator", - "category": "repos", - "categoryLabel": "Repos", - "subcategory": "collaborators", - "subcategoryLabel": "Collaborators", + "category": "collaborators", + "categoryLabel": "Collaborators", "contentType": "application/json", "notes": [], "descriptionHTML": "

This endpoint triggers notifications. Creating content too quickly using this endpoint may result in secondary rate limiting. See \"Secondary rate limits\" and \"Dealing with secondary rate limits\" for details.

\n

For more information on permission levels, see \"Repository permission levels for an organization\". There are restrictions on which permissions can be granted to organization members when an organization base role is in place. In this case, the permission being given must be equal to or higher than the org base permission. Otherwise, the request will fail with:

\n
Cannot assign {member} permission of {role name}\n
\n

Note that, if you choose not to pass any parameters, you'll need to set Content-Length to zero when calling out to this endpoint. For more information, see \"HTTP verbs.\"

\n

The invitee will receive a notification that they have been invited to the repository, which they must accept or decline. They may do this via the notifications page, the email they receive, or by using the repository invitations API endpoints.

\n

Rate limits

\n

You are limited to sending 50 invitations to a repository per 24 hour period. Note there is no limit if you are inviting organization members to an organization repository.

", @@ -53357,10 +53345,8 @@ "subcategory": "collaborators" }, "slug": "remove-a-repository-collaborator", - "category": "repos", - "categoryLabel": "Repos", - "subcategory": "collaborators", - "subcategoryLabel": "Collaborators", + "category": "collaborators", + "categoryLabel": "Collaborators", "notes": [], "descriptionHTML": "", "responses": [ @@ -53434,10 +53420,8 @@ "subcategory": "collaborators" }, "slug": "get-repository-permissions-for-a-user", - "category": "repos", - "categoryLabel": "Repos", - "subcategory": "collaborators", - "subcategoryLabel": "Collaborators", + "category": "collaborators", + "categoryLabel": "Collaborators", "notes": [], "bodyParameters": [], "descriptionHTML": "

Checks the repository permission of a collaborator. The possible repository permissions are admin, write, read, and none.

", @@ -53528,8 +53512,8 @@ "subcategory": "comments" }, "slug": "list-commit-comments-for-a-repository", - "category": "repos", - "categoryLabel": "Repos", + "category": "commits", + "categoryLabel": "Commits", "subcategory": "comments", "subcategoryLabel": "Comments", "notes": [], @@ -53607,8 +53591,8 @@ "subcategory": "comments" }, "slug": "get-a-commit-comment", - "category": "repos", - "categoryLabel": "Repos", + "category": "commits", + "categoryLabel": "Commits", "subcategory": "comments", "subcategoryLabel": "Comments", "notes": [], @@ -53718,8 +53702,8 @@ "subcategory": "comments" }, "slug": "update-a-commit-comment", - "category": "repos", - "categoryLabel": "Repos", + "category": "commits", + "categoryLabel": "Commits", "subcategory": "comments", "subcategoryLabel": "Comments", "contentType": "application/json", @@ -53813,8 +53797,8 @@ "subcategory": "comments" }, "slug": "delete-a-commit-comment", - "category": "repos", - "categoryLabel": "Repos", + "category": "commits", + "categoryLabel": "Commits", "subcategory": "comments", "subcategoryLabel": "Comments", "notes": [], @@ -54316,10 +54300,8 @@ "subcategory": "commits" }, "slug": "list-commits", - "category": "repos", - "categoryLabel": "Repos", - "subcategory": "commits", - "subcategoryLabel": "Commits", + "category": "commits", + "categoryLabel": "Commits", "notes": [], "bodyParameters": [], "descriptionHTML": "

Signature verification object

\n

The response will include a verification object that describes the result of verifying the commit's signature. The following fields are included in the verification object:

\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n
NameTypeDescription
verifiedbooleanIndicates whether GitHub considers the signature in this commit to be verified.
reasonstringThe reason for verified value. Possible values and their meanings are enumerated in table below.
signaturestringThe signature that was extracted from the commit.
payloadstringThe value that was signed.
\n

These are the possible values for reason in the verification object:

\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n
ValueDescription
expired_keyThe key that made the signature is expired.
not_signing_keyThe \"signing\" flag is not among the usage flags in the GPG key that made the signature.
gpgverify_errorThere was an error communicating with the signature verification service.
gpgverify_unavailableThe signature verification service is currently unavailable.
unsignedThe object does not include a signature.
unknown_signature_typeA non-PGP signature was found in the commit.
no_userNo user was associated with the committer email address in the commit.
unverified_emailThe committer email address in the commit was associated with a user, but the email address is not verified on her/his account.
bad_emailThe committer email address in the commit is not included in the identities of the PGP key that made the signature.
unknown_keyThe key that made the signature has not been registered with any user's account.
malformed_signatureThere was an error parsing the signature.
invalidThe signature could not be cryptographically verified using the key whose key-id was found in the signature.
validNone of the above errors applied, so the signature is considered to be verified.
", @@ -54416,10 +54398,8 @@ "subcategory": "commits" }, "slug": "list-branches-for-head-commit", - "category": "repos", - "categoryLabel": "Repos", - "subcategory": "commits", - "subcategoryLabel": "Commits", + "category": "commits", + "categoryLabel": "Commits", "notes": [], "bodyParameters": [], "descriptionHTML": "

Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see GitHub's products in the GitHub Help documentation.

\n

Returns all branches where the given commit SHA is the HEAD, or latest commit for the branch.

", @@ -54521,8 +54501,8 @@ "subcategory": "comments" }, "slug": "list-commit-comments", - "category": "repos", - "categoryLabel": "Repos", + "category": "commits", + "categoryLabel": "Commits", "subcategory": "comments", "subcategoryLabel": "Comments", "notes": [], @@ -54659,8 +54639,8 @@ "subcategory": "comments" }, "slug": "create-a-commit-comment", - "category": "repos", - "categoryLabel": "Repos", + "category": "commits", + "categoryLabel": "Commits", "subcategory": "comments", "subcategoryLabel": "Comments", "contentType": "application/json", @@ -54807,10 +54787,8 @@ "subcategory": "commits" }, "slug": "list-pull-requests-associated-with-a-commit", - "category": "repos", - "categoryLabel": "Repos", - "subcategory": "commits", - "subcategoryLabel": "Commits", + "category": "commits", + "categoryLabel": "Commits", "notes": [], "bodyParameters": [], "descriptionHTML": "

Lists the merged pull request that introduced the commit to the repository. If the commit is not present in the default branch, additionally returns open pull requests associated with the commit. The results may include open and closed pull requests. Additional preview headers may be required to see certain details for associated pull requests, such as whether a pull request is in a draft state. For more information about previews that might affect this endpoint, see the List pull requests endpoint.

", @@ -54907,10 +54885,8 @@ "subcategory": "commits" }, "slug": "get-a-commit", - "category": "repos", - "categoryLabel": "Repos", - "subcategory": "commits", - "subcategoryLabel": "Commits", + "category": "commits", + "categoryLabel": "Commits", "notes": [], "bodyParameters": [], "descriptionHTML": "

Returns the contents of a single commit reference. You must have read access for the repository to use this endpoint.

\n

Note: If there are more than 300 files in the commit diff, the response will include pagination link headers for the remaining files, up to a limit of 3000 files. Each page contains the static commit information, and the only changes are to the file listing.

\n

You can pass the appropriate media type to fetch diff and patch formats. Diffs with binary data will have no patch property.

\n

To return only the SHA-1 hash of the commit reference, you can provide the sha custom media type in the Accept header. You can use this endpoint to check if a remote reference's SHA-1 hash is the same as your local reference's SHA-1 hash by providing the local SHA-1 reference as the ETag.

\n

Signature verification object

\n

The response will include a verification object that describes the result of verifying the commit's signature. The following fields are included in the verification object:

\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n
NameTypeDescription
verifiedbooleanIndicates whether GitHub considers the signature in this commit to be verified.
reasonstringThe reason for verified value. Possible values and their meanings are enumerated in table below.
signaturestringThe signature that was extracted from the commit.
payloadstringThe value that was signed.
\n

These are the possible values for reason in the verification object:

\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n
ValueDescription
expired_keyThe key that made the signature is expired.
not_signing_keyThe \"signing\" flag is not among the usage flags in the GPG key that made the signature.
gpgverify_errorThere was an error communicating with the signature verification service.
gpgverify_unavailableThe signature verification service is currently unavailable.
unsignedThe object does not include a signature.
unknown_signature_typeA non-PGP signature was found in the commit.
no_userNo user was associated with the committer email address in the commit.
unverified_emailThe committer email address in the commit was associated with a user, but the email address is not verified on her/his account.
bad_emailThe committer email address in the commit is not included in the identities of the PGP key that made the signature.
unknown_keyThe key that made the signature has not been registered with any user's account.
malformed_signatureThere was an error parsing the signature.
invalidThe signature could not be cryptographically verified using the key whose key-id was found in the signature.
validNone of the above errors applied, so the signature is considered to be verified.
", @@ -55292,8 +55268,8 @@ "subcategory": "statuses" }, "slug": "get-the-combined-status-for-a-specific-reference", - "category": "repos", - "categoryLabel": "Repos", + "category": "commits", + "categoryLabel": "Commits", "subcategory": "statuses", "subcategoryLabel": "Statuses", "notes": [], @@ -55397,8 +55373,8 @@ "subcategory": "statuses" }, "slug": "list-commit-statuses-for-a-reference", - "category": "repos", - "categoryLabel": "Repos", + "category": "commits", + "categoryLabel": "Commits", "subcategory": "statuses", "subcategoryLabel": "Statuses", "notes": [], @@ -55471,8 +55447,8 @@ "subcategory": "community" }, "slug": "get-community-profile-metrics", - "category": "repos", - "categoryLabel": "Repos", + "category": "metrics", + "categoryLabel": "Metrics", "subcategory": "community", "subcategoryLabel": "Community", "notes": [], @@ -55570,10 +55546,8 @@ "subcategory": "commits" }, "slug": "compare-two-commits", - "category": "repos", - "categoryLabel": "Repos", - "subcategory": "commits", - "subcategoryLabel": "Commits", + "category": "commits", + "categoryLabel": "Commits", "notes": [], "bodyParameters": [], "descriptionHTML": "

The basehead param is comprised of two parts: base and head. Both must be branch names in repo. To compare branches across other repositories in the same network as repo, use the format <USERNAME>:branch.

\n

The response from the API is equivalent to running the git log base..head command; however, commits are returned in chronological order. Pass the appropriate media type to fetch diff and patch formats.

\n

The response also includes details on the files that were changed between the two commits. This includes the status of the change (for example, if a file was added, removed, modified, or renamed), and details of the change itself. For example, files with a renamed status have a previous_filename field showing the previous filename of the file, and files with a modified status have a patch field showing the changes made to the file.

\n

Working with large comparisons

\n

To process a response with a large number of commits, you can use (per_page or page) to paginate the results. When using paging, the list of changed files is only returned with page 1, but includes all changed files for the entire comparison. For more information on working with pagination, see \"Traversing with pagination.\"

\n

When calling this API without any paging parameters (per_page or page), the returned list is limited to 250 commits and the last commit in the list is the most recent of the entire comparison. When a paging parameter is specified, the first commit in the returned list of each page is the earliest.

\n

Signature verification object

\n

The response will include a verification object that describes the result of verifying the commit's signature. The following fields are included in the verification object:

\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n
NameTypeDescription
verifiedbooleanIndicates whether GitHub considers the signature in this commit to be verified.
reasonstringThe reason for verified value. Possible values and their meanings are enumerated in table below.
signaturestringThe signature that was extracted from the commit.
payloadstringThe value that was signed.
\n

These are the possible values for reason in the verification object:

\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n
ValueDescription
expired_keyThe key that made the signature is expired.
not_signing_keyThe \"signing\" flag is not among the usage flags in the GPG key that made the signature.
gpgverify_errorThere was an error communicating with the signature verification service.
gpgverify_unavailableThe signature verification service is currently unavailable.
unsignedThe object does not include a signature.
unknown_signature_typeA non-PGP signature was found in the commit.
no_userNo user was associated with the committer email address in the commit.
unverified_emailThe committer email address in the commit was associated with a user, but the email address is not verified on her/his account.
bad_emailThe committer email address in the commit is not included in the identities of the PGP key that made the signature.
unknown_keyThe key that made the signature has not been registered with any user's account.
malformed_signatureThere was an error parsing the signature.
invalidThe signature could not be cryptographically verified using the key whose key-id was found in the signature.
validNone of the above errors applied, so the signature is considered to be verified.
", @@ -57327,10 +57301,8 @@ "subcategory": "deployments" }, "slug": "list-deployments", - "category": "repos", - "categoryLabel": "Repos", - "subcategory": "deployments", - "subcategoryLabel": "Deployments", + "category": "deployments", + "categoryLabel": "Deployments", "notes": [], "bodyParameters": [], "descriptionHTML": "

Simple filtering of deployments is available via query parameters:

", @@ -57533,10 +57505,8 @@ "subcategory": "deployments" }, "slug": "create-a-deployment", - "category": "repos", - "categoryLabel": "Repos", - "subcategory": "deployments", - "subcategoryLabel": "Deployments", + "category": "deployments", + "categoryLabel": "Deployments", "contentType": "application/json", "notes": [], "descriptionHTML": "

Deployments offer a few configurable parameters with certain defaults.

\n

The ref parameter can be any named branch, tag, or SHA. At GitHub we often deploy branches and verify them\nbefore we merge a pull request.

\n

The environment parameter allows deployments to be issued to different runtime environments. Teams often have\nmultiple environments for verifying their applications, such as production, staging, and qa. This parameter\nmakes it easier to track which environments have requested deployments. The default environment is production.

\n

The auto_merge parameter is used to ensure that the requested ref is not behind the repository's default branch. If\nthe ref is behind the default branch for the repository, we will attempt to merge it for you. If the merge succeeds,\nthe API will return a successful merge commit. If merge conflicts prevent the merge from succeeding, the API will\nreturn a failure response.

\n

By default, commit statuses for every submitted context must be in a success\nstate. The required_contexts parameter allows you to specify a subset of contexts that must be success, or to\nspecify contexts that have not yet been submitted. You are not required to use commit statuses to deploy. If you do\nnot require any contexts or create any commit statuses, the deployment will always succeed.

\n

The payload parameter is available for any extra information that a deployment system might need. It is a JSON text\nfield that will be passed on when a deployment event is dispatched.

\n

The task parameter is used by the deployment system to allow different execution paths. In the web world this might\nbe deploy:migrations to run schema changes on the system. In the compiled world this could be a flag to compile an\napplication with debugging enabled.

\n

Users with repo or repo_deployment scopes can create a deployment for a given ref.

\n

Merged branch response

\n

You will see this response when GitHub automatically merges the base branch into the topic branch instead of creating\na deployment. This auto-merge happens when:

\n
    \n
  • Auto-merge option is enabled in the repository
  • \n
  • Topic branch does not include the latest changes on the base branch, which is master in the response example
  • \n
  • There are no merge conflicts
  • \n
\n

If there are no new commits in the base branch, a new request to create a deployment should give a successful\nresponse.

\n

Merge conflict response

\n

This error happens when the auto_merge option is enabled and when the default branch (in this case master), can't\nbe merged into the branch that's being deployed (in this case topic-branch), due to merge conflicts.

\n

Failed commit status checks

\n

This error happens when the required_contexts parameter indicates that one or more contexts need to have a success\nstatus for the commit to be deployed, but one or more of the required contexts do not have a state of success.

", @@ -57729,10 +57699,8 @@ "subcategory": "deployments" }, "slug": "get-a-deployment", - "category": "repos", - "categoryLabel": "Repos", - "subcategory": "deployments", - "subcategoryLabel": "Deployments", + "category": "deployments", + "categoryLabel": "Deployments", "notes": [], "descriptionHTML": "", "bodyParameters": [], @@ -57813,10 +57781,8 @@ "subcategory": "deployments" }, "slug": "delete-a-deployment", - "category": "repos", - "categoryLabel": "Repos", - "subcategory": "deployments", - "subcategoryLabel": "Deployments", + "category": "deployments", + "categoryLabel": "Deployments", "notes": [], "responses": [ { @@ -57921,10 +57887,10 @@ "subcategory": "deployments" }, "slug": "list-deployment-statuses", - "category": "repos", - "categoryLabel": "Repos", - "subcategory": "deployments", - "subcategoryLabel": "Deployments", + "category": "deployments", + "categoryLabel": "Deployments", + "subcategory": "statuses", + "subcategoryLabel": "Statuses", "notes": [], "bodyParameters": [], "descriptionHTML": "

Users with pull access can view deployment statuses for a deployment:

", @@ -58107,10 +58073,10 @@ "subcategory": "deployments" }, "slug": "create-a-deployment-status", - "category": "repos", - "categoryLabel": "Repos", - "subcategory": "deployments", - "subcategoryLabel": "Deployments", + "category": "deployments", + "categoryLabel": "Deployments", + "subcategory": "statuses", + "subcategoryLabel": "Statuses", "contentType": "application/json", "notes": [], "descriptionHTML": "

Users with push access can create deployment statuses for a given deployment.

\n

GitHub Apps require read & write access to \"Deployments\" and read-only access to \"Repo contents\" (for private repos). OAuth Apps require the repo_deployment scope.

", @@ -58283,10 +58249,10 @@ "subcategory": "deployments" }, "slug": "get-a-deployment-status", - "category": "repos", - "categoryLabel": "Repos", - "subcategory": "deployments", - "subcategoryLabel": "Deployments", + "category": "deployments", + "categoryLabel": "Deployments", + "subcategory": "statuses", + "subcategoryLabel": "Statuses", "notes": [], "bodyParameters": [], "descriptionHTML": "

Users with pull access can view a deployment status for a deployment:

", @@ -58496,8 +58462,8 @@ "subcategory": "environments" }, "slug": "get-all-environments", - "category": "repos", - "categoryLabel": "Repos", + "category": "deployments", + "categoryLabel": "Deployments", "subcategory": "environments", "subcategoryLabel": "Environments", "notes": [], @@ -58575,8 +58541,8 @@ "subcategory": "environments" }, "slug": "get-an-environment", - "category": "repos", - "categoryLabel": "Repos", + "category": "deployments", + "categoryLabel": "Deployments", "subcategory": "environments", "subcategoryLabel": "Environments", "notes": [], @@ -58809,8 +58775,8 @@ "subcategory": "environments" }, "slug": "create-or-update-an-environment", - "category": "repos", - "categoryLabel": "Repos", + "category": "deployments", + "categoryLabel": "Deployments", "subcategory": "environments", "subcategoryLabel": "Environments", "contentType": "application/json", @@ -59036,8 +59002,8 @@ "subcategory": "environments" }, "slug": "delete-an-environment", - "category": "repos", - "categoryLabel": "Repos", + "category": "deployments", + "categoryLabel": "Deployments", "subcategory": "environments", "subcategoryLabel": "Environments", "notes": [], @@ -61769,10 +61735,10 @@ "subcategory": "webhooks" }, "slug": "list-repository-webhooks", - "category": "repos", - "categoryLabel": "Repos", - "subcategory": "webhooks", - "subcategoryLabel": "Webhooks", + "category": "webhooks", + "categoryLabel": "Webhooks", + "subcategory": "repos", + "subcategoryLabel": "Repos", "notes": [], "descriptionHTML": "", "bodyParameters": [], @@ -62055,10 +62021,10 @@ "subcategory": "webhooks" }, "slug": "create-a-repository-webhook", - "category": "repos", - "categoryLabel": "Repos", - "subcategory": "webhooks", - "subcategoryLabel": "Webhooks", + "category": "webhooks", + "categoryLabel": "Webhooks", + "subcategory": "repos", + "subcategoryLabel": "Repos", "contentType": "application/json", "notes": [], "descriptionHTML": "

Repositories can have multiple webhooks installed. Each webhook should have a unique config. Multiple webhooks can\nshare the same config as long as those webhooks do not have any events that overlap.

", @@ -62335,10 +62301,10 @@ "subcategory": "webhooks" }, "slug": "get-a-repository-webhook", - "category": "repos", - "categoryLabel": "Repos", - "subcategory": "webhooks", - "subcategoryLabel": "Webhooks", + "category": "webhooks", + "categoryLabel": "Webhooks", + "subcategory": "repos", + "subcategoryLabel": "Repos", "notes": [], "bodyParameters": [], "descriptionHTML": "

Returns a webhook configured in a repository. To get only the webhook config properties, see \"Get a webhook configuration for a repository.\"

", @@ -62639,10 +62605,10 @@ "subcategory": "webhooks" }, "slug": "update-a-repository-webhook", - "category": "repos", - "categoryLabel": "Repos", - "subcategory": "webhooks", - "subcategoryLabel": "Webhooks", + "category": "webhooks", + "categoryLabel": "Webhooks", + "subcategory": "repos", + "subcategoryLabel": "Repos", "contentType": "application/json", "notes": [], "descriptionHTML": "

Updates a webhook configured in a repository. If you previously had a secret set, you must provide the same secret or set a new secret or the secret will be removed. If you are only updating individual webhook config properties, use \"Update a webhook configuration for a repository.\"

", @@ -62932,10 +62898,10 @@ "subcategory": "webhooks" }, "slug": "delete-a-repository-webhook", - "category": "repos", - "categoryLabel": "Repos", - "subcategory": "webhooks", - "subcategoryLabel": "Webhooks", + "category": "webhooks", + "categoryLabel": "Webhooks", + "subcategory": "repos", + "subcategoryLabel": "Repos", "notes": [], "descriptionHTML": "", "responses": [ @@ -63014,10 +62980,10 @@ "subcategory": "webhooks" }, "slug": "get-a-webhook-configuration-for-a-repository", - "category": "repos", - "categoryLabel": "Repos", - "subcategory": "webhooks", - "subcategoryLabel": "Webhooks", + "category": "webhooks", + "categoryLabel": "Webhooks", + "subcategory": "repo-config", + "subcategoryLabel": "Repo config", "notes": [], "bodyParameters": [], "descriptionHTML": "

Returns the webhook configuration for a repository. To get more information about the webhook, including the active state and events, use \"Get a repository webhook.\"

\n

Access tokens must have the read:repo_hook or repo scope, and GitHub Apps must have the repository_hooks:read permission.

", @@ -63159,10 +63125,10 @@ "subcategory": "webhooks" }, "slug": "update-a-webhook-configuration-for-a-repository", - "category": "repos", - "categoryLabel": "Repos", - "subcategory": "webhooks", - "subcategoryLabel": "Webhooks", + "category": "webhooks", + "categoryLabel": "Webhooks", + "subcategory": "repo-config", + "subcategoryLabel": "Repo config", "contentType": "application/json", "notes": [], "descriptionHTML": "

Updates the webhook configuration for a repository. To update more information about the webhook, including the active state and events, use \"Update a repository webhook.\"

\n

Access tokens must have the write:repo_hook or repo scope, and GitHub Apps must have the repository_hooks:write permission.

", @@ -63307,10 +63273,10 @@ "subcategory": "webhooks" }, "slug": "list-deliveries-for-a-repository-webhook", - "category": "repos", - "categoryLabel": "Repos", - "subcategory": "webhooks", - "subcategoryLabel": "Webhooks", + "category": "webhooks", + "categoryLabel": "Webhooks", + "subcategory": "repo-deliveries", + "subcategoryLabel": "Repo deliveries", "notes": [], "bodyParameters": [], "descriptionHTML": "

Returns a list of webhook deliveries for a webhook configured in a repository.

", @@ -63404,10 +63370,10 @@ "subcategory": "webhooks" }, "slug": "get-a-delivery-for-a-repository-webhook", - "category": "repos", - "categoryLabel": "Repos", - "subcategory": "webhooks", - "subcategoryLabel": "Webhooks", + "category": "webhooks", + "categoryLabel": "Webhooks", + "subcategory": "repo-deliveries", + "subcategoryLabel": "Repo deliveries", "notes": [], "bodyParameters": [], "descriptionHTML": "

Returns a delivery for a webhook configured in a repository.

", @@ -63501,10 +63467,10 @@ "subcategory": "webhooks" }, "slug": "redeliver-a-delivery-for-a-repository-webhook", - "category": "repos", - "categoryLabel": "Repos", - "subcategory": "webhooks", - "subcategoryLabel": "Webhooks", + "category": "webhooks", + "categoryLabel": "Webhooks", + "subcategory": "repo-deliveries", + "subcategoryLabel": "Repo deliveries", "notes": [], "responses": [ { @@ -63588,10 +63554,10 @@ "subcategory": "webhooks" }, "slug": "ping-a-repository-webhook", - "category": "repos", - "categoryLabel": "Repos", - "subcategory": "webhooks", - "subcategoryLabel": "Webhooks", + "category": "webhooks", + "categoryLabel": "Webhooks", + "subcategory": "repos", + "subcategoryLabel": "Repos", "notes": [], "responses": [ { @@ -63670,10 +63636,10 @@ "subcategory": "webhooks" }, "slug": "test-the-push-repository-webhook", - "category": "repos", - "categoryLabel": "Repos", - "subcategory": "webhooks", - "subcategoryLabel": "Webhooks", + "category": "webhooks", + "categoryLabel": "Webhooks", + "subcategory": "repos", + "subcategoryLabel": "Repos", "notes": [], "responses": [ { @@ -65078,8 +65044,8 @@ "subcategory": "invitations" }, "slug": "list-repository-invitations", - "category": "repos", - "categoryLabel": "Repos", + "category": "collaborators", + "categoryLabel": "Collaborators", "subcategory": "invitations", "subcategoryLabel": "Invitations", "notes": [], @@ -65185,8 +65151,8 @@ "subcategory": "invitations" }, "slug": "update-a-repository-invitation", - "category": "repos", - "categoryLabel": "Repos", + "category": "collaborators", + "categoryLabel": "Collaborators", "subcategory": "invitations", "subcategoryLabel": "Invitations", "contentType": "application/json", @@ -65282,8 +65248,8 @@ "subcategory": "invitations" }, "slug": "delete-a-repository-invitation", - "category": "repos", - "categoryLabel": "Repos", + "category": "collaborators", + "categoryLabel": "Collaborators", "subcategory": "invitations", "subcategoryLabel": "Invitations", "notes": [], @@ -69273,8 +69239,8 @@ "subcategory": "keys" }, "slug": "list-deploy-keys", - "category": "repos", - "categoryLabel": "Repos", + "category": "deployments", + "categoryLabel": "Deployments", "subcategory": "keys", "subcategoryLabel": "Keys", "notes": [], @@ -69389,8 +69355,8 @@ "subcategory": "keys" }, "slug": "create-a-deploy-key", - "category": "repos", - "categoryLabel": "Repos", + "category": "deployments", + "categoryLabel": "Deployments", "subcategory": "keys", "subcategoryLabel": "Keys", "contentType": "application/json", @@ -69502,8 +69468,8 @@ "subcategory": "keys" }, "slug": "get-a-deploy-key", - "category": "repos", - "categoryLabel": "Repos", + "category": "deployments", + "categoryLabel": "Deployments", "subcategory": "keys", "subcategoryLabel": "Keys", "notes": [], @@ -69586,8 +69552,8 @@ "subcategory": "keys" }, "slug": "delete-a-deploy-key", - "category": "repos", - "categoryLabel": "Repos", + "category": "deployments", + "categoryLabel": "Deployments", "subcategory": "keys", "subcategoryLabel": "Keys", "notes": [], @@ -70516,10 +70482,8 @@ "subcategory": "branches" }, "slug": "sync-a-fork-branch-with-the-upstream-repository", - "category": "repos", - "categoryLabel": "Repos", - "subcategory": "branches", - "subcategoryLabel": "Branches", + "category": "branches", + "categoryLabel": "Branches", "contentType": "application/json", "notes": [], "descriptionHTML": "

Sync a branch of a forked repository to keep it up-to-date with the upstream repository.

", @@ -70654,10 +70618,8 @@ "subcategory": "merging" }, "slug": "merge-a-branch", - "category": "repos", - "categoryLabel": "Repos", - "subcategory": "merging", - "subcategoryLabel": "Merging", + "category": "branches", + "categoryLabel": "Branches", "contentType": "application/json", "notes": [], "descriptionHTML": "", @@ -71792,10 +71754,8 @@ "subcategory": "pages" }, "slug": "get-a-github-pages-site", - "category": "repos", - "categoryLabel": "Repos", - "subcategory": "pages", - "subcategoryLabel": "Pages", + "category": "pages", + "categoryLabel": "Pages", "notes": [], "descriptionHTML": "", "bodyParameters": [], @@ -71957,10 +71917,8 @@ "subcategory": "pages" }, "slug": "create-a-github-pages-site", - "category": "repos", - "categoryLabel": "Repos", - "subcategory": "pages", - "subcategoryLabel": "Pages", + "category": "pages", + "categoryLabel": "Pages", "contentType": "application/json", "notes": [], "descriptionHTML": "

Configures a GitHub Pages site. For more information, see \"About GitHub Pages.\"

", @@ -72215,10 +72173,8 @@ "subcategory": "pages" }, "slug": "update-information-about-a-github-pages-site", - "category": "repos", - "categoryLabel": "Repos", - "subcategory": "pages", - "subcategoryLabel": "Pages", + "category": "pages", + "categoryLabel": "Pages", "contentType": "application/json", "notes": [], "responses": [ @@ -72363,10 +72319,8 @@ "subcategory": "pages" }, "slug": "delete-a-github-pages-site", - "category": "repos", - "categoryLabel": "Repos", - "subcategory": "pages", - "subcategoryLabel": "Pages", + "category": "pages", + "categoryLabel": "Pages", "notes": [], "descriptionHTML": "", "responses": [ @@ -72461,10 +72415,8 @@ "subcategory": "pages" }, "slug": "list-github-pages-builds", - "category": "repos", - "categoryLabel": "Repos", - "subcategory": "pages", - "subcategoryLabel": "Pages", + "category": "pages", + "categoryLabel": "Pages", "notes": [], "descriptionHTML": "", "bodyParameters": [], @@ -72530,10 +72482,8 @@ "subcategory": "pages" }, "slug": "request-a-github-pages-build", - "category": "repos", - "categoryLabel": "Repos", - "subcategory": "pages", - "subcategoryLabel": "Pages", + "category": "pages", + "categoryLabel": "Pages", "notes": [], "bodyParameters": [], "descriptionHTML": "

You can request that your site be built from the latest revision on the default branch. This has the same effect as pushing a commit to your default branch, but does not require an additional commit. Manually triggering page builds can be helpful when diagnosing build warnings and failures.

\n

Build requests are limited to one concurrent build per repository and one concurrent build per requester. If you request a build while another is still in progress, the second request will be queued until the first completes.

", @@ -72599,10 +72549,8 @@ "subcategory": "pages" }, "slug": "get-latest-pages-build", - "category": "repos", - "categoryLabel": "Repos", - "subcategory": "pages", - "subcategoryLabel": "Pages", + "category": "pages", + "categoryLabel": "Pages", "notes": [], "descriptionHTML": "", "bodyParameters": [], @@ -72677,10 +72625,8 @@ "subcategory": "pages" }, "slug": "get-github-pages-build", - "category": "repos", - "categoryLabel": "Repos", - "subcategory": "pages", - "subcategoryLabel": "Pages", + "category": "pages", + "categoryLabel": "Pages", "notes": [], "descriptionHTML": "", "bodyParameters": [], @@ -72746,10 +72692,8 @@ "subcategory": "pages" }, "slug": "get-a-dns-health-check-for-github-pages", - "category": "repos", - "categoryLabel": "Repos", - "subcategory": "pages", - "subcategoryLabel": "Pages", + "category": "pages", + "categoryLabel": "Pages", "notes": [], "bodyParameters": [], "descriptionHTML": "

Gets a health check of the DNS settings for the CNAME record configured for a repository's GitHub Pages.

\n

The first request to this endpoint returns a 202 Accepted status and starts an asynchronous background task to get the results for the domain. After the background task completes, subsequent requests to this endpoint return a 200 OK status with the health check results in the response.

\n

Users must have admin or owner permissions. GitHub Apps must have the pages:write and administration:write permission to use this endpoint.

", @@ -77911,10 +77855,8 @@ "subcategory": "releases" }, "slug": "list-releases", - "category": "repos", - "categoryLabel": "Repos", - "subcategory": "releases", - "subcategoryLabel": "Releases", + "category": "releases", + "categoryLabel": "Releases", "notes": [], "bodyParameters": [], "descriptionHTML": "

This returns a list of releases, which does not include regular Git tags that have not been associated with a release. To get a list of Git tags, use the Repository Tags API.

\n

Information about published releases are available to everyone. Only users with push access will receive listings for draft releases.

", @@ -78085,10 +78027,8 @@ "subcategory": "releases" }, "slug": "create-a-release", - "category": "repos", - "categoryLabel": "Repos", - "subcategory": "releases", - "subcategoryLabel": "Releases", + "category": "releases", + "categoryLabel": "Releases", "contentType": "application/json", "notes": [], "descriptionHTML": "

Users with push access to the repository can create a release.

\n

This endpoint triggers notifications. Creating content too quickly using this endpoint may result in secondary rate limiting. See \"Secondary rate limits\" and \"Dealing with secondary rate limits\" for details.

", @@ -78251,10 +78191,10 @@ "subcategory": "releases" }, "slug": "get-a-release-asset", - "category": "repos", - "categoryLabel": "Repos", - "subcategory": "releases", - "subcategoryLabel": "Releases", + "category": "releases", + "categoryLabel": "Releases", + "subcategory": "assets", + "subcategoryLabel": "Assets", "notes": [], "bodyParameters": [], "descriptionHTML": "

To download the asset's binary content, set the Accept header of the request to application/octet-stream. The API will either redirect the client to the location, or stream it directly if possible. API clients should handle both a 200 or 302 response.

", @@ -78388,10 +78328,10 @@ "subcategory": "releases" }, "slug": "update-a-release-asset", - "category": "repos", - "categoryLabel": "Repos", - "subcategory": "releases", - "subcategoryLabel": "Releases", + "category": "releases", + "categoryLabel": "Releases", + "subcategory": "assets", + "subcategoryLabel": "Assets", "contentType": "application/json", "notes": [], "descriptionHTML": "

Users with push access to the repository can edit a release asset.

", @@ -78496,10 +78436,10 @@ "subcategory": "releases" }, "slug": "delete-a-release-asset", - "category": "repos", - "categoryLabel": "Repos", - "subcategory": "releases", - "subcategoryLabel": "Releases", + "category": "releases", + "categoryLabel": "Releases", + "subcategory": "assets", + "subcategoryLabel": "Assets", "notes": [], "descriptionHTML": "", "responses": [ @@ -78621,10 +78561,8 @@ "subcategory": "releases" }, "slug": "generate-release-notes-content-for-a-release", - "category": "repos", - "categoryLabel": "Repos", - "subcategory": "releases", - "subcategoryLabel": "Releases", + "category": "releases", + "categoryLabel": "Releases", "contentType": "application/json", "notes": [], "descriptionHTML": "

Generate a name and body describing a release. The body content will be markdown formatted and contain information like the changes since last release and users who contributed. The generated release notes are not saved anywhere. They are intended to be generated and used when creating a new release.

", @@ -78733,10 +78671,8 @@ "subcategory": "releases" }, "slug": "get-the-latest-release", - "category": "repos", - "categoryLabel": "Repos", - "subcategory": "releases", - "subcategoryLabel": "Releases", + "category": "releases", + "categoryLabel": "Releases", "notes": [], "bodyParameters": [], "descriptionHTML": "

View the latest published full release for the repository.

\n

The latest release is the most recent non-prerelease, non-draft release, sorted by the created_at attribute. The created_at attribute is the date of the commit used for the release, and not the date when the release was drafted or published.

", @@ -78813,10 +78749,8 @@ "subcategory": "releases" }, "slug": "get-a-release-by-tag-name", - "category": "repos", - "categoryLabel": "Repos", - "subcategory": "releases", - "subcategoryLabel": "Releases", + "category": "releases", + "categoryLabel": "Releases", "notes": [], "bodyParameters": [], "descriptionHTML": "

Get a published release with the specified tag.

", @@ -78897,10 +78831,8 @@ "subcategory": "releases" }, "slug": "get-a-release", - "category": "repos", - "categoryLabel": "Repos", - "subcategory": "releases", - "subcategoryLabel": "Releases", + "category": "releases", + "categoryLabel": "Releases", "notes": [], "bodyParameters": [], "descriptionHTML": "

Note: This returns an upload_url key corresponding to the endpoint for uploading release assets. This key is a hypermedia resource.

", @@ -79064,10 +78996,8 @@ "subcategory": "releases" }, "slug": "update-a-release", - "category": "repos", - "categoryLabel": "Repos", - "subcategory": "releases", - "subcategoryLabel": "Releases", + "category": "releases", + "categoryLabel": "Releases", "contentType": "application/json", "notes": [], "descriptionHTML": "

Users with push access to the repository can edit a release.

", @@ -79213,10 +79143,8 @@ "subcategory": "releases" }, "slug": "delete-a-release", - "category": "repos", - "categoryLabel": "Repos", - "subcategory": "releases", - "subcategoryLabel": "Releases", + "category": "releases", + "categoryLabel": "Releases", "notes": [], "responses": [ { @@ -79311,10 +79239,10 @@ "subcategory": "releases" }, "slug": "list-release-assets", - "category": "repos", - "categoryLabel": "Repos", - "subcategory": "releases", - "subcategoryLabel": "Releases", + "category": "releases", + "categoryLabel": "Releases", + "subcategory": "assets", + "subcategoryLabel": "Assets", "notes": [], "descriptionHTML": "", "bodyParameters": [], @@ -79429,10 +79357,10 @@ "subcategory": "releases" }, "slug": "upload-a-release-asset", - "category": "repos", - "categoryLabel": "Repos", - "subcategory": "releases", - "subcategoryLabel": "Releases", + "category": "releases", + "categoryLabel": "Releases", + "subcategory": "assets", + "subcategoryLabel": "Assets", "contentType": "*/*", "notes": [], "bodyParameters": [], @@ -80254,8 +80182,8 @@ "subcategory": "statistics" }, "slug": "get-the-weekly-commit-activity", - "category": "repos", - "categoryLabel": "Repos", + "category": "metrics", + "categoryLabel": "Metrics", "subcategory": "statistics", "subcategoryLabel": "Statistics", "notes": [], @@ -80333,8 +80261,8 @@ "subcategory": "statistics" }, "slug": "get-the-last-year-of-commit-activity", - "category": "repos", - "categoryLabel": "Repos", + "category": "metrics", + "categoryLabel": "Metrics", "subcategory": "statistics", "subcategoryLabel": "Statistics", "notes": [], @@ -80412,8 +80340,8 @@ "subcategory": "statistics" }, "slug": "get-all-contributor-commit-activity", - "category": "repos", - "categoryLabel": "Repos", + "category": "metrics", + "categoryLabel": "Metrics", "subcategory": "statistics", "subcategoryLabel": "Statistics", "notes": [], @@ -80491,8 +80419,8 @@ "subcategory": "statistics" }, "slug": "get-the-weekly-commit-count", - "category": "repos", - "categoryLabel": "Repos", + "category": "metrics", + "categoryLabel": "Metrics", "subcategory": "statistics", "subcategoryLabel": "Statistics", "notes": [], @@ -80565,8 +80493,8 @@ "subcategory": "statistics" }, "slug": "get-the-hourly-commit-count-for-each-day", - "category": "repos", - "categoryLabel": "Repos", + "category": "metrics", + "categoryLabel": "Metrics", "subcategory": "statistics", "subcategoryLabel": "Statistics", "notes": [], @@ -80713,8 +80641,8 @@ "subcategory": "statuses" }, "slug": "create-a-commit-status", - "category": "repos", - "categoryLabel": "Repos", + "category": "commits", + "categoryLabel": "Commits", "subcategory": "statuses", "subcategoryLabel": "Statuses", "contentType": "application/json", @@ -81667,8 +81595,8 @@ "subcategory": "traffic" }, "slug": "get-repository-clones", - "category": "repos", - "categoryLabel": "Repos", + "category": "metrics", + "categoryLabel": "Metrics", "subcategory": "traffic", "subcategoryLabel": "Traffic", "notes": [], @@ -81741,8 +81669,8 @@ "subcategory": "traffic" }, "slug": "get-top-referral-paths", - "category": "repos", - "categoryLabel": "Repos", + "category": "metrics", + "categoryLabel": "Metrics", "subcategory": "traffic", "subcategoryLabel": "Traffic", "notes": [], @@ -81815,8 +81743,8 @@ "subcategory": "traffic" }, "slug": "get-top-referral-sources", - "category": "repos", - "categoryLabel": "Repos", + "category": "metrics", + "categoryLabel": "Metrics", "subcategory": "traffic", "subcategoryLabel": "Traffic", "notes": [], @@ -81905,8 +81833,8 @@ "subcategory": "traffic" }, "slug": "get-page-views", - "category": "repos", - "categoryLabel": "Repos", + "category": "metrics", + "categoryLabel": "Metrics", "subcategory": "traffic", "subcategoryLabel": "Traffic", "notes": [], @@ -99917,8 +99845,8 @@ "subcategory": "invitations" }, "slug": "list-repository-invitations-for-the-authenticated-user", - "category": "repos", - "categoryLabel": "Repos", + "category": "collaborators", + "categoryLabel": "Collaborators", "subcategory": "invitations", "subcategoryLabel": "Invitations", "notes": [], @@ -99998,8 +99926,8 @@ "subcategory": "invitations" }, "slug": "accept-a-repository-invitation", - "category": "repos", - "categoryLabel": "Repos", + "category": "collaborators", + "categoryLabel": "Collaborators", "subcategory": "invitations", "subcategoryLabel": "Invitations", "notes": [], @@ -100078,8 +100006,8 @@ "subcategory": "invitations" }, "slug": "decline-a-repository-invitation", - "category": "repos", - "categoryLabel": "Repos", + "category": "collaborators", + "categoryLabel": "Collaborators", "subcategory": "invitations", "subcategoryLabel": "Invitations", "notes": [], diff --git a/lib/rest/static/decorated/ghes-3.0.json b/lib/rest/static/decorated/ghes-3.0.json index 6987f9c482..b796b67e55 100644 --- a/lib/rest/static/decorated/ghes-3.0.json +++ b/lib/rest/static/decorated/ghes-3.0.json @@ -35832,10 +35832,8 @@ "subcategory": "branches" }, "slug": "list-branches", - "category": "repos", - "categoryLabel": "Repos", - "subcategory": "branches", - "subcategoryLabel": "Branches", + "category": "branches", + "categoryLabel": "Branches", "notes": [], "descriptionHTML": "", "bodyParameters": [], @@ -35917,10 +35915,8 @@ "subcategory": "branches" }, "slug": "get-a-branch", - "category": "repos", - "categoryLabel": "Repos", - "subcategory": "branches", - "subcategoryLabel": "Branches", + "category": "branches", + "categoryLabel": "Branches", "notes": [], "descriptionHTML": "", "responses": [ @@ -36018,10 +36014,10 @@ ] }, "slug": "get-branch-protection", - "category": "repos", - "categoryLabel": "Repos", - "subcategory": "branches", - "subcategoryLabel": "Branches", + "category": "branches", + "categoryLabel": "Branches", + "subcategory": "branch-protection", + "subcategoryLabel": "Branch protection", "notes": [], "bodyParameters": [], "descriptionHTML": "

Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see GitHub's products in the GitHub Help documentation.

", @@ -36782,10 +36778,10 @@ ] }, "slug": "update-branch-protection", - "category": "repos", - "categoryLabel": "Repos", - "subcategory": "branches", - "subcategoryLabel": "Branches", + "category": "branches", + "categoryLabel": "Branches", + "subcategory": "branch-protection", + "subcategoryLabel": "Branch protection", "contentType": "application/json", "notes": [], "responses": [ @@ -37487,10 +37483,10 @@ "subcategory": "branches" }, "slug": "delete-branch-protection", - "category": "repos", - "categoryLabel": "Repos", - "subcategory": "branches", - "subcategoryLabel": "Branches", + "category": "branches", + "categoryLabel": "Branches", + "subcategory": "branch-protection", + "subcategoryLabel": "Branch protection", "notes": [], "responses": [ { @@ -37571,10 +37567,10 @@ "subcategory": "branches" }, "slug": "get-admin-branch-protection", - "category": "repos", - "categoryLabel": "Repos", - "subcategory": "branches", - "subcategoryLabel": "Branches", + "category": "branches", + "categoryLabel": "Branches", + "subcategory": "branch-protection", + "subcategoryLabel": "Branch protection", "notes": [], "bodyParameters": [], "descriptionHTML": "

Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see GitHub's products in the GitHub Help documentation.

", @@ -37651,10 +37647,10 @@ "subcategory": "branches" }, "slug": "set-admin-branch-protection", - "category": "repos", - "categoryLabel": "Repos", - "subcategory": "branches", - "subcategoryLabel": "Branches", + "category": "branches", + "categoryLabel": "Branches", + "subcategory": "branch-protection", + "subcategoryLabel": "Branch protection", "notes": [], "bodyParameters": [], "descriptionHTML": "

Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see GitHub's products in the GitHub Help documentation.

\n

Adding admin enforcement requires admin or owner permissions to the repository and branch protection to be enabled.

", @@ -37731,10 +37727,10 @@ "subcategory": "branches" }, "slug": "delete-admin-branch-protection", - "category": "repos", - "categoryLabel": "Repos", - "subcategory": "branches", - "subcategoryLabel": "Branches", + "category": "branches", + "categoryLabel": "Branches", + "subcategory": "branch-protection", + "subcategoryLabel": "Branch protection", "notes": [], "responses": [ { @@ -37822,10 +37818,10 @@ ] }, "slug": "get-pull-request-review-protection", - "category": "repos", - "categoryLabel": "Repos", - "subcategory": "branches", - "subcategoryLabel": "Branches", + "category": "branches", + "categoryLabel": "Branches", + "subcategory": "branch-protection", + "subcategoryLabel": "Branch protection", "notes": [], "bodyParameters": [], "descriptionHTML": "

Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see GitHub's products in the GitHub Help documentation.

", @@ -38036,10 +38032,10 @@ ] }, "slug": "update-pull-request-review-protection", - "category": "repos", - "categoryLabel": "Repos", - "subcategory": "branches", - "subcategoryLabel": "Branches", + "category": "branches", + "categoryLabel": "Branches", + "subcategory": "branch-protection", + "subcategoryLabel": "Branch protection", "contentType": "application/json", "notes": [], "descriptionHTML": "

Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see GitHub's products in the GitHub Help documentation.

\n

Updating pull request review enforcement requires admin or owner permissions to the repository and branch protection to be enabled.

\n

Note: Passing new arrays of users and teams replaces their previous values.

", @@ -38217,10 +38213,10 @@ "subcategory": "branches" }, "slug": "delete-pull-request-review-protection", - "category": "repos", - "categoryLabel": "Repos", - "subcategory": "branches", - "subcategoryLabel": "Branches", + "category": "branches", + "categoryLabel": "Branches", + "subcategory": "branch-protection", + "subcategoryLabel": "Branch protection", "notes": [], "responses": [ { @@ -38308,10 +38304,10 @@ ] }, "slug": "get-commit-signature-protection", - "category": "repos", - "categoryLabel": "Repos", - "subcategory": "branches", - "subcategoryLabel": "Branches", + "category": "branches", + "categoryLabel": "Branches", + "subcategory": "branch-protection", + "subcategoryLabel": "Branch protection", "notes": [], "bodyParameters": [], "descriptionHTML": "

Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see GitHub's products in the GitHub Help documentation.

\n

When authenticated with admin or owner permissions to the repository, you can use this endpoint to check whether a branch requires signed commits. An enabled status of true indicates you must sign commits on this branch. For more information, see Signing commits with GPG in GitHub Help.

\n

Note: You must enable branch protection to require signed commits.

", @@ -38400,10 +38396,10 @@ ] }, "slug": "create-commit-signature-protection", - "category": "repos", - "categoryLabel": "Repos", - "subcategory": "branches", - "subcategoryLabel": "Branches", + "category": "branches", + "categoryLabel": "Branches", + "subcategory": "branch-protection", + "subcategoryLabel": "Branch protection", "notes": [], "bodyParameters": [], "descriptionHTML": "

Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see GitHub's products in the GitHub Help documentation.

\n

When authenticated with admin or owner permissions to the repository, you can use this endpoint to require signed commits on a branch. You must enable branch protection to require signed commits.

", @@ -38492,10 +38488,10 @@ ] }, "slug": "delete-commit-signature-protection", - "category": "repos", - "categoryLabel": "Repos", - "subcategory": "branches", - "subcategoryLabel": "Branches", + "category": "branches", + "categoryLabel": "Branches", + "subcategory": "branch-protection", + "subcategoryLabel": "Branch protection", "notes": [], "responses": [ { @@ -38576,10 +38572,10 @@ "subcategory": "branches" }, "slug": "get-status-checks-protection", - "category": "repos", - "categoryLabel": "Repos", - "subcategory": "branches", - "subcategoryLabel": "Branches", + "category": "branches", + "categoryLabel": "Branches", + "subcategory": "branch-protection", + "subcategoryLabel": "Branch protection", "notes": [], "bodyParameters": [], "descriptionHTML": "

Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see GitHub's products in the GitHub Help documentation.

", @@ -38701,10 +38697,10 @@ "subcategory": "branches" }, "slug": "update-status-check-protection", - "category": "repos", - "categoryLabel": "Repos", - "subcategory": "branches", - "subcategoryLabel": "Branches", + "category": "branches", + "categoryLabel": "Branches", + "subcategory": "branch-protection", + "subcategoryLabel": "Branch protection", "contentType": "application/json", "notes": [], "descriptionHTML": "

Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see GitHub's products in the GitHub Help documentation.

\n

Updating required status checks requires admin or owner permissions to the repository and branch protection to be enabled.

", @@ -38815,10 +38811,10 @@ "subcategory": "branches" }, "slug": "remove-status-check-protection", - "category": "repos", - "categoryLabel": "Repos", - "subcategory": "branches", - "subcategoryLabel": "Branches", + "category": "branches", + "categoryLabel": "Branches", + "subcategory": "branch-protection", + "subcategoryLabel": "Branch protection", "notes": [], "responses": [ { @@ -38894,10 +38890,10 @@ "subcategory": "branches" }, "slug": "get-all-status-check-contexts", - "category": "repos", - "categoryLabel": "Repos", - "subcategory": "branches", - "subcategoryLabel": "Branches", + "category": "branches", + "categoryLabel": "Branches", + "subcategory": "branch-protection", + "subcategoryLabel": "Branch protection", "notes": [], "bodyParameters": [], "descriptionHTML": "

Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see GitHub's products in the GitHub Help documentation.

", @@ -39023,10 +39019,10 @@ "subcategory": "branches" }, "slug": "add-status-check-contexts", - "category": "repos", - "categoryLabel": "Repos", - "subcategory": "branches", - "subcategoryLabel": "Branches", + "category": "branches", + "categoryLabel": "Branches", + "subcategory": "branch-protection", + "subcategoryLabel": "Branch protection", "contentType": "application/json", "notes": [], "descriptionHTML": "

Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see GitHub's products in the GitHub Help documentation.

", @@ -39176,10 +39172,10 @@ "subcategory": "branches" }, "slug": "set-status-check-contexts", - "category": "repos", - "categoryLabel": "Repos", - "subcategory": "branches", - "subcategoryLabel": "Branches", + "category": "branches", + "categoryLabel": "Branches", + "subcategory": "branch-protection", + "subcategoryLabel": "Branch protection", "contentType": "application/json", "notes": [], "descriptionHTML": "

Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see GitHub's products in the GitHub Help documentation.

", @@ -39323,10 +39319,10 @@ "subcategory": "branches" }, "slug": "remove-status-check-contexts", - "category": "repos", - "categoryLabel": "Repos", - "subcategory": "branches", - "subcategoryLabel": "Branches", + "category": "branches", + "categoryLabel": "Branches", + "subcategory": "branch-protection", + "subcategoryLabel": "Branch protection", "contentType": "application/json", "notes": [], "descriptionHTML": "

Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see GitHub's products in the GitHub Help documentation.

", @@ -39427,10 +39423,10 @@ "subcategory": "branches" }, "slug": "get-access-restrictions", - "category": "repos", - "categoryLabel": "Repos", - "subcategory": "branches", - "subcategoryLabel": "Branches", + "category": "branches", + "categoryLabel": "Branches", + "subcategory": "branch-protection", + "subcategoryLabel": "Branch protection", "notes": [], "bodyParameters": [], "descriptionHTML": "

Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see GitHub's products in the GitHub Help documentation.

\n

Lists who has access to this protected branch.

\n

Note: Users, apps, and teams restrictions are only available for organization-owned repositories.

", @@ -39512,10 +39508,10 @@ "subcategory": "branches" }, "slug": "delete-access-restrictions", - "category": "repos", - "categoryLabel": "Repos", - "subcategory": "branches", - "subcategoryLabel": "Branches", + "category": "branches", + "categoryLabel": "Branches", + "subcategory": "branch-protection", + "subcategoryLabel": "Branch protection", "notes": [], "responses": [ { @@ -39591,10 +39587,10 @@ "subcategory": "branches" }, "slug": "get-apps-with-access-to-the-protected-branch", - "category": "repos", - "categoryLabel": "Repos", - "subcategory": "branches", - "subcategoryLabel": "Branches", + "category": "branches", + "categoryLabel": "Branches", + "subcategory": "branch-protection", + "subcategoryLabel": "Branch protection", "notes": [], "bodyParameters": [], "descriptionHTML": "

Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see GitHub's products in the GitHub Help documentation.

\n

Lists the GitHub Apps that have push access to this branch. Only installed GitHub Apps with write access to the contents permission can be added as authorized actors on a protected branch.

", @@ -39719,10 +39715,10 @@ "subcategory": "branches" }, "slug": "add-app-access-restrictions", - "category": "repos", - "categoryLabel": "Repos", - "subcategory": "branches", - "subcategoryLabel": "Branches", + "category": "branches", + "categoryLabel": "Branches", + "subcategory": "branch-protection", + "subcategoryLabel": "Branch protection", "contentType": "application/json", "notes": [], "descriptionHTML": "

Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see GitHub's products in the GitHub Help documentation.

\n

Grants the specified apps push access for this branch. Only installed GitHub Apps with write access to the contents permission can be added as authorized actors on a protected branch.

\n\n\n\n\n\n\n\n\n\n\n\n\n\n
TypeDescription
arrayThe GitHub Apps that have push access to this branch. Use the app's slug. Note: The list of users, apps, and teams in total is limited to 100 items.
", @@ -39861,10 +39857,10 @@ "subcategory": "branches" }, "slug": "set-app-access-restrictions", - "category": "repos", - "categoryLabel": "Repos", - "subcategory": "branches", - "subcategoryLabel": "Branches", + "category": "branches", + "categoryLabel": "Branches", + "subcategory": "branch-protection", + "subcategoryLabel": "Branch protection", "contentType": "application/json", "notes": [], "descriptionHTML": "

Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see GitHub's products in the GitHub Help documentation.

\n

Replaces the list of apps that have push access to this branch. This removes all apps that previously had push access and grants push access to the new list of apps. Only installed GitHub Apps with write access to the contents permission can be added as authorized actors on a protected branch.

\n\n\n\n\n\n\n\n\n\n\n\n\n\n
TypeDescription
arrayThe GitHub Apps that have push access to this branch. Use the app's slug. Note: The list of users, apps, and teams in total is limited to 100 items.
", @@ -40002,10 +39998,10 @@ "subcategory": "branches" }, "slug": "remove-app-access-restrictions", - "category": "repos", - "categoryLabel": "Repos", - "subcategory": "branches", - "subcategoryLabel": "Branches", + "category": "branches", + "categoryLabel": "Branches", + "subcategory": "branch-protection", + "subcategoryLabel": "Branch protection", "contentType": "application/json", "notes": [], "descriptionHTML": "

Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see GitHub's products in the GitHub Help documentation.

\n

Removes the ability of an app to push to this branch. Only installed GitHub Apps with write access to the contents permission can be added as authorized actors on a protected branch.

\n\n\n\n\n\n\n\n\n\n\n\n\n\n
TypeDescription
arrayThe GitHub Apps that have push access to this branch. Use the app's slug. Note: The list of users, apps, and teams in total is limited to 100 items.
", @@ -40101,10 +40097,10 @@ "subcategory": "branches" }, "slug": "get-teams-with-access-to-the-protected-branch", - "category": "repos", - "categoryLabel": "Repos", - "subcategory": "branches", - "subcategoryLabel": "Branches", + "category": "branches", + "categoryLabel": "Branches", + "subcategory": "branch-protection", + "subcategoryLabel": "Branch protection", "notes": [], "bodyParameters": [], "descriptionHTML": "

Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see GitHub's products in the GitHub Help documentation.

\n

Lists the teams who have push access to this branch. The list includes child teams.

", @@ -40230,10 +40226,10 @@ "subcategory": "branches" }, "slug": "add-team-access-restrictions", - "category": "repos", - "categoryLabel": "Repos", - "subcategory": "branches", - "subcategoryLabel": "Branches", + "category": "branches", + "categoryLabel": "Branches", + "subcategory": "branch-protection", + "subcategoryLabel": "Branch protection", "contentType": "application/json", "notes": [], "descriptionHTML": "

Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see GitHub's products in the GitHub Help documentation.

\n

Grants the specified teams push access for this branch. You can also give push access to child teams.

\n\n\n\n\n\n\n\n\n\n\n\n\n\n
TypeDescription
arrayThe teams that can have push access. Use the team's slug. Note: The list of users, apps, and teams in total is limited to 100 items.
", @@ -40373,10 +40369,10 @@ "subcategory": "branches" }, "slug": "set-team-access-restrictions", - "category": "repos", - "categoryLabel": "Repos", - "subcategory": "branches", - "subcategoryLabel": "Branches", + "category": "branches", + "categoryLabel": "Branches", + "subcategory": "branch-protection", + "subcategoryLabel": "Branch protection", "contentType": "application/json", "notes": [], "descriptionHTML": "

Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see GitHub's products in the GitHub Help documentation.

\n

Replaces the list of teams that have push access to this branch. This removes all teams that previously had push access and grants push access to the new list of teams. Team restrictions include child teams.

\n\n\n\n\n\n\n\n\n\n\n\n\n\n
TypeDescription
arrayThe teams that can have push access. Use the team's slug. Note: The list of users, apps, and teams in total is limited to 100 items.
", @@ -40515,10 +40511,10 @@ "subcategory": "branches" }, "slug": "remove-team-access-restrictions", - "category": "repos", - "categoryLabel": "Repos", - "subcategory": "branches", - "subcategoryLabel": "Branches", + "category": "branches", + "categoryLabel": "Branches", + "subcategory": "branch-protection", + "subcategoryLabel": "Branch protection", "contentType": "application/json", "notes": [], "descriptionHTML": "

Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see GitHub's products in the GitHub Help documentation.

\n

Removes the ability of a team to push to this branch. You can also remove push access for child teams.

\n\n\n\n\n\n\n\n\n\n\n\n\n\n
TypeDescription
arrayTeams that should no longer have push access. Use the team's slug. Note: The list of users, apps, and teams in total is limited to 100 items.
", @@ -40614,10 +40610,10 @@ "subcategory": "branches" }, "slug": "get-users-with-access-to-the-protected-branch", - "category": "repos", - "categoryLabel": "Repos", - "subcategory": "branches", - "subcategoryLabel": "Branches", + "category": "branches", + "categoryLabel": "Branches", + "subcategory": "branch-protection", + "subcategoryLabel": "Branch protection", "notes": [], "bodyParameters": [], "descriptionHTML": "

Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see GitHub's products in the GitHub Help documentation.

\n

Lists the people who have push access to this branch.

", @@ -40742,10 +40738,10 @@ "subcategory": "branches" }, "slug": "add-user-access-restrictions", - "category": "repos", - "categoryLabel": "Repos", - "subcategory": "branches", - "subcategoryLabel": "Branches", + "category": "branches", + "categoryLabel": "Branches", + "subcategory": "branch-protection", + "subcategoryLabel": "Branch protection", "contentType": "application/json", "notes": [], "descriptionHTML": "

Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see GitHub's products in the GitHub Help documentation.

\n

Grants the specified people push access for this branch.

\n\n\n\n\n\n\n\n\n\n\n\n\n\n
TypeDescription
arrayUsernames for people who can have push access. Note: The list of users, apps, and teams in total is limited to 100 items.
", @@ -40884,10 +40880,10 @@ "subcategory": "branches" }, "slug": "set-user-access-restrictions", - "category": "repos", - "categoryLabel": "Repos", - "subcategory": "branches", - "subcategoryLabel": "Branches", + "category": "branches", + "categoryLabel": "Branches", + "subcategory": "branch-protection", + "subcategoryLabel": "Branch protection", "contentType": "application/json", "notes": [], "descriptionHTML": "

Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see GitHub's products in the GitHub Help documentation.

\n

Replaces the list of people that have push access to this branch. This removes all people that previously had push access and grants push access to the new list of people.

\n\n\n\n\n\n\n\n\n\n\n\n\n\n
TypeDescription
arrayUsernames for people who can have push access. Note: The list of users, apps, and teams in total is limited to 100 items.
", @@ -41025,10 +41021,10 @@ "subcategory": "branches" }, "slug": "remove-user-access-restrictions", - "category": "repos", - "categoryLabel": "Repos", - "subcategory": "branches", - "subcategoryLabel": "Branches", + "category": "branches", + "categoryLabel": "Branches", + "subcategory": "branch-protection", + "subcategoryLabel": "Branch protection", "contentType": "application/json", "notes": [], "descriptionHTML": "

Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see GitHub's products in the GitHub Help documentation.

\n

Removes the ability of a user to push to this branch.

\n\n\n\n\n\n\n\n\n\n\n\n\n\n
TypeDescription
arrayUsernames of the people who should no longer have push access. Note: The list of users, apps, and teams in total is limited to 100 items.
", @@ -46866,10 +46862,8 @@ "subcategory": "collaborators" }, "slug": "list-repository-collaborators", - "category": "repos", - "categoryLabel": "Repos", - "subcategory": "collaborators", - "subcategoryLabel": "Collaborators", + "category": "collaborators", + "categoryLabel": "Collaborators", "notes": [], "bodyParameters": [], "descriptionHTML": "

For organization-owned repositories, the list of collaborators includes outside collaborators, organization members that are direct collaborators, organization members with access through team memberships, organization members with access through default organization permissions, and organization owners.

\n

Team members will include the members of child teams.

\n

You must have push access to the repository in order to list collaborators.

", @@ -46949,10 +46943,8 @@ "subcategory": "collaborators" }, "slug": "check-if-a-user-is-a-repository-collaborator", - "category": "repos", - "categoryLabel": "Repos", - "subcategory": "collaborators", - "subcategoryLabel": "Collaborators", + "category": "collaborators", + "categoryLabel": "Collaborators", "notes": [], "responses": [ { @@ -47070,10 +47062,8 @@ "subcategory": "collaborators" }, "slug": "add-a-repository-collaborator", - "category": "repos", - "categoryLabel": "Repos", - "subcategory": "collaborators", - "subcategoryLabel": "Collaborators", + "category": "collaborators", + "categoryLabel": "Collaborators", "contentType": "application/json", "notes": [], "descriptionHTML": "

This endpoint triggers notifications. Creating content too quickly using this endpoint may result in secondary rate limiting. See \"Secondary rate limits\" and \"Dealing with secondary rate limits\" for details.

\n

For more information on permission levels, see \"Repository permission levels for an organization\". There are restrictions on which permissions can be granted to organization members when an organization base role is in place. In this case, the permission being given must be equal to or higher than the org base permission. Otherwise, the request will fail with:

\n
Cannot assign {member} permission of {role name}\n
\n

Note that, if you choose not to pass any parameters, you'll need to set Content-Length to zero when calling out to this endpoint. For more information, see \"HTTP verbs.\"

\n

The invitee will receive a notification that they have been invited to the repository, which they must accept or decline. They may do this via the notifications page, the email they receive, or by using the repository invitations API endpoints.

\n

Rate limits

\n

You are limited to sending 50 invitations to a repository per 24 hour period. Note there is no limit if you are inviting organization members to an organization repository.

", @@ -47191,10 +47181,8 @@ "subcategory": "collaborators" }, "slug": "remove-a-repository-collaborator", - "category": "repos", - "categoryLabel": "Repos", - "subcategory": "collaborators", - "subcategoryLabel": "Collaborators", + "category": "collaborators", + "categoryLabel": "Collaborators", "notes": [], "descriptionHTML": "", "responses": [ @@ -47268,10 +47256,8 @@ "subcategory": "collaborators" }, "slug": "get-repository-permissions-for-a-user", - "category": "repos", - "categoryLabel": "Repos", - "subcategory": "collaborators", - "subcategoryLabel": "Collaborators", + "category": "collaborators", + "categoryLabel": "Collaborators", "notes": [], "bodyParameters": [], "descriptionHTML": "

Checks the repository permission of a collaborator. The possible repository permissions are admin, write, read, and none.

", @@ -47369,8 +47355,8 @@ ] }, "slug": "list-commit-comments-for-a-repository", - "category": "repos", - "categoryLabel": "Repos", + "category": "commits", + "categoryLabel": "Commits", "subcategory": "comments", "subcategoryLabel": "Comments", "notes": [], @@ -47455,8 +47441,8 @@ ] }, "slug": "get-a-commit-comment", - "category": "repos", - "categoryLabel": "Repos", + "category": "commits", + "categoryLabel": "Commits", "subcategory": "comments", "subcategoryLabel": "Comments", "notes": [], @@ -47566,8 +47552,8 @@ "subcategory": "comments" }, "slug": "update-a-commit-comment", - "category": "repos", - "categoryLabel": "Repos", + "category": "commits", + "categoryLabel": "Commits", "subcategory": "comments", "subcategoryLabel": "Comments", "contentType": "application/json", @@ -47661,8 +47647,8 @@ "subcategory": "comments" }, "slug": "delete-a-commit-comment", - "category": "repos", - "categoryLabel": "Repos", + "category": "commits", + "categoryLabel": "Commits", "subcategory": "comments", "subcategoryLabel": "Comments", "notes": [], @@ -48182,10 +48168,8 @@ "subcategory": "commits" }, "slug": "list-commits", - "category": "repos", - "categoryLabel": "Repos", - "subcategory": "commits", - "subcategoryLabel": "Commits", + "category": "commits", + "categoryLabel": "Commits", "notes": [], "bodyParameters": [], "descriptionHTML": "

Signature verification object

\n

The response will include a verification object that describes the result of verifying the commit's signature. The following fields are included in the verification object:

\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n
NameTypeDescription
verifiedbooleanIndicates whether GitHub considers the signature in this commit to be verified.
reasonstringThe reason for verified value. Possible values and their meanings are enumerated in table below.
signaturestringThe signature that was extracted from the commit.
payloadstringThe value that was signed.
\n

These are the possible values for reason in the verification object:

\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n
ValueDescription
expired_keyThe key that made the signature is expired.
not_signing_keyThe \"signing\" flag is not among the usage flags in the GPG key that made the signature.
gpgverify_errorThere was an error communicating with the signature verification service.
gpgverify_unavailableThe signature verification service is currently unavailable.
unsignedThe object does not include a signature.
unknown_signature_typeA non-PGP signature was found in the commit.
no_userNo user was associated with the committer email address in the commit.
unverified_emailThe committer email address in the commit was associated with a user, but the email address is not verified on her/his account.
bad_emailThe committer email address in the commit is not included in the identities of the PGP key that made the signature.
unknown_keyThe key that made the signature has not been registered with any user's account.
malformed_signatureThere was an error parsing the signature.
invalidThe signature could not be cryptographically verified using the key whose key-id was found in the signature.
validNone of the above errors applied, so the signature is considered to be verified.
", @@ -48289,10 +48273,8 @@ ] }, "slug": "list-branches-for-head-commit", - "category": "repos", - "categoryLabel": "Repos", - "subcategory": "commits", - "subcategoryLabel": "Commits", + "category": "commits", + "categoryLabel": "Commits", "notes": [], "bodyParameters": [], "descriptionHTML": "

Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see GitHub's products in the GitHub Help documentation.

\n

Returns all branches where the given commit SHA is the HEAD, or latest commit for the branch.

", @@ -48401,8 +48383,8 @@ ] }, "slug": "list-commit-comments", - "category": "repos", - "categoryLabel": "Repos", + "category": "commits", + "categoryLabel": "Commits", "subcategory": "comments", "subcategoryLabel": "Comments", "notes": [], @@ -48539,8 +48521,8 @@ "subcategory": "comments" }, "slug": "create-a-commit-comment", - "category": "repos", - "categoryLabel": "Repos", + "category": "commits", + "categoryLabel": "Commits", "subcategory": "comments", "subcategoryLabel": "Comments", "contentType": "application/json", @@ -48694,10 +48676,8 @@ ] }, "slug": "list-pull-requests-associated-with-a-commit", - "category": "repos", - "categoryLabel": "Repos", - "subcategory": "commits", - "subcategoryLabel": "Commits", + "category": "commits", + "categoryLabel": "Commits", "notes": [], "bodyParameters": [], "descriptionHTML": "

Lists the merged pull request that introduced the commit to the repository. If the commit is not present in the default branch, additionally returns open pull requests associated with the commit. The results may include open and closed pull requests. Additional preview headers may be required to see certain details for associated pull requests, such as whether a pull request is in a draft state. For more information about previews that might affect this endpoint, see the List pull requests endpoint.

", @@ -48794,10 +48774,8 @@ "subcategory": "commits" }, "slug": "get-a-commit", - "category": "repos", - "categoryLabel": "Repos", - "subcategory": "commits", - "subcategoryLabel": "Commits", + "category": "commits", + "categoryLabel": "Commits", "notes": [], "bodyParameters": [], "descriptionHTML": "

Returns the contents of a single commit reference. You must have read access for the repository to use this endpoint.

\n

Note: If there are more than 300 files in the commit diff, the response will include pagination link headers for the remaining files, up to a limit of 3000 files. Each page contains the static commit information, and the only changes are to the file listing.

\n

You can pass the appropriate media type to fetch diff and patch formats. Diffs with binary data will have no patch property.

\n

To return only the SHA-1 hash of the commit reference, you can provide the sha custom media type in the Accept header. You can use this endpoint to check if a remote reference's SHA-1 hash is the same as your local reference's SHA-1 hash by providing the local SHA-1 reference as the ETag.

\n

Signature verification object

\n

The response will include a verification object that describes the result of verifying the commit's signature. The following fields are included in the verification object:

\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n
NameTypeDescription
verifiedbooleanIndicates whether GitHub considers the signature in this commit to be verified.
reasonstringThe reason for verified value. Possible values and their meanings are enumerated in table below.
signaturestringThe signature that was extracted from the commit.
payloadstringThe value that was signed.
\n

These are the possible values for reason in the verification object:

\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n
ValueDescription
expired_keyThe key that made the signature is expired.
not_signing_keyThe \"signing\" flag is not among the usage flags in the GPG key that made the signature.
gpgverify_errorThere was an error communicating with the signature verification service.
gpgverify_unavailableThe signature verification service is currently unavailable.
unsignedThe object does not include a signature.
unknown_signature_typeA non-PGP signature was found in the commit.
no_userNo user was associated with the committer email address in the commit.
unverified_emailThe committer email address in the commit was associated with a user, but the email address is not verified on her/his account.
bad_emailThe committer email address in the commit is not included in the identities of the PGP key that made the signature.
unknown_keyThe key that made the signature has not been registered with any user's account.
malformed_signatureThere was an error parsing the signature.
invalidThe signature could not be cryptographically verified using the key whose key-id was found in the signature.
validNone of the above errors applied, so the signature is considered to be verified.
", @@ -49179,8 +49157,8 @@ "subcategory": "statuses" }, "slug": "get-the-combined-status-for-a-specific-reference", - "category": "repos", - "categoryLabel": "Repos", + "category": "commits", + "categoryLabel": "Commits", "subcategory": "statuses", "subcategoryLabel": "Statuses", "notes": [], @@ -49284,8 +49262,8 @@ "subcategory": "statuses" }, "slug": "list-commit-statuses-for-a-reference", - "category": "repos", - "categoryLabel": "Repos", + "category": "commits", + "categoryLabel": "Commits", "subcategory": "statuses", "subcategoryLabel": "Statuses", "notes": [], @@ -49368,10 +49346,8 @@ "subcategory": "commits" }, "slug": "compare-two-commits", - "category": "repos", - "categoryLabel": "Repos", - "subcategory": "commits", - "subcategoryLabel": "Commits", + "category": "commits", + "categoryLabel": "Commits", "notes": [], "bodyParameters": [], "descriptionHTML": "

The basehead param is comprised of two parts: base and head. Both must be branch names in repo. To compare branches across other repositories in the same network as repo, use the format <USERNAME>:branch.

\n

The response from the API is equivalent to running the git log base..head command; however, commits are returned in chronological order. Pass the appropriate media type to fetch diff and patch formats.

\n

The response also includes details on the files that were changed between the two commits. This includes the status of the change (for example, if a file was added, removed, modified, or renamed), and details of the change itself. For example, files with a renamed status have a previous_filename field showing the previous filename of the file, and files with a modified status have a patch field showing the changes made to the file.

\n

Working with large comparisons

\n

The response will include a comparison of up to 250 commits. If you are working with a larger commit range, you can use the List commits to enumerate all commits in the range.

\n

For comparisons with extremely large diffs, you may receive an error response indicating that the diff took too long\nto generate. You can typically resolve this error by using a smaller commit range.

\n

Signature verification object

\n

The response will include a verification object that describes the result of verifying the commit's signature. The following fields are included in the verification object:

\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n
NameTypeDescription
verifiedbooleanIndicates whether GitHub considers the signature in this commit to be verified.
reasonstringThe reason for verified value. Possible values and their meanings are enumerated in table below.
signaturestringThe signature that was extracted from the commit.
payloadstringThe value that was signed.
\n

These are the possible values for reason in the verification object:

\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n
ValueDescription
expired_keyThe key that made the signature is expired.
not_signing_keyThe \"signing\" flag is not among the usage flags in the GPG key that made the signature.
gpgverify_errorThere was an error communicating with the signature verification service.
gpgverify_unavailableThe signature verification service is currently unavailable.
unsignedThe object does not include a signature.
unknown_signature_typeA non-PGP signature was found in the commit.
no_userNo user was associated with the committer email address in the commit.
unverified_emailThe committer email address in the commit was associated with a user, but the email address is not verified on her/his account.
bad_emailThe committer email address in the commit is not included in the identities of the PGP key that made the signature.
unknown_keyThe key that made the signature has not been registered with any user's account.
malformed_signatureThere was an error parsing the signature.
invalidThe signature could not be cryptographically verified using the key whose key-id was found in the signature.
validNone of the above errors applied, so the signature is considered to be verified.
", @@ -50858,10 +50834,8 @@ ] }, "slug": "list-deployments", - "category": "repos", - "categoryLabel": "Repos", - "subcategory": "deployments", - "subcategoryLabel": "Deployments", + "category": "deployments", + "categoryLabel": "Deployments", "notes": [], "bodyParameters": [], "descriptionHTML": "

Simple filtering of deployments is available via query parameters:

", @@ -51071,10 +51045,8 @@ ] }, "slug": "create-a-deployment", - "category": "repos", - "categoryLabel": "Repos", - "subcategory": "deployments", - "subcategoryLabel": "Deployments", + "category": "deployments", + "categoryLabel": "Deployments", "contentType": "application/json", "notes": [], "descriptionHTML": "

Deployments offer a few configurable parameters with certain defaults.

\n

The ref parameter can be any named branch, tag, or SHA. At GitHub Enterprise Server we often deploy branches and verify them\nbefore we merge a pull request.

\n

The environment parameter allows deployments to be issued to different runtime environments. Teams often have\nmultiple environments for verifying their applications, such as production, staging, and qa. This parameter\nmakes it easier to track which environments have requested deployments. The default environment is production.

\n

The auto_merge parameter is used to ensure that the requested ref is not behind the repository's default branch. If\nthe ref is behind the default branch for the repository, we will attempt to merge it for you. If the merge succeeds,\nthe API will return a successful merge commit. If merge conflicts prevent the merge from succeeding, the API will\nreturn a failure response.

\n

By default, commit statuses for every submitted context must be in a success\nstate. The required_contexts parameter allows you to specify a subset of contexts that must be success, or to\nspecify contexts that have not yet been submitted. You are not required to use commit statuses to deploy. If you do\nnot require any contexts or create any commit statuses, the deployment will always succeed.

\n

The payload parameter is available for any extra information that a deployment system might need. It is a JSON text\nfield that will be passed on when a deployment event is dispatched.

\n

The task parameter is used by the deployment system to allow different execution paths. In the web world this might\nbe deploy:migrations to run schema changes on the system. In the compiled world this could be a flag to compile an\napplication with debugging enabled.

\n

Users with repo or repo_deployment scopes can create a deployment for a given ref.

\n

Merged branch response

\n

You will see this response when GitHub automatically merges the base branch into the topic branch instead of creating\na deployment. This auto-merge happens when:

\n
    \n
  • Auto-merge option is enabled in the repository
  • \n
  • Topic branch does not include the latest changes on the base branch, which is master in the response example
  • \n
  • There are no merge conflicts
  • \n
\n

If there are no new commits in the base branch, a new request to create a deployment should give a successful\nresponse.

\n

Merge conflict response

\n

This error happens when the auto_merge option is enabled and when the default branch (in this case master), can't\nbe merged into the branch that's being deployed (in this case topic-branch), due to merge conflicts.

\n

Failed commit status checks

\n

This error happens when the required_contexts parameter indicates that one or more contexts need to have a success\nstatus for the commit to be deployed, but one or more of the required contexts do not have a state of success.

", @@ -51279,10 +51251,8 @@ ] }, "slug": "get-a-deployment", - "category": "repos", - "categoryLabel": "Repos", - "subcategory": "deployments", - "subcategoryLabel": "Deployments", + "category": "deployments", + "categoryLabel": "Deployments", "notes": [], "descriptionHTML": "", "bodyParameters": [], @@ -51363,10 +51333,8 @@ "subcategory": "deployments" }, "slug": "delete-a-deployment", - "category": "repos", - "categoryLabel": "Repos", - "subcategory": "deployments", - "subcategoryLabel": "Deployments", + "category": "deployments", + "categoryLabel": "Deployments", "notes": [], "responses": [ { @@ -51483,10 +51451,10 @@ ] }, "slug": "list-deployment-statuses", - "category": "repos", - "categoryLabel": "Repos", - "subcategory": "deployments", - "subcategoryLabel": "Deployments", + "category": "deployments", + "categoryLabel": "Deployments", + "subcategory": "statuses", + "subcategoryLabel": "Statuses", "notes": [], "bodyParameters": [], "descriptionHTML": "

Users with pull access can view deployment statuses for a deployment:

", @@ -51681,10 +51649,10 @@ ] }, "slug": "create-a-deployment-status", - "category": "repos", - "categoryLabel": "Repos", - "subcategory": "deployments", - "subcategoryLabel": "Deployments", + "category": "deployments", + "categoryLabel": "Deployments", + "subcategory": "statuses", + "subcategoryLabel": "Statuses", "contentType": "application/json", "notes": [], "descriptionHTML": "

Users with push access can create deployment statuses for a given deployment.

\n

GitHub Apps require read & write access to \"Deployments\" and read-only access to \"Repo contents\" (for private repos). OAuth Apps require the repo_deployment scope.

", @@ -51869,10 +51837,10 @@ ] }, "slug": "get-a-deployment-status", - "category": "repos", - "categoryLabel": "Repos", - "subcategory": "deployments", - "subcategoryLabel": "Deployments", + "category": "deployments", + "categoryLabel": "Deployments", + "subcategory": "statuses", + "subcategoryLabel": "Statuses", "notes": [], "bodyParameters": [], "descriptionHTML": "

Users with pull access can view a deployment status for a deployment:

", @@ -54747,10 +54715,10 @@ "subcategory": "webhooks" }, "slug": "list-repository-webhooks", - "category": "repos", - "categoryLabel": "Repos", - "subcategory": "webhooks", - "subcategoryLabel": "Webhooks", + "category": "webhooks", + "categoryLabel": "Webhooks", + "subcategory": "repos", + "subcategoryLabel": "Repos", "notes": [], "descriptionHTML": "", "bodyParameters": [], @@ -55033,10 +55001,10 @@ "subcategory": "webhooks" }, "slug": "create-a-repository-webhook", - "category": "repos", - "categoryLabel": "Repos", - "subcategory": "webhooks", - "subcategoryLabel": "Webhooks", + "category": "webhooks", + "categoryLabel": "Webhooks", + "subcategory": "repos", + "subcategoryLabel": "Repos", "contentType": "application/json", "notes": [], "descriptionHTML": "

Repositories can have multiple webhooks installed. Each webhook should have a unique config. Multiple webhooks can\nshare the same config as long as those webhooks do not have any events that overlap.

", @@ -55313,10 +55281,10 @@ "subcategory": "webhooks" }, "slug": "get-a-repository-webhook", - "category": "repos", - "categoryLabel": "Repos", - "subcategory": "webhooks", - "subcategoryLabel": "Webhooks", + "category": "webhooks", + "categoryLabel": "Webhooks", + "subcategory": "repos", + "subcategoryLabel": "Repos", "notes": [], "bodyParameters": [], "descriptionHTML": "

Returns a webhook configured in a repository. To get only the webhook config properties, see \"Get a webhook configuration for a repository.\"

", @@ -55617,10 +55585,10 @@ "subcategory": "webhooks" }, "slug": "update-a-repository-webhook", - "category": "repos", - "categoryLabel": "Repos", - "subcategory": "webhooks", - "subcategoryLabel": "Webhooks", + "category": "webhooks", + "categoryLabel": "Webhooks", + "subcategory": "repos", + "subcategoryLabel": "Repos", "contentType": "application/json", "notes": [], "descriptionHTML": "

Updates a webhook configured in a repository. If you previously had a secret set, you must provide the same secret or set a new secret or the secret will be removed. If you are only updating individual webhook config properties, use \"Update a webhook configuration for a repository.\"

", @@ -55910,10 +55878,10 @@ "subcategory": "webhooks" }, "slug": "delete-a-repository-webhook", - "category": "repos", - "categoryLabel": "Repos", - "subcategory": "webhooks", - "subcategoryLabel": "Webhooks", + "category": "webhooks", + "categoryLabel": "Webhooks", + "subcategory": "repos", + "subcategoryLabel": "Repos", "notes": [], "descriptionHTML": "", "responses": [ @@ -55992,10 +55960,10 @@ "subcategory": "webhooks" }, "slug": "get-a-webhook-configuration-for-a-repository", - "category": "repos", - "categoryLabel": "Repos", - "subcategory": "webhooks", - "subcategoryLabel": "Webhooks", + "category": "webhooks", + "categoryLabel": "Webhooks", + "subcategory": "repo-config", + "subcategoryLabel": "Repo config", "notes": [], "bodyParameters": [], "descriptionHTML": "

Returns the webhook configuration for a repository. To get more information about the webhook, including the active state and events, use \"Get a repository webhook.\"

\n

Access tokens must have the read:repo_hook or repo scope, and GitHub Apps must have the repository_hooks:read permission.

", @@ -56137,10 +56105,10 @@ "subcategory": "webhooks" }, "slug": "update-a-webhook-configuration-for-a-repository", - "category": "repos", - "categoryLabel": "Repos", - "subcategory": "webhooks", - "subcategoryLabel": "Webhooks", + "category": "webhooks", + "categoryLabel": "Webhooks", + "subcategory": "repo-config", + "subcategoryLabel": "Repo config", "contentType": "application/json", "notes": [], "descriptionHTML": "

Updates the webhook configuration for a repository. To update more information about the webhook, including the active state and events, use \"Update a repository webhook.\"

\n

Access tokens must have the write:repo_hook or repo scope, and GitHub Apps must have the repository_hooks:write permission.

", @@ -56265,10 +56233,10 @@ "subcategory": "webhooks" }, "slug": "ping-a-repository-webhook", - "category": "repos", - "categoryLabel": "Repos", - "subcategory": "webhooks", - "subcategoryLabel": "Webhooks", + "category": "webhooks", + "categoryLabel": "Webhooks", + "subcategory": "repos", + "subcategoryLabel": "Repos", "notes": [], "responses": [ { @@ -56347,10 +56315,10 @@ "subcategory": "webhooks" }, "slug": "test-the-push-repository-webhook", - "category": "repos", - "categoryLabel": "Repos", - "subcategory": "webhooks", - "subcategoryLabel": "Webhooks", + "category": "webhooks", + "categoryLabel": "Webhooks", + "subcategory": "repos", + "subcategoryLabel": "Repos", "notes": [], "responses": [ { @@ -56517,8 +56485,8 @@ "subcategory": "invitations" }, "slug": "list-repository-invitations", - "category": "repos", - "categoryLabel": "Repos", + "category": "collaborators", + "categoryLabel": "Collaborators", "subcategory": "invitations", "subcategoryLabel": "Invitations", "notes": [], @@ -56624,8 +56592,8 @@ "subcategory": "invitations" }, "slug": "update-a-repository-invitation", - "category": "repos", - "categoryLabel": "Repos", + "category": "collaborators", + "categoryLabel": "Collaborators", "subcategory": "invitations", "subcategoryLabel": "Invitations", "contentType": "application/json", @@ -56721,8 +56689,8 @@ "subcategory": "invitations" }, "slug": "delete-a-repository-invitation", - "category": "repos", - "categoryLabel": "Repos", + "category": "collaborators", + "categoryLabel": "Collaborators", "subcategory": "invitations", "subcategoryLabel": "Invitations", "notes": [], @@ -60824,8 +60792,8 @@ "subcategory": "keys" }, "slug": "list-deploy-keys", - "category": "repos", - "categoryLabel": "Repos", + "category": "deployments", + "categoryLabel": "Deployments", "subcategory": "keys", "subcategoryLabel": "Keys", "notes": [], @@ -60940,8 +60908,8 @@ "subcategory": "keys" }, "slug": "create-a-deploy-key", - "category": "repos", - "categoryLabel": "Repos", + "category": "deployments", + "categoryLabel": "Deployments", "subcategory": "keys", "subcategoryLabel": "Keys", "contentType": "application/json", @@ -61053,8 +61021,8 @@ "subcategory": "keys" }, "slug": "get-a-deploy-key", - "category": "repos", - "categoryLabel": "Repos", + "category": "deployments", + "categoryLabel": "Deployments", "subcategory": "keys", "subcategoryLabel": "Keys", "notes": [], @@ -61137,8 +61105,8 @@ "subcategory": "keys" }, "slug": "delete-a-deploy-key", - "category": "repos", - "categoryLabel": "Repos", + "category": "deployments", + "categoryLabel": "Deployments", "subcategory": "keys", "subcategoryLabel": "Keys", "notes": [], @@ -61947,10 +61915,8 @@ "subcategory": "merging" }, "slug": "merge-a-branch", - "category": "repos", - "categoryLabel": "Repos", - "subcategory": "merging", - "subcategoryLabel": "Merging", + "category": "branches", + "categoryLabel": "Branches", "contentType": "application/json", "notes": [], "descriptionHTML": "", @@ -63085,10 +63051,8 @@ "subcategory": "pages" }, "slug": "get-a-github-enterprise-server-pages-site", - "category": "repos", - "categoryLabel": "Repos", - "subcategory": "pages", - "subcategoryLabel": "Pages", + "category": "pages", + "categoryLabel": "Pages", "notes": [], "descriptionHTML": "", "bodyParameters": [], @@ -63257,10 +63221,8 @@ ] }, "slug": "create-a-github-enterprise-server-pages-site", - "category": "repos", - "categoryLabel": "Repos", - "subcategory": "pages", - "subcategoryLabel": "Pages", + "category": "pages", + "categoryLabel": "Pages", "contentType": "application/json", "notes": [], "descriptionHTML": "

Configures a GitHub Enterprise Server Pages site. For more information, see \"About GitHub Pages.\"

", @@ -63515,10 +63477,8 @@ "subcategory": "pages" }, "slug": "update-information-about-a-github-enterprise-server-pages-site", - "category": "repos", - "categoryLabel": "Repos", - "subcategory": "pages", - "subcategoryLabel": "Pages", + "category": "pages", + "categoryLabel": "Pages", "contentType": "application/json", "notes": [], "responses": [ @@ -63670,10 +63630,8 @@ ] }, "slug": "delete-a-github-enterprise-server-pages-site", - "category": "repos", - "categoryLabel": "Repos", - "subcategory": "pages", - "subcategoryLabel": "Pages", + "category": "pages", + "categoryLabel": "Pages", "notes": [], "descriptionHTML": "", "responses": [ @@ -63768,10 +63726,8 @@ "subcategory": "pages" }, "slug": "list-github-enterprise-server-pages-builds", - "category": "repos", - "categoryLabel": "Repos", - "subcategory": "pages", - "subcategoryLabel": "Pages", + "category": "pages", + "categoryLabel": "Pages", "notes": [], "descriptionHTML": "", "bodyParameters": [], @@ -63837,10 +63793,8 @@ "subcategory": "pages" }, "slug": "request-a-github-enterprise-server-pages-build", - "category": "repos", - "categoryLabel": "Repos", - "subcategory": "pages", - "subcategoryLabel": "Pages", + "category": "pages", + "categoryLabel": "Pages", "notes": [], "bodyParameters": [], "descriptionHTML": "

You can request that your site be built from the latest revision on the default branch. This has the same effect as pushing a commit to your default branch, but does not require an additional commit. Manually triggering page builds can be helpful when diagnosing build warnings and failures.

\n

Build requests are limited to one concurrent build per repository and one concurrent build per requester. If you request a build while another is still in progress, the second request will be queued until the first completes.

", @@ -63906,10 +63860,8 @@ "subcategory": "pages" }, "slug": "get-latest-pages-build", - "category": "repos", - "categoryLabel": "Repos", - "subcategory": "pages", - "subcategoryLabel": "Pages", + "category": "pages", + "categoryLabel": "Pages", "notes": [], "descriptionHTML": "", "bodyParameters": [], @@ -63984,10 +63936,8 @@ "subcategory": "pages" }, "slug": "get-github-enterprise-server-pages-build", - "category": "repos", - "categoryLabel": "Repos", - "subcategory": "pages", - "subcategoryLabel": "Pages", + "category": "pages", + "categoryLabel": "Pages", "notes": [], "descriptionHTML": "", "bodyParameters": [], @@ -69453,10 +69403,8 @@ "subcategory": "releases" }, "slug": "list-releases", - "category": "repos", - "categoryLabel": "Repos", - "subcategory": "releases", - "subcategoryLabel": "Releases", + "category": "releases", + "categoryLabel": "Releases", "notes": [], "bodyParameters": [], "descriptionHTML": "

This returns a list of releases, which does not include regular Git tags that have not been associated with a release. To get a list of Git tags, use the Repository Tags API.

\n

Information about published releases are available to everyone. Only users with push access will receive listings for draft releases.

", @@ -69607,10 +69555,8 @@ "subcategory": "releases" }, "slug": "create-a-release", - "category": "repos", - "categoryLabel": "Repos", - "subcategory": "releases", - "subcategoryLabel": "Releases", + "category": "releases", + "categoryLabel": "Releases", "contentType": "application/json", "notes": [], "descriptionHTML": "

Users with push access to the repository can create a release.

\n

This endpoint triggers notifications. Creating content too quickly using this endpoint may result in secondary rate limiting. See \"Secondary rate limits\" and \"Dealing with secondary rate limits\" for details.

", @@ -69749,10 +69695,10 @@ "subcategory": "releases" }, "slug": "get-a-release-asset", - "category": "repos", - "categoryLabel": "Repos", - "subcategory": "releases", - "subcategoryLabel": "Releases", + "category": "releases", + "categoryLabel": "Releases", + "subcategory": "assets", + "subcategoryLabel": "Assets", "notes": [], "bodyParameters": [], "descriptionHTML": "

To download the asset's binary content, set the Accept header of the request to application/octet-stream. The API will either redirect the client to the location, or stream it directly if possible. API clients should handle both a 200 or 302 response.

", @@ -69886,10 +69832,10 @@ "subcategory": "releases" }, "slug": "update-a-release-asset", - "category": "repos", - "categoryLabel": "Repos", - "subcategory": "releases", - "subcategoryLabel": "Releases", + "category": "releases", + "categoryLabel": "Releases", + "subcategory": "assets", + "subcategoryLabel": "Assets", "contentType": "application/json", "notes": [], "descriptionHTML": "

Users with push access to the repository can edit a release asset.

", @@ -69994,10 +69940,10 @@ "subcategory": "releases" }, "slug": "delete-a-release-asset", - "category": "repos", - "categoryLabel": "Repos", - "subcategory": "releases", - "subcategoryLabel": "Releases", + "category": "releases", + "categoryLabel": "Releases", + "subcategory": "assets", + "subcategoryLabel": "Assets", "notes": [], "descriptionHTML": "", "responses": [ @@ -70062,10 +70008,8 @@ "subcategory": "releases" }, "slug": "get-the-latest-release", - "category": "repos", - "categoryLabel": "Repos", - "subcategory": "releases", - "subcategoryLabel": "Releases", + "category": "releases", + "categoryLabel": "Releases", "notes": [], "bodyParameters": [], "descriptionHTML": "

View the latest published full release for the repository.

\n

The latest release is the most recent non-prerelease, non-draft release, sorted by the created_at attribute. The created_at attribute is the date of the commit used for the release, and not the date when the release was drafted or published.

", @@ -70142,10 +70086,8 @@ "subcategory": "releases" }, "slug": "get-a-release-by-tag-name", - "category": "repos", - "categoryLabel": "Repos", - "subcategory": "releases", - "subcategoryLabel": "Releases", + "category": "releases", + "categoryLabel": "Releases", "notes": [], "bodyParameters": [], "descriptionHTML": "

Get a published release with the specified tag.

", @@ -70226,10 +70168,8 @@ "subcategory": "releases" }, "slug": "get-a-release", - "category": "repos", - "categoryLabel": "Repos", - "subcategory": "releases", - "subcategoryLabel": "Releases", + "category": "releases", + "categoryLabel": "Releases", "notes": [], "bodyParameters": [], "descriptionHTML": "

Note: This returns an upload_url key corresponding to the endpoint for uploading release assets. This key is a hypermedia resource.

", @@ -70384,10 +70324,8 @@ "subcategory": "releases" }, "slug": "update-a-release", - "category": "repos", - "categoryLabel": "Repos", - "subcategory": "releases", - "subcategoryLabel": "Releases", + "category": "releases", + "categoryLabel": "Releases", "contentType": "application/json", "notes": [], "descriptionHTML": "

Users with push access to the repository can edit a release.

", @@ -70519,10 +70457,8 @@ "subcategory": "releases" }, "slug": "delete-a-release", - "category": "repos", - "categoryLabel": "Repos", - "subcategory": "releases", - "subcategoryLabel": "Releases", + "category": "releases", + "categoryLabel": "Releases", "notes": [], "responses": [ { @@ -70617,10 +70553,10 @@ "subcategory": "releases" }, "slug": "list-release-assets", - "category": "repos", - "categoryLabel": "Repos", - "subcategory": "releases", - "subcategoryLabel": "Releases", + "category": "releases", + "categoryLabel": "Releases", + "subcategory": "assets", + "subcategoryLabel": "Assets", "notes": [], "descriptionHTML": "", "bodyParameters": [], @@ -70735,10 +70671,10 @@ "subcategory": "releases" }, "slug": "upload-a-release-asset", - "category": "repos", - "categoryLabel": "Repos", - "subcategory": "releases", - "subcategoryLabel": "Releases", + "category": "releases", + "categoryLabel": "Releases", + "subcategory": "assets", + "subcategoryLabel": "Assets", "contentType": "*/*", "notes": [], "bodyParameters": [], @@ -70910,8 +70846,8 @@ "subcategory": "statistics" }, "slug": "get-the-weekly-commit-activity", - "category": "repos", - "categoryLabel": "Repos", + "category": "metrics", + "categoryLabel": "Metrics", "subcategory": "statistics", "subcategoryLabel": "Statistics", "notes": [], @@ -70989,8 +70925,8 @@ "subcategory": "statistics" }, "slug": "get-the-last-year-of-commit-activity", - "category": "repos", - "categoryLabel": "Repos", + "category": "metrics", + "categoryLabel": "Metrics", "subcategory": "statistics", "subcategoryLabel": "Statistics", "notes": [], @@ -71068,8 +71004,8 @@ "subcategory": "statistics" }, "slug": "get-all-contributor-commit-activity", - "category": "repos", - "categoryLabel": "Repos", + "category": "metrics", + "categoryLabel": "Metrics", "subcategory": "statistics", "subcategoryLabel": "Statistics", "notes": [], @@ -71147,8 +71083,8 @@ "subcategory": "statistics" }, "slug": "get-the-weekly-commit-count", - "category": "repos", - "categoryLabel": "Repos", + "category": "metrics", + "categoryLabel": "Metrics", "subcategory": "statistics", "subcategoryLabel": "Statistics", "notes": [], @@ -71221,8 +71157,8 @@ "subcategory": "statistics" }, "slug": "get-the-hourly-commit-count-for-each-day", - "category": "repos", - "categoryLabel": "Repos", + "category": "metrics", + "categoryLabel": "Metrics", "subcategory": "statistics", "subcategoryLabel": "Statistics", "notes": [], @@ -71369,8 +71305,8 @@ "subcategory": "statuses" }, "slug": "create-a-commit-status", - "category": "repos", - "categoryLabel": "Repos", + "category": "commits", + "categoryLabel": "Commits", "subcategory": "statuses", "subcategoryLabel": "Statuses", "contentType": "application/json", @@ -81552,8 +81488,8 @@ "subcategory": "invitations" }, "slug": "list-repository-invitations-for-the-authenticated-user", - "category": "repos", - "categoryLabel": "Repos", + "category": "collaborators", + "categoryLabel": "Collaborators", "subcategory": "invitations", "subcategoryLabel": "Invitations", "notes": [], @@ -81633,8 +81569,8 @@ "subcategory": "invitations" }, "slug": "accept-a-repository-invitation", - "category": "repos", - "categoryLabel": "Repos", + "category": "collaborators", + "categoryLabel": "Collaborators", "subcategory": "invitations", "subcategoryLabel": "Invitations", "notes": [], @@ -81713,8 +81649,8 @@ "subcategory": "invitations" }, "slug": "decline-a-repository-invitation", - "category": "repos", - "categoryLabel": "Repos", + "category": "collaborators", + "categoryLabel": "Collaborators", "subcategory": "invitations", "subcategoryLabel": "Invitations", "notes": [], diff --git a/lib/rest/static/decorated/ghes-3.1.json b/lib/rest/static/decorated/ghes-3.1.json index 424f0bebc5..96c42e3ae9 100644 --- a/lib/rest/static/decorated/ghes-3.1.json +++ b/lib/rest/static/decorated/ghes-3.1.json @@ -35954,10 +35954,8 @@ "subcategory": "branches" }, "slug": "list-branches", - "category": "repos", - "categoryLabel": "Repos", - "subcategory": "branches", - "subcategoryLabel": "Branches", + "category": "branches", + "categoryLabel": "Branches", "notes": [], "descriptionHTML": "", "bodyParameters": [], @@ -36039,10 +36037,8 @@ "subcategory": "branches" }, "slug": "get-a-branch", - "category": "repos", - "categoryLabel": "Repos", - "subcategory": "branches", - "subcategoryLabel": "Branches", + "category": "branches", + "categoryLabel": "Branches", "notes": [], "descriptionHTML": "", "responses": [ @@ -36140,10 +36136,10 @@ ] }, "slug": "get-branch-protection", - "category": "repos", - "categoryLabel": "Repos", - "subcategory": "branches", - "subcategoryLabel": "Branches", + "category": "branches", + "categoryLabel": "Branches", + "subcategory": "branch-protection", + "subcategoryLabel": "Branch protection", "notes": [], "bodyParameters": [], "descriptionHTML": "

Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see GitHub's products in the GitHub Help documentation.

", @@ -36904,10 +36900,10 @@ ] }, "slug": "update-branch-protection", - "category": "repos", - "categoryLabel": "Repos", - "subcategory": "branches", - "subcategoryLabel": "Branches", + "category": "branches", + "categoryLabel": "Branches", + "subcategory": "branch-protection", + "subcategoryLabel": "Branch protection", "contentType": "application/json", "notes": [], "responses": [ @@ -37609,10 +37605,10 @@ "subcategory": "branches" }, "slug": "delete-branch-protection", - "category": "repos", - "categoryLabel": "Repos", - "subcategory": "branches", - "subcategoryLabel": "Branches", + "category": "branches", + "categoryLabel": "Branches", + "subcategory": "branch-protection", + "subcategoryLabel": "Branch protection", "notes": [], "responses": [ { @@ -37693,10 +37689,10 @@ "subcategory": "branches" }, "slug": "get-admin-branch-protection", - "category": "repos", - "categoryLabel": "Repos", - "subcategory": "branches", - "subcategoryLabel": "Branches", + "category": "branches", + "categoryLabel": "Branches", + "subcategory": "branch-protection", + "subcategoryLabel": "Branch protection", "notes": [], "bodyParameters": [], "descriptionHTML": "

Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see GitHub's products in the GitHub Help documentation.

", @@ -37773,10 +37769,10 @@ "subcategory": "branches" }, "slug": "set-admin-branch-protection", - "category": "repos", - "categoryLabel": "Repos", - "subcategory": "branches", - "subcategoryLabel": "Branches", + "category": "branches", + "categoryLabel": "Branches", + "subcategory": "branch-protection", + "subcategoryLabel": "Branch protection", "notes": [], "bodyParameters": [], "descriptionHTML": "

Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see GitHub's products in the GitHub Help documentation.

\n

Adding admin enforcement requires admin or owner permissions to the repository and branch protection to be enabled.

", @@ -37853,10 +37849,10 @@ "subcategory": "branches" }, "slug": "delete-admin-branch-protection", - "category": "repos", - "categoryLabel": "Repos", - "subcategory": "branches", - "subcategoryLabel": "Branches", + "category": "branches", + "categoryLabel": "Branches", + "subcategory": "branch-protection", + "subcategoryLabel": "Branch protection", "notes": [], "responses": [ { @@ -37944,10 +37940,10 @@ ] }, "slug": "get-pull-request-review-protection", - "category": "repos", - "categoryLabel": "Repos", - "subcategory": "branches", - "subcategoryLabel": "Branches", + "category": "branches", + "categoryLabel": "Branches", + "subcategory": "branch-protection", + "subcategoryLabel": "Branch protection", "notes": [], "bodyParameters": [], "descriptionHTML": "

Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see GitHub's products in the GitHub Help documentation.

", @@ -38158,10 +38154,10 @@ ] }, "slug": "update-pull-request-review-protection", - "category": "repos", - "categoryLabel": "Repos", - "subcategory": "branches", - "subcategoryLabel": "Branches", + "category": "branches", + "categoryLabel": "Branches", + "subcategory": "branch-protection", + "subcategoryLabel": "Branch protection", "contentType": "application/json", "notes": [], "descriptionHTML": "

Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see GitHub's products in the GitHub Help documentation.

\n

Updating pull request review enforcement requires admin or owner permissions to the repository and branch protection to be enabled.

\n

Note: Passing new arrays of users and teams replaces their previous values.

", @@ -38339,10 +38335,10 @@ "subcategory": "branches" }, "slug": "delete-pull-request-review-protection", - "category": "repos", - "categoryLabel": "Repos", - "subcategory": "branches", - "subcategoryLabel": "Branches", + "category": "branches", + "categoryLabel": "Branches", + "subcategory": "branch-protection", + "subcategoryLabel": "Branch protection", "notes": [], "responses": [ { @@ -38430,10 +38426,10 @@ ] }, "slug": "get-commit-signature-protection", - "category": "repos", - "categoryLabel": "Repos", - "subcategory": "branches", - "subcategoryLabel": "Branches", + "category": "branches", + "categoryLabel": "Branches", + "subcategory": "branch-protection", + "subcategoryLabel": "Branch protection", "notes": [], "bodyParameters": [], "descriptionHTML": "

Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see GitHub's products in the GitHub Help documentation.

\n

When authenticated with admin or owner permissions to the repository, you can use this endpoint to check whether a branch requires signed commits. An enabled status of true indicates you must sign commits on this branch. For more information, see Signing commits with GPG in GitHub Help.

\n

Note: You must enable branch protection to require signed commits.

", @@ -38522,10 +38518,10 @@ ] }, "slug": "create-commit-signature-protection", - "category": "repos", - "categoryLabel": "Repos", - "subcategory": "branches", - "subcategoryLabel": "Branches", + "category": "branches", + "categoryLabel": "Branches", + "subcategory": "branch-protection", + "subcategoryLabel": "Branch protection", "notes": [], "bodyParameters": [], "descriptionHTML": "

Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see GitHub's products in the GitHub Help documentation.

\n

When authenticated with admin or owner permissions to the repository, you can use this endpoint to require signed commits on a branch. You must enable branch protection to require signed commits.

", @@ -38614,10 +38610,10 @@ ] }, "slug": "delete-commit-signature-protection", - "category": "repos", - "categoryLabel": "Repos", - "subcategory": "branches", - "subcategoryLabel": "Branches", + "category": "branches", + "categoryLabel": "Branches", + "subcategory": "branch-protection", + "subcategoryLabel": "Branch protection", "notes": [], "responses": [ { @@ -38698,10 +38694,10 @@ "subcategory": "branches" }, "slug": "get-status-checks-protection", - "category": "repos", - "categoryLabel": "Repos", - "subcategory": "branches", - "subcategoryLabel": "Branches", + "category": "branches", + "categoryLabel": "Branches", + "subcategory": "branch-protection", + "subcategoryLabel": "Branch protection", "notes": [], "bodyParameters": [], "descriptionHTML": "

Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see GitHub's products in the GitHub Help documentation.

", @@ -38823,10 +38819,10 @@ "subcategory": "branches" }, "slug": "update-status-check-protection", - "category": "repos", - "categoryLabel": "Repos", - "subcategory": "branches", - "subcategoryLabel": "Branches", + "category": "branches", + "categoryLabel": "Branches", + "subcategory": "branch-protection", + "subcategoryLabel": "Branch protection", "contentType": "application/json", "notes": [], "descriptionHTML": "

Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see GitHub's products in the GitHub Help documentation.

\n

Updating required status checks requires admin or owner permissions to the repository and branch protection to be enabled.

", @@ -38937,10 +38933,10 @@ "subcategory": "branches" }, "slug": "remove-status-check-protection", - "category": "repos", - "categoryLabel": "Repos", - "subcategory": "branches", - "subcategoryLabel": "Branches", + "category": "branches", + "categoryLabel": "Branches", + "subcategory": "branch-protection", + "subcategoryLabel": "Branch protection", "notes": [], "responses": [ { @@ -39016,10 +39012,10 @@ "subcategory": "branches" }, "slug": "get-all-status-check-contexts", - "category": "repos", - "categoryLabel": "Repos", - "subcategory": "branches", - "subcategoryLabel": "Branches", + "category": "branches", + "categoryLabel": "Branches", + "subcategory": "branch-protection", + "subcategoryLabel": "Branch protection", "notes": [], "bodyParameters": [], "descriptionHTML": "

Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see GitHub's products in the GitHub Help documentation.

", @@ -39145,10 +39141,10 @@ "subcategory": "branches" }, "slug": "add-status-check-contexts", - "category": "repos", - "categoryLabel": "Repos", - "subcategory": "branches", - "subcategoryLabel": "Branches", + "category": "branches", + "categoryLabel": "Branches", + "subcategory": "branch-protection", + "subcategoryLabel": "Branch protection", "contentType": "application/json", "notes": [], "descriptionHTML": "

Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see GitHub's products in the GitHub Help documentation.

", @@ -39298,10 +39294,10 @@ "subcategory": "branches" }, "slug": "set-status-check-contexts", - "category": "repos", - "categoryLabel": "Repos", - "subcategory": "branches", - "subcategoryLabel": "Branches", + "category": "branches", + "categoryLabel": "Branches", + "subcategory": "branch-protection", + "subcategoryLabel": "Branch protection", "contentType": "application/json", "notes": [], "descriptionHTML": "

Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see GitHub's products in the GitHub Help documentation.

", @@ -39445,10 +39441,10 @@ "subcategory": "branches" }, "slug": "remove-status-check-contexts", - "category": "repos", - "categoryLabel": "Repos", - "subcategory": "branches", - "subcategoryLabel": "Branches", + "category": "branches", + "categoryLabel": "Branches", + "subcategory": "branch-protection", + "subcategoryLabel": "Branch protection", "contentType": "application/json", "notes": [], "descriptionHTML": "

Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see GitHub's products in the GitHub Help documentation.

", @@ -39549,10 +39545,10 @@ "subcategory": "branches" }, "slug": "get-access-restrictions", - "category": "repos", - "categoryLabel": "Repos", - "subcategory": "branches", - "subcategoryLabel": "Branches", + "category": "branches", + "categoryLabel": "Branches", + "subcategory": "branch-protection", + "subcategoryLabel": "Branch protection", "notes": [], "bodyParameters": [], "descriptionHTML": "

Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see GitHub's products in the GitHub Help documentation.

\n

Lists who has access to this protected branch.

\n

Note: Users, apps, and teams restrictions are only available for organization-owned repositories.

", @@ -39634,10 +39630,10 @@ "subcategory": "branches" }, "slug": "delete-access-restrictions", - "category": "repos", - "categoryLabel": "Repos", - "subcategory": "branches", - "subcategoryLabel": "Branches", + "category": "branches", + "categoryLabel": "Branches", + "subcategory": "branch-protection", + "subcategoryLabel": "Branch protection", "notes": [], "responses": [ { @@ -39713,10 +39709,10 @@ "subcategory": "branches" }, "slug": "get-apps-with-access-to-the-protected-branch", - "category": "repos", - "categoryLabel": "Repos", - "subcategory": "branches", - "subcategoryLabel": "Branches", + "category": "branches", + "categoryLabel": "Branches", + "subcategory": "branch-protection", + "subcategoryLabel": "Branch protection", "notes": [], "bodyParameters": [], "descriptionHTML": "

Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see GitHub's products in the GitHub Help documentation.

\n

Lists the GitHub Apps that have push access to this branch. Only installed GitHub Apps with write access to the contents permission can be added as authorized actors on a protected branch.

", @@ -39841,10 +39837,10 @@ "subcategory": "branches" }, "slug": "add-app-access-restrictions", - "category": "repos", - "categoryLabel": "Repos", - "subcategory": "branches", - "subcategoryLabel": "Branches", + "category": "branches", + "categoryLabel": "Branches", + "subcategory": "branch-protection", + "subcategoryLabel": "Branch protection", "contentType": "application/json", "notes": [], "descriptionHTML": "

Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see GitHub's products in the GitHub Help documentation.

\n

Grants the specified apps push access for this branch. Only installed GitHub Apps with write access to the contents permission can be added as authorized actors on a protected branch.

\n\n\n\n\n\n\n\n\n\n\n\n\n\n
TypeDescription
arrayThe GitHub Apps that have push access to this branch. Use the app's slug. Note: The list of users, apps, and teams in total is limited to 100 items.
", @@ -39983,10 +39979,10 @@ "subcategory": "branches" }, "slug": "set-app-access-restrictions", - "category": "repos", - "categoryLabel": "Repos", - "subcategory": "branches", - "subcategoryLabel": "Branches", + "category": "branches", + "categoryLabel": "Branches", + "subcategory": "branch-protection", + "subcategoryLabel": "Branch protection", "contentType": "application/json", "notes": [], "descriptionHTML": "

Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see GitHub's products in the GitHub Help documentation.

\n

Replaces the list of apps that have push access to this branch. This removes all apps that previously had push access and grants push access to the new list of apps. Only installed GitHub Apps with write access to the contents permission can be added as authorized actors on a protected branch.

\n\n\n\n\n\n\n\n\n\n\n\n\n\n
TypeDescription
arrayThe GitHub Apps that have push access to this branch. Use the app's slug. Note: The list of users, apps, and teams in total is limited to 100 items.
", @@ -40124,10 +40120,10 @@ "subcategory": "branches" }, "slug": "remove-app-access-restrictions", - "category": "repos", - "categoryLabel": "Repos", - "subcategory": "branches", - "subcategoryLabel": "Branches", + "category": "branches", + "categoryLabel": "Branches", + "subcategory": "branch-protection", + "subcategoryLabel": "Branch protection", "contentType": "application/json", "notes": [], "descriptionHTML": "

Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see GitHub's products in the GitHub Help documentation.

\n

Removes the ability of an app to push to this branch. Only installed GitHub Apps with write access to the contents permission can be added as authorized actors on a protected branch.

\n\n\n\n\n\n\n\n\n\n\n\n\n\n
TypeDescription
arrayThe GitHub Apps that have push access to this branch. Use the app's slug. Note: The list of users, apps, and teams in total is limited to 100 items.
", @@ -40223,10 +40219,10 @@ "subcategory": "branches" }, "slug": "get-teams-with-access-to-the-protected-branch", - "category": "repos", - "categoryLabel": "Repos", - "subcategory": "branches", - "subcategoryLabel": "Branches", + "category": "branches", + "categoryLabel": "Branches", + "subcategory": "branch-protection", + "subcategoryLabel": "Branch protection", "notes": [], "bodyParameters": [], "descriptionHTML": "

Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see GitHub's products in the GitHub Help documentation.

\n

Lists the teams who have push access to this branch. The list includes child teams.

", @@ -40352,10 +40348,10 @@ "subcategory": "branches" }, "slug": "add-team-access-restrictions", - "category": "repos", - "categoryLabel": "Repos", - "subcategory": "branches", - "subcategoryLabel": "Branches", + "category": "branches", + "categoryLabel": "Branches", + "subcategory": "branch-protection", + "subcategoryLabel": "Branch protection", "contentType": "application/json", "notes": [], "descriptionHTML": "

Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see GitHub's products in the GitHub Help documentation.

\n

Grants the specified teams push access for this branch. You can also give push access to child teams.

\n\n\n\n\n\n\n\n\n\n\n\n\n\n
TypeDescription
arrayThe teams that can have push access. Use the team's slug. Note: The list of users, apps, and teams in total is limited to 100 items.
", @@ -40495,10 +40491,10 @@ "subcategory": "branches" }, "slug": "set-team-access-restrictions", - "category": "repos", - "categoryLabel": "Repos", - "subcategory": "branches", - "subcategoryLabel": "Branches", + "category": "branches", + "categoryLabel": "Branches", + "subcategory": "branch-protection", + "subcategoryLabel": "Branch protection", "contentType": "application/json", "notes": [], "descriptionHTML": "

Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see GitHub's products in the GitHub Help documentation.

\n

Replaces the list of teams that have push access to this branch. This removes all teams that previously had push access and grants push access to the new list of teams. Team restrictions include child teams.

\n\n\n\n\n\n\n\n\n\n\n\n\n\n
TypeDescription
arrayThe teams that can have push access. Use the team's slug. Note: The list of users, apps, and teams in total is limited to 100 items.
", @@ -40637,10 +40633,10 @@ "subcategory": "branches" }, "slug": "remove-team-access-restrictions", - "category": "repos", - "categoryLabel": "Repos", - "subcategory": "branches", - "subcategoryLabel": "Branches", + "category": "branches", + "categoryLabel": "Branches", + "subcategory": "branch-protection", + "subcategoryLabel": "Branch protection", "contentType": "application/json", "notes": [], "descriptionHTML": "

Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see GitHub's products in the GitHub Help documentation.

\n

Removes the ability of a team to push to this branch. You can also remove push access for child teams.

\n\n\n\n\n\n\n\n\n\n\n\n\n\n
TypeDescription
arrayTeams that should no longer have push access. Use the team's slug. Note: The list of users, apps, and teams in total is limited to 100 items.
", @@ -40736,10 +40732,10 @@ "subcategory": "branches" }, "slug": "get-users-with-access-to-the-protected-branch", - "category": "repos", - "categoryLabel": "Repos", - "subcategory": "branches", - "subcategoryLabel": "Branches", + "category": "branches", + "categoryLabel": "Branches", + "subcategory": "branch-protection", + "subcategoryLabel": "Branch protection", "notes": [], "bodyParameters": [], "descriptionHTML": "

Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see GitHub's products in the GitHub Help documentation.

\n

Lists the people who have push access to this branch.

", @@ -40864,10 +40860,10 @@ "subcategory": "branches" }, "slug": "add-user-access-restrictions", - "category": "repos", - "categoryLabel": "Repos", - "subcategory": "branches", - "subcategoryLabel": "Branches", + "category": "branches", + "categoryLabel": "Branches", + "subcategory": "branch-protection", + "subcategoryLabel": "Branch protection", "contentType": "application/json", "notes": [], "descriptionHTML": "

Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see GitHub's products in the GitHub Help documentation.

\n

Grants the specified people push access for this branch.

\n\n\n\n\n\n\n\n\n\n\n\n\n\n
TypeDescription
arrayUsernames for people who can have push access. Note: The list of users, apps, and teams in total is limited to 100 items.
", @@ -41006,10 +41002,10 @@ "subcategory": "branches" }, "slug": "set-user-access-restrictions", - "category": "repos", - "categoryLabel": "Repos", - "subcategory": "branches", - "subcategoryLabel": "Branches", + "category": "branches", + "categoryLabel": "Branches", + "subcategory": "branch-protection", + "subcategoryLabel": "Branch protection", "contentType": "application/json", "notes": [], "descriptionHTML": "

Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see GitHub's products in the GitHub Help documentation.

\n

Replaces the list of people that have push access to this branch. This removes all people that previously had push access and grants push access to the new list of people.

\n\n\n\n\n\n\n\n\n\n\n\n\n\n
TypeDescription
arrayUsernames for people who can have push access. Note: The list of users, apps, and teams in total is limited to 100 items.
", @@ -41147,10 +41143,10 @@ "subcategory": "branches" }, "slug": "remove-user-access-restrictions", - "category": "repos", - "categoryLabel": "Repos", - "subcategory": "branches", - "subcategoryLabel": "Branches", + "category": "branches", + "categoryLabel": "Branches", + "subcategory": "branch-protection", + "subcategoryLabel": "Branch protection", "contentType": "application/json", "notes": [], "descriptionHTML": "

Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see GitHub's products in the GitHub Help documentation.

\n

Removes the ability of a user to push to this branch.

\n\n\n\n\n\n\n\n\n\n\n\n\n\n
TypeDescription
arrayUsernames of the people who should no longer have push access. Note: The list of users, apps, and teams in total is limited to 100 items.
", @@ -41273,10 +41269,8 @@ "subcategory": "branches" }, "slug": "rename-a-branch", - "category": "repos", - "categoryLabel": "Repos", - "subcategory": "branches", - "subcategoryLabel": "Branches", + "category": "branches", + "categoryLabel": "Branches", "contentType": "application/json", "notes": [], "descriptionHTML": "

Renames a branch in a repository.

\n

Note: Although the API responds immediately, the branch rename process might take some extra time to complete in the background. You won't be able to push to the old branch name while the rename process is in progress. For more information, see \"Renaming a branch\".

\n

The permissions required to use this endpoint depends on whether you are renaming the default branch.

\n

To rename a non-default branch:

\n
    \n
  • Users must have push access.
  • \n
  • GitHub Apps must have the contents:write repository permission.
  • \n
\n

To rename the default branch:

\n
    \n
  • Users must have admin or owner permissions.
  • \n
  • GitHub Apps must have the administration:write repository permission.
  • \n
", @@ -47535,10 +47529,8 @@ "subcategory": "collaborators" }, "slug": "list-repository-collaborators", - "category": "repos", - "categoryLabel": "Repos", - "subcategory": "collaborators", - "subcategoryLabel": "Collaborators", + "category": "collaborators", + "categoryLabel": "Collaborators", "notes": [], "bodyParameters": [], "descriptionHTML": "

For organization-owned repositories, the list of collaborators includes outside collaborators, organization members that are direct collaborators, organization members with access through team memberships, organization members with access through default organization permissions, and organization owners.

\n

Team members will include the members of child teams.

\n

You must have push access to the repository in order to list collaborators.

", @@ -47618,10 +47610,8 @@ "subcategory": "collaborators" }, "slug": "check-if-a-user-is-a-repository-collaborator", - "category": "repos", - "categoryLabel": "Repos", - "subcategory": "collaborators", - "subcategoryLabel": "Collaborators", + "category": "collaborators", + "categoryLabel": "Collaborators", "notes": [], "responses": [ { @@ -47739,10 +47729,8 @@ "subcategory": "collaborators" }, "slug": "add-a-repository-collaborator", - "category": "repos", - "categoryLabel": "Repos", - "subcategory": "collaborators", - "subcategoryLabel": "Collaborators", + "category": "collaborators", + "categoryLabel": "Collaborators", "contentType": "application/json", "notes": [], "descriptionHTML": "

This endpoint triggers notifications. Creating content too quickly using this endpoint may result in secondary rate limiting. See \"Secondary rate limits\" and \"Dealing with secondary rate limits\" for details.

\n

For more information on permission levels, see \"Repository permission levels for an organization\". There are restrictions on which permissions can be granted to organization members when an organization base role is in place. In this case, the permission being given must be equal to or higher than the org base permission. Otherwise, the request will fail with:

\n
Cannot assign {member} permission of {role name}\n
\n

Note that, if you choose not to pass any parameters, you'll need to set Content-Length to zero when calling out to this endpoint. For more information, see \"HTTP verbs.\"

\n

The invitee will receive a notification that they have been invited to the repository, which they must accept or decline. They may do this via the notifications page, the email they receive, or by using the repository invitations API endpoints.

\n

Rate limits

\n

You are limited to sending 50 invitations to a repository per 24 hour period. Note there is no limit if you are inviting organization members to an organization repository.

", @@ -47860,10 +47848,8 @@ "subcategory": "collaborators" }, "slug": "remove-a-repository-collaborator", - "category": "repos", - "categoryLabel": "Repos", - "subcategory": "collaborators", - "subcategoryLabel": "Collaborators", + "category": "collaborators", + "categoryLabel": "Collaborators", "notes": [], "descriptionHTML": "", "responses": [ @@ -47937,10 +47923,8 @@ "subcategory": "collaborators" }, "slug": "get-repository-permissions-for-a-user", - "category": "repos", - "categoryLabel": "Repos", - "subcategory": "collaborators", - "subcategoryLabel": "Collaborators", + "category": "collaborators", + "categoryLabel": "Collaborators", "notes": [], "bodyParameters": [], "descriptionHTML": "

Checks the repository permission of a collaborator. The possible repository permissions are admin, write, read, and none.

", @@ -48038,8 +48022,8 @@ ] }, "slug": "list-commit-comments-for-a-repository", - "category": "repos", - "categoryLabel": "Repos", + "category": "commits", + "categoryLabel": "Commits", "subcategory": "comments", "subcategoryLabel": "Comments", "notes": [], @@ -48124,8 +48108,8 @@ ] }, "slug": "get-a-commit-comment", - "category": "repos", - "categoryLabel": "Repos", + "category": "commits", + "categoryLabel": "Commits", "subcategory": "comments", "subcategoryLabel": "Comments", "notes": [], @@ -48235,8 +48219,8 @@ "subcategory": "comments" }, "slug": "update-a-commit-comment", - "category": "repos", - "categoryLabel": "Repos", + "category": "commits", + "categoryLabel": "Commits", "subcategory": "comments", "subcategoryLabel": "Comments", "contentType": "application/json", @@ -48330,8 +48314,8 @@ "subcategory": "comments" }, "slug": "delete-a-commit-comment", - "category": "repos", - "categoryLabel": "Repos", + "category": "commits", + "categoryLabel": "Commits", "subcategory": "comments", "subcategoryLabel": "Comments", "notes": [], @@ -48851,10 +48835,8 @@ "subcategory": "commits" }, "slug": "list-commits", - "category": "repos", - "categoryLabel": "Repos", - "subcategory": "commits", - "subcategoryLabel": "Commits", + "category": "commits", + "categoryLabel": "Commits", "notes": [], "bodyParameters": [], "descriptionHTML": "

Signature verification object

\n

The response will include a verification object that describes the result of verifying the commit's signature. The following fields are included in the verification object:

\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n
NameTypeDescription
verifiedbooleanIndicates whether GitHub considers the signature in this commit to be verified.
reasonstringThe reason for verified value. Possible values and their meanings are enumerated in table below.
signaturestringThe signature that was extracted from the commit.
payloadstringThe value that was signed.
\n

These are the possible values for reason in the verification object:

\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n
ValueDescription
expired_keyThe key that made the signature is expired.
not_signing_keyThe \"signing\" flag is not among the usage flags in the GPG key that made the signature.
gpgverify_errorThere was an error communicating with the signature verification service.
gpgverify_unavailableThe signature verification service is currently unavailable.
unsignedThe object does not include a signature.
unknown_signature_typeA non-PGP signature was found in the commit.
no_userNo user was associated with the committer email address in the commit.
unverified_emailThe committer email address in the commit was associated with a user, but the email address is not verified on her/his account.
bad_emailThe committer email address in the commit is not included in the identities of the PGP key that made the signature.
unknown_keyThe key that made the signature has not been registered with any user's account.
malformed_signatureThere was an error parsing the signature.
invalidThe signature could not be cryptographically verified using the key whose key-id was found in the signature.
validNone of the above errors applied, so the signature is considered to be verified.
", @@ -48958,10 +48940,8 @@ ] }, "slug": "list-branches-for-head-commit", - "category": "repos", - "categoryLabel": "Repos", - "subcategory": "commits", - "subcategoryLabel": "Commits", + "category": "commits", + "categoryLabel": "Commits", "notes": [], "bodyParameters": [], "descriptionHTML": "

Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see GitHub's products in the GitHub Help documentation.

\n

Returns all branches where the given commit SHA is the HEAD, or latest commit for the branch.

", @@ -49070,8 +49050,8 @@ ] }, "slug": "list-commit-comments", - "category": "repos", - "categoryLabel": "Repos", + "category": "commits", + "categoryLabel": "Commits", "subcategory": "comments", "subcategoryLabel": "Comments", "notes": [], @@ -49208,8 +49188,8 @@ "subcategory": "comments" }, "slug": "create-a-commit-comment", - "category": "repos", - "categoryLabel": "Repos", + "category": "commits", + "categoryLabel": "Commits", "subcategory": "comments", "subcategoryLabel": "Comments", "contentType": "application/json", @@ -49363,10 +49343,8 @@ ] }, "slug": "list-pull-requests-associated-with-a-commit", - "category": "repos", - "categoryLabel": "Repos", - "subcategory": "commits", - "subcategoryLabel": "Commits", + "category": "commits", + "categoryLabel": "Commits", "notes": [], "bodyParameters": [], "descriptionHTML": "

Lists the merged pull request that introduced the commit to the repository. If the commit is not present in the default branch, additionally returns open pull requests associated with the commit. The results may include open and closed pull requests. Additional preview headers may be required to see certain details for associated pull requests, such as whether a pull request is in a draft state. For more information about previews that might affect this endpoint, see the List pull requests endpoint.

", @@ -49463,10 +49441,8 @@ "subcategory": "commits" }, "slug": "get-a-commit", - "category": "repos", - "categoryLabel": "Repos", - "subcategory": "commits", - "subcategoryLabel": "Commits", + "category": "commits", + "categoryLabel": "Commits", "notes": [], "bodyParameters": [], "descriptionHTML": "

Returns the contents of a single commit reference. You must have read access for the repository to use this endpoint.

\n

Note: If there are more than 300 files in the commit diff, the response will include pagination link headers for the remaining files, up to a limit of 3000 files. Each page contains the static commit information, and the only changes are to the file listing.

\n

You can pass the appropriate media type to fetch diff and patch formats. Diffs with binary data will have no patch property.

\n

To return only the SHA-1 hash of the commit reference, you can provide the sha custom media type in the Accept header. You can use this endpoint to check if a remote reference's SHA-1 hash is the same as your local reference's SHA-1 hash by providing the local SHA-1 reference as the ETag.

\n

Signature verification object

\n

The response will include a verification object that describes the result of verifying the commit's signature. The following fields are included in the verification object:

\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n
NameTypeDescription
verifiedbooleanIndicates whether GitHub considers the signature in this commit to be verified.
reasonstringThe reason for verified value. Possible values and their meanings are enumerated in table below.
signaturestringThe signature that was extracted from the commit.
payloadstringThe value that was signed.
\n

These are the possible values for reason in the verification object:

\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n
ValueDescription
expired_keyThe key that made the signature is expired.
not_signing_keyThe \"signing\" flag is not among the usage flags in the GPG key that made the signature.
gpgverify_errorThere was an error communicating with the signature verification service.
gpgverify_unavailableThe signature verification service is currently unavailable.
unsignedThe object does not include a signature.
unknown_signature_typeA non-PGP signature was found in the commit.
no_userNo user was associated with the committer email address in the commit.
unverified_emailThe committer email address in the commit was associated with a user, but the email address is not verified on her/his account.
bad_emailThe committer email address in the commit is not included in the identities of the PGP key that made the signature.
unknown_keyThe key that made the signature has not been registered with any user's account.
malformed_signatureThere was an error parsing the signature.
invalidThe signature could not be cryptographically verified using the key whose key-id was found in the signature.
validNone of the above errors applied, so the signature is considered to be verified.
", @@ -49848,8 +49824,8 @@ "subcategory": "statuses" }, "slug": "get-the-combined-status-for-a-specific-reference", - "category": "repos", - "categoryLabel": "Repos", + "category": "commits", + "categoryLabel": "Commits", "subcategory": "statuses", "subcategoryLabel": "Statuses", "notes": [], @@ -49953,8 +49929,8 @@ "subcategory": "statuses" }, "slug": "list-commit-statuses-for-a-reference", - "category": "repos", - "categoryLabel": "Repos", + "category": "commits", + "categoryLabel": "Commits", "subcategory": "statuses", "subcategoryLabel": "Statuses", "notes": [], @@ -50037,10 +50013,8 @@ "subcategory": "commits" }, "slug": "compare-two-commits", - "category": "repos", - "categoryLabel": "Repos", - "subcategory": "commits", - "subcategoryLabel": "Commits", + "category": "commits", + "categoryLabel": "Commits", "notes": [], "bodyParameters": [], "descriptionHTML": "

The basehead param is comprised of two parts: base and head. Both must be branch names in repo. To compare branches across other repositories in the same network as repo, use the format <USERNAME>:branch.

\n

The response from the API is equivalent to running the git log base..head command; however, commits are returned in chronological order. Pass the appropriate media type to fetch diff and patch formats.

\n

The response also includes details on the files that were changed between the two commits. This includes the status of the change (for example, if a file was added, removed, modified, or renamed), and details of the change itself. For example, files with a renamed status have a previous_filename field showing the previous filename of the file, and files with a modified status have a patch field showing the changes made to the file.

\n

Working with large comparisons

\n

The response will include a comparison of up to 250 commits. If you are working with a larger commit range, you can use the List commits to enumerate all commits in the range.

\n

For comparisons with extremely large diffs, you may receive an error response indicating that the diff took too long\nto generate. You can typically resolve this error by using a smaller commit range.

\n

Signature verification object

\n

The response will include a verification object that describes the result of verifying the commit's signature. The following fields are included in the verification object:

\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n
NameTypeDescription
verifiedbooleanIndicates whether GitHub considers the signature in this commit to be verified.
reasonstringThe reason for verified value. Possible values and their meanings are enumerated in table below.
signaturestringThe signature that was extracted from the commit.
payloadstringThe value that was signed.
\n

These are the possible values for reason in the verification object:

\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n
ValueDescription
expired_keyThe key that made the signature is expired.
not_signing_keyThe \"signing\" flag is not among the usage flags in the GPG key that made the signature.
gpgverify_errorThere was an error communicating with the signature verification service.
gpgverify_unavailableThe signature verification service is currently unavailable.
unsignedThe object does not include a signature.
unknown_signature_typeA non-PGP signature was found in the commit.
no_userNo user was associated with the committer email address in the commit.
unverified_emailThe committer email address in the commit was associated with a user, but the email address is not verified on her/his account.
bad_emailThe committer email address in the commit is not included in the identities of the PGP key that made the signature.
unknown_keyThe key that made the signature has not been registered with any user's account.
malformed_signatureThere was an error parsing the signature.
invalidThe signature could not be cryptographically verified using the key whose key-id was found in the signature.
validNone of the above errors applied, so the signature is considered to be verified.
", @@ -51527,10 +51501,8 @@ ] }, "slug": "list-deployments", - "category": "repos", - "categoryLabel": "Repos", - "subcategory": "deployments", - "subcategoryLabel": "Deployments", + "category": "deployments", + "categoryLabel": "Deployments", "notes": [], "bodyParameters": [], "descriptionHTML": "

Simple filtering of deployments is available via query parameters:

", @@ -51740,10 +51712,8 @@ ] }, "slug": "create-a-deployment", - "category": "repos", - "categoryLabel": "Repos", - "subcategory": "deployments", - "subcategoryLabel": "Deployments", + "category": "deployments", + "categoryLabel": "Deployments", "contentType": "application/json", "notes": [], "descriptionHTML": "

Deployments offer a few configurable parameters with certain defaults.

\n

The ref parameter can be any named branch, tag, or SHA. At GitHub Enterprise Server we often deploy branches and verify them\nbefore we merge a pull request.

\n

The environment parameter allows deployments to be issued to different runtime environments. Teams often have\nmultiple environments for verifying their applications, such as production, staging, and qa. This parameter\nmakes it easier to track which environments have requested deployments. The default environment is production.

\n

The auto_merge parameter is used to ensure that the requested ref is not behind the repository's default branch. If\nthe ref is behind the default branch for the repository, we will attempt to merge it for you. If the merge succeeds,\nthe API will return a successful merge commit. If merge conflicts prevent the merge from succeeding, the API will\nreturn a failure response.

\n

By default, commit statuses for every submitted context must be in a success\nstate. The required_contexts parameter allows you to specify a subset of contexts that must be success, or to\nspecify contexts that have not yet been submitted. You are not required to use commit statuses to deploy. If you do\nnot require any contexts or create any commit statuses, the deployment will always succeed.

\n

The payload parameter is available for any extra information that a deployment system might need. It is a JSON text\nfield that will be passed on when a deployment event is dispatched.

\n

The task parameter is used by the deployment system to allow different execution paths. In the web world this might\nbe deploy:migrations to run schema changes on the system. In the compiled world this could be a flag to compile an\napplication with debugging enabled.

\n

Users with repo or repo_deployment scopes can create a deployment for a given ref.

\n

Merged branch response

\n

You will see this response when GitHub automatically merges the base branch into the topic branch instead of creating\na deployment. This auto-merge happens when:

\n
    \n
  • Auto-merge option is enabled in the repository
  • \n
  • Topic branch does not include the latest changes on the base branch, which is master in the response example
  • \n
  • There are no merge conflicts
  • \n
\n

If there are no new commits in the base branch, a new request to create a deployment should give a successful\nresponse.

\n

Merge conflict response

\n

This error happens when the auto_merge option is enabled and when the default branch (in this case master), can't\nbe merged into the branch that's being deployed (in this case topic-branch), due to merge conflicts.

\n

Failed commit status checks

\n

This error happens when the required_contexts parameter indicates that one or more contexts need to have a success\nstatus for the commit to be deployed, but one or more of the required contexts do not have a state of success.

", @@ -51948,10 +51918,8 @@ ] }, "slug": "get-a-deployment", - "category": "repos", - "categoryLabel": "Repos", - "subcategory": "deployments", - "subcategoryLabel": "Deployments", + "category": "deployments", + "categoryLabel": "Deployments", "notes": [], "descriptionHTML": "", "bodyParameters": [], @@ -52032,10 +52000,8 @@ "subcategory": "deployments" }, "slug": "delete-a-deployment", - "category": "repos", - "categoryLabel": "Repos", - "subcategory": "deployments", - "subcategoryLabel": "Deployments", + "category": "deployments", + "categoryLabel": "Deployments", "notes": [], "responses": [ { @@ -52152,10 +52118,10 @@ ] }, "slug": "list-deployment-statuses", - "category": "repos", - "categoryLabel": "Repos", - "subcategory": "deployments", - "subcategoryLabel": "Deployments", + "category": "deployments", + "categoryLabel": "Deployments", + "subcategory": "statuses", + "subcategoryLabel": "Statuses", "notes": [], "bodyParameters": [], "descriptionHTML": "

Users with pull access can view deployment statuses for a deployment:

", @@ -52350,10 +52316,10 @@ ] }, "slug": "create-a-deployment-status", - "category": "repos", - "categoryLabel": "Repos", - "subcategory": "deployments", - "subcategoryLabel": "Deployments", + "category": "deployments", + "categoryLabel": "Deployments", + "subcategory": "statuses", + "subcategoryLabel": "Statuses", "contentType": "application/json", "notes": [], "descriptionHTML": "

Users with push access can create deployment statuses for a given deployment.

\n

GitHub Apps require read & write access to \"Deployments\" and read-only access to \"Repo contents\" (for private repos). OAuth Apps require the repo_deployment scope.

", @@ -52538,10 +52504,10 @@ ] }, "slug": "get-a-deployment-status", - "category": "repos", - "categoryLabel": "Repos", - "subcategory": "deployments", - "subcategoryLabel": "Deployments", + "category": "deployments", + "categoryLabel": "Deployments", + "subcategory": "statuses", + "subcategoryLabel": "Statuses", "notes": [], "bodyParameters": [], "descriptionHTML": "

Users with pull access can view a deployment status for a deployment:

", @@ -55416,10 +55382,10 @@ "subcategory": "webhooks" }, "slug": "list-repository-webhooks", - "category": "repos", - "categoryLabel": "Repos", - "subcategory": "webhooks", - "subcategoryLabel": "Webhooks", + "category": "webhooks", + "categoryLabel": "Webhooks", + "subcategory": "repos", + "subcategoryLabel": "Repos", "notes": [], "descriptionHTML": "", "bodyParameters": [], @@ -55702,10 +55668,10 @@ "subcategory": "webhooks" }, "slug": "create-a-repository-webhook", - "category": "repos", - "categoryLabel": "Repos", - "subcategory": "webhooks", - "subcategoryLabel": "Webhooks", + "category": "webhooks", + "categoryLabel": "Webhooks", + "subcategory": "repos", + "subcategoryLabel": "Repos", "contentType": "application/json", "notes": [], "descriptionHTML": "

Repositories can have multiple webhooks installed. Each webhook should have a unique config. Multiple webhooks can\nshare the same config as long as those webhooks do not have any events that overlap.

", @@ -55982,10 +55948,10 @@ "subcategory": "webhooks" }, "slug": "get-a-repository-webhook", - "category": "repos", - "categoryLabel": "Repos", - "subcategory": "webhooks", - "subcategoryLabel": "Webhooks", + "category": "webhooks", + "categoryLabel": "Webhooks", + "subcategory": "repos", + "subcategoryLabel": "Repos", "notes": [], "bodyParameters": [], "descriptionHTML": "

Returns a webhook configured in a repository. To get only the webhook config properties, see \"Get a webhook configuration for a repository.\"

", @@ -56286,10 +56252,10 @@ "subcategory": "webhooks" }, "slug": "update-a-repository-webhook", - "category": "repos", - "categoryLabel": "Repos", - "subcategory": "webhooks", - "subcategoryLabel": "Webhooks", + "category": "webhooks", + "categoryLabel": "Webhooks", + "subcategory": "repos", + "subcategoryLabel": "Repos", "contentType": "application/json", "notes": [], "descriptionHTML": "

Updates a webhook configured in a repository. If you previously had a secret set, you must provide the same secret or set a new secret or the secret will be removed. If you are only updating individual webhook config properties, use \"Update a webhook configuration for a repository.\"

", @@ -56579,10 +56545,10 @@ "subcategory": "webhooks" }, "slug": "delete-a-repository-webhook", - "category": "repos", - "categoryLabel": "Repos", - "subcategory": "webhooks", - "subcategoryLabel": "Webhooks", + "category": "webhooks", + "categoryLabel": "Webhooks", + "subcategory": "repos", + "subcategoryLabel": "Repos", "notes": [], "descriptionHTML": "", "responses": [ @@ -56661,10 +56627,10 @@ "subcategory": "webhooks" }, "slug": "get-a-webhook-configuration-for-a-repository", - "category": "repos", - "categoryLabel": "Repos", - "subcategory": "webhooks", - "subcategoryLabel": "Webhooks", + "category": "webhooks", + "categoryLabel": "Webhooks", + "subcategory": "repo-config", + "subcategoryLabel": "Repo config", "notes": [], "bodyParameters": [], "descriptionHTML": "

Returns the webhook configuration for a repository. To get more information about the webhook, including the active state and events, use \"Get a repository webhook.\"

\n

Access tokens must have the read:repo_hook or repo scope, and GitHub Apps must have the repository_hooks:read permission.

", @@ -56806,10 +56772,10 @@ "subcategory": "webhooks" }, "slug": "update-a-webhook-configuration-for-a-repository", - "category": "repos", - "categoryLabel": "Repos", - "subcategory": "webhooks", - "subcategoryLabel": "Webhooks", + "category": "webhooks", + "categoryLabel": "Webhooks", + "subcategory": "repo-config", + "subcategoryLabel": "Repo config", "contentType": "application/json", "notes": [], "descriptionHTML": "

Updates the webhook configuration for a repository. To update more information about the webhook, including the active state and events, use \"Update a repository webhook.\"

\n

Access tokens must have the write:repo_hook or repo scope, and GitHub Apps must have the repository_hooks:write permission.

", @@ -56934,10 +56900,10 @@ "subcategory": "webhooks" }, "slug": "ping-a-repository-webhook", - "category": "repos", - "categoryLabel": "Repos", - "subcategory": "webhooks", - "subcategoryLabel": "Webhooks", + "category": "webhooks", + "categoryLabel": "Webhooks", + "subcategory": "repos", + "subcategoryLabel": "Repos", "notes": [], "responses": [ { @@ -57016,10 +56982,10 @@ "subcategory": "webhooks" }, "slug": "test-the-push-repository-webhook", - "category": "repos", - "categoryLabel": "Repos", - "subcategory": "webhooks", - "subcategoryLabel": "Webhooks", + "category": "webhooks", + "categoryLabel": "Webhooks", + "subcategory": "repos", + "subcategoryLabel": "Repos", "notes": [], "responses": [ { @@ -57186,8 +57152,8 @@ "subcategory": "invitations" }, "slug": "list-repository-invitations", - "category": "repos", - "categoryLabel": "Repos", + "category": "collaborators", + "categoryLabel": "Collaborators", "subcategory": "invitations", "subcategoryLabel": "Invitations", "notes": [], @@ -57293,8 +57259,8 @@ "subcategory": "invitations" }, "slug": "update-a-repository-invitation", - "category": "repos", - "categoryLabel": "Repos", + "category": "collaborators", + "categoryLabel": "Collaborators", "subcategory": "invitations", "subcategoryLabel": "Invitations", "contentType": "application/json", @@ -57390,8 +57356,8 @@ "subcategory": "invitations" }, "slug": "delete-a-repository-invitation", - "category": "repos", - "categoryLabel": "Repos", + "category": "collaborators", + "categoryLabel": "Collaborators", "subcategory": "invitations", "subcategoryLabel": "Invitations", "notes": [], @@ -61493,8 +61459,8 @@ "subcategory": "keys" }, "slug": "list-deploy-keys", - "category": "repos", - "categoryLabel": "Repos", + "category": "deployments", + "categoryLabel": "Deployments", "subcategory": "keys", "subcategoryLabel": "Keys", "notes": [], @@ -61609,8 +61575,8 @@ "subcategory": "keys" }, "slug": "create-a-deploy-key", - "category": "repos", - "categoryLabel": "Repos", + "category": "deployments", + "categoryLabel": "Deployments", "subcategory": "keys", "subcategoryLabel": "Keys", "contentType": "application/json", @@ -61722,8 +61688,8 @@ "subcategory": "keys" }, "slug": "get-a-deploy-key", - "category": "repos", - "categoryLabel": "Repos", + "category": "deployments", + "categoryLabel": "Deployments", "subcategory": "keys", "subcategoryLabel": "Keys", "notes": [], @@ -61806,8 +61772,8 @@ "subcategory": "keys" }, "slug": "delete-a-deploy-key", - "category": "repos", - "categoryLabel": "Repos", + "category": "deployments", + "categoryLabel": "Deployments", "subcategory": "keys", "subcategoryLabel": "Keys", "notes": [], @@ -62616,10 +62582,8 @@ "subcategory": "merging" }, "slug": "merge-a-branch", - "category": "repos", - "categoryLabel": "Repos", - "subcategory": "merging", - "subcategoryLabel": "Merging", + "category": "branches", + "categoryLabel": "Branches", "contentType": "application/json", "notes": [], "descriptionHTML": "", @@ -63754,10 +63718,8 @@ "subcategory": "pages" }, "slug": "get-a-github-enterprise-server-pages-site", - "category": "repos", - "categoryLabel": "Repos", - "subcategory": "pages", - "subcategoryLabel": "Pages", + "category": "pages", + "categoryLabel": "Pages", "notes": [], "descriptionHTML": "", "bodyParameters": [], @@ -63926,10 +63888,8 @@ ] }, "slug": "create-a-github-enterprise-server-pages-site", - "category": "repos", - "categoryLabel": "Repos", - "subcategory": "pages", - "subcategoryLabel": "Pages", + "category": "pages", + "categoryLabel": "Pages", "contentType": "application/json", "notes": [], "descriptionHTML": "

Configures a GitHub Enterprise Server Pages site. For more information, see \"About GitHub Pages.\"

", @@ -64184,10 +64144,8 @@ "subcategory": "pages" }, "slug": "update-information-about-a-github-enterprise-server-pages-site", - "category": "repos", - "categoryLabel": "Repos", - "subcategory": "pages", - "subcategoryLabel": "Pages", + "category": "pages", + "categoryLabel": "Pages", "contentType": "application/json", "notes": [], "responses": [ @@ -64339,10 +64297,8 @@ ] }, "slug": "delete-a-github-enterprise-server-pages-site", - "category": "repos", - "categoryLabel": "Repos", - "subcategory": "pages", - "subcategoryLabel": "Pages", + "category": "pages", + "categoryLabel": "Pages", "notes": [], "descriptionHTML": "", "responses": [ @@ -64437,10 +64393,8 @@ "subcategory": "pages" }, "slug": "list-github-enterprise-server-pages-builds", - "category": "repos", - "categoryLabel": "Repos", - "subcategory": "pages", - "subcategoryLabel": "Pages", + "category": "pages", + "categoryLabel": "Pages", "notes": [], "descriptionHTML": "", "bodyParameters": [], @@ -64506,10 +64460,8 @@ "subcategory": "pages" }, "slug": "request-a-github-enterprise-server-pages-build", - "category": "repos", - "categoryLabel": "Repos", - "subcategory": "pages", - "subcategoryLabel": "Pages", + "category": "pages", + "categoryLabel": "Pages", "notes": [], "bodyParameters": [], "descriptionHTML": "

You can request that your site be built from the latest revision on the default branch. This has the same effect as pushing a commit to your default branch, but does not require an additional commit. Manually triggering page builds can be helpful when diagnosing build warnings and failures.

\n

Build requests are limited to one concurrent build per repository and one concurrent build per requester. If you request a build while another is still in progress, the second request will be queued until the first completes.

", @@ -64575,10 +64527,8 @@ "subcategory": "pages" }, "slug": "get-latest-pages-build", - "category": "repos", - "categoryLabel": "Repos", - "subcategory": "pages", - "subcategoryLabel": "Pages", + "category": "pages", + "categoryLabel": "Pages", "notes": [], "descriptionHTML": "", "bodyParameters": [], @@ -64653,10 +64603,8 @@ "subcategory": "pages" }, "slug": "get-github-enterprise-server-pages-build", - "category": "repos", - "categoryLabel": "Repos", - "subcategory": "pages", - "subcategoryLabel": "Pages", + "category": "pages", + "categoryLabel": "Pages", "notes": [], "descriptionHTML": "", "bodyParameters": [], @@ -70122,10 +70070,8 @@ "subcategory": "releases" }, "slug": "list-releases", - "category": "repos", - "categoryLabel": "Repos", - "subcategory": "releases", - "subcategoryLabel": "Releases", + "category": "releases", + "categoryLabel": "Releases", "notes": [], "bodyParameters": [], "descriptionHTML": "

This returns a list of releases, which does not include regular Git tags that have not been associated with a release. To get a list of Git tags, use the Repository Tags API.

\n

Information about published releases are available to everyone. Only users with push access will receive listings for draft releases.

", @@ -70276,10 +70222,8 @@ "subcategory": "releases" }, "slug": "create-a-release", - "category": "repos", - "categoryLabel": "Repos", - "subcategory": "releases", - "subcategoryLabel": "Releases", + "category": "releases", + "categoryLabel": "Releases", "contentType": "application/json", "notes": [], "descriptionHTML": "

Users with push access to the repository can create a release.

\n

This endpoint triggers notifications. Creating content too quickly using this endpoint may result in secondary rate limiting. See \"Secondary rate limits\" and \"Dealing with secondary rate limits\" for details.

", @@ -70418,10 +70362,10 @@ "subcategory": "releases" }, "slug": "get-a-release-asset", - "category": "repos", - "categoryLabel": "Repos", - "subcategory": "releases", - "subcategoryLabel": "Releases", + "category": "releases", + "categoryLabel": "Releases", + "subcategory": "assets", + "subcategoryLabel": "Assets", "notes": [], "bodyParameters": [], "descriptionHTML": "

To download the asset's binary content, set the Accept header of the request to application/octet-stream. The API will either redirect the client to the location, or stream it directly if possible. API clients should handle both a 200 or 302 response.

", @@ -70555,10 +70499,10 @@ "subcategory": "releases" }, "slug": "update-a-release-asset", - "category": "repos", - "categoryLabel": "Repos", - "subcategory": "releases", - "subcategoryLabel": "Releases", + "category": "releases", + "categoryLabel": "Releases", + "subcategory": "assets", + "subcategoryLabel": "Assets", "contentType": "application/json", "notes": [], "descriptionHTML": "

Users with push access to the repository can edit a release asset.

", @@ -70663,10 +70607,10 @@ "subcategory": "releases" }, "slug": "delete-a-release-asset", - "category": "repos", - "categoryLabel": "Repos", - "subcategory": "releases", - "subcategoryLabel": "Releases", + "category": "releases", + "categoryLabel": "Releases", + "subcategory": "assets", + "subcategoryLabel": "Assets", "notes": [], "descriptionHTML": "", "responses": [ @@ -70731,10 +70675,8 @@ "subcategory": "releases" }, "slug": "get-the-latest-release", - "category": "repos", - "categoryLabel": "Repos", - "subcategory": "releases", - "subcategoryLabel": "Releases", + "category": "releases", + "categoryLabel": "Releases", "notes": [], "bodyParameters": [], "descriptionHTML": "

View the latest published full release for the repository.

\n

The latest release is the most recent non-prerelease, non-draft release, sorted by the created_at attribute. The created_at attribute is the date of the commit used for the release, and not the date when the release was drafted or published.

", @@ -70811,10 +70753,8 @@ "subcategory": "releases" }, "slug": "get-a-release-by-tag-name", - "category": "repos", - "categoryLabel": "Repos", - "subcategory": "releases", - "subcategoryLabel": "Releases", + "category": "releases", + "categoryLabel": "Releases", "notes": [], "bodyParameters": [], "descriptionHTML": "

Get a published release with the specified tag.

", @@ -70895,10 +70835,8 @@ "subcategory": "releases" }, "slug": "get-a-release", - "category": "repos", - "categoryLabel": "Repos", - "subcategory": "releases", - "subcategoryLabel": "Releases", + "category": "releases", + "categoryLabel": "Releases", "notes": [], "bodyParameters": [], "descriptionHTML": "

Note: This returns an upload_url key corresponding to the endpoint for uploading release assets. This key is a hypermedia resource.

", @@ -71053,10 +70991,8 @@ "subcategory": "releases" }, "slug": "update-a-release", - "category": "repos", - "categoryLabel": "Repos", - "subcategory": "releases", - "subcategoryLabel": "Releases", + "category": "releases", + "categoryLabel": "Releases", "contentType": "application/json", "notes": [], "descriptionHTML": "

Users with push access to the repository can edit a release.

", @@ -71188,10 +71124,8 @@ "subcategory": "releases" }, "slug": "delete-a-release", - "category": "repos", - "categoryLabel": "Repos", - "subcategory": "releases", - "subcategoryLabel": "Releases", + "category": "releases", + "categoryLabel": "Releases", "notes": [], "responses": [ { @@ -71286,10 +71220,10 @@ "subcategory": "releases" }, "slug": "list-release-assets", - "category": "repos", - "categoryLabel": "Repos", - "subcategory": "releases", - "subcategoryLabel": "Releases", + "category": "releases", + "categoryLabel": "Releases", + "subcategory": "assets", + "subcategoryLabel": "Assets", "notes": [], "descriptionHTML": "", "bodyParameters": [], @@ -71404,10 +71338,10 @@ "subcategory": "releases" }, "slug": "upload-a-release-asset", - "category": "repos", - "categoryLabel": "Repos", - "subcategory": "releases", - "subcategoryLabel": "Releases", + "category": "releases", + "categoryLabel": "Releases", + "subcategory": "assets", + "subcategoryLabel": "Assets", "contentType": "*/*", "notes": [], "bodyParameters": [], @@ -71978,8 +71912,8 @@ "subcategory": "statistics" }, "slug": "get-the-weekly-commit-activity", - "category": "repos", - "categoryLabel": "Repos", + "category": "metrics", + "categoryLabel": "Metrics", "subcategory": "statistics", "subcategoryLabel": "Statistics", "notes": [], @@ -72057,8 +71991,8 @@ "subcategory": "statistics" }, "slug": "get-the-last-year-of-commit-activity", - "category": "repos", - "categoryLabel": "Repos", + "category": "metrics", + "categoryLabel": "Metrics", "subcategory": "statistics", "subcategoryLabel": "Statistics", "notes": [], @@ -72136,8 +72070,8 @@ "subcategory": "statistics" }, "slug": "get-all-contributor-commit-activity", - "category": "repos", - "categoryLabel": "Repos", + "category": "metrics", + "categoryLabel": "Metrics", "subcategory": "statistics", "subcategoryLabel": "Statistics", "notes": [], @@ -72215,8 +72149,8 @@ "subcategory": "statistics" }, "slug": "get-the-weekly-commit-count", - "category": "repos", - "categoryLabel": "Repos", + "category": "metrics", + "categoryLabel": "Metrics", "subcategory": "statistics", "subcategoryLabel": "Statistics", "notes": [], @@ -72289,8 +72223,8 @@ "subcategory": "statistics" }, "slug": "get-the-hourly-commit-count-for-each-day", - "category": "repos", - "categoryLabel": "Repos", + "category": "metrics", + "categoryLabel": "Metrics", "subcategory": "statistics", "subcategoryLabel": "Statistics", "notes": [], @@ -72437,8 +72371,8 @@ "subcategory": "statuses" }, "slug": "create-a-commit-status", - "category": "repos", - "categoryLabel": "Repos", + "category": "commits", + "categoryLabel": "Commits", "subcategory": "statuses", "subcategoryLabel": "Statuses", "contentType": "application/json", @@ -82620,8 +82554,8 @@ "subcategory": "invitations" }, "slug": "list-repository-invitations-for-the-authenticated-user", - "category": "repos", - "categoryLabel": "Repos", + "category": "collaborators", + "categoryLabel": "Collaborators", "subcategory": "invitations", "subcategoryLabel": "Invitations", "notes": [], @@ -82701,8 +82635,8 @@ "subcategory": "invitations" }, "slug": "accept-a-repository-invitation", - "category": "repos", - "categoryLabel": "Repos", + "category": "collaborators", + "categoryLabel": "Collaborators", "subcategory": "invitations", "subcategoryLabel": "Invitations", "notes": [], @@ -82781,8 +82715,8 @@ "subcategory": "invitations" }, "slug": "decline-a-repository-invitation", - "category": "repos", - "categoryLabel": "Repos", + "category": "collaborators", + "categoryLabel": "Collaborators", "subcategory": "invitations", "subcategoryLabel": "Invitations", "notes": [], diff --git a/lib/rest/static/decorated/ghes-3.2.json b/lib/rest/static/decorated/ghes-3.2.json index 9ef354c394..ac8afb5345 100644 --- a/lib/rest/static/decorated/ghes-3.2.json +++ b/lib/rest/static/decorated/ghes-3.2.json @@ -37204,10 +37204,8 @@ "subcategory": "branches" }, "slug": "list-branches", - "category": "repos", - "categoryLabel": "Repos", - "subcategory": "branches", - "subcategoryLabel": "Branches", + "category": "branches", + "categoryLabel": "Branches", "notes": [], "descriptionHTML": "", "bodyParameters": [], @@ -37289,10 +37287,8 @@ "subcategory": "branches" }, "slug": "get-a-branch", - "category": "repos", - "categoryLabel": "Repos", - "subcategory": "branches", - "subcategoryLabel": "Branches", + "category": "branches", + "categoryLabel": "Branches", "notes": [], "descriptionHTML": "", "responses": [ @@ -37390,10 +37386,10 @@ ] }, "slug": "get-branch-protection", - "category": "repos", - "categoryLabel": "Repos", - "subcategory": "branches", - "subcategoryLabel": "Branches", + "category": "branches", + "categoryLabel": "Branches", + "subcategory": "branch-protection", + "subcategoryLabel": "Branch protection", "notes": [], "bodyParameters": [], "descriptionHTML": "

Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see GitHub's products in the GitHub Help documentation.

", @@ -38154,10 +38150,10 @@ ] }, "slug": "update-branch-protection", - "category": "repos", - "categoryLabel": "Repos", - "subcategory": "branches", - "subcategoryLabel": "Branches", + "category": "branches", + "categoryLabel": "Branches", + "subcategory": "branch-protection", + "subcategoryLabel": "Branch protection", "contentType": "application/json", "notes": [], "responses": [ @@ -38859,10 +38855,10 @@ "subcategory": "branches" }, "slug": "delete-branch-protection", - "category": "repos", - "categoryLabel": "Repos", - "subcategory": "branches", - "subcategoryLabel": "Branches", + "category": "branches", + "categoryLabel": "Branches", + "subcategory": "branch-protection", + "subcategoryLabel": "Branch protection", "notes": [], "responses": [ { @@ -38943,10 +38939,10 @@ "subcategory": "branches" }, "slug": "get-admin-branch-protection", - "category": "repos", - "categoryLabel": "Repos", - "subcategory": "branches", - "subcategoryLabel": "Branches", + "category": "branches", + "categoryLabel": "Branches", + "subcategory": "branch-protection", + "subcategoryLabel": "Branch protection", "notes": [], "bodyParameters": [], "descriptionHTML": "

Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see GitHub's products in the GitHub Help documentation.

", @@ -39023,10 +39019,10 @@ "subcategory": "branches" }, "slug": "set-admin-branch-protection", - "category": "repos", - "categoryLabel": "Repos", - "subcategory": "branches", - "subcategoryLabel": "Branches", + "category": "branches", + "categoryLabel": "Branches", + "subcategory": "branch-protection", + "subcategoryLabel": "Branch protection", "notes": [], "bodyParameters": [], "descriptionHTML": "

Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see GitHub's products in the GitHub Help documentation.

\n

Adding admin enforcement requires admin or owner permissions to the repository and branch protection to be enabled.

", @@ -39103,10 +39099,10 @@ "subcategory": "branches" }, "slug": "delete-admin-branch-protection", - "category": "repos", - "categoryLabel": "Repos", - "subcategory": "branches", - "subcategoryLabel": "Branches", + "category": "branches", + "categoryLabel": "Branches", + "subcategory": "branch-protection", + "subcategoryLabel": "Branch protection", "notes": [], "responses": [ { @@ -39194,10 +39190,10 @@ ] }, "slug": "get-pull-request-review-protection", - "category": "repos", - "categoryLabel": "Repos", - "subcategory": "branches", - "subcategoryLabel": "Branches", + "category": "branches", + "categoryLabel": "Branches", + "subcategory": "branch-protection", + "subcategoryLabel": "Branch protection", "notes": [], "bodyParameters": [], "descriptionHTML": "

Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see GitHub's products in the GitHub Help documentation.

", @@ -39408,10 +39404,10 @@ ] }, "slug": "update-pull-request-review-protection", - "category": "repos", - "categoryLabel": "Repos", - "subcategory": "branches", - "subcategoryLabel": "Branches", + "category": "branches", + "categoryLabel": "Branches", + "subcategory": "branch-protection", + "subcategoryLabel": "Branch protection", "contentType": "application/json", "notes": [], "descriptionHTML": "

Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see GitHub's products in the GitHub Help documentation.

\n

Updating pull request review enforcement requires admin or owner permissions to the repository and branch protection to be enabled.

\n

Note: Passing new arrays of users and teams replaces their previous values.

", @@ -39589,10 +39585,10 @@ "subcategory": "branches" }, "slug": "delete-pull-request-review-protection", - "category": "repos", - "categoryLabel": "Repos", - "subcategory": "branches", - "subcategoryLabel": "Branches", + "category": "branches", + "categoryLabel": "Branches", + "subcategory": "branch-protection", + "subcategoryLabel": "Branch protection", "notes": [], "responses": [ { @@ -39680,10 +39676,10 @@ ] }, "slug": "get-commit-signature-protection", - "category": "repos", - "categoryLabel": "Repos", - "subcategory": "branches", - "subcategoryLabel": "Branches", + "category": "branches", + "categoryLabel": "Branches", + "subcategory": "branch-protection", + "subcategoryLabel": "Branch protection", "notes": [], "bodyParameters": [], "descriptionHTML": "

Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see GitHub's products in the GitHub Help documentation.

\n

When authenticated with admin or owner permissions to the repository, you can use this endpoint to check whether a branch requires signed commits. An enabled status of true indicates you must sign commits on this branch. For more information, see Signing commits with GPG in GitHub Help.

\n

Note: You must enable branch protection to require signed commits.

", @@ -39772,10 +39768,10 @@ ] }, "slug": "create-commit-signature-protection", - "category": "repos", - "categoryLabel": "Repos", - "subcategory": "branches", - "subcategoryLabel": "Branches", + "category": "branches", + "categoryLabel": "Branches", + "subcategory": "branch-protection", + "subcategoryLabel": "Branch protection", "notes": [], "bodyParameters": [], "descriptionHTML": "

Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see GitHub's products in the GitHub Help documentation.

\n

When authenticated with admin or owner permissions to the repository, you can use this endpoint to require signed commits on a branch. You must enable branch protection to require signed commits.

", @@ -39864,10 +39860,10 @@ ] }, "slug": "delete-commit-signature-protection", - "category": "repos", - "categoryLabel": "Repos", - "subcategory": "branches", - "subcategoryLabel": "Branches", + "category": "branches", + "categoryLabel": "Branches", + "subcategory": "branch-protection", + "subcategoryLabel": "Branch protection", "notes": [], "responses": [ { @@ -39948,10 +39944,10 @@ "subcategory": "branches" }, "slug": "get-status-checks-protection", - "category": "repos", - "categoryLabel": "Repos", - "subcategory": "branches", - "subcategoryLabel": "Branches", + "category": "branches", + "categoryLabel": "Branches", + "subcategory": "branch-protection", + "subcategoryLabel": "Branch protection", "notes": [], "bodyParameters": [], "descriptionHTML": "

Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see GitHub's products in the GitHub Help documentation.

", @@ -40073,10 +40069,10 @@ "subcategory": "branches" }, "slug": "update-status-check-protection", - "category": "repos", - "categoryLabel": "Repos", - "subcategory": "branches", - "subcategoryLabel": "Branches", + "category": "branches", + "categoryLabel": "Branches", + "subcategory": "branch-protection", + "subcategoryLabel": "Branch protection", "contentType": "application/json", "notes": [], "descriptionHTML": "

Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see GitHub's products in the GitHub Help documentation.

\n

Updating required status checks requires admin or owner permissions to the repository and branch protection to be enabled.

", @@ -40187,10 +40183,10 @@ "subcategory": "branches" }, "slug": "remove-status-check-protection", - "category": "repos", - "categoryLabel": "Repos", - "subcategory": "branches", - "subcategoryLabel": "Branches", + "category": "branches", + "categoryLabel": "Branches", + "subcategory": "branch-protection", + "subcategoryLabel": "Branch protection", "notes": [], "responses": [ { @@ -40266,10 +40262,10 @@ "subcategory": "branches" }, "slug": "get-all-status-check-contexts", - "category": "repos", - "categoryLabel": "Repos", - "subcategory": "branches", - "subcategoryLabel": "Branches", + "category": "branches", + "categoryLabel": "Branches", + "subcategory": "branch-protection", + "subcategoryLabel": "Branch protection", "notes": [], "bodyParameters": [], "descriptionHTML": "

Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see GitHub's products in the GitHub Help documentation.

", @@ -40395,10 +40391,10 @@ "subcategory": "branches" }, "slug": "add-status-check-contexts", - "category": "repos", - "categoryLabel": "Repos", - "subcategory": "branches", - "subcategoryLabel": "Branches", + "category": "branches", + "categoryLabel": "Branches", + "subcategory": "branch-protection", + "subcategoryLabel": "Branch protection", "contentType": "application/json", "notes": [], "descriptionHTML": "

Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see GitHub's products in the GitHub Help documentation.

", @@ -40548,10 +40544,10 @@ "subcategory": "branches" }, "slug": "set-status-check-contexts", - "category": "repos", - "categoryLabel": "Repos", - "subcategory": "branches", - "subcategoryLabel": "Branches", + "category": "branches", + "categoryLabel": "Branches", + "subcategory": "branch-protection", + "subcategoryLabel": "Branch protection", "contentType": "application/json", "notes": [], "descriptionHTML": "

Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see GitHub's products in the GitHub Help documentation.

", @@ -40695,10 +40691,10 @@ "subcategory": "branches" }, "slug": "remove-status-check-contexts", - "category": "repos", - "categoryLabel": "Repos", - "subcategory": "branches", - "subcategoryLabel": "Branches", + "category": "branches", + "categoryLabel": "Branches", + "subcategory": "branch-protection", + "subcategoryLabel": "Branch protection", "contentType": "application/json", "notes": [], "descriptionHTML": "

Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see GitHub's products in the GitHub Help documentation.

", @@ -40799,10 +40795,10 @@ "subcategory": "branches" }, "slug": "get-access-restrictions", - "category": "repos", - "categoryLabel": "Repos", - "subcategory": "branches", - "subcategoryLabel": "Branches", + "category": "branches", + "categoryLabel": "Branches", + "subcategory": "branch-protection", + "subcategoryLabel": "Branch protection", "notes": [], "bodyParameters": [], "descriptionHTML": "

Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see GitHub's products in the GitHub Help documentation.

\n

Lists who has access to this protected branch.

\n

Note: Users, apps, and teams restrictions are only available for organization-owned repositories.

", @@ -40884,10 +40880,10 @@ "subcategory": "branches" }, "slug": "delete-access-restrictions", - "category": "repos", - "categoryLabel": "Repos", - "subcategory": "branches", - "subcategoryLabel": "Branches", + "category": "branches", + "categoryLabel": "Branches", + "subcategory": "branch-protection", + "subcategoryLabel": "Branch protection", "notes": [], "responses": [ { @@ -40963,10 +40959,10 @@ "subcategory": "branches" }, "slug": "get-apps-with-access-to-the-protected-branch", - "category": "repos", - "categoryLabel": "Repos", - "subcategory": "branches", - "subcategoryLabel": "Branches", + "category": "branches", + "categoryLabel": "Branches", + "subcategory": "branch-protection", + "subcategoryLabel": "Branch protection", "notes": [], "bodyParameters": [], "descriptionHTML": "

Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see GitHub's products in the GitHub Help documentation.

\n

Lists the GitHub Apps that have push access to this branch. Only installed GitHub Apps with write access to the contents permission can be added as authorized actors on a protected branch.

", @@ -41091,10 +41087,10 @@ "subcategory": "branches" }, "slug": "add-app-access-restrictions", - "category": "repos", - "categoryLabel": "Repos", - "subcategory": "branches", - "subcategoryLabel": "Branches", + "category": "branches", + "categoryLabel": "Branches", + "subcategory": "branch-protection", + "subcategoryLabel": "Branch protection", "contentType": "application/json", "notes": [], "descriptionHTML": "

Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see GitHub's products in the GitHub Help documentation.

\n

Grants the specified apps push access for this branch. Only installed GitHub Apps with write access to the contents permission can be added as authorized actors on a protected branch.

\n\n\n\n\n\n\n\n\n\n\n\n\n\n
TypeDescription
arrayThe GitHub Apps that have push access to this branch. Use the app's slug. Note: The list of users, apps, and teams in total is limited to 100 items.
", @@ -41233,10 +41229,10 @@ "subcategory": "branches" }, "slug": "set-app-access-restrictions", - "category": "repos", - "categoryLabel": "Repos", - "subcategory": "branches", - "subcategoryLabel": "Branches", + "category": "branches", + "categoryLabel": "Branches", + "subcategory": "branch-protection", + "subcategoryLabel": "Branch protection", "contentType": "application/json", "notes": [], "descriptionHTML": "

Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see GitHub's products in the GitHub Help documentation.

\n

Replaces the list of apps that have push access to this branch. This removes all apps that previously had push access and grants push access to the new list of apps. Only installed GitHub Apps with write access to the contents permission can be added as authorized actors on a protected branch.

\n\n\n\n\n\n\n\n\n\n\n\n\n\n
TypeDescription
arrayThe GitHub Apps that have push access to this branch. Use the app's slug. Note: The list of users, apps, and teams in total is limited to 100 items.
", @@ -41374,10 +41370,10 @@ "subcategory": "branches" }, "slug": "remove-app-access-restrictions", - "category": "repos", - "categoryLabel": "Repos", - "subcategory": "branches", - "subcategoryLabel": "Branches", + "category": "branches", + "categoryLabel": "Branches", + "subcategory": "branch-protection", + "subcategoryLabel": "Branch protection", "contentType": "application/json", "notes": [], "descriptionHTML": "

Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see GitHub's products in the GitHub Help documentation.

\n

Removes the ability of an app to push to this branch. Only installed GitHub Apps with write access to the contents permission can be added as authorized actors on a protected branch.

\n\n\n\n\n\n\n\n\n\n\n\n\n\n
TypeDescription
arrayThe GitHub Apps that have push access to this branch. Use the app's slug. Note: The list of users, apps, and teams in total is limited to 100 items.
", @@ -41473,10 +41469,10 @@ "subcategory": "branches" }, "slug": "get-teams-with-access-to-the-protected-branch", - "category": "repos", - "categoryLabel": "Repos", - "subcategory": "branches", - "subcategoryLabel": "Branches", + "category": "branches", + "categoryLabel": "Branches", + "subcategory": "branch-protection", + "subcategoryLabel": "Branch protection", "notes": [], "bodyParameters": [], "descriptionHTML": "

Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see GitHub's products in the GitHub Help documentation.

\n

Lists the teams who have push access to this branch. The list includes child teams.

", @@ -41602,10 +41598,10 @@ "subcategory": "branches" }, "slug": "add-team-access-restrictions", - "category": "repos", - "categoryLabel": "Repos", - "subcategory": "branches", - "subcategoryLabel": "Branches", + "category": "branches", + "categoryLabel": "Branches", + "subcategory": "branch-protection", + "subcategoryLabel": "Branch protection", "contentType": "application/json", "notes": [], "descriptionHTML": "

Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see GitHub's products in the GitHub Help documentation.

\n

Grants the specified teams push access for this branch. You can also give push access to child teams.

\n\n\n\n\n\n\n\n\n\n\n\n\n\n
TypeDescription
arrayThe teams that can have push access. Use the team's slug. Note: The list of users, apps, and teams in total is limited to 100 items.
", @@ -41745,10 +41741,10 @@ "subcategory": "branches" }, "slug": "set-team-access-restrictions", - "category": "repos", - "categoryLabel": "Repos", - "subcategory": "branches", - "subcategoryLabel": "Branches", + "category": "branches", + "categoryLabel": "Branches", + "subcategory": "branch-protection", + "subcategoryLabel": "Branch protection", "contentType": "application/json", "notes": [], "descriptionHTML": "

Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see GitHub's products in the GitHub Help documentation.

\n

Replaces the list of teams that have push access to this branch. This removes all teams that previously had push access and grants push access to the new list of teams. Team restrictions include child teams.

\n\n\n\n\n\n\n\n\n\n\n\n\n\n
TypeDescription
arrayThe teams that can have push access. Use the team's slug. Note: The list of users, apps, and teams in total is limited to 100 items.
", @@ -41887,10 +41883,10 @@ "subcategory": "branches" }, "slug": "remove-team-access-restrictions", - "category": "repos", - "categoryLabel": "Repos", - "subcategory": "branches", - "subcategoryLabel": "Branches", + "category": "branches", + "categoryLabel": "Branches", + "subcategory": "branch-protection", + "subcategoryLabel": "Branch protection", "contentType": "application/json", "notes": [], "descriptionHTML": "

Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see GitHub's products in the GitHub Help documentation.

\n

Removes the ability of a team to push to this branch. You can also remove push access for child teams.

\n\n\n\n\n\n\n\n\n\n\n\n\n\n
TypeDescription
arrayTeams that should no longer have push access. Use the team's slug. Note: The list of users, apps, and teams in total is limited to 100 items.
", @@ -41986,10 +41982,10 @@ "subcategory": "branches" }, "slug": "get-users-with-access-to-the-protected-branch", - "category": "repos", - "categoryLabel": "Repos", - "subcategory": "branches", - "subcategoryLabel": "Branches", + "category": "branches", + "categoryLabel": "Branches", + "subcategory": "branch-protection", + "subcategoryLabel": "Branch protection", "notes": [], "bodyParameters": [], "descriptionHTML": "

Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see GitHub's products in the GitHub Help documentation.

\n

Lists the people who have push access to this branch.

", @@ -42114,10 +42110,10 @@ "subcategory": "branches" }, "slug": "add-user-access-restrictions", - "category": "repos", - "categoryLabel": "Repos", - "subcategory": "branches", - "subcategoryLabel": "Branches", + "category": "branches", + "categoryLabel": "Branches", + "subcategory": "branch-protection", + "subcategoryLabel": "Branch protection", "contentType": "application/json", "notes": [], "descriptionHTML": "

Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see GitHub's products in the GitHub Help documentation.

\n

Grants the specified people push access for this branch.

\n\n\n\n\n\n\n\n\n\n\n\n\n\n
TypeDescription
arrayUsernames for people who can have push access. Note: The list of users, apps, and teams in total is limited to 100 items.
", @@ -42256,10 +42252,10 @@ "subcategory": "branches" }, "slug": "set-user-access-restrictions", - "category": "repos", - "categoryLabel": "Repos", - "subcategory": "branches", - "subcategoryLabel": "Branches", + "category": "branches", + "categoryLabel": "Branches", + "subcategory": "branch-protection", + "subcategoryLabel": "Branch protection", "contentType": "application/json", "notes": [], "descriptionHTML": "

Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see GitHub's products in the GitHub Help documentation.

\n

Replaces the list of people that have push access to this branch. This removes all people that previously had push access and grants push access to the new list of people.

\n\n\n\n\n\n\n\n\n\n\n\n\n\n
TypeDescription
arrayUsernames for people who can have push access. Note: The list of users, apps, and teams in total is limited to 100 items.
", @@ -42397,10 +42393,10 @@ "subcategory": "branches" }, "slug": "remove-user-access-restrictions", - "category": "repos", - "categoryLabel": "Repos", - "subcategory": "branches", - "subcategoryLabel": "Branches", + "category": "branches", + "categoryLabel": "Branches", + "subcategory": "branch-protection", + "subcategoryLabel": "Branch protection", "contentType": "application/json", "notes": [], "descriptionHTML": "

Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see GitHub's products in the GitHub Help documentation.

\n

Removes the ability of a user to push to this branch.

\n\n\n\n\n\n\n\n\n\n\n\n\n\n
TypeDescription
arrayUsernames of the people who should no longer have push access. Note: The list of users, apps, and teams in total is limited to 100 items.
", @@ -42523,10 +42519,8 @@ "subcategory": "branches" }, "slug": "rename-a-branch", - "category": "repos", - "categoryLabel": "Repos", - "subcategory": "branches", - "subcategoryLabel": "Branches", + "category": "branches", + "categoryLabel": "Branches", "contentType": "application/json", "notes": [], "descriptionHTML": "

Renames a branch in a repository.

\n

Note: Although the API responds immediately, the branch rename process might take some extra time to complete in the background. You won't be able to push to the old branch name while the rename process is in progress. For more information, see \"Renaming a branch\".

\n

The permissions required to use this endpoint depends on whether you are renaming the default branch.

\n

To rename a non-default branch:

\n
    \n
  • Users must have push access.
  • \n
  • GitHub Apps must have the contents:write repository permission.
  • \n
\n

To rename the default branch:

\n
    \n
  • Users must have admin or owner permissions.
  • \n
  • GitHub Apps must have the administration:write repository permission.
  • \n
", @@ -48785,10 +48779,8 @@ "subcategory": "collaborators" }, "slug": "list-repository-collaborators", - "category": "repos", - "categoryLabel": "Repos", - "subcategory": "collaborators", - "subcategoryLabel": "Collaborators", + "category": "collaborators", + "categoryLabel": "Collaborators", "notes": [], "bodyParameters": [], "descriptionHTML": "

For organization-owned repositories, the list of collaborators includes outside collaborators, organization members that are direct collaborators, organization members with access through team memberships, organization members with access through default organization permissions, and organization owners.

\n

Team members will include the members of child teams.

\n

You must have push access to the repository in order to list collaborators.

", @@ -48868,10 +48860,8 @@ "subcategory": "collaborators" }, "slug": "check-if-a-user-is-a-repository-collaborator", - "category": "repos", - "categoryLabel": "Repos", - "subcategory": "collaborators", - "subcategoryLabel": "Collaborators", + "category": "collaborators", + "categoryLabel": "Collaborators", "notes": [], "responses": [ { @@ -48989,10 +48979,8 @@ "subcategory": "collaborators" }, "slug": "add-a-repository-collaborator", - "category": "repos", - "categoryLabel": "Repos", - "subcategory": "collaborators", - "subcategoryLabel": "Collaborators", + "category": "collaborators", + "categoryLabel": "Collaborators", "contentType": "application/json", "notes": [], "descriptionHTML": "

This endpoint triggers notifications. Creating content too quickly using this endpoint may result in secondary rate limiting. See \"Secondary rate limits\" and \"Dealing with secondary rate limits\" for details.

\n

For more information on permission levels, see \"Repository permission levels for an organization\". There are restrictions on which permissions can be granted to organization members when an organization base role is in place. In this case, the permission being given must be equal to or higher than the org base permission. Otherwise, the request will fail with:

\n
Cannot assign {member} permission of {role name}\n
\n

Note that, if you choose not to pass any parameters, you'll need to set Content-Length to zero when calling out to this endpoint. For more information, see \"HTTP verbs.\"

\n

The invitee will receive a notification that they have been invited to the repository, which they must accept or decline. They may do this via the notifications page, the email they receive, or by using the repository invitations API endpoints.

\n

Rate limits

\n

You are limited to sending 50 invitations to a repository per 24 hour period. Note there is no limit if you are inviting organization members to an organization repository.

", @@ -49110,10 +49098,8 @@ "subcategory": "collaborators" }, "slug": "remove-a-repository-collaborator", - "category": "repos", - "categoryLabel": "Repos", - "subcategory": "collaborators", - "subcategoryLabel": "Collaborators", + "category": "collaborators", + "categoryLabel": "Collaborators", "notes": [], "descriptionHTML": "", "responses": [ @@ -49187,10 +49173,8 @@ "subcategory": "collaborators" }, "slug": "get-repository-permissions-for-a-user", - "category": "repos", - "categoryLabel": "Repos", - "subcategory": "collaborators", - "subcategoryLabel": "Collaborators", + "category": "collaborators", + "categoryLabel": "Collaborators", "notes": [], "bodyParameters": [], "descriptionHTML": "

Checks the repository permission of a collaborator. The possible repository permissions are admin, write, read, and none.

", @@ -49288,8 +49272,8 @@ ] }, "slug": "list-commit-comments-for-a-repository", - "category": "repos", - "categoryLabel": "Repos", + "category": "commits", + "categoryLabel": "Commits", "subcategory": "comments", "subcategoryLabel": "Comments", "notes": [], @@ -49374,8 +49358,8 @@ ] }, "slug": "get-a-commit-comment", - "category": "repos", - "categoryLabel": "Repos", + "category": "commits", + "categoryLabel": "Commits", "subcategory": "comments", "subcategoryLabel": "Comments", "notes": [], @@ -49485,8 +49469,8 @@ "subcategory": "comments" }, "slug": "update-a-commit-comment", - "category": "repos", - "categoryLabel": "Repos", + "category": "commits", + "categoryLabel": "Commits", "subcategory": "comments", "subcategoryLabel": "Comments", "contentType": "application/json", @@ -49580,8 +49564,8 @@ "subcategory": "comments" }, "slug": "delete-a-commit-comment", - "category": "repos", - "categoryLabel": "Repos", + "category": "commits", + "categoryLabel": "Commits", "subcategory": "comments", "subcategoryLabel": "Comments", "notes": [], @@ -50101,10 +50085,8 @@ "subcategory": "commits" }, "slug": "list-commits", - "category": "repos", - "categoryLabel": "Repos", - "subcategory": "commits", - "subcategoryLabel": "Commits", + "category": "commits", + "categoryLabel": "Commits", "notes": [], "bodyParameters": [], "descriptionHTML": "

Signature verification object

\n

The response will include a verification object that describes the result of verifying the commit's signature. The following fields are included in the verification object:

\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n
NameTypeDescription
verifiedbooleanIndicates whether GitHub considers the signature in this commit to be verified.
reasonstringThe reason for verified value. Possible values and their meanings are enumerated in table below.
signaturestringThe signature that was extracted from the commit.
payloadstringThe value that was signed.
\n

These are the possible values for reason in the verification object:

\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n
ValueDescription
expired_keyThe key that made the signature is expired.
not_signing_keyThe \"signing\" flag is not among the usage flags in the GPG key that made the signature.
gpgverify_errorThere was an error communicating with the signature verification service.
gpgverify_unavailableThe signature verification service is currently unavailable.
unsignedThe object does not include a signature.
unknown_signature_typeA non-PGP signature was found in the commit.
no_userNo user was associated with the committer email address in the commit.
unverified_emailThe committer email address in the commit was associated with a user, but the email address is not verified on her/his account.
bad_emailThe committer email address in the commit is not included in the identities of the PGP key that made the signature.
unknown_keyThe key that made the signature has not been registered with any user's account.
malformed_signatureThere was an error parsing the signature.
invalidThe signature could not be cryptographically verified using the key whose key-id was found in the signature.
validNone of the above errors applied, so the signature is considered to be verified.
", @@ -50208,10 +50190,8 @@ ] }, "slug": "list-branches-for-head-commit", - "category": "repos", - "categoryLabel": "Repos", - "subcategory": "commits", - "subcategoryLabel": "Commits", + "category": "commits", + "categoryLabel": "Commits", "notes": [], "bodyParameters": [], "descriptionHTML": "

Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see GitHub's products in the GitHub Help documentation.

\n

Returns all branches where the given commit SHA is the HEAD, or latest commit for the branch.

", @@ -50320,8 +50300,8 @@ ] }, "slug": "list-commit-comments", - "category": "repos", - "categoryLabel": "Repos", + "category": "commits", + "categoryLabel": "Commits", "subcategory": "comments", "subcategoryLabel": "Comments", "notes": [], @@ -50458,8 +50438,8 @@ "subcategory": "comments" }, "slug": "create-a-commit-comment", - "category": "repos", - "categoryLabel": "Repos", + "category": "commits", + "categoryLabel": "Commits", "subcategory": "comments", "subcategoryLabel": "Comments", "contentType": "application/json", @@ -50613,10 +50593,8 @@ ] }, "slug": "list-pull-requests-associated-with-a-commit", - "category": "repos", - "categoryLabel": "Repos", - "subcategory": "commits", - "subcategoryLabel": "Commits", + "category": "commits", + "categoryLabel": "Commits", "notes": [], "bodyParameters": [], "descriptionHTML": "

Lists the merged pull request that introduced the commit to the repository. If the commit is not present in the default branch, additionally returns open pull requests associated with the commit. The results may include open and closed pull requests. Additional preview headers may be required to see certain details for associated pull requests, such as whether a pull request is in a draft state. For more information about previews that might affect this endpoint, see the List pull requests endpoint.

", @@ -50713,10 +50691,8 @@ "subcategory": "commits" }, "slug": "get-a-commit", - "category": "repos", - "categoryLabel": "Repos", - "subcategory": "commits", - "subcategoryLabel": "Commits", + "category": "commits", + "categoryLabel": "Commits", "notes": [], "bodyParameters": [], "descriptionHTML": "

Returns the contents of a single commit reference. You must have read access for the repository to use this endpoint.

\n

Note: If there are more than 300 files in the commit diff, the response will include pagination link headers for the remaining files, up to a limit of 3000 files. Each page contains the static commit information, and the only changes are to the file listing.

\n

You can pass the appropriate media type to fetch diff and patch formats. Diffs with binary data will have no patch property.

\n

To return only the SHA-1 hash of the commit reference, you can provide the sha custom media type in the Accept header. You can use this endpoint to check if a remote reference's SHA-1 hash is the same as your local reference's SHA-1 hash by providing the local SHA-1 reference as the ETag.

\n

Signature verification object

\n

The response will include a verification object that describes the result of verifying the commit's signature. The following fields are included in the verification object:

\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n
NameTypeDescription
verifiedbooleanIndicates whether GitHub considers the signature in this commit to be verified.
reasonstringThe reason for verified value. Possible values and their meanings are enumerated in table below.
signaturestringThe signature that was extracted from the commit.
payloadstringThe value that was signed.
\n

These are the possible values for reason in the verification object:

\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n
ValueDescription
expired_keyThe key that made the signature is expired.
not_signing_keyThe \"signing\" flag is not among the usage flags in the GPG key that made the signature.
gpgverify_errorThere was an error communicating with the signature verification service.
gpgverify_unavailableThe signature verification service is currently unavailable.
unsignedThe object does not include a signature.
unknown_signature_typeA non-PGP signature was found in the commit.
no_userNo user was associated with the committer email address in the commit.
unverified_emailThe committer email address in the commit was associated with a user, but the email address is not verified on her/his account.
bad_emailThe committer email address in the commit is not included in the identities of the PGP key that made the signature.
unknown_keyThe key that made the signature has not been registered with any user's account.
malformed_signatureThere was an error parsing the signature.
invalidThe signature could not be cryptographically verified using the key whose key-id was found in the signature.
validNone of the above errors applied, so the signature is considered to be verified.
", @@ -51098,8 +51074,8 @@ "subcategory": "statuses" }, "slug": "get-the-combined-status-for-a-specific-reference", - "category": "repos", - "categoryLabel": "Repos", + "category": "commits", + "categoryLabel": "Commits", "subcategory": "statuses", "subcategoryLabel": "Statuses", "notes": [], @@ -51203,8 +51179,8 @@ "subcategory": "statuses" }, "slug": "list-commit-statuses-for-a-reference", - "category": "repos", - "categoryLabel": "Repos", + "category": "commits", + "categoryLabel": "Commits", "subcategory": "statuses", "subcategoryLabel": "Statuses", "notes": [], @@ -51307,10 +51283,8 @@ "subcategory": "commits" }, "slug": "compare-two-commits", - "category": "repos", - "categoryLabel": "Repos", - "subcategory": "commits", - "subcategoryLabel": "Commits", + "category": "commits", + "categoryLabel": "Commits", "notes": [], "bodyParameters": [], "descriptionHTML": "

The basehead param is comprised of two parts: base and head. Both must be branch names in repo. To compare branches across other repositories in the same network as repo, use the format <USERNAME>:branch.

\n

The response from the API is equivalent to running the git log base..head command; however, commits are returned in chronological order. Pass the appropriate media type to fetch diff and patch formats.

\n

The response also includes details on the files that were changed between the two commits. This includes the status of the change (for example, if a file was added, removed, modified, or renamed), and details of the change itself. For example, files with a renamed status have a previous_filename field showing the previous filename of the file, and files with a modified status have a patch field showing the changes made to the file.

\n

Working with large comparisons

\n

To process a response with a large number of commits, you can use (per_page or page) to paginate the results. When using paging, the list of changed files is only returned with page 1, but includes all changed files for the entire comparison. For more information on working with pagination, see \"Traversing with pagination.\"

\n

When calling this API without any paging parameters (per_page or page), the returned list is limited to 250 commits and the last commit in the list is the most recent of the entire comparison. When a paging parameter is specified, the first commit in the returned list of each page is the earliest.

\n

Signature verification object

\n

The response will include a verification object that describes the result of verifying the commit's signature. The following fields are included in the verification object:

\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n
NameTypeDescription
verifiedbooleanIndicates whether GitHub considers the signature in this commit to be verified.
reasonstringThe reason for verified value. Possible values and their meanings are enumerated in table below.
signaturestringThe signature that was extracted from the commit.
payloadstringThe value that was signed.
\n

These are the possible values for reason in the verification object:

\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n
ValueDescription
expired_keyThe key that made the signature is expired.
not_signing_keyThe \"signing\" flag is not among the usage flags in the GPG key that made the signature.
gpgverify_errorThere was an error communicating with the signature verification service.
gpgverify_unavailableThe signature verification service is currently unavailable.
unsignedThe object does not include a signature.
unknown_signature_typeA non-PGP signature was found in the commit.
no_userNo user was associated with the committer email address in the commit.
unverified_emailThe committer email address in the commit was associated with a user, but the email address is not verified on her/his account.
bad_emailThe committer email address in the commit is not included in the identities of the PGP key that made the signature.
unknown_keyThe key that made the signature has not been registered with any user's account.
malformed_signatureThere was an error parsing the signature.
invalidThe signature could not be cryptographically verified using the key whose key-id was found in the signature.
validNone of the above errors applied, so the signature is considered to be verified.
", @@ -52797,10 +52771,8 @@ ] }, "slug": "list-deployments", - "category": "repos", - "categoryLabel": "Repos", - "subcategory": "deployments", - "subcategoryLabel": "Deployments", + "category": "deployments", + "categoryLabel": "Deployments", "notes": [], "bodyParameters": [], "descriptionHTML": "

Simple filtering of deployments is available via query parameters:

", @@ -53010,10 +52982,8 @@ ] }, "slug": "create-a-deployment", - "category": "repos", - "categoryLabel": "Repos", - "subcategory": "deployments", - "subcategoryLabel": "Deployments", + "category": "deployments", + "categoryLabel": "Deployments", "contentType": "application/json", "notes": [], "descriptionHTML": "

Deployments offer a few configurable parameters with certain defaults.

\n

The ref parameter can be any named branch, tag, or SHA. At GitHub Enterprise Server we often deploy branches and verify them\nbefore we merge a pull request.

\n

The environment parameter allows deployments to be issued to different runtime environments. Teams often have\nmultiple environments for verifying their applications, such as production, staging, and qa. This parameter\nmakes it easier to track which environments have requested deployments. The default environment is production.

\n

The auto_merge parameter is used to ensure that the requested ref is not behind the repository's default branch. If\nthe ref is behind the default branch for the repository, we will attempt to merge it for you. If the merge succeeds,\nthe API will return a successful merge commit. If merge conflicts prevent the merge from succeeding, the API will\nreturn a failure response.

\n

By default, commit statuses for every submitted context must be in a success\nstate. The required_contexts parameter allows you to specify a subset of contexts that must be success, or to\nspecify contexts that have not yet been submitted. You are not required to use commit statuses to deploy. If you do\nnot require any contexts or create any commit statuses, the deployment will always succeed.

\n

The payload parameter is available for any extra information that a deployment system might need. It is a JSON text\nfield that will be passed on when a deployment event is dispatched.

\n

The task parameter is used by the deployment system to allow different execution paths. In the web world this might\nbe deploy:migrations to run schema changes on the system. In the compiled world this could be a flag to compile an\napplication with debugging enabled.

\n

Users with repo or repo_deployment scopes can create a deployment for a given ref.

\n

Merged branch response

\n

You will see this response when GitHub automatically merges the base branch into the topic branch instead of creating\na deployment. This auto-merge happens when:

\n
    \n
  • Auto-merge option is enabled in the repository
  • \n
  • Topic branch does not include the latest changes on the base branch, which is master in the response example
  • \n
  • There are no merge conflicts
  • \n
\n

If there are no new commits in the base branch, a new request to create a deployment should give a successful\nresponse.

\n

Merge conflict response

\n

This error happens when the auto_merge option is enabled and when the default branch (in this case master), can't\nbe merged into the branch that's being deployed (in this case topic-branch), due to merge conflicts.

\n

Failed commit status checks

\n

This error happens when the required_contexts parameter indicates that one or more contexts need to have a success\nstatus for the commit to be deployed, but one or more of the required contexts do not have a state of success.

", @@ -53218,10 +53188,8 @@ ] }, "slug": "get-a-deployment", - "category": "repos", - "categoryLabel": "Repos", - "subcategory": "deployments", - "subcategoryLabel": "Deployments", + "category": "deployments", + "categoryLabel": "Deployments", "notes": [], "descriptionHTML": "", "bodyParameters": [], @@ -53302,10 +53270,8 @@ "subcategory": "deployments" }, "slug": "delete-a-deployment", - "category": "repos", - "categoryLabel": "Repos", - "subcategory": "deployments", - "subcategoryLabel": "Deployments", + "category": "deployments", + "categoryLabel": "Deployments", "notes": [], "responses": [ { @@ -53422,10 +53388,10 @@ ] }, "slug": "list-deployment-statuses", - "category": "repos", - "categoryLabel": "Repos", - "subcategory": "deployments", - "subcategoryLabel": "Deployments", + "category": "deployments", + "categoryLabel": "Deployments", + "subcategory": "statuses", + "subcategoryLabel": "Statuses", "notes": [], "bodyParameters": [], "descriptionHTML": "

Users with pull access can view deployment statuses for a deployment:

", @@ -53620,10 +53586,10 @@ ] }, "slug": "create-a-deployment-status", - "category": "repos", - "categoryLabel": "Repos", - "subcategory": "deployments", - "subcategoryLabel": "Deployments", + "category": "deployments", + "categoryLabel": "Deployments", + "subcategory": "statuses", + "subcategoryLabel": "Statuses", "contentType": "application/json", "notes": [], "descriptionHTML": "

Users with push access can create deployment statuses for a given deployment.

\n

GitHub Apps require read & write access to \"Deployments\" and read-only access to \"Repo contents\" (for private repos). OAuth Apps require the repo_deployment scope.

", @@ -53808,10 +53774,10 @@ ] }, "slug": "get-a-deployment-status", - "category": "repos", - "categoryLabel": "Repos", - "subcategory": "deployments", - "subcategoryLabel": "Deployments", + "category": "deployments", + "categoryLabel": "Deployments", + "subcategory": "statuses", + "subcategoryLabel": "Statuses", "notes": [], "bodyParameters": [], "descriptionHTML": "

Users with pull access can view a deployment status for a deployment:

", @@ -54021,8 +53987,8 @@ "subcategory": "environments" }, "slug": "get-all-environments", - "category": "repos", - "categoryLabel": "Repos", + "category": "deployments", + "categoryLabel": "Deployments", "subcategory": "environments", "subcategoryLabel": "Environments", "notes": [], @@ -54100,8 +54066,8 @@ "subcategory": "environments" }, "slug": "get-an-environment", - "category": "repos", - "categoryLabel": "Repos", + "category": "deployments", + "categoryLabel": "Deployments", "subcategory": "environments", "subcategoryLabel": "Environments", "notes": [], @@ -54334,8 +54300,8 @@ "subcategory": "environments" }, "slug": "create-or-update-an-environment", - "category": "repos", - "categoryLabel": "Repos", + "category": "deployments", + "categoryLabel": "Deployments", "subcategory": "environments", "subcategoryLabel": "Environments", "contentType": "application/json", @@ -54561,8 +54527,8 @@ "subcategory": "environments" }, "slug": "delete-an-environment", - "category": "repos", - "categoryLabel": "Repos", + "category": "deployments", + "categoryLabel": "Deployments", "subcategory": "environments", "subcategoryLabel": "Environments", "notes": [], @@ -57294,10 +57260,10 @@ "subcategory": "webhooks" }, "slug": "list-repository-webhooks", - "category": "repos", - "categoryLabel": "Repos", - "subcategory": "webhooks", - "subcategoryLabel": "Webhooks", + "category": "webhooks", + "categoryLabel": "Webhooks", + "subcategory": "repos", + "subcategoryLabel": "Repos", "notes": [], "descriptionHTML": "", "bodyParameters": [], @@ -57580,10 +57546,10 @@ "subcategory": "webhooks" }, "slug": "create-a-repository-webhook", - "category": "repos", - "categoryLabel": "Repos", - "subcategory": "webhooks", - "subcategoryLabel": "Webhooks", + "category": "webhooks", + "categoryLabel": "Webhooks", + "subcategory": "repos", + "subcategoryLabel": "Repos", "contentType": "application/json", "notes": [], "descriptionHTML": "

Repositories can have multiple webhooks installed. Each webhook should have a unique config. Multiple webhooks can\nshare the same config as long as those webhooks do not have any events that overlap.

", @@ -57860,10 +57826,10 @@ "subcategory": "webhooks" }, "slug": "get-a-repository-webhook", - "category": "repos", - "categoryLabel": "Repos", - "subcategory": "webhooks", - "subcategoryLabel": "Webhooks", + "category": "webhooks", + "categoryLabel": "Webhooks", + "subcategory": "repos", + "subcategoryLabel": "Repos", "notes": [], "bodyParameters": [], "descriptionHTML": "

Returns a webhook configured in a repository. To get only the webhook config properties, see \"Get a webhook configuration for a repository.\"

", @@ -58164,10 +58130,10 @@ "subcategory": "webhooks" }, "slug": "update-a-repository-webhook", - "category": "repos", - "categoryLabel": "Repos", - "subcategory": "webhooks", - "subcategoryLabel": "Webhooks", + "category": "webhooks", + "categoryLabel": "Webhooks", + "subcategory": "repos", + "subcategoryLabel": "Repos", "contentType": "application/json", "notes": [], "descriptionHTML": "

Updates a webhook configured in a repository. If you previously had a secret set, you must provide the same secret or set a new secret or the secret will be removed. If you are only updating individual webhook config properties, use \"Update a webhook configuration for a repository.\"

", @@ -58457,10 +58423,10 @@ "subcategory": "webhooks" }, "slug": "delete-a-repository-webhook", - "category": "repos", - "categoryLabel": "Repos", - "subcategory": "webhooks", - "subcategoryLabel": "Webhooks", + "category": "webhooks", + "categoryLabel": "Webhooks", + "subcategory": "repos", + "subcategoryLabel": "Repos", "notes": [], "descriptionHTML": "", "responses": [ @@ -58539,10 +58505,10 @@ "subcategory": "webhooks" }, "slug": "get-a-webhook-configuration-for-a-repository", - "category": "repos", - "categoryLabel": "Repos", - "subcategory": "webhooks", - "subcategoryLabel": "Webhooks", + "category": "webhooks", + "categoryLabel": "Webhooks", + "subcategory": "repo-config", + "subcategoryLabel": "Repo config", "notes": [], "bodyParameters": [], "descriptionHTML": "

Returns the webhook configuration for a repository. To get more information about the webhook, including the active state and events, use \"Get a repository webhook.\"

\n

Access tokens must have the read:repo_hook or repo scope, and GitHub Apps must have the repository_hooks:read permission.

", @@ -58684,10 +58650,10 @@ "subcategory": "webhooks" }, "slug": "update-a-webhook-configuration-for-a-repository", - "category": "repos", - "categoryLabel": "Repos", - "subcategory": "webhooks", - "subcategoryLabel": "Webhooks", + "category": "webhooks", + "categoryLabel": "Webhooks", + "subcategory": "repo-config", + "subcategoryLabel": "Repo config", "contentType": "application/json", "notes": [], "descriptionHTML": "

Updates the webhook configuration for a repository. To update more information about the webhook, including the active state and events, use \"Update a repository webhook.\"

\n

Access tokens must have the write:repo_hook or repo scope, and GitHub Apps must have the repository_hooks:write permission.

", @@ -58832,10 +58798,10 @@ "subcategory": "webhooks" }, "slug": "list-deliveries-for-a-repository-webhook", - "category": "repos", - "categoryLabel": "Repos", - "subcategory": "webhooks", - "subcategoryLabel": "Webhooks", + "category": "webhooks", + "categoryLabel": "Webhooks", + "subcategory": "repo-deliveries", + "subcategoryLabel": "Repo deliveries", "notes": [], "bodyParameters": [], "descriptionHTML": "

Returns a list of webhook deliveries for a webhook configured in a repository.

", @@ -58929,10 +58895,10 @@ "subcategory": "webhooks" }, "slug": "get-a-delivery-for-a-repository-webhook", - "category": "repos", - "categoryLabel": "Repos", - "subcategory": "webhooks", - "subcategoryLabel": "Webhooks", + "category": "webhooks", + "categoryLabel": "Webhooks", + "subcategory": "repo-deliveries", + "subcategoryLabel": "Repo deliveries", "notes": [], "bodyParameters": [], "descriptionHTML": "

Returns a delivery for a webhook configured in a repository.

", @@ -59026,10 +58992,10 @@ "subcategory": "webhooks" }, "slug": "redeliver-a-delivery-for-a-repository-webhook", - "category": "repos", - "categoryLabel": "Repos", - "subcategory": "webhooks", - "subcategoryLabel": "Webhooks", + "category": "webhooks", + "categoryLabel": "Webhooks", + "subcategory": "repo-deliveries", + "subcategoryLabel": "Repo deliveries", "notes": [], "responses": [ { @@ -59113,10 +59079,10 @@ "subcategory": "webhooks" }, "slug": "ping-a-repository-webhook", - "category": "repos", - "categoryLabel": "Repos", - "subcategory": "webhooks", - "subcategoryLabel": "Webhooks", + "category": "webhooks", + "categoryLabel": "Webhooks", + "subcategory": "repos", + "subcategoryLabel": "Repos", "notes": [], "responses": [ { @@ -59195,10 +59161,10 @@ "subcategory": "webhooks" }, "slug": "test-the-push-repository-webhook", - "category": "repos", - "categoryLabel": "Repos", - "subcategory": "webhooks", - "subcategoryLabel": "Webhooks", + "category": "webhooks", + "categoryLabel": "Webhooks", + "subcategory": "repos", + "subcategoryLabel": "Repos", "notes": [], "responses": [ { @@ -59365,8 +59331,8 @@ "subcategory": "invitations" }, "slug": "list-repository-invitations", - "category": "repos", - "categoryLabel": "Repos", + "category": "collaborators", + "categoryLabel": "Collaborators", "subcategory": "invitations", "subcategoryLabel": "Invitations", "notes": [], @@ -59472,8 +59438,8 @@ "subcategory": "invitations" }, "slug": "update-a-repository-invitation", - "category": "repos", - "categoryLabel": "Repos", + "category": "collaborators", + "categoryLabel": "Collaborators", "subcategory": "invitations", "subcategoryLabel": "Invitations", "contentType": "application/json", @@ -59569,8 +59535,8 @@ "subcategory": "invitations" }, "slug": "delete-a-repository-invitation", - "category": "repos", - "categoryLabel": "Repos", + "category": "collaborators", + "categoryLabel": "Collaborators", "subcategory": "invitations", "subcategoryLabel": "Invitations", "notes": [], @@ -63672,8 +63638,8 @@ "subcategory": "keys" }, "slug": "list-deploy-keys", - "category": "repos", - "categoryLabel": "Repos", + "category": "deployments", + "categoryLabel": "Deployments", "subcategory": "keys", "subcategoryLabel": "Keys", "notes": [], @@ -63788,8 +63754,8 @@ "subcategory": "keys" }, "slug": "create-a-deploy-key", - "category": "repos", - "categoryLabel": "Repos", + "category": "deployments", + "categoryLabel": "Deployments", "subcategory": "keys", "subcategoryLabel": "Keys", "contentType": "application/json", @@ -63901,8 +63867,8 @@ "subcategory": "keys" }, "slug": "get-a-deploy-key", - "category": "repos", - "categoryLabel": "Repos", + "category": "deployments", + "categoryLabel": "Deployments", "subcategory": "keys", "subcategoryLabel": "Keys", "notes": [], @@ -63985,8 +63951,8 @@ "subcategory": "keys" }, "slug": "delete-a-deploy-key", - "category": "repos", - "categoryLabel": "Repos", + "category": "deployments", + "categoryLabel": "Deployments", "subcategory": "keys", "subcategoryLabel": "Keys", "notes": [], @@ -64795,10 +64761,8 @@ "subcategory": "merging" }, "slug": "merge-a-branch", - "category": "repos", - "categoryLabel": "Repos", - "subcategory": "merging", - "subcategoryLabel": "Merging", + "category": "branches", + "categoryLabel": "Branches", "contentType": "application/json", "notes": [], "descriptionHTML": "", @@ -65933,10 +65897,8 @@ "subcategory": "pages" }, "slug": "get-a-github-enterprise-server-pages-site", - "category": "repos", - "categoryLabel": "Repos", - "subcategory": "pages", - "subcategoryLabel": "Pages", + "category": "pages", + "categoryLabel": "Pages", "notes": [], "descriptionHTML": "", "bodyParameters": [], @@ -66105,10 +66067,8 @@ ] }, "slug": "create-a-github-enterprise-server-pages-site", - "category": "repos", - "categoryLabel": "Repos", - "subcategory": "pages", - "subcategoryLabel": "Pages", + "category": "pages", + "categoryLabel": "Pages", "contentType": "application/json", "notes": [], "descriptionHTML": "

Configures a GitHub Enterprise Server Pages site. For more information, see \"About GitHub Pages.\"

", @@ -66363,10 +66323,8 @@ "subcategory": "pages" }, "slug": "update-information-about-a-github-enterprise-server-pages-site", - "category": "repos", - "categoryLabel": "Repos", - "subcategory": "pages", - "subcategoryLabel": "Pages", + "category": "pages", + "categoryLabel": "Pages", "contentType": "application/json", "notes": [], "responses": [ @@ -66518,10 +66476,8 @@ ] }, "slug": "delete-a-github-enterprise-server-pages-site", - "category": "repos", - "categoryLabel": "Repos", - "subcategory": "pages", - "subcategoryLabel": "Pages", + "category": "pages", + "categoryLabel": "Pages", "notes": [], "descriptionHTML": "", "responses": [ @@ -66616,10 +66572,8 @@ "subcategory": "pages" }, "slug": "list-github-enterprise-server-pages-builds", - "category": "repos", - "categoryLabel": "Repos", - "subcategory": "pages", - "subcategoryLabel": "Pages", + "category": "pages", + "categoryLabel": "Pages", "notes": [], "descriptionHTML": "", "bodyParameters": [], @@ -66685,10 +66639,8 @@ "subcategory": "pages" }, "slug": "request-a-github-enterprise-server-pages-build", - "category": "repos", - "categoryLabel": "Repos", - "subcategory": "pages", - "subcategoryLabel": "Pages", + "category": "pages", + "categoryLabel": "Pages", "notes": [], "bodyParameters": [], "descriptionHTML": "

You can request that your site be built from the latest revision on the default branch. This has the same effect as pushing a commit to your default branch, but does not require an additional commit. Manually triggering page builds can be helpful when diagnosing build warnings and failures.

\n

Build requests are limited to one concurrent build per repository and one concurrent build per requester. If you request a build while another is still in progress, the second request will be queued until the first completes.

", @@ -66754,10 +66706,8 @@ "subcategory": "pages" }, "slug": "get-latest-pages-build", - "category": "repos", - "categoryLabel": "Repos", - "subcategory": "pages", - "subcategoryLabel": "Pages", + "category": "pages", + "categoryLabel": "Pages", "notes": [], "descriptionHTML": "", "bodyParameters": [], @@ -66832,10 +66782,8 @@ "subcategory": "pages" }, "slug": "get-github-enterprise-server-pages-build", - "category": "repos", - "categoryLabel": "Repos", - "subcategory": "pages", - "subcategoryLabel": "Pages", + "category": "pages", + "categoryLabel": "Pages", "notes": [], "descriptionHTML": "", "bodyParameters": [], @@ -72301,10 +72249,8 @@ "subcategory": "releases" }, "slug": "list-releases", - "category": "repos", - "categoryLabel": "Repos", - "subcategory": "releases", - "subcategoryLabel": "Releases", + "category": "releases", + "categoryLabel": "Releases", "notes": [], "bodyParameters": [], "descriptionHTML": "

This returns a list of releases, which does not include regular Git tags that have not been associated with a release. To get a list of Git tags, use the Repository Tags API.

\n

Information about published releases are available to everyone. Only users with push access will receive listings for draft releases.

", @@ -72455,10 +72401,8 @@ "subcategory": "releases" }, "slug": "create-a-release", - "category": "repos", - "categoryLabel": "Repos", - "subcategory": "releases", - "subcategoryLabel": "Releases", + "category": "releases", + "categoryLabel": "Releases", "contentType": "application/json", "notes": [], "descriptionHTML": "

Users with push access to the repository can create a release.

\n

This endpoint triggers notifications. Creating content too quickly using this endpoint may result in secondary rate limiting. See \"Secondary rate limits\" and \"Dealing with secondary rate limits\" for details.

", @@ -72597,10 +72541,10 @@ "subcategory": "releases" }, "slug": "get-a-release-asset", - "category": "repos", - "categoryLabel": "Repos", - "subcategory": "releases", - "subcategoryLabel": "Releases", + "category": "releases", + "categoryLabel": "Releases", + "subcategory": "assets", + "subcategoryLabel": "Assets", "notes": [], "bodyParameters": [], "descriptionHTML": "

To download the asset's binary content, set the Accept header of the request to application/octet-stream. The API will either redirect the client to the location, or stream it directly if possible. API clients should handle both a 200 or 302 response.

", @@ -72734,10 +72678,10 @@ "subcategory": "releases" }, "slug": "update-a-release-asset", - "category": "repos", - "categoryLabel": "Repos", - "subcategory": "releases", - "subcategoryLabel": "Releases", + "category": "releases", + "categoryLabel": "Releases", + "subcategory": "assets", + "subcategoryLabel": "Assets", "contentType": "application/json", "notes": [], "descriptionHTML": "

Users with push access to the repository can edit a release asset.

", @@ -72842,10 +72786,10 @@ "subcategory": "releases" }, "slug": "delete-a-release-asset", - "category": "repos", - "categoryLabel": "Repos", - "subcategory": "releases", - "subcategoryLabel": "Releases", + "category": "releases", + "categoryLabel": "Releases", + "subcategory": "assets", + "subcategoryLabel": "Assets", "notes": [], "descriptionHTML": "", "responses": [ @@ -72910,10 +72854,8 @@ "subcategory": "releases" }, "slug": "get-the-latest-release", - "category": "repos", - "categoryLabel": "Repos", - "subcategory": "releases", - "subcategoryLabel": "Releases", + "category": "releases", + "categoryLabel": "Releases", "notes": [], "bodyParameters": [], "descriptionHTML": "

View the latest published full release for the repository.

\n

The latest release is the most recent non-prerelease, non-draft release, sorted by the created_at attribute. The created_at attribute is the date of the commit used for the release, and not the date when the release was drafted or published.

", @@ -72990,10 +72932,8 @@ "subcategory": "releases" }, "slug": "get-a-release-by-tag-name", - "category": "repos", - "categoryLabel": "Repos", - "subcategory": "releases", - "subcategoryLabel": "Releases", + "category": "releases", + "categoryLabel": "Releases", "notes": [], "bodyParameters": [], "descriptionHTML": "

Get a published release with the specified tag.

", @@ -73074,10 +73014,8 @@ "subcategory": "releases" }, "slug": "get-a-release", - "category": "repos", - "categoryLabel": "Repos", - "subcategory": "releases", - "subcategoryLabel": "Releases", + "category": "releases", + "categoryLabel": "Releases", "notes": [], "bodyParameters": [], "descriptionHTML": "

Note: This returns an upload_url key corresponding to the endpoint for uploading release assets. This key is a hypermedia resource.

", @@ -73232,10 +73170,8 @@ "subcategory": "releases" }, "slug": "update-a-release", - "category": "repos", - "categoryLabel": "Repos", - "subcategory": "releases", - "subcategoryLabel": "Releases", + "category": "releases", + "categoryLabel": "Releases", "contentType": "application/json", "notes": [], "descriptionHTML": "

Users with push access to the repository can edit a release.

", @@ -73367,10 +73303,8 @@ "subcategory": "releases" }, "slug": "delete-a-release", - "category": "repos", - "categoryLabel": "Repos", - "subcategory": "releases", - "subcategoryLabel": "Releases", + "category": "releases", + "categoryLabel": "Releases", "notes": [], "responses": [ { @@ -73465,10 +73399,10 @@ "subcategory": "releases" }, "slug": "list-release-assets", - "category": "repos", - "categoryLabel": "Repos", - "subcategory": "releases", - "subcategoryLabel": "Releases", + "category": "releases", + "categoryLabel": "Releases", + "subcategory": "assets", + "subcategoryLabel": "Assets", "notes": [], "descriptionHTML": "", "bodyParameters": [], @@ -73583,10 +73517,10 @@ "subcategory": "releases" }, "slug": "upload-a-release-asset", - "category": "repos", - "categoryLabel": "Repos", - "subcategory": "releases", - "subcategoryLabel": "Releases", + "category": "releases", + "categoryLabel": "Releases", + "subcategory": "assets", + "subcategoryLabel": "Assets", "contentType": "*/*", "notes": [], "bodyParameters": [], @@ -74305,8 +74239,8 @@ "subcategory": "statistics" }, "slug": "get-the-weekly-commit-activity", - "category": "repos", - "categoryLabel": "Repos", + "category": "metrics", + "categoryLabel": "Metrics", "subcategory": "statistics", "subcategoryLabel": "Statistics", "notes": [], @@ -74384,8 +74318,8 @@ "subcategory": "statistics" }, "slug": "get-the-last-year-of-commit-activity", - "category": "repos", - "categoryLabel": "Repos", + "category": "metrics", + "categoryLabel": "Metrics", "subcategory": "statistics", "subcategoryLabel": "Statistics", "notes": [], @@ -74463,8 +74397,8 @@ "subcategory": "statistics" }, "slug": "get-all-contributor-commit-activity", - "category": "repos", - "categoryLabel": "Repos", + "category": "metrics", + "categoryLabel": "Metrics", "subcategory": "statistics", "subcategoryLabel": "Statistics", "notes": [], @@ -74542,8 +74476,8 @@ "subcategory": "statistics" }, "slug": "get-the-weekly-commit-count", - "category": "repos", - "categoryLabel": "Repos", + "category": "metrics", + "categoryLabel": "Metrics", "subcategory": "statistics", "subcategoryLabel": "Statistics", "notes": [], @@ -74616,8 +74550,8 @@ "subcategory": "statistics" }, "slug": "get-the-hourly-commit-count-for-each-day", - "category": "repos", - "categoryLabel": "Repos", + "category": "metrics", + "categoryLabel": "Metrics", "subcategory": "statistics", "subcategoryLabel": "Statistics", "notes": [], @@ -74764,8 +74698,8 @@ "subcategory": "statuses" }, "slug": "create-a-commit-status", - "category": "repos", - "categoryLabel": "Repos", + "category": "commits", + "categoryLabel": "Commits", "subcategory": "statuses", "subcategoryLabel": "Statuses", "contentType": "application/json", @@ -85421,8 +85355,8 @@ "subcategory": "invitations" }, "slug": "list-repository-invitations-for-the-authenticated-user", - "category": "repos", - "categoryLabel": "Repos", + "category": "collaborators", + "categoryLabel": "Collaborators", "subcategory": "invitations", "subcategoryLabel": "Invitations", "notes": [], @@ -85502,8 +85436,8 @@ "subcategory": "invitations" }, "slug": "accept-a-repository-invitation", - "category": "repos", - "categoryLabel": "Repos", + "category": "collaborators", + "categoryLabel": "Collaborators", "subcategory": "invitations", "subcategoryLabel": "Invitations", "notes": [], @@ -85582,8 +85516,8 @@ "subcategory": "invitations" }, "slug": "decline-a-repository-invitation", - "category": "repos", - "categoryLabel": "Repos", + "category": "collaborators", + "categoryLabel": "Collaborators", "subcategory": "invitations", "subcategoryLabel": "Invitations", "notes": [], diff --git a/lib/rest/static/decorated/ghes-3.3.json b/lib/rest/static/decorated/ghes-3.3.json index e8f4257c47..877f7893cc 100644 --- a/lib/rest/static/decorated/ghes-3.3.json +++ b/lib/rest/static/decorated/ghes-3.3.json @@ -37521,10 +37521,8 @@ "subcategory": "branches" }, "slug": "list-branches", - "category": "repos", - "categoryLabel": "Repos", - "subcategory": "branches", - "subcategoryLabel": "Branches", + "category": "branches", + "categoryLabel": "Branches", "notes": [], "descriptionHTML": "", "bodyParameters": [], @@ -37606,10 +37604,8 @@ "subcategory": "branches" }, "slug": "get-a-branch", - "category": "repos", - "categoryLabel": "Repos", - "subcategory": "branches", - "subcategoryLabel": "Branches", + "category": "branches", + "categoryLabel": "Branches", "notes": [], "descriptionHTML": "", "responses": [ @@ -37700,10 +37696,10 @@ "subcategory": "branches" }, "slug": "get-branch-protection", - "category": "repos", - "categoryLabel": "Repos", - "subcategory": "branches", - "subcategoryLabel": "Branches", + "category": "branches", + "categoryLabel": "Branches", + "subcategory": "branch-protection", + "subcategoryLabel": "Branch protection", "notes": [], "bodyParameters": [], "descriptionHTML": "

Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see GitHub's products in the GitHub Help documentation.

", @@ -38457,10 +38453,10 @@ "subcategory": "branches" }, "slug": "update-branch-protection", - "category": "repos", - "categoryLabel": "Repos", - "subcategory": "branches", - "subcategoryLabel": "Branches", + "category": "branches", + "categoryLabel": "Branches", + "subcategory": "branch-protection", + "subcategoryLabel": "Branch protection", "contentType": "application/json", "notes": [], "responses": [ @@ -39162,10 +39158,10 @@ "subcategory": "branches" }, "slug": "delete-branch-protection", - "category": "repos", - "categoryLabel": "Repos", - "subcategory": "branches", - "subcategoryLabel": "Branches", + "category": "branches", + "categoryLabel": "Branches", + "subcategory": "branch-protection", + "subcategoryLabel": "Branch protection", "notes": [], "responses": [ { @@ -39246,10 +39242,10 @@ "subcategory": "branches" }, "slug": "get-admin-branch-protection", - "category": "repos", - "categoryLabel": "Repos", - "subcategory": "branches", - "subcategoryLabel": "Branches", + "category": "branches", + "categoryLabel": "Branches", + "subcategory": "branch-protection", + "subcategoryLabel": "Branch protection", "notes": [], "bodyParameters": [], "descriptionHTML": "

Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see GitHub's products in the GitHub Help documentation.

", @@ -39326,10 +39322,10 @@ "subcategory": "branches" }, "slug": "set-admin-branch-protection", - "category": "repos", - "categoryLabel": "Repos", - "subcategory": "branches", - "subcategoryLabel": "Branches", + "category": "branches", + "categoryLabel": "Branches", + "subcategory": "branch-protection", + "subcategoryLabel": "Branch protection", "notes": [], "bodyParameters": [], "descriptionHTML": "

Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see GitHub's products in the GitHub Help documentation.

\n

Adding admin enforcement requires admin or owner permissions to the repository and branch protection to be enabled.

", @@ -39406,10 +39402,10 @@ "subcategory": "branches" }, "slug": "delete-admin-branch-protection", - "category": "repos", - "categoryLabel": "Repos", - "subcategory": "branches", - "subcategoryLabel": "Branches", + "category": "branches", + "categoryLabel": "Branches", + "subcategory": "branch-protection", + "subcategoryLabel": "Branch protection", "notes": [], "responses": [ { @@ -39490,10 +39486,10 @@ "subcategory": "branches" }, "slug": "get-pull-request-review-protection", - "category": "repos", - "categoryLabel": "Repos", - "subcategory": "branches", - "subcategoryLabel": "Branches", + "category": "branches", + "categoryLabel": "Branches", + "subcategory": "branch-protection", + "subcategoryLabel": "Branch protection", "notes": [], "bodyParameters": [], "descriptionHTML": "

Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see GitHub's products in the GitHub Help documentation.

", @@ -39697,10 +39693,10 @@ "subcategory": "branches" }, "slug": "update-pull-request-review-protection", - "category": "repos", - "categoryLabel": "Repos", - "subcategory": "branches", - "subcategoryLabel": "Branches", + "category": "branches", + "categoryLabel": "Branches", + "subcategory": "branch-protection", + "subcategoryLabel": "Branch protection", "contentType": "application/json", "notes": [], "descriptionHTML": "

Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see GitHub's products in the GitHub Help documentation.

\n

Updating pull request review enforcement requires admin or owner permissions to the repository and branch protection to be enabled.

\n

Note: Passing new arrays of users and teams replaces their previous values.

", @@ -39878,10 +39874,10 @@ "subcategory": "branches" }, "slug": "delete-pull-request-review-protection", - "category": "repos", - "categoryLabel": "Repos", - "subcategory": "branches", - "subcategoryLabel": "Branches", + "category": "branches", + "categoryLabel": "Branches", + "subcategory": "branch-protection", + "subcategoryLabel": "Branch protection", "notes": [], "responses": [ { @@ -39962,10 +39958,10 @@ "subcategory": "branches" }, "slug": "get-commit-signature-protection", - "category": "repos", - "categoryLabel": "Repos", - "subcategory": "branches", - "subcategoryLabel": "Branches", + "category": "branches", + "categoryLabel": "Branches", + "subcategory": "branch-protection", + "subcategoryLabel": "Branch protection", "notes": [], "bodyParameters": [], "descriptionHTML": "

Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see GitHub's products in the GitHub Help documentation.

\n

When authenticated with admin or owner permissions to the repository, you can use this endpoint to check whether a branch requires signed commits. An enabled status of true indicates you must sign commits on this branch. For more information, see Signing commits with GPG in GitHub Help.

\n

Note: You must enable branch protection to require signed commits.

", @@ -40047,10 +40043,10 @@ "subcategory": "branches" }, "slug": "create-commit-signature-protection", - "category": "repos", - "categoryLabel": "Repos", - "subcategory": "branches", - "subcategoryLabel": "Branches", + "category": "branches", + "categoryLabel": "Branches", + "subcategory": "branch-protection", + "subcategoryLabel": "Branch protection", "notes": [], "bodyParameters": [], "descriptionHTML": "

Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see GitHub's products in the GitHub Help documentation.

\n

When authenticated with admin or owner permissions to the repository, you can use this endpoint to require signed commits on a branch. You must enable branch protection to require signed commits.

", @@ -40132,10 +40128,10 @@ "subcategory": "branches" }, "slug": "delete-commit-signature-protection", - "category": "repos", - "categoryLabel": "Repos", - "subcategory": "branches", - "subcategoryLabel": "Branches", + "category": "branches", + "categoryLabel": "Branches", + "subcategory": "branch-protection", + "subcategoryLabel": "Branch protection", "notes": [], "responses": [ { @@ -40216,10 +40212,10 @@ "subcategory": "branches" }, "slug": "get-status-checks-protection", - "category": "repos", - "categoryLabel": "Repos", - "subcategory": "branches", - "subcategoryLabel": "Branches", + "category": "branches", + "categoryLabel": "Branches", + "subcategory": "branch-protection", + "subcategoryLabel": "Branch protection", "notes": [], "bodyParameters": [], "descriptionHTML": "

Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see GitHub's products in the GitHub Help documentation.

", @@ -40341,10 +40337,10 @@ "subcategory": "branches" }, "slug": "update-status-check-protection", - "category": "repos", - "categoryLabel": "Repos", - "subcategory": "branches", - "subcategoryLabel": "Branches", + "category": "branches", + "categoryLabel": "Branches", + "subcategory": "branch-protection", + "subcategoryLabel": "Branch protection", "contentType": "application/json", "notes": [], "descriptionHTML": "

Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see GitHub's products in the GitHub Help documentation.

\n

Updating required status checks requires admin or owner permissions to the repository and branch protection to be enabled.

", @@ -40455,10 +40451,10 @@ "subcategory": "branches" }, "slug": "remove-status-check-protection", - "category": "repos", - "categoryLabel": "Repos", - "subcategory": "branches", - "subcategoryLabel": "Branches", + "category": "branches", + "categoryLabel": "Branches", + "subcategory": "branch-protection", + "subcategoryLabel": "Branch protection", "notes": [], "responses": [ { @@ -40534,10 +40530,10 @@ "subcategory": "branches" }, "slug": "get-all-status-check-contexts", - "category": "repos", - "categoryLabel": "Repos", - "subcategory": "branches", - "subcategoryLabel": "Branches", + "category": "branches", + "categoryLabel": "Branches", + "subcategory": "branch-protection", + "subcategoryLabel": "Branch protection", "notes": [], "bodyParameters": [], "descriptionHTML": "

Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see GitHub's products in the GitHub Help documentation.

", @@ -40663,10 +40659,10 @@ "subcategory": "branches" }, "slug": "add-status-check-contexts", - "category": "repos", - "categoryLabel": "Repos", - "subcategory": "branches", - "subcategoryLabel": "Branches", + "category": "branches", + "categoryLabel": "Branches", + "subcategory": "branch-protection", + "subcategoryLabel": "Branch protection", "contentType": "application/json", "notes": [], "descriptionHTML": "

Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see GitHub's products in the GitHub Help documentation.

", @@ -40816,10 +40812,10 @@ "subcategory": "branches" }, "slug": "set-status-check-contexts", - "category": "repos", - "categoryLabel": "Repos", - "subcategory": "branches", - "subcategoryLabel": "Branches", + "category": "branches", + "categoryLabel": "Branches", + "subcategory": "branch-protection", + "subcategoryLabel": "Branch protection", "contentType": "application/json", "notes": [], "descriptionHTML": "

Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see GitHub's products in the GitHub Help documentation.

", @@ -40963,10 +40959,10 @@ "subcategory": "branches" }, "slug": "remove-status-check-contexts", - "category": "repos", - "categoryLabel": "Repos", - "subcategory": "branches", - "subcategoryLabel": "Branches", + "category": "branches", + "categoryLabel": "Branches", + "subcategory": "branch-protection", + "subcategoryLabel": "Branch protection", "contentType": "application/json", "notes": [], "descriptionHTML": "

Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see GitHub's products in the GitHub Help documentation.

", @@ -41067,10 +41063,10 @@ "subcategory": "branches" }, "slug": "get-access-restrictions", - "category": "repos", - "categoryLabel": "Repos", - "subcategory": "branches", - "subcategoryLabel": "Branches", + "category": "branches", + "categoryLabel": "Branches", + "subcategory": "branch-protection", + "subcategoryLabel": "Branch protection", "notes": [], "bodyParameters": [], "descriptionHTML": "

Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see GitHub's products in the GitHub Help documentation.

\n

Lists who has access to this protected branch.

\n

Note: Users, apps, and teams restrictions are only available for organization-owned repositories.

", @@ -41152,10 +41148,10 @@ "subcategory": "branches" }, "slug": "delete-access-restrictions", - "category": "repos", - "categoryLabel": "Repos", - "subcategory": "branches", - "subcategoryLabel": "Branches", + "category": "branches", + "categoryLabel": "Branches", + "subcategory": "branch-protection", + "subcategoryLabel": "Branch protection", "notes": [], "responses": [ { @@ -41231,10 +41227,10 @@ "subcategory": "branches" }, "slug": "get-apps-with-access-to-the-protected-branch", - "category": "repos", - "categoryLabel": "Repos", - "subcategory": "branches", - "subcategoryLabel": "Branches", + "category": "branches", + "categoryLabel": "Branches", + "subcategory": "branch-protection", + "subcategoryLabel": "Branch protection", "notes": [], "bodyParameters": [], "descriptionHTML": "

Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see GitHub's products in the GitHub Help documentation.

\n

Lists the GitHub Apps that have push access to this branch. Only installed GitHub Apps with write access to the contents permission can be added as authorized actors on a protected branch.

", @@ -41359,10 +41355,10 @@ "subcategory": "branches" }, "slug": "add-app-access-restrictions", - "category": "repos", - "categoryLabel": "Repos", - "subcategory": "branches", - "subcategoryLabel": "Branches", + "category": "branches", + "categoryLabel": "Branches", + "subcategory": "branch-protection", + "subcategoryLabel": "Branch protection", "contentType": "application/json", "notes": [], "descriptionHTML": "

Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see GitHub's products in the GitHub Help documentation.

\n

Grants the specified apps push access for this branch. Only installed GitHub Apps with write access to the contents permission can be added as authorized actors on a protected branch.

\n\n\n\n\n\n\n\n\n\n\n\n\n\n
TypeDescription
arrayThe GitHub Apps that have push access to this branch. Use the app's slug. Note: The list of users, apps, and teams in total is limited to 100 items.
", @@ -41501,10 +41497,10 @@ "subcategory": "branches" }, "slug": "set-app-access-restrictions", - "category": "repos", - "categoryLabel": "Repos", - "subcategory": "branches", - "subcategoryLabel": "Branches", + "category": "branches", + "categoryLabel": "Branches", + "subcategory": "branch-protection", + "subcategoryLabel": "Branch protection", "contentType": "application/json", "notes": [], "descriptionHTML": "

Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see GitHub's products in the GitHub Help documentation.

\n

Replaces the list of apps that have push access to this branch. This removes all apps that previously had push access and grants push access to the new list of apps. Only installed GitHub Apps with write access to the contents permission can be added as authorized actors on a protected branch.

\n\n\n\n\n\n\n\n\n\n\n\n\n\n
TypeDescription
arrayThe GitHub Apps that have push access to this branch. Use the app's slug. Note: The list of users, apps, and teams in total is limited to 100 items.
", @@ -41642,10 +41638,10 @@ "subcategory": "branches" }, "slug": "remove-app-access-restrictions", - "category": "repos", - "categoryLabel": "Repos", - "subcategory": "branches", - "subcategoryLabel": "Branches", + "category": "branches", + "categoryLabel": "Branches", + "subcategory": "branch-protection", + "subcategoryLabel": "Branch protection", "contentType": "application/json", "notes": [], "descriptionHTML": "

Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see GitHub's products in the GitHub Help documentation.

\n

Removes the ability of an app to push to this branch. Only installed GitHub Apps with write access to the contents permission can be added as authorized actors on a protected branch.

\n\n\n\n\n\n\n\n\n\n\n\n\n\n
TypeDescription
arrayThe GitHub Apps that have push access to this branch. Use the app's slug. Note: The list of users, apps, and teams in total is limited to 100 items.
", @@ -41741,10 +41737,10 @@ "subcategory": "branches" }, "slug": "get-teams-with-access-to-the-protected-branch", - "category": "repos", - "categoryLabel": "Repos", - "subcategory": "branches", - "subcategoryLabel": "Branches", + "category": "branches", + "categoryLabel": "Branches", + "subcategory": "branch-protection", + "subcategoryLabel": "Branch protection", "notes": [], "bodyParameters": [], "descriptionHTML": "

Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see GitHub's products in the GitHub Help documentation.

\n

Lists the teams who have push access to this branch. The list includes child teams.

", @@ -41870,10 +41866,10 @@ "subcategory": "branches" }, "slug": "add-team-access-restrictions", - "category": "repos", - "categoryLabel": "Repos", - "subcategory": "branches", - "subcategoryLabel": "Branches", + "category": "branches", + "categoryLabel": "Branches", + "subcategory": "branch-protection", + "subcategoryLabel": "Branch protection", "contentType": "application/json", "notes": [], "descriptionHTML": "

Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see GitHub's products in the GitHub Help documentation.

\n

Grants the specified teams push access for this branch. You can also give push access to child teams.

\n\n\n\n\n\n\n\n\n\n\n\n\n\n
TypeDescription
arrayThe teams that can have push access. Use the team's slug. Note: The list of users, apps, and teams in total is limited to 100 items.
", @@ -42013,10 +42009,10 @@ "subcategory": "branches" }, "slug": "set-team-access-restrictions", - "category": "repos", - "categoryLabel": "Repos", - "subcategory": "branches", - "subcategoryLabel": "Branches", + "category": "branches", + "categoryLabel": "Branches", + "subcategory": "branch-protection", + "subcategoryLabel": "Branch protection", "contentType": "application/json", "notes": [], "descriptionHTML": "

Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see GitHub's products in the GitHub Help documentation.

\n

Replaces the list of teams that have push access to this branch. This removes all teams that previously had push access and grants push access to the new list of teams. Team restrictions include child teams.

\n\n\n\n\n\n\n\n\n\n\n\n\n\n
TypeDescription
arrayThe teams that can have push access. Use the team's slug. Note: The list of users, apps, and teams in total is limited to 100 items.
", @@ -42155,10 +42151,10 @@ "subcategory": "branches" }, "slug": "remove-team-access-restrictions", - "category": "repos", - "categoryLabel": "Repos", - "subcategory": "branches", - "subcategoryLabel": "Branches", + "category": "branches", + "categoryLabel": "Branches", + "subcategory": "branch-protection", + "subcategoryLabel": "Branch protection", "contentType": "application/json", "notes": [], "descriptionHTML": "

Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see GitHub's products in the GitHub Help documentation.

\n

Removes the ability of a team to push to this branch. You can also remove push access for child teams.

\n\n\n\n\n\n\n\n\n\n\n\n\n\n
TypeDescription
arrayTeams that should no longer have push access. Use the team's slug. Note: The list of users, apps, and teams in total is limited to 100 items.
", @@ -42254,10 +42250,10 @@ "subcategory": "branches" }, "slug": "get-users-with-access-to-the-protected-branch", - "category": "repos", - "categoryLabel": "Repos", - "subcategory": "branches", - "subcategoryLabel": "Branches", + "category": "branches", + "categoryLabel": "Branches", + "subcategory": "branch-protection", + "subcategoryLabel": "Branch protection", "notes": [], "bodyParameters": [], "descriptionHTML": "

Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see GitHub's products in the GitHub Help documentation.

\n

Lists the people who have push access to this branch.

", @@ -42382,10 +42378,10 @@ "subcategory": "branches" }, "slug": "add-user-access-restrictions", - "category": "repos", - "categoryLabel": "Repos", - "subcategory": "branches", - "subcategoryLabel": "Branches", + "category": "branches", + "categoryLabel": "Branches", + "subcategory": "branch-protection", + "subcategoryLabel": "Branch protection", "contentType": "application/json", "notes": [], "descriptionHTML": "

Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see GitHub's products in the GitHub Help documentation.

\n

Grants the specified people push access for this branch.

\n\n\n\n\n\n\n\n\n\n\n\n\n\n
TypeDescription
arrayUsernames for people who can have push access. Note: The list of users, apps, and teams in total is limited to 100 items.
", @@ -42524,10 +42520,10 @@ "subcategory": "branches" }, "slug": "set-user-access-restrictions", - "category": "repos", - "categoryLabel": "Repos", - "subcategory": "branches", - "subcategoryLabel": "Branches", + "category": "branches", + "categoryLabel": "Branches", + "subcategory": "branch-protection", + "subcategoryLabel": "Branch protection", "contentType": "application/json", "notes": [], "descriptionHTML": "

Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see GitHub's products in the GitHub Help documentation.

\n

Replaces the list of people that have push access to this branch. This removes all people that previously had push access and grants push access to the new list of people.

\n\n\n\n\n\n\n\n\n\n\n\n\n\n
TypeDescription
arrayUsernames for people who can have push access. Note: The list of users, apps, and teams in total is limited to 100 items.
", @@ -42665,10 +42661,10 @@ "subcategory": "branches" }, "slug": "remove-user-access-restrictions", - "category": "repos", - "categoryLabel": "Repos", - "subcategory": "branches", - "subcategoryLabel": "Branches", + "category": "branches", + "categoryLabel": "Branches", + "subcategory": "branch-protection", + "subcategoryLabel": "Branch protection", "contentType": "application/json", "notes": [], "descriptionHTML": "

Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see GitHub's products in the GitHub Help documentation.

\n

Removes the ability of a user to push to this branch.

\n\n\n\n\n\n\n\n\n\n\n\n\n\n
TypeDescription
arrayUsernames of the people who should no longer have push access. Note: The list of users, apps, and teams in total is limited to 100 items.
", @@ -42791,10 +42787,8 @@ "subcategory": "branches" }, "slug": "rename-a-branch", - "category": "repos", - "categoryLabel": "Repos", - "subcategory": "branches", - "subcategoryLabel": "Branches", + "category": "branches", + "categoryLabel": "Branches", "contentType": "application/json", "notes": [], "descriptionHTML": "

Renames a branch in a repository.

\n

Note: Although the API responds immediately, the branch rename process might take some extra time to complete in the background. You won't be able to push to the old branch name while the rename process is in progress. For more information, see \"Renaming a branch\".

\n

The permissions required to use this endpoint depends on whether you are renaming the default branch.

\n

To rename a non-default branch:

\n
    \n
  • Users must have push access.
  • \n
  • GitHub Apps must have the contents:write repository permission.
  • \n
\n

To rename the default branch:

\n
    \n
  • Users must have admin or owner permissions.
  • \n
  • GitHub Apps must have the administration:write repository permission.
  • \n
", @@ -49153,10 +49147,8 @@ "subcategory": "collaborators" }, "slug": "list-repository-collaborators", - "category": "repos", - "categoryLabel": "Repos", - "subcategory": "collaborators", - "subcategoryLabel": "Collaborators", + "category": "collaborators", + "categoryLabel": "Collaborators", "notes": [], "bodyParameters": [], "descriptionHTML": "

For organization-owned repositories, the list of collaborators includes outside collaborators, organization members that are direct collaborators, organization members with access through team memberships, organization members with access through default organization permissions, and organization owners.

\n

Team members will include the members of child teams.

\n

You must have push access to the repository in order to list collaborators.

", @@ -49236,10 +49228,8 @@ "subcategory": "collaborators" }, "slug": "check-if-a-user-is-a-repository-collaborator", - "category": "repos", - "categoryLabel": "Repos", - "subcategory": "collaborators", - "subcategoryLabel": "Collaborators", + "category": "collaborators", + "categoryLabel": "Collaborators", "notes": [], "responses": [ { @@ -49357,10 +49347,8 @@ "subcategory": "collaborators" }, "slug": "add-a-repository-collaborator", - "category": "repos", - "categoryLabel": "Repos", - "subcategory": "collaborators", - "subcategoryLabel": "Collaborators", + "category": "collaborators", + "categoryLabel": "Collaborators", "contentType": "application/json", "notes": [], "descriptionHTML": "

This endpoint triggers notifications. Creating content too quickly using this endpoint may result in secondary rate limiting. See \"Secondary rate limits\" and \"Dealing with secondary rate limits\" for details.

\n

For more information on permission levels, see \"Repository permission levels for an organization\". There are restrictions on which permissions can be granted to organization members when an organization base role is in place. In this case, the permission being given must be equal to or higher than the org base permission. Otherwise, the request will fail with:

\n
Cannot assign {member} permission of {role name}\n
\n

Note that, if you choose not to pass any parameters, you'll need to set Content-Length to zero when calling out to this endpoint. For more information, see \"HTTP verbs.\"

\n

The invitee will receive a notification that they have been invited to the repository, which they must accept or decline. They may do this via the notifications page, the email they receive, or by using the repository invitations API endpoints.

\n

Rate limits

\n

You are limited to sending 50 invitations to a repository per 24 hour period. Note there is no limit if you are inviting organization members to an organization repository.

", @@ -49478,10 +49466,8 @@ "subcategory": "collaborators" }, "slug": "remove-a-repository-collaborator", - "category": "repos", - "categoryLabel": "Repos", - "subcategory": "collaborators", - "subcategoryLabel": "Collaborators", + "category": "collaborators", + "categoryLabel": "Collaborators", "notes": [], "descriptionHTML": "", "responses": [ @@ -49555,10 +49541,8 @@ "subcategory": "collaborators" }, "slug": "get-repository-permissions-for-a-user", - "category": "repos", - "categoryLabel": "Repos", - "subcategory": "collaborators", - "subcategoryLabel": "Collaborators", + "category": "collaborators", + "categoryLabel": "Collaborators", "notes": [], "bodyParameters": [], "descriptionHTML": "

Checks the repository permission of a collaborator. The possible repository permissions are admin, write, read, and none.

", @@ -49649,8 +49633,8 @@ "subcategory": "comments" }, "slug": "list-commit-comments-for-a-repository", - "category": "repos", - "categoryLabel": "Repos", + "category": "commits", + "categoryLabel": "Commits", "subcategory": "comments", "subcategoryLabel": "Comments", "notes": [], @@ -49728,8 +49712,8 @@ "subcategory": "comments" }, "slug": "get-a-commit-comment", - "category": "repos", - "categoryLabel": "Repos", + "category": "commits", + "categoryLabel": "Commits", "subcategory": "comments", "subcategoryLabel": "Comments", "notes": [], @@ -49839,8 +49823,8 @@ "subcategory": "comments" }, "slug": "update-a-commit-comment", - "category": "repos", - "categoryLabel": "Repos", + "category": "commits", + "categoryLabel": "Commits", "subcategory": "comments", "subcategoryLabel": "Comments", "contentType": "application/json", @@ -49934,8 +49918,8 @@ "subcategory": "comments" }, "slug": "delete-a-commit-comment", - "category": "repos", - "categoryLabel": "Repos", + "category": "commits", + "categoryLabel": "Commits", "subcategory": "comments", "subcategoryLabel": "Comments", "notes": [], @@ -50437,10 +50421,8 @@ "subcategory": "commits" }, "slug": "list-commits", - "category": "repos", - "categoryLabel": "Repos", - "subcategory": "commits", - "subcategoryLabel": "Commits", + "category": "commits", + "categoryLabel": "Commits", "notes": [], "bodyParameters": [], "descriptionHTML": "

Signature verification object

\n

The response will include a verification object that describes the result of verifying the commit's signature. The following fields are included in the verification object:

\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n
NameTypeDescription
verifiedbooleanIndicates whether GitHub considers the signature in this commit to be verified.
reasonstringThe reason for verified value. Possible values and their meanings are enumerated in table below.
signaturestringThe signature that was extracted from the commit.
payloadstringThe value that was signed.
\n

These are the possible values for reason in the verification object:

\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n
ValueDescription
expired_keyThe key that made the signature is expired.
not_signing_keyThe \"signing\" flag is not among the usage flags in the GPG key that made the signature.
gpgverify_errorThere was an error communicating with the signature verification service.
gpgverify_unavailableThe signature verification service is currently unavailable.
unsignedThe object does not include a signature.
unknown_signature_typeA non-PGP signature was found in the commit.
no_userNo user was associated with the committer email address in the commit.
unverified_emailThe committer email address in the commit was associated with a user, but the email address is not verified on her/his account.
bad_emailThe committer email address in the commit is not included in the identities of the PGP key that made the signature.
unknown_keyThe key that made the signature has not been registered with any user's account.
malformed_signatureThere was an error parsing the signature.
invalidThe signature could not be cryptographically verified using the key whose key-id was found in the signature.
validNone of the above errors applied, so the signature is considered to be verified.
", @@ -50537,10 +50519,8 @@ "subcategory": "commits" }, "slug": "list-branches-for-head-commit", - "category": "repos", - "categoryLabel": "Repos", - "subcategory": "commits", - "subcategoryLabel": "Commits", + "category": "commits", + "categoryLabel": "Commits", "notes": [], "bodyParameters": [], "descriptionHTML": "

Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see GitHub's products in the GitHub Help documentation.

\n

Returns all branches where the given commit SHA is the HEAD, or latest commit for the branch.

", @@ -50642,8 +50622,8 @@ "subcategory": "comments" }, "slug": "list-commit-comments", - "category": "repos", - "categoryLabel": "Repos", + "category": "commits", + "categoryLabel": "Commits", "subcategory": "comments", "subcategoryLabel": "Comments", "notes": [], @@ -50780,8 +50760,8 @@ "subcategory": "comments" }, "slug": "create-a-commit-comment", - "category": "repos", - "categoryLabel": "Repos", + "category": "commits", + "categoryLabel": "Commits", "subcategory": "comments", "subcategoryLabel": "Comments", "contentType": "application/json", @@ -50928,10 +50908,8 @@ "subcategory": "commits" }, "slug": "list-pull-requests-associated-with-a-commit", - "category": "repos", - "categoryLabel": "Repos", - "subcategory": "commits", - "subcategoryLabel": "Commits", + "category": "commits", + "categoryLabel": "Commits", "notes": [], "bodyParameters": [], "descriptionHTML": "

Lists the merged pull request that introduced the commit to the repository. If the commit is not present in the default branch, additionally returns open pull requests associated with the commit. The results may include open and closed pull requests. Additional preview headers may be required to see certain details for associated pull requests, such as whether a pull request is in a draft state. For more information about previews that might affect this endpoint, see the List pull requests endpoint.

", @@ -51028,10 +51006,8 @@ "subcategory": "commits" }, "slug": "get-a-commit", - "category": "repos", - "categoryLabel": "Repos", - "subcategory": "commits", - "subcategoryLabel": "Commits", + "category": "commits", + "categoryLabel": "Commits", "notes": [], "bodyParameters": [], "descriptionHTML": "

Returns the contents of a single commit reference. You must have read access for the repository to use this endpoint.

\n

Note: If there are more than 300 files in the commit diff, the response will include pagination link headers for the remaining files, up to a limit of 3000 files. Each page contains the static commit information, and the only changes are to the file listing.

\n

You can pass the appropriate media type to fetch diff and patch formats. Diffs with binary data will have no patch property.

\n

To return only the SHA-1 hash of the commit reference, you can provide the sha custom media type in the Accept header. You can use this endpoint to check if a remote reference's SHA-1 hash is the same as your local reference's SHA-1 hash by providing the local SHA-1 reference as the ETag.

\n

Signature verification object

\n

The response will include a verification object that describes the result of verifying the commit's signature. The following fields are included in the verification object:

\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n
NameTypeDescription
verifiedbooleanIndicates whether GitHub considers the signature in this commit to be verified.
reasonstringThe reason for verified value. Possible values and their meanings are enumerated in table below.
signaturestringThe signature that was extracted from the commit.
payloadstringThe value that was signed.
\n

These are the possible values for reason in the verification object:

\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n
ValueDescription
expired_keyThe key that made the signature is expired.
not_signing_keyThe \"signing\" flag is not among the usage flags in the GPG key that made the signature.
gpgverify_errorThere was an error communicating with the signature verification service.
gpgverify_unavailableThe signature verification service is currently unavailable.
unsignedThe object does not include a signature.
unknown_signature_typeA non-PGP signature was found in the commit.
no_userNo user was associated with the committer email address in the commit.
unverified_emailThe committer email address in the commit was associated with a user, but the email address is not verified on her/his account.
bad_emailThe committer email address in the commit is not included in the identities of the PGP key that made the signature.
unknown_keyThe key that made the signature has not been registered with any user's account.
malformed_signatureThere was an error parsing the signature.
invalidThe signature could not be cryptographically verified using the key whose key-id was found in the signature.
validNone of the above errors applied, so the signature is considered to be verified.
", @@ -51413,8 +51389,8 @@ "subcategory": "statuses" }, "slug": "get-the-combined-status-for-a-specific-reference", - "category": "repos", - "categoryLabel": "Repos", + "category": "commits", + "categoryLabel": "Commits", "subcategory": "statuses", "subcategoryLabel": "Statuses", "notes": [], @@ -51518,8 +51494,8 @@ "subcategory": "statuses" }, "slug": "list-commit-statuses-for-a-reference", - "category": "repos", - "categoryLabel": "Repos", + "category": "commits", + "categoryLabel": "Commits", "subcategory": "statuses", "subcategoryLabel": "Statuses", "notes": [], @@ -51622,10 +51598,8 @@ "subcategory": "commits" }, "slug": "compare-two-commits", - "category": "repos", - "categoryLabel": "Repos", - "subcategory": "commits", - "subcategoryLabel": "Commits", + "category": "commits", + "categoryLabel": "Commits", "notes": [], "bodyParameters": [], "descriptionHTML": "

The basehead param is comprised of two parts: base and head. Both must be branch names in repo. To compare branches across other repositories in the same network as repo, use the format <USERNAME>:branch.

\n

The response from the API is equivalent to running the git log base..head command; however, commits are returned in chronological order. Pass the appropriate media type to fetch diff and patch formats.

\n

The response also includes details on the files that were changed between the two commits. This includes the status of the change (for example, if a file was added, removed, modified, or renamed), and details of the change itself. For example, files with a renamed status have a previous_filename field showing the previous filename of the file, and files with a modified status have a patch field showing the changes made to the file.

\n

Working with large comparisons

\n

To process a response with a large number of commits, you can use (per_page or page) to paginate the results. When using paging, the list of changed files is only returned with page 1, but includes all changed files for the entire comparison. For more information on working with pagination, see \"Traversing with pagination.\"

\n

When calling this API without any paging parameters (per_page or page), the returned list is limited to 250 commits and the last commit in the list is the most recent of the entire comparison. When a paging parameter is specified, the first commit in the returned list of each page is the earliest.

\n

Signature verification object

\n

The response will include a verification object that describes the result of verifying the commit's signature. The following fields are included in the verification object:

\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n
NameTypeDescription
verifiedbooleanIndicates whether GitHub considers the signature in this commit to be verified.
reasonstringThe reason for verified value. Possible values and their meanings are enumerated in table below.
signaturestringThe signature that was extracted from the commit.
payloadstringThe value that was signed.
\n

These are the possible values for reason in the verification object:

\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n
ValueDescription
expired_keyThe key that made the signature is expired.
not_signing_keyThe \"signing\" flag is not among the usage flags in the GPG key that made the signature.
gpgverify_errorThere was an error communicating with the signature verification service.
gpgverify_unavailableThe signature verification service is currently unavailable.
unsignedThe object does not include a signature.
unknown_signature_typeA non-PGP signature was found in the commit.
no_userNo user was associated with the committer email address in the commit.
unverified_emailThe committer email address in the commit was associated with a user, but the email address is not verified on her/his account.
bad_emailThe committer email address in the commit is not included in the identities of the PGP key that made the signature.
unknown_keyThe key that made the signature has not been registered with any user's account.
malformed_signatureThere was an error parsing the signature.
invalidThe signature could not be cryptographically verified using the key whose key-id was found in the signature.
validNone of the above errors applied, so the signature is considered to be verified.
", @@ -53105,10 +53079,8 @@ "subcategory": "deployments" }, "slug": "list-deployments", - "category": "repos", - "categoryLabel": "Repos", - "subcategory": "deployments", - "subcategoryLabel": "Deployments", + "category": "deployments", + "categoryLabel": "Deployments", "notes": [], "bodyParameters": [], "descriptionHTML": "

Simple filtering of deployments is available via query parameters:

", @@ -53311,10 +53283,8 @@ "subcategory": "deployments" }, "slug": "create-a-deployment", - "category": "repos", - "categoryLabel": "Repos", - "subcategory": "deployments", - "subcategoryLabel": "Deployments", + "category": "deployments", + "categoryLabel": "Deployments", "contentType": "application/json", "notes": [], "descriptionHTML": "

Deployments offer a few configurable parameters with certain defaults.

\n

The ref parameter can be any named branch, tag, or SHA. At GitHub Enterprise Server we often deploy branches and verify them\nbefore we merge a pull request.

\n

The environment parameter allows deployments to be issued to different runtime environments. Teams often have\nmultiple environments for verifying their applications, such as production, staging, and qa. This parameter\nmakes it easier to track which environments have requested deployments. The default environment is production.

\n

The auto_merge parameter is used to ensure that the requested ref is not behind the repository's default branch. If\nthe ref is behind the default branch for the repository, we will attempt to merge it for you. If the merge succeeds,\nthe API will return a successful merge commit. If merge conflicts prevent the merge from succeeding, the API will\nreturn a failure response.

\n

By default, commit statuses for every submitted context must be in a success\nstate. The required_contexts parameter allows you to specify a subset of contexts that must be success, or to\nspecify contexts that have not yet been submitted. You are not required to use commit statuses to deploy. If you do\nnot require any contexts or create any commit statuses, the deployment will always succeed.

\n

The payload parameter is available for any extra information that a deployment system might need. It is a JSON text\nfield that will be passed on when a deployment event is dispatched.

\n

The task parameter is used by the deployment system to allow different execution paths. In the web world this might\nbe deploy:migrations to run schema changes on the system. In the compiled world this could be a flag to compile an\napplication with debugging enabled.

\n

Users with repo or repo_deployment scopes can create a deployment for a given ref.

\n

Merged branch response

\n

You will see this response when GitHub automatically merges the base branch into the topic branch instead of creating\na deployment. This auto-merge happens when:

\n
    \n
  • Auto-merge option is enabled in the repository
  • \n
  • Topic branch does not include the latest changes on the base branch, which is master in the response example
  • \n
  • There are no merge conflicts
  • \n
\n

If there are no new commits in the base branch, a new request to create a deployment should give a successful\nresponse.

\n

Merge conflict response

\n

This error happens when the auto_merge option is enabled and when the default branch (in this case master), can't\nbe merged into the branch that's being deployed (in this case topic-branch), due to merge conflicts.

\n

Failed commit status checks

\n

This error happens when the required_contexts parameter indicates that one or more contexts need to have a success\nstatus for the commit to be deployed, but one or more of the required contexts do not have a state of success.

", @@ -53507,10 +53477,8 @@ "subcategory": "deployments" }, "slug": "get-a-deployment", - "category": "repos", - "categoryLabel": "Repos", - "subcategory": "deployments", - "subcategoryLabel": "Deployments", + "category": "deployments", + "categoryLabel": "Deployments", "notes": [], "descriptionHTML": "", "bodyParameters": [], @@ -53591,10 +53559,8 @@ "subcategory": "deployments" }, "slug": "delete-a-deployment", - "category": "repos", - "categoryLabel": "Repos", - "subcategory": "deployments", - "subcategoryLabel": "Deployments", + "category": "deployments", + "categoryLabel": "Deployments", "notes": [], "responses": [ { @@ -53699,10 +53665,10 @@ "subcategory": "deployments" }, "slug": "list-deployment-statuses", - "category": "repos", - "categoryLabel": "Repos", - "subcategory": "deployments", - "subcategoryLabel": "Deployments", + "category": "deployments", + "categoryLabel": "Deployments", + "subcategory": "statuses", + "subcategoryLabel": "Statuses", "notes": [], "bodyParameters": [], "descriptionHTML": "

Users with pull access can view deployment statuses for a deployment:

", @@ -53885,10 +53851,10 @@ "subcategory": "deployments" }, "slug": "create-a-deployment-status", - "category": "repos", - "categoryLabel": "Repos", - "subcategory": "deployments", - "subcategoryLabel": "Deployments", + "category": "deployments", + "categoryLabel": "Deployments", + "subcategory": "statuses", + "subcategoryLabel": "Statuses", "contentType": "application/json", "notes": [], "descriptionHTML": "

Users with push access can create deployment statuses for a given deployment.

\n

GitHub Apps require read & write access to \"Deployments\" and read-only access to \"Repo contents\" (for private repos). OAuth Apps require the repo_deployment scope.

", @@ -54061,10 +54027,10 @@ "subcategory": "deployments" }, "slug": "get-a-deployment-status", - "category": "repos", - "categoryLabel": "Repos", - "subcategory": "deployments", - "subcategoryLabel": "Deployments", + "category": "deployments", + "categoryLabel": "Deployments", + "subcategory": "statuses", + "subcategoryLabel": "Statuses", "notes": [], "bodyParameters": [], "descriptionHTML": "

Users with pull access can view a deployment status for a deployment:

", @@ -54274,8 +54240,8 @@ "subcategory": "environments" }, "slug": "get-all-environments", - "category": "repos", - "categoryLabel": "Repos", + "category": "deployments", + "categoryLabel": "Deployments", "subcategory": "environments", "subcategoryLabel": "Environments", "notes": [], @@ -54353,8 +54319,8 @@ "subcategory": "environments" }, "slug": "get-an-environment", - "category": "repos", - "categoryLabel": "Repos", + "category": "deployments", + "categoryLabel": "Deployments", "subcategory": "environments", "subcategoryLabel": "Environments", "notes": [], @@ -54587,8 +54553,8 @@ "subcategory": "environments" }, "slug": "create-or-update-an-environment", - "category": "repos", - "categoryLabel": "Repos", + "category": "deployments", + "categoryLabel": "Deployments", "subcategory": "environments", "subcategoryLabel": "Environments", "contentType": "application/json", @@ -54814,8 +54780,8 @@ "subcategory": "environments" }, "slug": "delete-an-environment", - "category": "repos", - "categoryLabel": "Repos", + "category": "deployments", + "categoryLabel": "Deployments", "subcategory": "environments", "subcategoryLabel": "Environments", "notes": [], @@ -57547,10 +57513,10 @@ "subcategory": "webhooks" }, "slug": "list-repository-webhooks", - "category": "repos", - "categoryLabel": "Repos", - "subcategory": "webhooks", - "subcategoryLabel": "Webhooks", + "category": "webhooks", + "categoryLabel": "Webhooks", + "subcategory": "repos", + "subcategoryLabel": "Repos", "notes": [], "descriptionHTML": "", "bodyParameters": [], @@ -57833,10 +57799,10 @@ "subcategory": "webhooks" }, "slug": "create-a-repository-webhook", - "category": "repos", - "categoryLabel": "Repos", - "subcategory": "webhooks", - "subcategoryLabel": "Webhooks", + "category": "webhooks", + "categoryLabel": "Webhooks", + "subcategory": "repos", + "subcategoryLabel": "Repos", "contentType": "application/json", "notes": [], "descriptionHTML": "

Repositories can have multiple webhooks installed. Each webhook should have a unique config. Multiple webhooks can\nshare the same config as long as those webhooks do not have any events that overlap.

", @@ -58113,10 +58079,10 @@ "subcategory": "webhooks" }, "slug": "get-a-repository-webhook", - "category": "repos", - "categoryLabel": "Repos", - "subcategory": "webhooks", - "subcategoryLabel": "Webhooks", + "category": "webhooks", + "categoryLabel": "Webhooks", + "subcategory": "repos", + "subcategoryLabel": "Repos", "notes": [], "bodyParameters": [], "descriptionHTML": "

Returns a webhook configured in a repository. To get only the webhook config properties, see \"Get a webhook configuration for a repository.\"

", @@ -58417,10 +58383,10 @@ "subcategory": "webhooks" }, "slug": "update-a-repository-webhook", - "category": "repos", - "categoryLabel": "Repos", - "subcategory": "webhooks", - "subcategoryLabel": "Webhooks", + "category": "webhooks", + "categoryLabel": "Webhooks", + "subcategory": "repos", + "subcategoryLabel": "Repos", "contentType": "application/json", "notes": [], "descriptionHTML": "

Updates a webhook configured in a repository. If you previously had a secret set, you must provide the same secret or set a new secret or the secret will be removed. If you are only updating individual webhook config properties, use \"Update a webhook configuration for a repository.\"

", @@ -58710,10 +58676,10 @@ "subcategory": "webhooks" }, "slug": "delete-a-repository-webhook", - "category": "repos", - "categoryLabel": "Repos", - "subcategory": "webhooks", - "subcategoryLabel": "Webhooks", + "category": "webhooks", + "categoryLabel": "Webhooks", + "subcategory": "repos", + "subcategoryLabel": "Repos", "notes": [], "descriptionHTML": "", "responses": [ @@ -58792,10 +58758,10 @@ "subcategory": "webhooks" }, "slug": "get-a-webhook-configuration-for-a-repository", - "category": "repos", - "categoryLabel": "Repos", - "subcategory": "webhooks", - "subcategoryLabel": "Webhooks", + "category": "webhooks", + "categoryLabel": "Webhooks", + "subcategory": "repo-config", + "subcategoryLabel": "Repo config", "notes": [], "bodyParameters": [], "descriptionHTML": "

Returns the webhook configuration for a repository. To get more information about the webhook, including the active state and events, use \"Get a repository webhook.\"

\n

Access tokens must have the read:repo_hook or repo scope, and GitHub Apps must have the repository_hooks:read permission.

", @@ -58937,10 +58903,10 @@ "subcategory": "webhooks" }, "slug": "update-a-webhook-configuration-for-a-repository", - "category": "repos", - "categoryLabel": "Repos", - "subcategory": "webhooks", - "subcategoryLabel": "Webhooks", + "category": "webhooks", + "categoryLabel": "Webhooks", + "subcategory": "repo-config", + "subcategoryLabel": "Repo config", "contentType": "application/json", "notes": [], "descriptionHTML": "

Updates the webhook configuration for a repository. To update more information about the webhook, including the active state and events, use \"Update a repository webhook.\"

\n

Access tokens must have the write:repo_hook or repo scope, and GitHub Apps must have the repository_hooks:write permission.

", @@ -59085,10 +59051,10 @@ "subcategory": "webhooks" }, "slug": "list-deliveries-for-a-repository-webhook", - "category": "repos", - "categoryLabel": "Repos", - "subcategory": "webhooks", - "subcategoryLabel": "Webhooks", + "category": "webhooks", + "categoryLabel": "Webhooks", + "subcategory": "repo-deliveries", + "subcategoryLabel": "Repo deliveries", "notes": [], "bodyParameters": [], "descriptionHTML": "

Returns a list of webhook deliveries for a webhook configured in a repository.

", @@ -59182,10 +59148,10 @@ "subcategory": "webhooks" }, "slug": "get-a-delivery-for-a-repository-webhook", - "category": "repos", - "categoryLabel": "Repos", - "subcategory": "webhooks", - "subcategoryLabel": "Webhooks", + "category": "webhooks", + "categoryLabel": "Webhooks", + "subcategory": "repo-deliveries", + "subcategoryLabel": "Repo deliveries", "notes": [], "bodyParameters": [], "descriptionHTML": "

Returns a delivery for a webhook configured in a repository.

", @@ -59279,10 +59245,10 @@ "subcategory": "webhooks" }, "slug": "redeliver-a-delivery-for-a-repository-webhook", - "category": "repos", - "categoryLabel": "Repos", - "subcategory": "webhooks", - "subcategoryLabel": "Webhooks", + "category": "webhooks", + "categoryLabel": "Webhooks", + "subcategory": "repo-deliveries", + "subcategoryLabel": "Repo deliveries", "notes": [], "responses": [ { @@ -59366,10 +59332,10 @@ "subcategory": "webhooks" }, "slug": "ping-a-repository-webhook", - "category": "repos", - "categoryLabel": "Repos", - "subcategory": "webhooks", - "subcategoryLabel": "Webhooks", + "category": "webhooks", + "categoryLabel": "Webhooks", + "subcategory": "repos", + "subcategoryLabel": "Repos", "notes": [], "responses": [ { @@ -59448,10 +59414,10 @@ "subcategory": "webhooks" }, "slug": "test-the-push-repository-webhook", - "category": "repos", - "categoryLabel": "Repos", - "subcategory": "webhooks", - "subcategoryLabel": "Webhooks", + "category": "webhooks", + "categoryLabel": "Webhooks", + "subcategory": "repos", + "subcategoryLabel": "Repos", "notes": [], "responses": [ { @@ -59618,8 +59584,8 @@ "subcategory": "invitations" }, "slug": "list-repository-invitations", - "category": "repos", - "categoryLabel": "Repos", + "category": "collaborators", + "categoryLabel": "Collaborators", "subcategory": "invitations", "subcategoryLabel": "Invitations", "notes": [], @@ -59725,8 +59691,8 @@ "subcategory": "invitations" }, "slug": "update-a-repository-invitation", - "category": "repos", - "categoryLabel": "Repos", + "category": "collaborators", + "categoryLabel": "Collaborators", "subcategory": "invitations", "subcategoryLabel": "Invitations", "contentType": "application/json", @@ -59822,8 +59788,8 @@ "subcategory": "invitations" }, "slug": "delete-a-repository-invitation", - "category": "repos", - "categoryLabel": "Repos", + "category": "collaborators", + "categoryLabel": "Collaborators", "subcategory": "invitations", "subcategoryLabel": "Invitations", "notes": [], @@ -63813,8 +63779,8 @@ "subcategory": "keys" }, "slug": "list-deploy-keys", - "category": "repos", - "categoryLabel": "Repos", + "category": "deployments", + "categoryLabel": "Deployments", "subcategory": "keys", "subcategoryLabel": "Keys", "notes": [], @@ -63929,8 +63895,8 @@ "subcategory": "keys" }, "slug": "create-a-deploy-key", - "category": "repos", - "categoryLabel": "Repos", + "category": "deployments", + "categoryLabel": "Deployments", "subcategory": "keys", "subcategoryLabel": "Keys", "contentType": "application/json", @@ -64042,8 +64008,8 @@ "subcategory": "keys" }, "slug": "get-a-deploy-key", - "category": "repos", - "categoryLabel": "Repos", + "category": "deployments", + "categoryLabel": "Deployments", "subcategory": "keys", "subcategoryLabel": "Keys", "notes": [], @@ -64126,8 +64092,8 @@ "subcategory": "keys" }, "slug": "delete-a-deploy-key", - "category": "repos", - "categoryLabel": "Repos", + "category": "deployments", + "categoryLabel": "Deployments", "subcategory": "keys", "subcategoryLabel": "Keys", "notes": [], @@ -65056,10 +65022,8 @@ "subcategory": "branches" }, "slug": "sync-a-fork-branch-with-the-upstream-repository", - "category": "repos", - "categoryLabel": "Repos", - "subcategory": "branches", - "subcategoryLabel": "Branches", + "category": "branches", + "categoryLabel": "Branches", "contentType": "application/json", "notes": [], "descriptionHTML": "

Sync a branch of a forked repository to keep it up-to-date with the upstream repository.

", @@ -65194,10 +65158,8 @@ "subcategory": "merging" }, "slug": "merge-a-branch", - "category": "repos", - "categoryLabel": "Repos", - "subcategory": "merging", - "subcategoryLabel": "Merging", + "category": "branches", + "categoryLabel": "Branches", "contentType": "application/json", "notes": [], "descriptionHTML": "", @@ -66332,10 +66294,8 @@ "subcategory": "pages" }, "slug": "get-a-github-enterprise-server-pages-site", - "category": "repos", - "categoryLabel": "Repos", - "subcategory": "pages", - "subcategoryLabel": "Pages", + "category": "pages", + "categoryLabel": "Pages", "notes": [], "descriptionHTML": "", "bodyParameters": [], @@ -66497,10 +66457,8 @@ "subcategory": "pages" }, "slug": "create-a-github-enterprise-server-pages-site", - "category": "repos", - "categoryLabel": "Repos", - "subcategory": "pages", - "subcategoryLabel": "Pages", + "category": "pages", + "categoryLabel": "Pages", "contentType": "application/json", "notes": [], "descriptionHTML": "

Configures a GitHub Enterprise Server Pages site. For more information, see \"About GitHub Pages.\"

", @@ -66755,10 +66713,8 @@ "subcategory": "pages" }, "slug": "update-information-about-a-github-enterprise-server-pages-site", - "category": "repos", - "categoryLabel": "Repos", - "subcategory": "pages", - "subcategoryLabel": "Pages", + "category": "pages", + "categoryLabel": "Pages", "contentType": "application/json", "notes": [], "responses": [ @@ -66903,10 +66859,8 @@ "subcategory": "pages" }, "slug": "delete-a-github-enterprise-server-pages-site", - "category": "repos", - "categoryLabel": "Repos", - "subcategory": "pages", - "subcategoryLabel": "Pages", + "category": "pages", + "categoryLabel": "Pages", "notes": [], "descriptionHTML": "", "responses": [ @@ -67001,10 +66955,8 @@ "subcategory": "pages" }, "slug": "list-github-enterprise-server-pages-builds", - "category": "repos", - "categoryLabel": "Repos", - "subcategory": "pages", - "subcategoryLabel": "Pages", + "category": "pages", + "categoryLabel": "Pages", "notes": [], "descriptionHTML": "", "bodyParameters": [], @@ -67070,10 +67022,8 @@ "subcategory": "pages" }, "slug": "request-a-github-enterprise-server-pages-build", - "category": "repos", - "categoryLabel": "Repos", - "subcategory": "pages", - "subcategoryLabel": "Pages", + "category": "pages", + "categoryLabel": "Pages", "notes": [], "bodyParameters": [], "descriptionHTML": "

You can request that your site be built from the latest revision on the default branch. This has the same effect as pushing a commit to your default branch, but does not require an additional commit. Manually triggering page builds can be helpful when diagnosing build warnings and failures.

\n

Build requests are limited to one concurrent build per repository and one concurrent build per requester. If you request a build while another is still in progress, the second request will be queued until the first completes.

", @@ -67139,10 +67089,8 @@ "subcategory": "pages" }, "slug": "get-latest-pages-build", - "category": "repos", - "categoryLabel": "Repos", - "subcategory": "pages", - "subcategoryLabel": "Pages", + "category": "pages", + "categoryLabel": "Pages", "notes": [], "descriptionHTML": "", "bodyParameters": [], @@ -67217,10 +67165,8 @@ "subcategory": "pages" }, "slug": "get-github-enterprise-server-pages-build", - "category": "repos", - "categoryLabel": "Repos", - "subcategory": "pages", - "subcategoryLabel": "Pages", + "category": "pages", + "categoryLabel": "Pages", "notes": [], "descriptionHTML": "", "bodyParameters": [], @@ -72572,10 +72518,8 @@ "subcategory": "releases" }, "slug": "list-releases", - "category": "repos", - "categoryLabel": "Repos", - "subcategory": "releases", - "subcategoryLabel": "Releases", + "category": "releases", + "categoryLabel": "Releases", "notes": [], "bodyParameters": [], "descriptionHTML": "

This returns a list of releases, which does not include regular Git tags that have not been associated with a release. To get a list of Git tags, use the Repository Tags API.

\n

Information about published releases are available to everyone. Only users with push access will receive listings for draft releases.

", @@ -72737,10 +72681,8 @@ "subcategory": "releases" }, "slug": "create-a-release", - "category": "repos", - "categoryLabel": "Repos", - "subcategory": "releases", - "subcategoryLabel": "Releases", + "category": "releases", + "categoryLabel": "Releases", "contentType": "application/json", "notes": [], "descriptionHTML": "

Users with push access to the repository can create a release.

\n

This endpoint triggers notifications. Creating content too quickly using this endpoint may result in secondary rate limiting. See \"Secondary rate limits\" and \"Dealing with secondary rate limits\" for details.

", @@ -72889,10 +72831,10 @@ "subcategory": "releases" }, "slug": "get-a-release-asset", - "category": "repos", - "categoryLabel": "Repos", - "subcategory": "releases", - "subcategoryLabel": "Releases", + "category": "releases", + "categoryLabel": "Releases", + "subcategory": "assets", + "subcategoryLabel": "Assets", "notes": [], "bodyParameters": [], "descriptionHTML": "

To download the asset's binary content, set the Accept header of the request to application/octet-stream. The API will either redirect the client to the location, or stream it directly if possible. API clients should handle both a 200 or 302 response.

", @@ -73026,10 +72968,10 @@ "subcategory": "releases" }, "slug": "update-a-release-asset", - "category": "repos", - "categoryLabel": "Repos", - "subcategory": "releases", - "subcategoryLabel": "Releases", + "category": "releases", + "categoryLabel": "Releases", + "subcategory": "assets", + "subcategoryLabel": "Assets", "contentType": "application/json", "notes": [], "descriptionHTML": "

Users with push access to the repository can edit a release asset.

", @@ -73134,10 +73076,10 @@ "subcategory": "releases" }, "slug": "delete-a-release-asset", - "category": "repos", - "categoryLabel": "Repos", - "subcategory": "releases", - "subcategoryLabel": "Releases", + "category": "releases", + "categoryLabel": "Releases", + "subcategory": "assets", + "subcategoryLabel": "Assets", "notes": [], "descriptionHTML": "", "responses": [ @@ -73259,10 +73201,8 @@ "subcategory": "releases" }, "slug": "generate-release-notes-content-for-a-release", - "category": "repos", - "categoryLabel": "Repos", - "subcategory": "releases", - "subcategoryLabel": "Releases", + "category": "releases", + "categoryLabel": "Releases", "contentType": "application/json", "notes": [], "descriptionHTML": "

Generate a name and body describing a release. The body content will be markdown formatted and contain information like the changes since last release and users who contributed. The generated release notes are not saved anywhere. They are intended to be generated and used when creating a new release.

", @@ -73371,10 +73311,8 @@ "subcategory": "releases" }, "slug": "get-the-latest-release", - "category": "repos", - "categoryLabel": "Repos", - "subcategory": "releases", - "subcategoryLabel": "Releases", + "category": "releases", + "categoryLabel": "Releases", "notes": [], "bodyParameters": [], "descriptionHTML": "

View the latest published full release for the repository.

\n

The latest release is the most recent non-prerelease, non-draft release, sorted by the created_at attribute. The created_at attribute is the date of the commit used for the release, and not the date when the release was drafted or published.

", @@ -73451,10 +73389,8 @@ "subcategory": "releases" }, "slug": "get-a-release-by-tag-name", - "category": "repos", - "categoryLabel": "Repos", - "subcategory": "releases", - "subcategoryLabel": "Releases", + "category": "releases", + "categoryLabel": "Releases", "notes": [], "bodyParameters": [], "descriptionHTML": "

Get a published release with the specified tag.

", @@ -73535,10 +73471,8 @@ "subcategory": "releases" }, "slug": "get-a-release", - "category": "repos", - "categoryLabel": "Repos", - "subcategory": "releases", - "subcategoryLabel": "Releases", + "category": "releases", + "categoryLabel": "Releases", "notes": [], "bodyParameters": [], "descriptionHTML": "

Note: This returns an upload_url key corresponding to the endpoint for uploading release assets. This key is a hypermedia resource.

", @@ -73693,10 +73627,8 @@ "subcategory": "releases" }, "slug": "update-a-release", - "category": "repos", - "categoryLabel": "Repos", - "subcategory": "releases", - "subcategoryLabel": "Releases", + "category": "releases", + "categoryLabel": "Releases", "contentType": "application/json", "notes": [], "descriptionHTML": "

Users with push access to the repository can edit a release.

", @@ -73828,10 +73760,8 @@ "subcategory": "releases" }, "slug": "delete-a-release", - "category": "repos", - "categoryLabel": "Repos", - "subcategory": "releases", - "subcategoryLabel": "Releases", + "category": "releases", + "categoryLabel": "Releases", "notes": [], "responses": [ { @@ -73926,10 +73856,10 @@ "subcategory": "releases" }, "slug": "list-release-assets", - "category": "repos", - "categoryLabel": "Repos", - "subcategory": "releases", - "subcategoryLabel": "Releases", + "category": "releases", + "categoryLabel": "Releases", + "subcategory": "assets", + "subcategoryLabel": "Assets", "notes": [], "descriptionHTML": "", "bodyParameters": [], @@ -74044,10 +73974,10 @@ "subcategory": "releases" }, "slug": "upload-a-release-asset", - "category": "repos", - "categoryLabel": "Repos", - "subcategory": "releases", - "subcategoryLabel": "Releases", + "category": "releases", + "categoryLabel": "Releases", + "subcategory": "assets", + "subcategoryLabel": "Assets", "contentType": "*/*", "notes": [], "bodyParameters": [], @@ -74869,8 +74799,8 @@ "subcategory": "statistics" }, "slug": "get-the-weekly-commit-activity", - "category": "repos", - "categoryLabel": "Repos", + "category": "metrics", + "categoryLabel": "Metrics", "subcategory": "statistics", "subcategoryLabel": "Statistics", "notes": [], @@ -74948,8 +74878,8 @@ "subcategory": "statistics" }, "slug": "get-the-last-year-of-commit-activity", - "category": "repos", - "categoryLabel": "Repos", + "category": "metrics", + "categoryLabel": "Metrics", "subcategory": "statistics", "subcategoryLabel": "Statistics", "notes": [], @@ -75027,8 +74957,8 @@ "subcategory": "statistics" }, "slug": "get-all-contributor-commit-activity", - "category": "repos", - "categoryLabel": "Repos", + "category": "metrics", + "categoryLabel": "Metrics", "subcategory": "statistics", "subcategoryLabel": "Statistics", "notes": [], @@ -75106,8 +75036,8 @@ "subcategory": "statistics" }, "slug": "get-the-weekly-commit-count", - "category": "repos", - "categoryLabel": "Repos", + "category": "metrics", + "categoryLabel": "Metrics", "subcategory": "statistics", "subcategoryLabel": "Statistics", "notes": [], @@ -75180,8 +75110,8 @@ "subcategory": "statistics" }, "slug": "get-the-hourly-commit-count-for-each-day", - "category": "repos", - "categoryLabel": "Repos", + "category": "metrics", + "categoryLabel": "Metrics", "subcategory": "statistics", "subcategoryLabel": "Statistics", "notes": [], @@ -75328,8 +75258,8 @@ "subcategory": "statuses" }, "slug": "create-a-commit-status", - "category": "repos", - "categoryLabel": "Repos", + "category": "commits", + "categoryLabel": "Commits", "subcategory": "statuses", "subcategoryLabel": "Statuses", "contentType": "application/json", @@ -85818,8 +85748,8 @@ "subcategory": "invitations" }, "slug": "list-repository-invitations-for-the-authenticated-user", - "category": "repos", - "categoryLabel": "Repos", + "category": "collaborators", + "categoryLabel": "Collaborators", "subcategory": "invitations", "subcategoryLabel": "Invitations", "notes": [], @@ -85899,8 +85829,8 @@ "subcategory": "invitations" }, "slug": "accept-a-repository-invitation", - "category": "repos", - "categoryLabel": "Repos", + "category": "collaborators", + "categoryLabel": "Collaborators", "subcategory": "invitations", "subcategoryLabel": "Invitations", "notes": [], @@ -85979,8 +85909,8 @@ "subcategory": "invitations" }, "slug": "decline-a-repository-invitation", - "category": "repos", - "categoryLabel": "Repos", + "category": "collaborators", + "categoryLabel": "Collaborators", "subcategory": "invitations", "subcategoryLabel": "Invitations", "notes": [], diff --git a/lib/rest/static/decorated/github.ae.json b/lib/rest/static/decorated/github.ae.json index 7d89ca391b..775b96a69b 100644 --- a/lib/rest/static/decorated/github.ae.json +++ b/lib/rest/static/decorated/github.ae.json @@ -29823,10 +29823,8 @@ "subcategory": "branches" }, "slug": "list-branches", - "category": "repos", - "categoryLabel": "Repos", - "subcategory": "branches", - "subcategoryLabel": "Branches", + "category": "branches", + "categoryLabel": "Branches", "notes": [], "descriptionHTML": "", "bodyParameters": [], @@ -29908,10 +29906,8 @@ "subcategory": "branches" }, "slug": "get-a-branch", - "category": "repos", - "categoryLabel": "Repos", - "subcategory": "branches", - "subcategoryLabel": "Branches", + "category": "branches", + "categoryLabel": "Branches", "notes": [], "descriptionHTML": "", "responses": [ @@ -30002,10 +29998,10 @@ "subcategory": "branches" }, "slug": "get-branch-protection", - "category": "repos", - "categoryLabel": "Repos", - "subcategory": "branches", - "subcategoryLabel": "Branches", + "category": "branches", + "categoryLabel": "Branches", + "subcategory": "branch-protection", + "subcategoryLabel": "Branch protection", "notes": [], "bodyParameters": [], "descriptionHTML": "

Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see GitHub's products in the GitHub Help documentation.

", @@ -30914,10 +30910,10 @@ "subcategory": "branches" }, "slug": "update-branch-protection", - "category": "repos", - "categoryLabel": "Repos", - "subcategory": "branches", - "subcategoryLabel": "Branches", + "category": "branches", + "categoryLabel": "Branches", + "subcategory": "branch-protection", + "subcategoryLabel": "Branch protection", "contentType": "application/json", "notes": [], "responses": [ @@ -31774,10 +31770,10 @@ "subcategory": "branches" }, "slug": "delete-branch-protection", - "category": "repos", - "categoryLabel": "Repos", - "subcategory": "branches", - "subcategoryLabel": "Branches", + "category": "branches", + "categoryLabel": "Branches", + "subcategory": "branch-protection", + "subcategoryLabel": "Branch protection", "notes": [], "responses": [ { @@ -31858,10 +31854,10 @@ "subcategory": "branches" }, "slug": "get-admin-branch-protection", - "category": "repos", - "categoryLabel": "Repos", - "subcategory": "branches", - "subcategoryLabel": "Branches", + "category": "branches", + "categoryLabel": "Branches", + "subcategory": "branch-protection", + "subcategoryLabel": "Branch protection", "notes": [], "bodyParameters": [], "descriptionHTML": "

Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see GitHub's products in the GitHub Help documentation.

", @@ -31938,10 +31934,10 @@ "subcategory": "branches" }, "slug": "set-admin-branch-protection", - "category": "repos", - "categoryLabel": "Repos", - "subcategory": "branches", - "subcategoryLabel": "Branches", + "category": "branches", + "categoryLabel": "Branches", + "subcategory": "branch-protection", + "subcategoryLabel": "Branch protection", "notes": [], "bodyParameters": [], "descriptionHTML": "

Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see GitHub's products in the GitHub Help documentation.

\n

Adding admin enforcement requires admin or owner permissions to the repository and branch protection to be enabled.

", @@ -32018,10 +32014,10 @@ "subcategory": "branches" }, "slug": "delete-admin-branch-protection", - "category": "repos", - "categoryLabel": "Repos", - "subcategory": "branches", - "subcategoryLabel": "Branches", + "category": "branches", + "categoryLabel": "Branches", + "subcategory": "branch-protection", + "subcategoryLabel": "Branch protection", "notes": [], "responses": [ { @@ -32102,10 +32098,10 @@ "subcategory": "branches" }, "slug": "get-pull-request-review-protection", - "category": "repos", - "categoryLabel": "Repos", - "subcategory": "branches", - "subcategoryLabel": "Branches", + "category": "branches", + "categoryLabel": "Branches", + "subcategory": "branch-protection", + "subcategoryLabel": "Branch protection", "notes": [], "bodyParameters": [], "descriptionHTML": "

Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see GitHub's products in the GitHub Help documentation.

", @@ -32377,10 +32373,10 @@ "subcategory": "branches" }, "slug": "update-pull-request-review-protection", - "category": "repos", - "categoryLabel": "Repos", - "subcategory": "branches", - "subcategoryLabel": "Branches", + "category": "branches", + "categoryLabel": "Branches", + "subcategory": "branch-protection", + "subcategoryLabel": "Branch protection", "contentType": "application/json", "notes": [], "descriptionHTML": "

Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see GitHub's products in the GitHub Help documentation.

\n

Updating pull request review enforcement requires admin or owner permissions to the repository and branch protection to be enabled.

\n

Note: Passing new arrays of users and teams replaces their previous values.

", @@ -32626,10 +32622,10 @@ "subcategory": "branches" }, "slug": "delete-pull-request-review-protection", - "category": "repos", - "categoryLabel": "Repos", - "subcategory": "branches", - "subcategoryLabel": "Branches", + "category": "branches", + "categoryLabel": "Branches", + "subcategory": "branch-protection", + "subcategoryLabel": "Branch protection", "notes": [], "responses": [ { @@ -32710,10 +32706,10 @@ "subcategory": "branches" }, "slug": "get-commit-signature-protection", - "category": "repos", - "categoryLabel": "Repos", - "subcategory": "branches", - "subcategoryLabel": "Branches", + "category": "branches", + "categoryLabel": "Branches", + "subcategory": "branch-protection", + "subcategoryLabel": "Branch protection", "notes": [], "bodyParameters": [], "descriptionHTML": "

Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see GitHub's products in the GitHub Help documentation.

\n

When authenticated with admin or owner permissions to the repository, you can use this endpoint to check whether a branch requires signed commits. An enabled status of true indicates you must sign commits on this branch. For more information, see Signing commits with GPG in GitHub Help.

\n

Note: You must enable branch protection to require signed commits.

", @@ -32795,10 +32791,10 @@ "subcategory": "branches" }, "slug": "create-commit-signature-protection", - "category": "repos", - "categoryLabel": "Repos", - "subcategory": "branches", - "subcategoryLabel": "Branches", + "category": "branches", + "categoryLabel": "Branches", + "subcategory": "branch-protection", + "subcategoryLabel": "Branch protection", "notes": [], "bodyParameters": [], "descriptionHTML": "

Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see GitHub's products in the GitHub Help documentation.

\n

When authenticated with admin or owner permissions to the repository, you can use this endpoint to require signed commits on a branch. You must enable branch protection to require signed commits.

", @@ -32880,10 +32876,10 @@ "subcategory": "branches" }, "slug": "delete-commit-signature-protection", - "category": "repos", - "categoryLabel": "Repos", - "subcategory": "branches", - "subcategoryLabel": "Branches", + "category": "branches", + "categoryLabel": "Branches", + "subcategory": "branch-protection", + "subcategoryLabel": "Branch protection", "notes": [], "responses": [ { @@ -32964,10 +32960,10 @@ "subcategory": "branches" }, "slug": "get-status-checks-protection", - "category": "repos", - "categoryLabel": "Repos", - "subcategory": "branches", - "subcategoryLabel": "Branches", + "category": "branches", + "categoryLabel": "Branches", + "subcategory": "branch-protection", + "subcategoryLabel": "Branch protection", "notes": [], "bodyParameters": [], "descriptionHTML": "

Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see GitHub's products in the GitHub Help documentation.

", @@ -33150,10 +33146,10 @@ "subcategory": "branches" }, "slug": "update-status-check-protection", - "category": "repos", - "categoryLabel": "Repos", - "subcategory": "branches", - "subcategoryLabel": "Branches", + "category": "branches", + "categoryLabel": "Branches", + "subcategory": "branch-protection", + "subcategoryLabel": "Branch protection", "contentType": "application/json", "notes": [], "descriptionHTML": "

Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see GitHub's products in the GitHub Help documentation.

\n

Updating required status checks requires admin or owner permissions to the repository and branch protection to be enabled.

", @@ -33325,10 +33321,10 @@ "subcategory": "branches" }, "slug": "remove-status-check-protection", - "category": "repos", - "categoryLabel": "Repos", - "subcategory": "branches", - "subcategoryLabel": "Branches", + "category": "branches", + "categoryLabel": "Branches", + "subcategory": "branch-protection", + "subcategoryLabel": "Branch protection", "notes": [], "responses": [ { @@ -33404,10 +33400,10 @@ "subcategory": "branches" }, "slug": "get-all-status-check-contexts", - "category": "repos", - "categoryLabel": "Repos", - "subcategory": "branches", - "subcategoryLabel": "Branches", + "category": "branches", + "categoryLabel": "Branches", + "subcategory": "branch-protection", + "subcategoryLabel": "Branch protection", "notes": [], "bodyParameters": [], "descriptionHTML": "

Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see GitHub's products in the GitHub Help documentation.

", @@ -33533,10 +33529,10 @@ "subcategory": "branches" }, "slug": "add-status-check-contexts", - "category": "repos", - "categoryLabel": "Repos", - "subcategory": "branches", - "subcategoryLabel": "Branches", + "category": "branches", + "categoryLabel": "Branches", + "subcategory": "branch-protection", + "subcategoryLabel": "Branch protection", "contentType": "application/json", "notes": [], "descriptionHTML": "

Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see GitHub's products in the GitHub Help documentation.

", @@ -33686,10 +33682,10 @@ "subcategory": "branches" }, "slug": "set-status-check-contexts", - "category": "repos", - "categoryLabel": "Repos", - "subcategory": "branches", - "subcategoryLabel": "Branches", + "category": "branches", + "categoryLabel": "Branches", + "subcategory": "branch-protection", + "subcategoryLabel": "Branch protection", "contentType": "application/json", "notes": [], "descriptionHTML": "

Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see GitHub's products in the GitHub Help documentation.

", @@ -33833,10 +33829,10 @@ "subcategory": "branches" }, "slug": "remove-status-check-contexts", - "category": "repos", - "categoryLabel": "Repos", - "subcategory": "branches", - "subcategoryLabel": "Branches", + "category": "branches", + "categoryLabel": "Branches", + "subcategory": "branch-protection", + "subcategoryLabel": "Branch protection", "contentType": "application/json", "notes": [], "descriptionHTML": "

Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see GitHub's products in the GitHub Help documentation.

", @@ -33937,10 +33933,10 @@ "subcategory": "branches" }, "slug": "get-access-restrictions", - "category": "repos", - "categoryLabel": "Repos", - "subcategory": "branches", - "subcategoryLabel": "Branches", + "category": "branches", + "categoryLabel": "Branches", + "subcategory": "branch-protection", + "subcategoryLabel": "Branch protection", "notes": [], "bodyParameters": [], "descriptionHTML": "

Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see GitHub's products in the GitHub Help documentation.

\n

Lists who has access to this protected branch.

\n

Note: Users, apps, and teams restrictions are only available for organization-owned repositories.

", @@ -34022,10 +34018,10 @@ "subcategory": "branches" }, "slug": "delete-access-restrictions", - "category": "repos", - "categoryLabel": "Repos", - "subcategory": "branches", - "subcategoryLabel": "Branches", + "category": "branches", + "categoryLabel": "Branches", + "subcategory": "branch-protection", + "subcategoryLabel": "Branch protection", "notes": [], "responses": [ { @@ -34101,10 +34097,10 @@ "subcategory": "branches" }, "slug": "get-apps-with-access-to-the-protected-branch", - "category": "repos", - "categoryLabel": "Repos", - "subcategory": "branches", - "subcategoryLabel": "Branches", + "category": "branches", + "categoryLabel": "Branches", + "subcategory": "branch-protection", + "subcategoryLabel": "Branch protection", "notes": [], "bodyParameters": [], "descriptionHTML": "

Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see GitHub's products in the GitHub Help documentation.

\n

Lists the GitHub Apps that have push access to this branch. Only installed GitHub Apps with write access to the contents permission can be added as authorized actors on a protected branch.

", @@ -34229,10 +34225,10 @@ "subcategory": "branches" }, "slug": "add-app-access-restrictions", - "category": "repos", - "categoryLabel": "Repos", - "subcategory": "branches", - "subcategoryLabel": "Branches", + "category": "branches", + "categoryLabel": "Branches", + "subcategory": "branch-protection", + "subcategoryLabel": "Branch protection", "contentType": "application/json", "notes": [], "descriptionHTML": "

Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see GitHub's products in the GitHub Help documentation.

\n

Grants the specified apps push access for this branch. Only installed GitHub Apps with write access to the contents permission can be added as authorized actors on a protected branch.

\n\n\n\n\n\n\n\n\n\n\n\n\n\n
TypeDescription
arrayThe GitHub Apps that have push access to this branch. Use the app's slug. Note: The list of users, apps, and teams in total is limited to 100 items.
", @@ -34371,10 +34367,10 @@ "subcategory": "branches" }, "slug": "set-app-access-restrictions", - "category": "repos", - "categoryLabel": "Repos", - "subcategory": "branches", - "subcategoryLabel": "Branches", + "category": "branches", + "categoryLabel": "Branches", + "subcategory": "branch-protection", + "subcategoryLabel": "Branch protection", "contentType": "application/json", "notes": [], "descriptionHTML": "

Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see GitHub's products in the GitHub Help documentation.

\n

Replaces the list of apps that have push access to this branch. This removes all apps that previously had push access and grants push access to the new list of apps. Only installed GitHub Apps with write access to the contents permission can be added as authorized actors on a protected branch.

\n\n\n\n\n\n\n\n\n\n\n\n\n\n
TypeDescription
arrayThe GitHub Apps that have push access to this branch. Use the app's slug. Note: The list of users, apps, and teams in total is limited to 100 items.
", @@ -34512,10 +34508,10 @@ "subcategory": "branches" }, "slug": "remove-app-access-restrictions", - "category": "repos", - "categoryLabel": "Repos", - "subcategory": "branches", - "subcategoryLabel": "Branches", + "category": "branches", + "categoryLabel": "Branches", + "subcategory": "branch-protection", + "subcategoryLabel": "Branch protection", "contentType": "application/json", "notes": [], "descriptionHTML": "

Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see GitHub's products in the GitHub Help documentation.

\n

Removes the ability of an app to push to this branch. Only installed GitHub Apps with write access to the contents permission can be added as authorized actors on a protected branch.

\n\n\n\n\n\n\n\n\n\n\n\n\n\n
TypeDescription
arrayThe GitHub Apps that have push access to this branch. Use the app's slug. Note: The list of users, apps, and teams in total is limited to 100 items.
", @@ -34611,10 +34607,10 @@ "subcategory": "branches" }, "slug": "get-teams-with-access-to-the-protected-branch", - "category": "repos", - "categoryLabel": "Repos", - "subcategory": "branches", - "subcategoryLabel": "Branches", + "category": "branches", + "categoryLabel": "Branches", + "subcategory": "branch-protection", + "subcategoryLabel": "Branch protection", "notes": [], "bodyParameters": [], "descriptionHTML": "

Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see GitHub's products in the GitHub Help documentation.

\n

Lists the teams who have push access to this branch. The list includes child teams.

", @@ -34740,10 +34736,10 @@ "subcategory": "branches" }, "slug": "add-team-access-restrictions", - "category": "repos", - "categoryLabel": "Repos", - "subcategory": "branches", - "subcategoryLabel": "Branches", + "category": "branches", + "categoryLabel": "Branches", + "subcategory": "branch-protection", + "subcategoryLabel": "Branch protection", "contentType": "application/json", "notes": [], "descriptionHTML": "

Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see GitHub's products in the GitHub Help documentation.

\n

Grants the specified teams push access for this branch. You can also give push access to child teams.

\n\n\n\n\n\n\n\n\n\n\n\n\n\n
TypeDescription
arrayThe teams that can have push access. Use the team's slug. Note: The list of users, apps, and teams in total is limited to 100 items.
", @@ -34883,10 +34879,10 @@ "subcategory": "branches" }, "slug": "set-team-access-restrictions", - "category": "repos", - "categoryLabel": "Repos", - "subcategory": "branches", - "subcategoryLabel": "Branches", + "category": "branches", + "categoryLabel": "Branches", + "subcategory": "branch-protection", + "subcategoryLabel": "Branch protection", "contentType": "application/json", "notes": [], "descriptionHTML": "

Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see GitHub's products in the GitHub Help documentation.

\n

Replaces the list of teams that have push access to this branch. This removes all teams that previously had push access and grants push access to the new list of teams. Team restrictions include child teams.

\n\n\n\n\n\n\n\n\n\n\n\n\n\n
TypeDescription
arrayThe teams that can have push access. Use the team's slug. Note: The list of users, apps, and teams in total is limited to 100 items.
", @@ -35025,10 +35021,10 @@ "subcategory": "branches" }, "slug": "remove-team-access-restrictions", - "category": "repos", - "categoryLabel": "Repos", - "subcategory": "branches", - "subcategoryLabel": "Branches", + "category": "branches", + "categoryLabel": "Branches", + "subcategory": "branch-protection", + "subcategoryLabel": "Branch protection", "contentType": "application/json", "notes": [], "descriptionHTML": "

Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see GitHub's products in the GitHub Help documentation.

\n

Removes the ability of a team to push to this branch. You can also remove push access for child teams.

\n\n\n\n\n\n\n\n\n\n\n\n\n\n
TypeDescription
arrayTeams that should no longer have push access. Use the team's slug. Note: The list of users, apps, and teams in total is limited to 100 items.
", @@ -35124,10 +35120,10 @@ "subcategory": "branches" }, "slug": "get-users-with-access-to-the-protected-branch", - "category": "repos", - "categoryLabel": "Repos", - "subcategory": "branches", - "subcategoryLabel": "Branches", + "category": "branches", + "categoryLabel": "Branches", + "subcategory": "branch-protection", + "subcategoryLabel": "Branch protection", "notes": [], "bodyParameters": [], "descriptionHTML": "

Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see GitHub's products in the GitHub Help documentation.

\n

Lists the people who have push access to this branch.

", @@ -35252,10 +35248,10 @@ "subcategory": "branches" }, "slug": "add-user-access-restrictions", - "category": "repos", - "categoryLabel": "Repos", - "subcategory": "branches", - "subcategoryLabel": "Branches", + "category": "branches", + "categoryLabel": "Branches", + "subcategory": "branch-protection", + "subcategoryLabel": "Branch protection", "contentType": "application/json", "notes": [], "descriptionHTML": "

Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see GitHub's products in the GitHub Help documentation.

\n

Grants the specified people push access for this branch.

\n\n\n\n\n\n\n\n\n\n\n\n\n\n
TypeDescription
arrayUsernames for people who can have push access. Note: The list of users, apps, and teams in total is limited to 100 items.
", @@ -35394,10 +35390,10 @@ "subcategory": "branches" }, "slug": "set-user-access-restrictions", - "category": "repos", - "categoryLabel": "Repos", - "subcategory": "branches", - "subcategoryLabel": "Branches", + "category": "branches", + "categoryLabel": "Branches", + "subcategory": "branch-protection", + "subcategoryLabel": "Branch protection", "contentType": "application/json", "notes": [], "descriptionHTML": "

Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see GitHub's products in the GitHub Help documentation.

\n

Replaces the list of people that have push access to this branch. This removes all people that previously had push access and grants push access to the new list of people.

\n\n\n\n\n\n\n\n\n\n\n\n\n\n
TypeDescription
arrayUsernames for people who can have push access. Note: The list of users, apps, and teams in total is limited to 100 items.
", @@ -35535,10 +35531,10 @@ "subcategory": "branches" }, "slug": "remove-user-access-restrictions", - "category": "repos", - "categoryLabel": "Repos", - "subcategory": "branches", - "subcategoryLabel": "Branches", + "category": "branches", + "categoryLabel": "Branches", + "subcategory": "branch-protection", + "subcategoryLabel": "Branch protection", "contentType": "application/json", "notes": [], "descriptionHTML": "

Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see GitHub's products in the GitHub Help documentation.

\n

Removes the ability of a user to push to this branch.

\n\n\n\n\n\n\n\n\n\n\n\n\n\n
TypeDescription
arrayUsernames of the people who should no longer have push access. Note: The list of users, apps, and teams in total is limited to 100 items.
", @@ -41883,10 +41879,8 @@ "subcategory": "collaborators" }, "slug": "list-repository-collaborators", - "category": "repos", - "categoryLabel": "Repos", - "subcategory": "collaborators", - "subcategoryLabel": "Collaborators", + "category": "collaborators", + "categoryLabel": "Collaborators", "notes": [], "bodyParameters": [], "descriptionHTML": "

For organization-owned repositories, the list of collaborators includes outside collaborators, organization members that are direct collaborators, organization members with access through team memberships, organization members with access through default organization permissions, and organization owners.

\n

Team members will include the members of child teams.

\n

You must have push access to the repository in order to list collaborators.

", @@ -41966,10 +41960,8 @@ "subcategory": "collaborators" }, "slug": "check-if-a-user-is-a-repository-collaborator", - "category": "repos", - "categoryLabel": "Repos", - "subcategory": "collaborators", - "subcategoryLabel": "Collaborators", + "category": "collaborators", + "categoryLabel": "Collaborators", "notes": [], "responses": [ { @@ -42087,10 +42079,8 @@ "subcategory": "collaborators" }, "slug": "add-a-repository-collaborator", - "category": "repos", - "categoryLabel": "Repos", - "subcategory": "collaborators", - "subcategoryLabel": "Collaborators", + "category": "collaborators", + "categoryLabel": "Collaborators", "contentType": "application/json", "notes": [], "descriptionHTML": "

This endpoint triggers notifications. Creating content too quickly using this endpoint may result in secondary rate limiting. See \"Secondary rate limits\" and \"Dealing with secondary rate limits\" for details.

\n

For more information on permission levels, see \"Repository permission levels for an organization\". There are restrictions on which permissions can be granted to organization members when an organization base role is in place. In this case, the permission being given must be equal to or higher than the org base permission. Otherwise, the request will fail with:

\n
Cannot assign {member} permission of {role name}\n
\n

Note that, if you choose not to pass any parameters, you'll need to set Content-Length to zero when calling out to this endpoint. For more information, see \"HTTP verbs.\"

\n

The invitee will receive a notification that they have been invited to the repository, which they must accept or decline. They may do this via the notifications page, the email they receive, or by using the repository invitations API endpoints.

\n

Rate limits

\n

You are limited to sending 50 invitations to a repository per 24 hour period. Note there is no limit if you are inviting organization members to an organization repository.

", @@ -42208,10 +42198,8 @@ "subcategory": "collaborators" }, "slug": "remove-a-repository-collaborator", - "category": "repos", - "categoryLabel": "Repos", - "subcategory": "collaborators", - "subcategoryLabel": "Collaborators", + "category": "collaborators", + "categoryLabel": "Collaborators", "notes": [], "descriptionHTML": "", "responses": [ @@ -42285,10 +42273,8 @@ "subcategory": "collaborators" }, "slug": "get-repository-permissions-for-a-user", - "category": "repos", - "categoryLabel": "Repos", - "subcategory": "collaborators", - "subcategoryLabel": "Collaborators", + "category": "collaborators", + "categoryLabel": "Collaborators", "notes": [], "bodyParameters": [], "descriptionHTML": "

Checks the repository permission of a collaborator. The possible repository permissions are admin, write, read, and none.

", @@ -42379,8 +42365,8 @@ "subcategory": "comments" }, "slug": "list-commit-comments-for-a-repository", - "category": "repos", - "categoryLabel": "Repos", + "category": "commits", + "categoryLabel": "Commits", "subcategory": "comments", "subcategoryLabel": "Comments", "notes": [], @@ -42458,8 +42444,8 @@ "subcategory": "comments" }, "slug": "get-a-commit-comment", - "category": "repos", - "categoryLabel": "Repos", + "category": "commits", + "categoryLabel": "Commits", "subcategory": "comments", "subcategoryLabel": "Comments", "notes": [], @@ -42569,8 +42555,8 @@ "subcategory": "comments" }, "slug": "update-a-commit-comment", - "category": "repos", - "categoryLabel": "Repos", + "category": "commits", + "categoryLabel": "Commits", "subcategory": "comments", "subcategoryLabel": "Comments", "contentType": "application/json", @@ -42664,8 +42650,8 @@ "subcategory": "comments" }, "slug": "delete-a-commit-comment", - "category": "repos", - "categoryLabel": "Repos", + "category": "commits", + "categoryLabel": "Commits", "subcategory": "comments", "subcategoryLabel": "Comments", "notes": [], @@ -43167,10 +43153,8 @@ "subcategory": "commits" }, "slug": "list-commits", - "category": "repos", - "categoryLabel": "Repos", - "subcategory": "commits", - "subcategoryLabel": "Commits", + "category": "commits", + "categoryLabel": "Commits", "notes": [], "bodyParameters": [], "descriptionHTML": "

Signature verification object

\n

The response will include a verification object that describes the result of verifying the commit's signature. The following fields are included in the verification object:

\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n
NameTypeDescription
verifiedbooleanIndicates whether GitHub considers the signature in this commit to be verified.
reasonstringThe reason for verified value. Possible values and their meanings are enumerated in table below.
signaturestringThe signature that was extracted from the commit.
payloadstringThe value that was signed.
\n

These are the possible values for reason in the verification object:

\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n
ValueDescription
expired_keyThe key that made the signature is expired.
not_signing_keyThe \"signing\" flag is not among the usage flags in the GPG key that made the signature.
gpgverify_errorThere was an error communicating with the signature verification service.
gpgverify_unavailableThe signature verification service is currently unavailable.
unsignedThe object does not include a signature.
unknown_signature_typeA non-PGP signature was found in the commit.
no_userNo user was associated with the committer email address in the commit.
unverified_emailThe committer email address in the commit was associated with a user, but the email address is not verified on her/his account.
bad_emailThe committer email address in the commit is not included in the identities of the PGP key that made the signature.
unknown_keyThe key that made the signature has not been registered with any user's account.
malformed_signatureThere was an error parsing the signature.
invalidThe signature could not be cryptographically verified using the key whose key-id was found in the signature.
validNone of the above errors applied, so the signature is considered to be verified.
", @@ -43267,10 +43251,8 @@ "subcategory": "commits" }, "slug": "list-branches-for-head-commit", - "category": "repos", - "categoryLabel": "Repos", - "subcategory": "commits", - "subcategoryLabel": "Commits", + "category": "commits", + "categoryLabel": "Commits", "notes": [], "bodyParameters": [], "descriptionHTML": "

Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see GitHub's products in the GitHub Help documentation.

\n

Returns all branches where the given commit SHA is the HEAD, or latest commit for the branch.

", @@ -43372,8 +43354,8 @@ "subcategory": "comments" }, "slug": "list-commit-comments", - "category": "repos", - "categoryLabel": "Repos", + "category": "commits", + "categoryLabel": "Commits", "subcategory": "comments", "subcategoryLabel": "Comments", "notes": [], @@ -43510,8 +43492,8 @@ "subcategory": "comments" }, "slug": "create-a-commit-comment", - "category": "repos", - "categoryLabel": "Repos", + "category": "commits", + "categoryLabel": "Commits", "subcategory": "comments", "subcategoryLabel": "Comments", "contentType": "application/json", @@ -43658,10 +43640,8 @@ "subcategory": "commits" }, "slug": "list-pull-requests-associated-with-a-commit", - "category": "repos", - "categoryLabel": "Repos", - "subcategory": "commits", - "subcategoryLabel": "Commits", + "category": "commits", + "categoryLabel": "Commits", "notes": [], "bodyParameters": [], "descriptionHTML": "

Lists the merged pull request that introduced the commit to the repository. If the commit is not present in the default branch, additionally returns open pull requests associated with the commit. The results may include open and closed pull requests. Additional preview headers may be required to see certain details for associated pull requests, such as whether a pull request is in a draft state. For more information about previews that might affect this endpoint, see the List pull requests endpoint.

", @@ -43758,10 +43738,8 @@ "subcategory": "commits" }, "slug": "get-a-commit", - "category": "repos", - "categoryLabel": "Repos", - "subcategory": "commits", - "subcategoryLabel": "Commits", + "category": "commits", + "categoryLabel": "Commits", "notes": [], "bodyParameters": [], "descriptionHTML": "

Returns the contents of a single commit reference. You must have read access for the repository to use this endpoint.

\n

Note: If there are more than 300 files in the commit diff, the response will include pagination link headers for the remaining files, up to a limit of 3000 files. Each page contains the static commit information, and the only changes are to the file listing.

\n

You can pass the appropriate media type to fetch diff and patch formats. Diffs with binary data will have no patch property.

\n

To return only the SHA-1 hash of the commit reference, you can provide the sha custom media type in the Accept header. You can use this endpoint to check if a remote reference's SHA-1 hash is the same as your local reference's SHA-1 hash by providing the local SHA-1 reference as the ETag.

\n

Signature verification object

\n

The response will include a verification object that describes the result of verifying the commit's signature. The following fields are included in the verification object:

\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n
NameTypeDescription
verifiedbooleanIndicates whether GitHub considers the signature in this commit to be verified.
reasonstringThe reason for verified value. Possible values and their meanings are enumerated in table below.
signaturestringThe signature that was extracted from the commit.
payloadstringThe value that was signed.
\n

These are the possible values for reason in the verification object:

\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n
ValueDescription
expired_keyThe key that made the signature is expired.
not_signing_keyThe \"signing\" flag is not among the usage flags in the GPG key that made the signature.
gpgverify_errorThere was an error communicating with the signature verification service.
gpgverify_unavailableThe signature verification service is currently unavailable.
unsignedThe object does not include a signature.
unknown_signature_typeA non-PGP signature was found in the commit.
no_userNo user was associated with the committer email address in the commit.
unverified_emailThe committer email address in the commit was associated with a user, but the email address is not verified on her/his account.
bad_emailThe committer email address in the commit is not included in the identities of the PGP key that made the signature.
unknown_keyThe key that made the signature has not been registered with any user's account.
malformed_signatureThere was an error parsing the signature.
invalidThe signature could not be cryptographically verified using the key whose key-id was found in the signature.
validNone of the above errors applied, so the signature is considered to be verified.
", @@ -44143,8 +44121,8 @@ "subcategory": "statuses" }, "slug": "get-the-combined-status-for-a-specific-reference", - "category": "repos", - "categoryLabel": "Repos", + "category": "commits", + "categoryLabel": "Commits", "subcategory": "statuses", "subcategoryLabel": "Statuses", "notes": [], @@ -44248,8 +44226,8 @@ "subcategory": "statuses" }, "slug": "list-commit-statuses-for-a-reference", - "category": "repos", - "categoryLabel": "Repos", + "category": "commits", + "categoryLabel": "Commits", "subcategory": "statuses", "subcategoryLabel": "Statuses", "notes": [], @@ -44352,10 +44330,8 @@ "subcategory": "commits" }, "slug": "compare-two-commits", - "category": "repos", - "categoryLabel": "Repos", - "subcategory": "commits", - "subcategoryLabel": "Commits", + "category": "commits", + "categoryLabel": "Commits", "notes": [], "bodyParameters": [], "descriptionHTML": "

The basehead param is comprised of two parts: base and head. Both must be branch names in repo. To compare branches across other repositories in the same network as repo, use the format <USERNAME>:branch.

\n

The response from the API is equivalent to running the git log base..head command; however, commits are returned in chronological order. Pass the appropriate media type to fetch diff and patch formats.

\n

The response also includes details on the files that were changed between the two commits. This includes the status of the change (for example, if a file was added, removed, modified, or renamed), and details of the change itself. For example, files with a renamed status have a previous_filename field showing the previous filename of the file, and files with a modified status have a patch field showing the changes made to the file.

\n

Working with large comparisons

\n

To process a response with a large number of commits, you can use (per_page or page) to paginate the results. When using paging, the list of changed files is only returned with page 1, but includes all changed files for the entire comparison. For more information on working with pagination, see \"Traversing with pagination.\"

\n

When calling this API without any paging parameters (per_page or page), the returned list is limited to 250 commits and the last commit in the list is the most recent of the entire comparison. When a paging parameter is specified, the first commit in the returned list of each page is the earliest.

\n

Signature verification object

\n

The response will include a verification object that describes the result of verifying the commit's signature. The following fields are included in the verification object:

\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n
NameTypeDescription
verifiedbooleanIndicates whether GitHub considers the signature in this commit to be verified.
reasonstringThe reason for verified value. Possible values and their meanings are enumerated in table below.
signaturestringThe signature that was extracted from the commit.
payloadstringThe value that was signed.
\n

These are the possible values for reason in the verification object:

\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n
ValueDescription
expired_keyThe key that made the signature is expired.
not_signing_keyThe \"signing\" flag is not among the usage flags in the GPG key that made the signature.
gpgverify_errorThere was an error communicating with the signature verification service.
gpgverify_unavailableThe signature verification service is currently unavailable.
unsignedThe object does not include a signature.
unknown_signature_typeA non-PGP signature was found in the commit.
no_userNo user was associated with the committer email address in the commit.
unverified_emailThe committer email address in the commit was associated with a user, but the email address is not verified on her/his account.
bad_emailThe committer email address in the commit is not included in the identities of the PGP key that made the signature.
unknown_keyThe key that made the signature has not been registered with any user's account.
malformed_signatureThere was an error parsing the signature.
invalidThe signature could not be cryptographically verified using the key whose key-id was found in the signature.
validNone of the above errors applied, so the signature is considered to be verified.
", @@ -45655,10 +45631,8 @@ "subcategory": "deployments" }, "slug": "list-deployments", - "category": "repos", - "categoryLabel": "Repos", - "subcategory": "deployments", - "subcategoryLabel": "Deployments", + "category": "deployments", + "categoryLabel": "Deployments", "notes": [], "bodyParameters": [], "descriptionHTML": "

Simple filtering of deployments is available via query parameters:

", @@ -45861,10 +45835,8 @@ "subcategory": "deployments" }, "slug": "create-a-deployment", - "category": "repos", - "categoryLabel": "Repos", - "subcategory": "deployments", - "subcategoryLabel": "Deployments", + "category": "deployments", + "categoryLabel": "Deployments", "contentType": "application/json", "notes": [], "descriptionHTML": "

Deployments offer a few configurable parameters with certain defaults.

\n

The ref parameter can be any named branch, tag, or SHA. At GitHub AE we often deploy branches and verify them\nbefore we merge a pull request.

\n

The environment parameter allows deployments to be issued to different runtime environments. Teams often have\nmultiple environments for verifying their applications, such as production, staging, and qa. This parameter\nmakes it easier to track which environments have requested deployments. The default environment is production.

\n

The auto_merge parameter is used to ensure that the requested ref is not behind the repository's default branch. If\nthe ref is behind the default branch for the repository, we will attempt to merge it for you. If the merge succeeds,\nthe API will return a successful merge commit. If merge conflicts prevent the merge from succeeding, the API will\nreturn a failure response.

\n

By default, commit statuses for every submitted context must be in a success\nstate. The required_contexts parameter allows you to specify a subset of contexts that must be success, or to\nspecify contexts that have not yet been submitted. You are not required to use commit statuses to deploy. If you do\nnot require any contexts or create any commit statuses, the deployment will always succeed.

\n

The payload parameter is available for any extra information that a deployment system might need. It is a JSON text\nfield that will be passed on when a deployment event is dispatched.

\n

The task parameter is used by the deployment system to allow different execution paths. In the web world this might\nbe deploy:migrations to run schema changes on the system. In the compiled world this could be a flag to compile an\napplication with debugging enabled.

\n

Users with repo or repo_deployment scopes can create a deployment for a given ref.

\n

Merged branch response

\n

You will see this response when GitHub automatically merges the base branch into the topic branch instead of creating\na deployment. This auto-merge happens when:

\n
    \n
  • Auto-merge option is enabled in the repository
  • \n
  • Topic branch does not include the latest changes on the base branch, which is master in the response example
  • \n
  • There are no merge conflicts
  • \n
\n

If there are no new commits in the base branch, a new request to create a deployment should give a successful\nresponse.

\n

Merge conflict response

\n

This error happens when the auto_merge option is enabled and when the default branch (in this case master), can't\nbe merged into the branch that's being deployed (in this case topic-branch), due to merge conflicts.

\n

Failed commit status checks

\n

This error happens when the required_contexts parameter indicates that one or more contexts need to have a success\nstatus for the commit to be deployed, but one or more of the required contexts do not have a state of success.

", @@ -46057,10 +46029,8 @@ "subcategory": "deployments" }, "slug": "get-a-deployment", - "category": "repos", - "categoryLabel": "Repos", - "subcategory": "deployments", - "subcategoryLabel": "Deployments", + "category": "deployments", + "categoryLabel": "Deployments", "notes": [], "descriptionHTML": "", "bodyParameters": [], @@ -46141,10 +46111,8 @@ "subcategory": "deployments" }, "slug": "delete-a-deployment", - "category": "repos", - "categoryLabel": "Repos", - "subcategory": "deployments", - "subcategoryLabel": "Deployments", + "category": "deployments", + "categoryLabel": "Deployments", "notes": [], "responses": [ { @@ -46249,10 +46217,10 @@ "subcategory": "deployments" }, "slug": "list-deployment-statuses", - "category": "repos", - "categoryLabel": "Repos", - "subcategory": "deployments", - "subcategoryLabel": "Deployments", + "category": "deployments", + "categoryLabel": "Deployments", + "subcategory": "statuses", + "subcategoryLabel": "Statuses", "notes": [], "bodyParameters": [], "descriptionHTML": "

Users with pull access can view deployment statuses for a deployment:

", @@ -46435,10 +46403,10 @@ "subcategory": "deployments" }, "slug": "create-a-deployment-status", - "category": "repos", - "categoryLabel": "Repos", - "subcategory": "deployments", - "subcategoryLabel": "Deployments", + "category": "deployments", + "categoryLabel": "Deployments", + "subcategory": "statuses", + "subcategoryLabel": "Statuses", "contentType": "application/json", "notes": [], "descriptionHTML": "

Users with push access can create deployment statuses for a given deployment.

\n

GitHub Apps require read & write access to \"Deployments\" and read-only access to \"Repo contents\" (for private repos). OAuth Apps require the repo_deployment scope.

", @@ -46611,10 +46579,10 @@ "subcategory": "deployments" }, "slug": "get-a-deployment-status", - "category": "repos", - "categoryLabel": "Repos", - "subcategory": "deployments", - "subcategoryLabel": "Deployments", + "category": "deployments", + "categoryLabel": "Deployments", + "subcategory": "statuses", + "subcategoryLabel": "Statuses", "notes": [], "bodyParameters": [], "descriptionHTML": "

Users with pull access can view a deployment status for a deployment:

", @@ -49350,10 +49318,10 @@ "subcategory": "webhooks" }, "slug": "list-repository-webhooks", - "category": "repos", - "categoryLabel": "Repos", - "subcategory": "webhooks", - "subcategoryLabel": "Webhooks", + "category": "webhooks", + "categoryLabel": "Webhooks", + "subcategory": "repos", + "subcategoryLabel": "Repos", "notes": [], "descriptionHTML": "", "bodyParameters": [], @@ -49636,10 +49604,10 @@ "subcategory": "webhooks" }, "slug": "create-a-repository-webhook", - "category": "repos", - "categoryLabel": "Repos", - "subcategory": "webhooks", - "subcategoryLabel": "Webhooks", + "category": "webhooks", + "categoryLabel": "Webhooks", + "subcategory": "repos", + "subcategoryLabel": "Repos", "contentType": "application/json", "notes": [], "descriptionHTML": "

Repositories can have multiple webhooks installed. Each webhook should have a unique config. Multiple webhooks can\nshare the same config as long as those webhooks do not have any events that overlap.

", @@ -49916,10 +49884,10 @@ "subcategory": "webhooks" }, "slug": "get-a-repository-webhook", - "category": "repos", - "categoryLabel": "Repos", - "subcategory": "webhooks", - "subcategoryLabel": "Webhooks", + "category": "webhooks", + "categoryLabel": "Webhooks", + "subcategory": "repos", + "subcategoryLabel": "Repos", "notes": [], "bodyParameters": [], "descriptionHTML": "

Returns a webhook configured in a repository. To get only the webhook config properties, see \"Get a webhook configuration for a repository.\"

", @@ -50220,10 +50188,10 @@ "subcategory": "webhooks" }, "slug": "update-a-repository-webhook", - "category": "repos", - "categoryLabel": "Repos", - "subcategory": "webhooks", - "subcategoryLabel": "Webhooks", + "category": "webhooks", + "categoryLabel": "Webhooks", + "subcategory": "repos", + "subcategoryLabel": "Repos", "contentType": "application/json", "notes": [], "descriptionHTML": "

Updates a webhook configured in a repository. If you previously had a secret set, you must provide the same secret or set a new secret or the secret will be removed. If you are only updating individual webhook config properties, use \"Update a webhook configuration for a repository.\"

", @@ -50513,10 +50481,10 @@ "subcategory": "webhooks" }, "slug": "delete-a-repository-webhook", - "category": "repos", - "categoryLabel": "Repos", - "subcategory": "webhooks", - "subcategoryLabel": "Webhooks", + "category": "webhooks", + "categoryLabel": "Webhooks", + "subcategory": "repos", + "subcategoryLabel": "Repos", "notes": [], "descriptionHTML": "", "responses": [ @@ -50595,10 +50563,10 @@ "subcategory": "webhooks" }, "slug": "get-a-webhook-configuration-for-a-repository", - "category": "repos", - "categoryLabel": "Repos", - "subcategory": "webhooks", - "subcategoryLabel": "Webhooks", + "category": "webhooks", + "categoryLabel": "Webhooks", + "subcategory": "repo-config", + "subcategoryLabel": "Repo config", "notes": [], "bodyParameters": [], "descriptionHTML": "

Returns the webhook configuration for a repository. To get more information about the webhook, including the active state and events, use \"Get a repository webhook.\"

\n

Access tokens must have the read:repo_hook or repo scope, and GitHub Apps must have the repository_hooks:read permission.

", @@ -50740,10 +50708,10 @@ "subcategory": "webhooks" }, "slug": "update-a-webhook-configuration-for-a-repository", - "category": "repos", - "categoryLabel": "Repos", - "subcategory": "webhooks", - "subcategoryLabel": "Webhooks", + "category": "webhooks", + "categoryLabel": "Webhooks", + "subcategory": "repo-config", + "subcategoryLabel": "Repo config", "contentType": "application/json", "notes": [], "descriptionHTML": "

Updates the webhook configuration for a repository. To update more information about the webhook, including the active state and events, use \"Update a repository webhook.\"

\n

Access tokens must have the write:repo_hook or repo scope, and GitHub Apps must have the repository_hooks:write permission.

", @@ -50888,10 +50856,10 @@ "subcategory": "webhooks" }, "slug": "list-deliveries-for-a-repository-webhook", - "category": "repos", - "categoryLabel": "Repos", - "subcategory": "webhooks", - "subcategoryLabel": "Webhooks", + "category": "webhooks", + "categoryLabel": "Webhooks", + "subcategory": "repo-deliveries", + "subcategoryLabel": "Repo deliveries", "notes": [], "bodyParameters": [], "descriptionHTML": "

Returns a list of webhook deliveries for a webhook configured in a repository.

", @@ -50985,10 +50953,10 @@ "subcategory": "webhooks" }, "slug": "get-a-delivery-for-a-repository-webhook", - "category": "repos", - "categoryLabel": "Repos", - "subcategory": "webhooks", - "subcategoryLabel": "Webhooks", + "category": "webhooks", + "categoryLabel": "Webhooks", + "subcategory": "repo-deliveries", + "subcategoryLabel": "Repo deliveries", "notes": [], "bodyParameters": [], "descriptionHTML": "

Returns a delivery for a webhook configured in a repository.

", @@ -51082,10 +51050,10 @@ "subcategory": "webhooks" }, "slug": "redeliver-a-delivery-for-a-repository-webhook", - "category": "repos", - "categoryLabel": "Repos", - "subcategory": "webhooks", - "subcategoryLabel": "Webhooks", + "category": "webhooks", + "categoryLabel": "Webhooks", + "subcategory": "repo-deliveries", + "subcategoryLabel": "Repo deliveries", "notes": [], "responses": [ { @@ -51169,10 +51137,10 @@ "subcategory": "webhooks" }, "slug": "ping-a-repository-webhook", - "category": "repos", - "categoryLabel": "Repos", - "subcategory": "webhooks", - "subcategoryLabel": "Webhooks", + "category": "webhooks", + "categoryLabel": "Webhooks", + "subcategory": "repos", + "subcategoryLabel": "Repos", "notes": [], "responses": [ { @@ -51251,10 +51219,10 @@ "subcategory": "webhooks" }, "slug": "test-the-push-repository-webhook", - "category": "repos", - "categoryLabel": "Repos", - "subcategory": "webhooks", - "subcategoryLabel": "Webhooks", + "category": "webhooks", + "categoryLabel": "Webhooks", + "subcategory": "repos", + "subcategoryLabel": "Repos", "notes": [], "responses": [ { @@ -51421,8 +51389,8 @@ "subcategory": "invitations" }, "slug": "list-repository-invitations", - "category": "repos", - "categoryLabel": "Repos", + "category": "collaborators", + "categoryLabel": "Collaborators", "subcategory": "invitations", "subcategoryLabel": "Invitations", "notes": [], @@ -51528,8 +51496,8 @@ "subcategory": "invitations" }, "slug": "update-a-repository-invitation", - "category": "repos", - "categoryLabel": "Repos", + "category": "collaborators", + "categoryLabel": "Collaborators", "subcategory": "invitations", "subcategoryLabel": "Invitations", "contentType": "application/json", @@ -51625,8 +51593,8 @@ "subcategory": "invitations" }, "slug": "delete-a-repository-invitation", - "category": "repos", - "categoryLabel": "Repos", + "category": "collaborators", + "categoryLabel": "Collaborators", "subcategory": "invitations", "subcategoryLabel": "Invitations", "notes": [], @@ -55616,8 +55584,8 @@ "subcategory": "keys" }, "slug": "list-deploy-keys", - "category": "repos", - "categoryLabel": "Repos", + "category": "deployments", + "categoryLabel": "Deployments", "subcategory": "keys", "subcategoryLabel": "Keys", "notes": [], @@ -55732,8 +55700,8 @@ "subcategory": "keys" }, "slug": "create-a-deploy-key", - "category": "repos", - "categoryLabel": "Repos", + "category": "deployments", + "categoryLabel": "Deployments", "subcategory": "keys", "subcategoryLabel": "Keys", "contentType": "application/json", @@ -55845,8 +55813,8 @@ "subcategory": "keys" }, "slug": "get-a-deploy-key", - "category": "repos", - "categoryLabel": "Repos", + "category": "deployments", + "categoryLabel": "Deployments", "subcategory": "keys", "subcategoryLabel": "Keys", "notes": [], @@ -55929,8 +55897,8 @@ "subcategory": "keys" }, "slug": "delete-a-deploy-key", - "category": "repos", - "categoryLabel": "Repos", + "category": "deployments", + "categoryLabel": "Deployments", "subcategory": "keys", "subcategoryLabel": "Keys", "notes": [], @@ -56859,10 +56827,8 @@ "subcategory": "branches" }, "slug": "sync-a-fork-branch-with-the-upstream-repository", - "category": "repos", - "categoryLabel": "Repos", - "subcategory": "branches", - "subcategoryLabel": "Branches", + "category": "branches", + "categoryLabel": "Branches", "contentType": "application/json", "notes": [], "descriptionHTML": "

Sync a branch of a forked repository to keep it up-to-date with the upstream repository.

", @@ -56997,10 +56963,8 @@ "subcategory": "merging" }, "slug": "merge-a-branch", - "category": "repos", - "categoryLabel": "Repos", - "subcategory": "merging", - "subcategoryLabel": "Merging", + "category": "branches", + "categoryLabel": "Branches", "contentType": "application/json", "notes": [], "descriptionHTML": "", @@ -58135,10 +58099,8 @@ "subcategory": "pages" }, "slug": "get-a-github-ae-pages-site", - "category": "repos", - "categoryLabel": "Repos", - "subcategory": "pages", - "subcategoryLabel": "Pages", + "category": "pages", + "categoryLabel": "Pages", "notes": [], "descriptionHTML": "", "bodyParameters": [], @@ -58307,10 +58269,8 @@ ] }, "slug": "create-a-github-ae-pages-site", - "category": "repos", - "categoryLabel": "Repos", - "subcategory": "pages", - "subcategoryLabel": "Pages", + "category": "pages", + "categoryLabel": "Pages", "contentType": "application/json", "notes": [], "descriptionHTML": "

Configures a GitHub AE Pages site. For more information, see \"About GitHub Pages.\"

", @@ -58565,10 +58525,8 @@ "subcategory": "pages" }, "slug": "update-information-about-a-github-ae-pages-site", - "category": "repos", - "categoryLabel": "Repos", - "subcategory": "pages", - "subcategoryLabel": "Pages", + "category": "pages", + "categoryLabel": "Pages", "contentType": "application/json", "notes": [], "responses": [ @@ -58720,10 +58678,8 @@ ] }, "slug": "delete-a-github-ae-pages-site", - "category": "repos", - "categoryLabel": "Repos", - "subcategory": "pages", - "subcategoryLabel": "Pages", + "category": "pages", + "categoryLabel": "Pages", "notes": [], "descriptionHTML": "", "responses": [ @@ -58818,10 +58774,8 @@ "subcategory": "pages" }, "slug": "list-github-ae-pages-builds", - "category": "repos", - "categoryLabel": "Repos", - "subcategory": "pages", - "subcategoryLabel": "Pages", + "category": "pages", + "categoryLabel": "Pages", "notes": [], "descriptionHTML": "", "bodyParameters": [], @@ -58887,10 +58841,8 @@ "subcategory": "pages" }, "slug": "request-a-github-ae-pages-build", - "category": "repos", - "categoryLabel": "Repos", - "subcategory": "pages", - "subcategoryLabel": "Pages", + "category": "pages", + "categoryLabel": "Pages", "notes": [], "bodyParameters": [], "descriptionHTML": "

You can request that your site be built from the latest revision on the default branch. This has the same effect as pushing a commit to your default branch, but does not require an additional commit. Manually triggering page builds can be helpful when diagnosing build warnings and failures.

\n

Build requests are limited to one concurrent build per repository and one concurrent build per requester. If you request a build while another is still in progress, the second request will be queued until the first completes.

", @@ -58956,10 +58908,8 @@ "subcategory": "pages" }, "slug": "get-latest-pages-build", - "category": "repos", - "categoryLabel": "Repos", - "subcategory": "pages", - "subcategoryLabel": "Pages", + "category": "pages", + "categoryLabel": "Pages", "notes": [], "descriptionHTML": "", "bodyParameters": [], @@ -59034,10 +58984,8 @@ "subcategory": "pages" }, "slug": "get-github-ae-pages-build", - "category": "repos", - "categoryLabel": "Repos", - "subcategory": "pages", - "subcategoryLabel": "Pages", + "category": "pages", + "categoryLabel": "Pages", "notes": [], "descriptionHTML": "", "bodyParameters": [], @@ -63989,10 +63937,8 @@ "subcategory": "releases" }, "slug": "list-releases", - "category": "repos", - "categoryLabel": "Repos", - "subcategory": "releases", - "subcategoryLabel": "Releases", + "category": "releases", + "categoryLabel": "Releases", "notes": [], "bodyParameters": [], "descriptionHTML": "

This returns a list of releases, which does not include regular Git tags that have not been associated with a release. To get a list of Git tags, use the Repository Tags API.

\n

Information about published releases are available to everyone. Only users with push access will receive listings for draft releases.

", @@ -64143,10 +64089,8 @@ "subcategory": "releases" }, "slug": "create-a-release", - "category": "repos", - "categoryLabel": "Repos", - "subcategory": "releases", - "subcategoryLabel": "Releases", + "category": "releases", + "categoryLabel": "Releases", "contentType": "application/json", "notes": [], "descriptionHTML": "

Users with push access to the repository can create a release.

\n

This endpoint triggers notifications. Creating content too quickly using this endpoint may result in secondary rate limiting. See \"Secondary rate limits\" and \"Dealing with secondary rate limits\" for details.

", @@ -64285,10 +64229,10 @@ "subcategory": "releases" }, "slug": "get-a-release-asset", - "category": "repos", - "categoryLabel": "Repos", - "subcategory": "releases", - "subcategoryLabel": "Releases", + "category": "releases", + "categoryLabel": "Releases", + "subcategory": "assets", + "subcategoryLabel": "Assets", "notes": [], "bodyParameters": [], "descriptionHTML": "

To download the asset's binary content, set the Accept header of the request to application/octet-stream. The API will either redirect the client to the location, or stream it directly if possible. API clients should handle both a 200 or 302 response.

", @@ -64422,10 +64366,10 @@ "subcategory": "releases" }, "slug": "update-a-release-asset", - "category": "repos", - "categoryLabel": "Repos", - "subcategory": "releases", - "subcategoryLabel": "Releases", + "category": "releases", + "categoryLabel": "Releases", + "subcategory": "assets", + "subcategoryLabel": "Assets", "contentType": "application/json", "notes": [], "descriptionHTML": "

Users with push access to the repository can edit a release asset.

", @@ -64530,10 +64474,10 @@ "subcategory": "releases" }, "slug": "delete-a-release-asset", - "category": "repos", - "categoryLabel": "Repos", - "subcategory": "releases", - "subcategoryLabel": "Releases", + "category": "releases", + "categoryLabel": "Releases", + "subcategory": "assets", + "subcategoryLabel": "Assets", "notes": [], "descriptionHTML": "", "responses": [ @@ -64598,10 +64542,8 @@ "subcategory": "releases" }, "slug": "get-the-latest-release", - "category": "repos", - "categoryLabel": "Repos", - "subcategory": "releases", - "subcategoryLabel": "Releases", + "category": "releases", + "categoryLabel": "Releases", "notes": [], "bodyParameters": [], "descriptionHTML": "

View the latest published full release for the repository.

\n

The latest release is the most recent non-prerelease, non-draft release, sorted by the created_at attribute. The created_at attribute is the date of the commit used for the release, and not the date when the release was drafted or published.

", @@ -64678,10 +64620,8 @@ "subcategory": "releases" }, "slug": "get-a-release-by-tag-name", - "category": "repos", - "categoryLabel": "Repos", - "subcategory": "releases", - "subcategoryLabel": "Releases", + "category": "releases", + "categoryLabel": "Releases", "notes": [], "bodyParameters": [], "descriptionHTML": "

Get a published release with the specified tag.

", @@ -64762,10 +64702,8 @@ "subcategory": "releases" }, "slug": "get-a-release", - "category": "repos", - "categoryLabel": "Repos", - "subcategory": "releases", - "subcategoryLabel": "Releases", + "category": "releases", + "categoryLabel": "Releases", "notes": [], "bodyParameters": [], "descriptionHTML": "

Note: This returns an upload_url key corresponding to the endpoint for uploading release assets. This key is a hypermedia resource.

", @@ -64920,10 +64858,8 @@ "subcategory": "releases" }, "slug": "update-a-release", - "category": "repos", - "categoryLabel": "Repos", - "subcategory": "releases", - "subcategoryLabel": "Releases", + "category": "releases", + "categoryLabel": "Releases", "contentType": "application/json", "notes": [], "descriptionHTML": "

Users with push access to the repository can edit a release.

", @@ -65055,10 +64991,8 @@ "subcategory": "releases" }, "slug": "delete-a-release", - "category": "repos", - "categoryLabel": "Repos", - "subcategory": "releases", - "subcategoryLabel": "Releases", + "category": "releases", + "categoryLabel": "Releases", "notes": [], "responses": [ { @@ -65153,10 +65087,10 @@ "subcategory": "releases" }, "slug": "list-release-assets", - "category": "repos", - "categoryLabel": "Repos", - "subcategory": "releases", - "subcategoryLabel": "Releases", + "category": "releases", + "categoryLabel": "Releases", + "subcategory": "assets", + "subcategoryLabel": "Assets", "notes": [], "descriptionHTML": "", "bodyParameters": [], @@ -65271,10 +65205,10 @@ "subcategory": "releases" }, "slug": "upload-a-release-asset", - "category": "repos", - "categoryLabel": "Repos", - "subcategory": "releases", - "subcategoryLabel": "Releases", + "category": "releases", + "categoryLabel": "Releases", + "subcategory": "assets", + "subcategoryLabel": "Assets", "contentType": "*/*", "notes": [], "bodyParameters": [], @@ -65987,8 +65921,8 @@ "subcategory": "statistics" }, "slug": "get-the-weekly-commit-activity", - "category": "repos", - "categoryLabel": "Repos", + "category": "metrics", + "categoryLabel": "Metrics", "subcategory": "statistics", "subcategoryLabel": "Statistics", "notes": [], @@ -66066,8 +66000,8 @@ "subcategory": "statistics" }, "slug": "get-the-last-year-of-commit-activity", - "category": "repos", - "categoryLabel": "Repos", + "category": "metrics", + "categoryLabel": "Metrics", "subcategory": "statistics", "subcategoryLabel": "Statistics", "notes": [], @@ -66145,8 +66079,8 @@ "subcategory": "statistics" }, "slug": "get-all-contributor-commit-activity", - "category": "repos", - "categoryLabel": "Repos", + "category": "metrics", + "categoryLabel": "Metrics", "subcategory": "statistics", "subcategoryLabel": "Statistics", "notes": [], @@ -66224,8 +66158,8 @@ "subcategory": "statistics" }, "slug": "get-the-weekly-commit-count", - "category": "repos", - "categoryLabel": "Repos", + "category": "metrics", + "categoryLabel": "Metrics", "subcategory": "statistics", "subcategoryLabel": "Statistics", "notes": [], @@ -66298,8 +66232,8 @@ "subcategory": "statistics" }, "slug": "get-the-hourly-commit-count-for-each-day", - "category": "repos", - "categoryLabel": "Repos", + "category": "metrics", + "categoryLabel": "Metrics", "subcategory": "statistics", "subcategoryLabel": "Statistics", "notes": [], @@ -66446,8 +66380,8 @@ "subcategory": "statuses" }, "slug": "create-a-commit-status", - "category": "repos", - "categoryLabel": "Repos", + "category": "commits", + "categoryLabel": "Commits", "subcategory": "statuses", "subcategoryLabel": "Statuses", "contentType": "application/json", @@ -76126,8 +76060,8 @@ "subcategory": "invitations" }, "slug": "list-repository-invitations-for-the-authenticated-user", - "category": "repos", - "categoryLabel": "Repos", + "category": "collaborators", + "categoryLabel": "Collaborators", "subcategory": "invitations", "subcategoryLabel": "Invitations", "notes": [], @@ -76207,8 +76141,8 @@ "subcategory": "invitations" }, "slug": "accept-a-repository-invitation", - "category": "repos", - "categoryLabel": "Repos", + "category": "collaborators", + "categoryLabel": "Collaborators", "subcategory": "invitations", "subcategoryLabel": "Invitations", "notes": [], @@ -76287,8 +76221,8 @@ "subcategory": "invitations" }, "slug": "decline-a-repository-invitation", - "category": "repos", - "categoryLabel": "Repos", + "category": "collaborators", + "categoryLabel": "Collaborators", "subcategory": "invitations", "subcategoryLabel": "Invitations", "notes": [], diff --git a/middleware/contextualizers/rest.js b/middleware/contextualizers/rest.js index bc5c0b6119..9ed8f2a06e 100644 --- a/middleware/contextualizers/rest.js +++ b/middleware/contextualizers/rest.js @@ -1,5 +1,5 @@ import path from 'path' -import getRest, { restRepoCategoryExceptions } from '../../lib/rest/index.js' +import getRest from '../../lib/rest/index.js' import removeFPTFromPath from '../../lib/remove-fpt-from-path.js' // Global cache to avoid calling getRest() more than once @@ -24,16 +24,11 @@ export default async function restContext(req, res, next) { if (!req.pagePath.includes('rest/reference')) return next() // e.g. the `activity` from `/en/rest/reference/activity#events` - let category = req.pagePath + const category = req.pagePath .split('rest/reference')[1] .replace(/^\//, '') // remove leading slash .split('/')[0] - // override the category if the category is in the restRepoCategoryExceptions list - if (restRepoCategoryExceptions.includes(category)) { - category = 'repos' - } - // ignore empty strings or bare `/` if (!category || category.length < 2) return next() diff --git a/script/rest/update-files.js b/script/rest/update-files.js index 4d40680f83..9aca5d62b4 100755 --- a/script/rest/update-files.js +++ b/script/rest/update-files.js @@ -33,13 +33,15 @@ program ) .option('-d --include-deprecated', 'Includes schemas that are marked as `deprecated: true`') .option('-u --include-unpublished', 'Includes schemas that are marked as `published: false`') + .option('--redirects-only', 'Only generate the redirects file') .parse(process.argv) -const { decorateOnly, versions, includeUnpublished, includeDeprecated } = program.opts() +const { decorateOnly, versions, includeUnpublished, includeDeprecated, redirectsOnly } = + program.opts() // Check that the github/github repo exists. If the files are only being // decorated, the github/github repo isn't needed. -if (!decorateOnly) { +if (!decorateOnly && !redirectsOnly) { try { await stat(githubRepoDir) } catch (error) { @@ -68,11 +70,15 @@ main() async function main() { // Generate the dereferenced OpenAPI schema files - if (!decorateOnly) { + if (!decorateOnly && !redirectsOnly) { await getDereferencedFiles() } // Decorate the dereferenced files in a format ingestible by docs.github.com - await decorate() + if (!redirectsOnly) { + await decorate() + } + + await updateRedirectOverrides() console.log( '\n🏁 The static REST API files are now up-to-date with your local `github/github` checkout. To revert uncommitted changes, run `git checkout lib/rest/static/*.\n\n' @@ -128,6 +134,23 @@ async function getDereferencedFiles() { } } +async function updateRedirectOverrides() { + const overrides = JSON.parse(await readFile('script/rest/utils/rest-api-overrides.json', 'utf8')) + + const redirects = {} + console.log('\n➡️ Updating REST API redirect exception list.\n') + for (const value of Object.values(overrides)) { + const oldUrl = value.originalUrl + const anchor = oldUrl.replace('/rest/reference', '').split('#')[1] + redirects[oldUrl] = `/rest/reference/${value.category}#${anchor}` + } + await writeFile( + 'lib/redirects/static/rest-api-redirect-exceptions.json', + JSON.stringify(redirects, null, 2), + 'utf8' + ) +} + async function decorate() { console.log('\n🎄 Decorating the OpenAPI schema files in lib/rest/static/dereferenced.\n') const dereferencedSchemas = {} diff --git a/script/rest/utils/operation.js b/script/rest/utils/operation.js index 23f9e64841..6c01fbf519 100644 --- a/script/rest/utils/operation.js +++ b/script/rest/utils/operation.js @@ -1,4 +1,5 @@ #!/usr/bin/env node +import { readFile } from 'fs/promises' import { get, flatten, isPlainObject } from 'lodash-es' import { sentenceCase } from 'change-case' import GitHubSlugger from 'github-slugger' @@ -7,6 +8,9 @@ import renderContent from '../../../lib/render-content/index.js' import createCodeSamples from './create-code-samples.js' import Ajv from 'ajv' import operationSchema from './operation-schema.js' +const overrideOperations = JSON.parse( + await readFile('script/rest/utils/rest-api-overrides.json', 'utf8') +) const slugger = new GitHubSlugger() // titles that can't be derived by sentence-casing the ID @@ -26,14 +30,31 @@ export default class Operation { this.slug = slugger.slug(this.summary) // Add category + // workaround for misnamed `code-scanning.` category bug // https://github.com/github/rest-api-description/issues/38 this['x-github'].category = this['x-github'].category.replace('.', '') - this.category = this['x-github'].category + // A temporary override file allows us to override the category defined in + // the openapi schema. Without it, we'd have to update several + // @documentation_urls in the github/github code every time we move + // an endpoint to a new page. + this.category = overrideOperations[this.operationId] + ? overrideOperations[this.operationId].category + : this['x-github'].category this.categoryLabel = categoryTitles[this.category] || sentenceCase(this.category) // Add subcategory - if (this['x-github'].subcategory) { + + // A temporary override file allows us to override the subcategory + // defined in the openapi schema. Without it, we'd have to update several + // @documentation_urls in the github/github code every time we move + // an endpoint to a new page. + if (overrideOperations[this.operationId]) { + if (overrideOperations[this.operationId].subcategory) { + this.subcategory = overrideOperations[this.operationId].subcategory + this.subcategoryLabel = sentenceCase(this.subcategory) + } + } else if (this['x-github'].subcategory) { this.subcategory = this['x-github'].subcategory this.subcategoryLabel = sentenceCase(this.subcategory) } diff --git a/script/rest/utils/rest-api-overrides.json b/script/rest/utils/rest-api-overrides.json new file mode 100644 index 0000000000..491b9587d9 --- /dev/null +++ b/script/rest/utils/rest-api-overrides.json @@ -0,0 +1,612 @@ +{ + "repos/list-collaborators": { + "category": "collaborators", + "subcategory": null, + "originalUrl": "/rest/reference/repos#list-repository-collaborators" + }, + "repos/check-collaborator": { + "category": "collaborators", + "subcategory": null, + "originalUrl": "/rest/reference/repos#check-if-a-user-is-a-repository-collaborator" + }, + "repos/add-collaborator": { + "category": "collaborators", + "subcategory": null, + "originalUrl": "/rest/reference/repos#add-a-repository-collaborator" + }, + "repos/remove-collaborator": { + "category": "collaborators", + "subcategory": null, + "originalUrl": "/rest/reference/repos#remove-a-repository-collaborator" + }, + "repos/get-collaborator-permission-level": { + "category": "collaborators", + "subcategory": null, + "originalUrl": "/rest/reference/repos#get-repository-permissions-for-a-user" + }, + "repos/list-commit-comments-for-repo": { + "category": "commits", + "subcategory": "comments", + "originalUrl": "/rest/reference/repos#list-commit-comments-for-a-repository" + }, + "repos/get-commit-comment": { + "category": "commits", + "subcategory": "comments", + "originalUrl": "/rest/reference/repos#get-a-commit-comment" + }, + "repos/update-commit-comment": { + "category": "commits", + "subcategory": "comments", + "originalUrl": "/rest/reference/repos#update-a-commit-comment" + }, + "repos/delete-commit-comment": { + "category": "commits", + "subcategory": "comments", + "originalUrl": "/rest/reference/repos#delete-a-commit-comment" + }, + "repos/list-commits": { + "category": "commits", + "subcategory": null, + "originalUrl": "/rest/reference/repos#list-commits" + }, + "repos/list-branches-for-head-commit": { + "category": "commits", + "subcategory": null, + "originalUrl": "/rest/reference/repos#list-branches-for-head-commit" + }, + "repos/list-comments-for-commit": { + "category": "commits", + "subcategory": "comments", + "originalUrl": "/rest/reference/repos#list-commit-comments" + }, + "repos/create-commit-comment": { + "category": "commits", + "subcategory": "comments", + "originalUrl": "/rest/reference/repos#create-a-commit-comment" + }, + "repos/list-pull-requests-associated-with-commit": { + "category": "commits", + "subcategory": null, + "originalUrl": "/rest/reference/repos#list-pull-requests-associated-with-a-commit" + }, + "repos/get-commit": { + "category": "commits", + "subcategory": null, + "originalUrl": "/rest/reference/repos#get-a-commit" + }, + "repos/get-combined-status-for-ref": { + "category": "commits", + "subcategory": "statuses", + "originalUrl": "/rest/reference/repos#get-the-combined-status-for-a-specific-reference" + }, + "repos/list-commit-statuses-for-ref": { + "category": "commits", + "subcategory": "statuses", + "originalUrl": "/rest/reference/repos#list-commit-statuses-for-a-reference" + }, + "repos/get-community-profile-metrics": { + "category": "metrics", + "subcategory": "community", + "originalUrl": "/rest/reference/repos#get-community-profile-metrics" + }, + "repos/compare-commits": { + "category": "commits", + "subcategory": null, + "originalUrl": "/rest/reference/repos#compare-two-commits" + }, + "repos/get-all-environments": { + "category": "deployments", + "subcategory": "environments", + "originalUrl": "/rest/reference/repos#get-all-environments" + }, + "repos/get-environment": { + "category": "deployments", + "subcategory": "environments", + "originalUrl": "/rest/reference/repos#get-an-environment" + }, + "repos/create-or-update-environment": { + "category": "deployments", + "subcategory": "environments", + "originalUrl": "/rest/reference/repos#create-or-update-an-environment" + }, + "repos/delete-an-environment": { + "category": "deployments", + "subcategory": "environments", + "originalUrl": "/rest/reference/repos#delete-an-environment" + }, + "repos/list-invitations": { + "category": "collaborators", + "subcategory": "invitations", + "originalUrl": "/rest/reference/repos#list-repository-invitations" + }, + "repos/update-invitation": { + "category": "collaborators", + "subcategory": "invitations", + "originalUrl": "/rest/reference/repos#update-a-repository-invitation" + }, + "repos/delete-invitation": { + "category": "collaborators", + "subcategory": "invitations", + "originalUrl": "/rest/reference/repos#delete-a-repository-invitation" + }, + "repos/list-deploy-keys": { + "category": "deployments", + "subcategory": "keys", + "originalUrl": "/rest/reference/repos#list-deploy-keys" + }, + "repos/create-deploy-key": { + "category": "deployments", + "subcategory": "keys", + "originalUrl": "/rest/reference/repos#create-a-deploy-key" + }, + "repos/get-deploy-key": { + "category": "deployments", + "subcategory": "keys", + "originalUrl": "/rest/reference/repos#get-a-deploy-key" + }, + "repos/delete-deploy-key": { + "category": "deployments", + "subcategory": "keys", + "originalUrl": "/rest/reference/repos#delete-a-deploy-key" + }, + "repos/get-pages": { + "category": "pages", + "subcategory": null, + "originalUrl": "/rest/reference/repos#get-a-github-pages-site" + }, + "repos/create-pages-site": { + "category": "pages", + "subcategory": null, + "originalUrl": "/rest/reference/repos#create-a-github-pages-site" + }, + "repos/update-information-about-pages-site": { + "category": "pages", + "subcategory": null, + "originalUrl": "/rest/reference/repos#update-information-about-a-github-pages-site" + }, + "repos/delete-pages-site": { + "category": "pages", + "subcategory": null, + "originalUrl": "/rest/reference/repos#delete-a-github-pages-site" + }, + "repos/list-pages-builds": { + "category": "pages", + "subcategory": null, + "originalUrl": "/rest/reference/repos#list-github-pages-builds" + }, + "repos/request-pages-build": { + "category": "pages", + "subcategory": null, + "originalUrl": "/rest/reference/repos#request-a-github-pages-build" + }, + "repos/get-latest-pages-build": { + "category": "pages", + "subcategory": null, + "originalUrl": "/rest/reference/repos#get-latest-pages-build" + }, + "repos/get-pages-build": { + "category": "pages", + "subcategory": null, + "originalUrl": "/rest/reference/repos#get-github-pages-build" + }, + "repos/get-pages-health-check": { + "category": "pages", + "subcategory": null, + "originalUrl": "/rest/reference/repos#get-a-dns-health-check-for-github-pages" + }, + "repos/get-code-frequency-stats": { + "category": "metrics", + "subcategory": "statistics", + "originalUrl": "/rest/reference/repos#get-the-weekly-commit-activity" + }, + "repos/get-commit-activity-stats": { + "category": "metrics", + "subcategory": "statistics", + "originalUrl": "/rest/reference/repos#get-the-last-year-of-commit-activity" + }, + "repos/get-contributors-stats": { + "category": "metrics", + "subcategory": "statistics", + "originalUrl": "/rest/reference/repos#get-all-contributor-commit-activity" + }, + "repos/get-participation-stats": { + "category": "metrics", + "subcategory": "statistics", + "originalUrl": "/rest/reference/repos#get-the-weekly-commit-count" + }, + "repos/get-punch-card-stats": { + "category": "metrics", + "subcategory": "statistics", + "originalUrl": "/rest/reference/repos#get-the-hourly-commit-count-for-each-day" + }, + "repos/create-commit-status": { + "category": "commits", + "subcategory": "statuses", + "originalUrl": "/rest/reference/repos#create-a-commit-status" + }, + "repos/get-clones": { + "category": "metrics", + "subcategory": "traffic", + "originalUrl": "/rest/reference/repos#get-repository-clones" + }, + "repos/get-top-paths": { + "category": "metrics", + "subcategory": "traffic", + "originalUrl": "/rest/reference/repos#get-top-referral-paths" + }, + "repos/get-top-referrers": { + "category": "metrics", + "subcategory": "traffic", + "originalUrl": "/rest/reference/repos#get-top-referral-sources" + }, + "repos/get-views": { + "category": "metrics", + "subcategory": "traffic", + "originalUrl": "/rest/reference/repos#get-page-views" + }, + "repos/list-invitations-for-authenticated-user": { + "category": "collaborators", + "subcategory": "invitations", + "originalUrl": "/rest/reference/repos#list-repository-invitations-for-the-authenticated-user" + }, + "repos/accept-invitation-for-authenticated-user": { + "category": "collaborators", + "subcategory": "invitations", + "originalUrl": "/rest/reference/repos#accept-a-repository-invitation" + }, + "repos/decline-invitation-for-authenticated-user": { + "category": "collaborators", + "subcategory": "invitations", + "originalUrl": "/rest/reference/repos#decline-a-repository-invitation" + }, + "repos/list-branches": { + "category": "branches", + "subcategory": null, + "originalUrl": "/rest/reference/repos#list-branches" + }, + "repos/get-branch": { + "category": "branches", + "subcategory": null, + "originalUrl": "/rest/reference/repos#get-a-branch" + }, + "repos/rename-branch": { + "category": "branches", + "subcategory": null, + "originalUrl": "/rest/reference/repos#rename-a-branch" + }, + "repos/merge-upstream": { + "category": "branches", + "subcategory": null, + "originalUrl": "/rest/reference/repos#sync-a-fork-branch-with-the-upstream-repository" + }, + "repos/merge": { + "category": "branches", + "subcategory": null, + "originalUrl": "/rest/reference/repos#merge-a-branch" + }, + "repos/add-app-access-restrictions": { + "category": "branches", + "subcategory": "branch-protection", + "originalUrl": "/rest/reference/repos#add-app-access-restrictions" + }, + "repos/add-status-check-contexts": { + "category": "branches", + "subcategory": "branch-protection", + "originalUrl": "/rest/reference/repos#add-status-check-contexts" + }, + "repos/add-team-access-restrictions": { + "category": "branches", + "subcategory": "branch-protection", + "originalUrl": "/rest/reference/repos#add-team-access-restrictions" + }, + "repos/add-user-access-restrictions": { + "category": "branches", + "subcategory": "branch-protection", + "originalUrl": "/rest/reference/repos#add-user-access-restrictions" + }, + "repos/create-commit-signature-protection": { + "category": "branches", + "subcategory": "branch-protection", + "originalUrl": "/rest/reference/repos#create-commit-signature-protection" + }, + "repos/delete-access-restrictions": { + "category": "branches", + "subcategory": "branch-protection", + "originalUrl": "/rest/reference/repos#delete-access-restrictions" + }, + "repos/delete-admin-branch-protection": { + "category": "branches", + "subcategory": "branch-protection", + "originalUrl": "/rest/reference/repos#delete-admin-branch-protection" + }, + "repos/delete-branch-protection": { + "category": "branches", + "subcategory": "branch-protection", + "originalUrl": "/rest/reference/repos#delete-branch-protection" + }, + "repos/delete-commit-signature-protection": { + "category": "branches", + "subcategory": "branch-protection", + "originalUrl": "/rest/reference/repos#delete-commit-signature-protection" + }, + "repos/delete-pull-request-review-protection": { + "category": "branches", + "subcategory": "branch-protection", + "originalUrl": "/rest/reference/repos#delete-pull-request-review-protection" + }, + "repos/get-access-restrictions": { + "category": "branches", + "subcategory": "branch-protection", + "originalUrl": "/rest/reference/repos#get-access-restrictions" + }, + "repos/get-admin-branch-protection": { + "category": "branches", + "subcategory": "branch-protection", + "originalUrl": "/rest/reference/repos#get-admin-branch-protection" + }, + "repos/get-all-status-check-contexts": { + "category": "branches", + "subcategory": "branch-protection", + "originalUrl": "/rest/reference/repos#get-all-status-check-contexts" + }, + "repos/get-apps-with-access-to-protected-branch": { + "category": "branches", + "subcategory": "branch-protection", + "originalUrl": "/rest/reference/repos#list-apps-with-access-to-the-protected-branch" + }, + "repos/update-pull-request-review-protection": { + "category": "branches", + "subcategory": "branch-protection", + "originalUrl": "/rest/reference/repos#update-pull-request-review-protection" + }, + "repos/get-branch-protection": { + "category": "branches", + "subcategory": "branch-protection", + "originalUrl": "/rest/reference/repos#get-branch-protection" + }, + "repos/get-commit-signature-protection": { + "category": "branches", + "subcategory": "branch-protection", + "originalUrl": "/rest/reference/repos#get-commit-signature-protection" + }, + "repos/get-pull-request-review-protection": { + "category": "branches", + "subcategory": "branch-protection", + "originalUrl": "/rest/reference/repos#get-pull-request-review-protection" + }, + "repos/get-status-checks-protection": { + "category": "branches", + "subcategory": "branch-protection", + "originalUrl": "/rest/reference/repos#get-status-checks-protection" + }, + "repos/get-teams-with-access-to-protected-branch": { + "category": "branches", + "subcategory": "branch-protection", + "originalUrl": "/rest/reference/repos#list-teams-with-access-to-the-protected-branch" + }, + "repos/get-users-with-access-to-protected-branch": { + "category": "branches", + "subcategory": "branch-protection", + "originalUrl": "/rest/reference/repos#list-users-with-access-to-the-protected-branch" + }, + "repos/remove-app-access-restrictions": { + "category": "branches", + "subcategory": "branch-protection", + "originalUrl": "/rest/reference/repos#remove-app-access-restrictions" + }, + "repos/remove-status-check-contexts": { + "category": "branches", + "subcategory": "branch-protection", + "originalUrl": "/rest/reference/repos#remove-status-check-contexts" + }, + "repos/remove-status-check-protection": { + "category": "branches", + "subcategory": "branch-protection", + "originalUrl": "/rest/reference/repos#remove-status-check-protection" + }, + "repos/remove-team-access-restrictions": { + "category": "branches", + "subcategory": "branch-protection", + "originalUrl": "/rest/reference/repos#remove-team-access-restrictions" + }, + "repos/remove-user-access-restrictions": { + "category": "branches", + "subcategory": "branch-protection", + "originalUrl": "/rest/reference/repos#remove-user-access-restrictions" + }, + "repos/set-admin-branch-protection": { + "category": "branches", + "subcategory": "branch-protection", + "originalUrl": "/rest/reference/repos#set-admin-branch-protection" + }, + "repos/set-app-access-restrictions": { + "category": "branches", + "subcategory": "branch-protection", + "originalUrl": "/rest/reference/repos#set-app-access-restrictions" + }, + "repos/set-status-check-contexts": { + "category": "branches", + "subcategory": "branch-protection", + "originalUrl": "/rest/reference/repos#set-status-check-contexts" + }, + "repos/set-team-access-restrictions": { + "category": "branches", + "subcategory": "branch-protection", + "originalUrl": "/rest/reference/repos#set-team-access-restrictions" + }, + "repos/set-user-access-restrictions": { + "category": "branches", + "subcategory": "branch-protection", + "originalUrl": "/rest/reference/repos#set-user-access-restrictions" + }, + "repos/update-branch-protection": { + "category": "branches", + "subcategory": "branch-protection", + "originalUrl": "/rest/reference/repos#update-branch-protection" + }, + "repos/update-status-check-protection": { + "category": "branches", + "subcategory": "branch-protection", + "originalUrl": "/rest/reference/repos#update-status-check-protection" + }, + "repos/create-deployment-status": { + "category": "deployments", + "subcategory": "statuses", + "originalUrl": "/rest/reference/repos#create-a-deployment-status" + }, + "repos/list-deployment-statuses": { + "category": "deployments", + "subcategory": "statuses", + "originalUrl": "/rest/reference/repos#list-deployment-statuses" + }, + "repos/get-deployment-status": { + "category": "deployments", + "subcategory": "statuses", + "originalUrl": "/rest/reference/repos#get-a-deployment-status" + }, + "repos/list-deployments": { + "category": "deployments", + "subcategory": null, + "originalUrl": "/rest/reference/repos#list-deployments" + }, + "repos/create-deployment": { + "category": "deployments", + "subcategory": null, + "originalUrl": "/rest/reference/repos#create-a-deployment" + }, + "repos/get-deployment": { + "category": "deployments", + "subcategory": null, + "originalUrl": "/rest/reference/repos#get-a-deployment" + }, + "repos/delete-deployment": { + "category": "deployments", + "subcategory": null, + "originalUrl": "/rest/reference/repos#delete-a-deployment" + }, + "repos/list-releases": { + "category": "releases", + "subcategory": null, + "originalUrl": "/rest/reference/repos#list-releases" + }, + "repos/create-release": { + "category": "releases", + "subcategory": null, + "originalUrl": "/rest/reference/repos#create-a-release" + }, + "repos/generate-release-notes": { + "category": "releases", + "subcategory": null, + "originalUrl": "/rest/reference/repos#generate-release-notes" + }, + "repos/get-latest-release": { + "category": "releases", + "subcategory": null, + "originalUrl": "/rest/reference/repos#get-the-latest-release" + }, + "repos/get-release-by-tag": { + "category": "releases", + "subcategory": null, + "originalUrl": "/rest/reference/repos#get-a-release-by-tag-name" + }, + "repos/get-release": { + "category": "releases", + "subcategory": null, + "originalUrl": "/rest/reference/repos#get-a-release" + }, + "repos/update-release": { + "category": "releases", + "subcategory": null, + "originalUrl": "/rest/reference/repos#update-a-release" + }, + "repos/delete-release": { + "category": "releases", + "subcategory": null, + "originalUrl": "/rest/reference/repos#delete-a-release" + }, + "repos/delete-release-asset": { + "category": "releases", + "subcategory": "assets", + "originalUrl": "/rest/reference/repos#delete-a-release-asset" + }, + "repos/get-release-asset": { + "category": "releases", + "subcategory": "assets", + "originalUrl": "/rest/reference/repos#get-a-release-asset" + }, + "repos/list-release-assets": { + "category": "releases", + "subcategory": "assets", + "originalUrl": "/rest/reference/repos#list-release-assets" + }, + "repos/update-release-asset": { + "category": "releases", + "subcategory": "assets", + "originalUrl": "/rest/reference/repos#update-a-release-asset" + }, + "repos/upload-release-asset": { + "category": "releases", + "subcategory": "assets", + "originalUrl": "/rest/reference/repos#upload-a-release-asset" + }, + "repos/list-webhooks": { + "category": "webhooks", + "subcategory": "repos", + "originalUrl": "/rest/reference/repos#list-repository-webhooks" + }, + "repos/create-webhook": { + "category": "webhooks", + "subcategory": "repos", + "originalUrl": "/rest/reference/repos#create-a-repository-webhook" + }, + "repos/get-webhook": { + "category": "webhooks", + "subcategory": "repos", + "originalUrl": "/rest/reference/repos#get-a-repository-webhook" + }, + "repos/update-webhook": { + "category": "webhooks", + "subcategory": "repos", + "originalUrl": "/rest/reference/repos#update-a-repository-webhook" + }, + "repos/delete-webhook": { + "category": "webhooks", + "subcategory": "repos", + "originalUrl": "/rest/reference/repos#delete-a-repository-webhook" + }, + "repos/ping-webhook": { + "category": "webhooks", + "subcategory": "repos", + "originalUrl": "/rest/reference/repos#ping-a-repository-webhook" + }, + "repos/test-push-webhook": { + "category": "webhooks", + "subcategory": "repos", + "originalUrl": "/rest/reference/repos#test-the-push-repository-webhook" + }, + "repos/get-webhook-config-for-repo": { + "category": "webhooks", + "subcategory": "repo-config", + "originalUrl": "/rest/reference/repos#get-a-webhook-configuration-for-a-repository" + }, + "repos/update-webhook-config-for-repo": { + "category": "webhooks", + "subcategory": "repo-config", + "originalUrl": "/rest/reference/repos#update-a-webhook-configuration-for-a-repository" + }, + "repos/get-webhook-delivery": { + "category": "webhooks", + "subcategory": "repo-deliveries", + "originalUrl": "/rest/reference/repos#get-a-delivery-for-a-repository-webhook" + }, + "repos/list-webhook-deliveries": { + "category": "webhooks", + "subcategory": "repo-deliveries", + "originalUrl": "/rest/reference/repos#list-deliveries-for-a-repository-webhook" + }, + "repos/redeliver-webhook-delivery": { + "category": "webhooks", + "subcategory": "repo-deliveries", + "originalUrl": "/rest/reference/repos#redeliver-a-delivery-for-a-repository-webhook" + } +} \ No newline at end of file diff --git a/tests/rendering/rest.js b/tests/rendering/rest.js index 00104ab042..8f66097599 100644 --- a/tests/rendering/rest.js +++ b/tests/rendering/rest.js @@ -4,7 +4,7 @@ import fs from 'fs/promises' import { difference, isPlainObject } from 'lodash-es' import { getJSON } from '../helpers/supertest.js' import enterpriseServerReleases from '../../lib/enterprise-server-releases.js' -import getRest, { restRepoCategoryExceptions } from '../../lib/rest/index.js' +import getRest from '../../lib/rest/index.js' import { jest } from '@jest/globals' const __dirname = path.dirname(fileURLToPath(import.meta.url)) @@ -28,7 +28,6 @@ describe('REST references docs', () => { !excludeFromResourceNameCheck.find((excludedFile) => filename.endsWith(excludedFile)) ) .map((filename) => filename.replace('.md', '')) - .filter((filename) => !restRepoCategoryExceptions.includes(filename)) const missingResource = 'Found a markdown file in content/rest/reference that is not represented by an OpenAPI REST operation category.' diff --git a/translations/es-ES/content/rest/reference/repository-metrics.md b/translations/es-ES/content/rest/reference/repository-metrics.md deleted file mode 100644 index aea394d6e0..0000000000 --- a/translations/es-ES/content/rest/reference/repository-metrics.md +++ /dev/null @@ -1,61 +0,0 @@ ---- -title: Repository metrics -intro: 'The repository metrics API allows you to retrieve community profile, statistics, and traffic for your repository.' -allowTitleToDifferFromFilename: true -versions: - fpt: '*' - ghes: '*' - ghae: '*' - ghec: '*' -topics: - - API -miniTocMaxHeadingLevel: 3 ---- - -{% ifversion fpt or ghec %} -## Community - -{% for operation in currentRestOperations %} - {% if operation.subcategory == 'community' %}{% include rest_operation %}{% endif %} -{% endfor %} - -{% endif %} - -## Statistics - -The Repository Statistics API allows you to fetch the data that {% data variables.product.product_name %} uses for visualizing different -types of repository activity. - -### A word about caching - -Computing repository statistics is an expensive operation, so we try to return cached -data whenever possible. If the data hasn't been cached when you query a repository's -statistics, you'll receive a `202` response; a background job is also fired to -start compiling these statistics. Give the job a few moments to complete, and -then submit the request again. If the job has completed, that request will receive a -`200` response with the statistics in the response body. - -Repository statistics are cached by the SHA of the repository's default branch; pushing to the default branch resets the statistics cache. - -### Statistics exclude some types of commits - -The statistics exposed by the API match the statistics shown by [different repository graphs](/github/visualizing-repository-data-with-graphs/about-repository-graphs). - -To summarize: -- All statistics exclude merge commits. -- Contributor statistics also exclude empty commits. - -{% for operation in currentRestOperations %} - {% if operation.subcategory == 'statistics' %}{% include rest_operation %}{% endif %} -{% endfor %} - -{% ifversion fpt or ghec %} -## Traffic - -For repositories that you have push access to, the traffic API provides access -to the information provided in your repository graph. For more information, see "Viewing traffic to a repository." - -{% for operation in currentRestOperations %} - {% if operation.subcategory == 'traffic' %}{% include rest_operation %}{% endif %} -{% endfor %} -{% endif %} \ No newline at end of file diff --git a/translations/ja-JP/content/rest/reference/repository-metrics.md b/translations/ja-JP/content/rest/reference/repository-metrics.md deleted file mode 100644 index aea394d6e0..0000000000 --- a/translations/ja-JP/content/rest/reference/repository-metrics.md +++ /dev/null @@ -1,61 +0,0 @@ ---- -title: Repository metrics -intro: 'The repository metrics API allows you to retrieve community profile, statistics, and traffic for your repository.' -allowTitleToDifferFromFilename: true -versions: - fpt: '*' - ghes: '*' - ghae: '*' - ghec: '*' -topics: - - API -miniTocMaxHeadingLevel: 3 ---- - -{% ifversion fpt or ghec %} -## Community - -{% for operation in currentRestOperations %} - {% if operation.subcategory == 'community' %}{% include rest_operation %}{% endif %} -{% endfor %} - -{% endif %} - -## Statistics - -The Repository Statistics API allows you to fetch the data that {% data variables.product.product_name %} uses for visualizing different -types of repository activity. - -### A word about caching - -Computing repository statistics is an expensive operation, so we try to return cached -data whenever possible. If the data hasn't been cached when you query a repository's -statistics, you'll receive a `202` response; a background job is also fired to -start compiling these statistics. Give the job a few moments to complete, and -then submit the request again. If the job has completed, that request will receive a -`200` response with the statistics in the response body. - -Repository statistics are cached by the SHA of the repository's default branch; pushing to the default branch resets the statistics cache. - -### Statistics exclude some types of commits - -The statistics exposed by the API match the statistics shown by [different repository graphs](/github/visualizing-repository-data-with-graphs/about-repository-graphs). - -To summarize: -- All statistics exclude merge commits. -- Contributor statistics also exclude empty commits. - -{% for operation in currentRestOperations %} - {% if operation.subcategory == 'statistics' %}{% include rest_operation %}{% endif %} -{% endfor %} - -{% ifversion fpt or ghec %} -## Traffic - -For repositories that you have push access to, the traffic API provides access -to the information provided in your repository graph. For more information, see "Viewing traffic to a repository." - -{% for operation in currentRestOperations %} - {% if operation.subcategory == 'traffic' %}{% include rest_operation %}{% endif %} -{% endfor %} -{% endif %} \ No newline at end of file diff --git a/translations/pt-BR/content/rest/reference/repository-metrics.md b/translations/pt-BR/content/rest/reference/repository-metrics.md deleted file mode 100644 index aea394d6e0..0000000000 --- a/translations/pt-BR/content/rest/reference/repository-metrics.md +++ /dev/null @@ -1,61 +0,0 @@ ---- -title: Repository metrics -intro: 'The repository metrics API allows you to retrieve community profile, statistics, and traffic for your repository.' -allowTitleToDifferFromFilename: true -versions: - fpt: '*' - ghes: '*' - ghae: '*' - ghec: '*' -topics: - - API -miniTocMaxHeadingLevel: 3 ---- - -{% ifversion fpt or ghec %} -## Community - -{% for operation in currentRestOperations %} - {% if operation.subcategory == 'community' %}{% include rest_operation %}{% endif %} -{% endfor %} - -{% endif %} - -## Statistics - -The Repository Statistics API allows you to fetch the data that {% data variables.product.product_name %} uses for visualizing different -types of repository activity. - -### A word about caching - -Computing repository statistics is an expensive operation, so we try to return cached -data whenever possible. If the data hasn't been cached when you query a repository's -statistics, you'll receive a `202` response; a background job is also fired to -start compiling these statistics. Give the job a few moments to complete, and -then submit the request again. If the job has completed, that request will receive a -`200` response with the statistics in the response body. - -Repository statistics are cached by the SHA of the repository's default branch; pushing to the default branch resets the statistics cache. - -### Statistics exclude some types of commits - -The statistics exposed by the API match the statistics shown by [different repository graphs](/github/visualizing-repository-data-with-graphs/about-repository-graphs). - -To summarize: -- All statistics exclude merge commits. -- Contributor statistics also exclude empty commits. - -{% for operation in currentRestOperations %} - {% if operation.subcategory == 'statistics' %}{% include rest_operation %}{% endif %} -{% endfor %} - -{% ifversion fpt or ghec %} -## Traffic - -For repositories that you have push access to, the traffic API provides access -to the information provided in your repository graph. For more information, see "Viewing traffic to a repository." - -{% for operation in currentRestOperations %} - {% if operation.subcategory == 'traffic' %}{% include rest_operation %}{% endif %} -{% endfor %} -{% endif %} \ No newline at end of file diff --git a/translations/zh-CN/content/rest/reference/repository-metrics.md b/translations/zh-CN/content/rest/reference/repository-metrics.md deleted file mode 100644 index aea394d6e0..0000000000 --- a/translations/zh-CN/content/rest/reference/repository-metrics.md +++ /dev/null @@ -1,61 +0,0 @@ ---- -title: Repository metrics -intro: 'The repository metrics API allows you to retrieve community profile, statistics, and traffic for your repository.' -allowTitleToDifferFromFilename: true -versions: - fpt: '*' - ghes: '*' - ghae: '*' - ghec: '*' -topics: - - API -miniTocMaxHeadingLevel: 3 ---- - -{% ifversion fpt or ghec %} -## Community - -{% for operation in currentRestOperations %} - {% if operation.subcategory == 'community' %}{% include rest_operation %}{% endif %} -{% endfor %} - -{% endif %} - -## Statistics - -The Repository Statistics API allows you to fetch the data that {% data variables.product.product_name %} uses for visualizing different -types of repository activity. - -### A word about caching - -Computing repository statistics is an expensive operation, so we try to return cached -data whenever possible. If the data hasn't been cached when you query a repository's -statistics, you'll receive a `202` response; a background job is also fired to -start compiling these statistics. Give the job a few moments to complete, and -then submit the request again. If the job has completed, that request will receive a -`200` response with the statistics in the response body. - -Repository statistics are cached by the SHA of the repository's default branch; pushing to the default branch resets the statistics cache. - -### Statistics exclude some types of commits - -The statistics exposed by the API match the statistics shown by [different repository graphs](/github/visualizing-repository-data-with-graphs/about-repository-graphs). - -To summarize: -- All statistics exclude merge commits. -- Contributor statistics also exclude empty commits. - -{% for operation in currentRestOperations %} - {% if operation.subcategory == 'statistics' %}{% include rest_operation %}{% endif %} -{% endfor %} - -{% ifversion fpt or ghec %} -## Traffic - -For repositories that you have push access to, the traffic API provides access -to the information provided in your repository graph. For more information, see "Viewing traffic to a repository." - -{% for operation in currentRestOperations %} - {% if operation.subcategory == 'traffic' %}{% include rest_operation %}{% endif %} -{% endfor %} -{% endif %} \ No newline at end of file From 4947218cba72dd635cbdc6b84bba1cb0c0c655db Mon Sep 17 00:00:00 2001 From: Peter Bengtsson Date: Mon, 10 Jan 2022 20:56:30 -0500 Subject: [PATCH 33/68] fix React key uniqueness in Breadcrumbs (#24182) --- components/page-header/Breadcrumbs.tsx | 68 +++++++++++++------------- 1 file changed, 34 insertions(+), 34 deletions(-) diff --git a/components/page-header/Breadcrumbs.tsx b/components/page-header/Breadcrumbs.tsx index a6ac59d1f5..c312df4b5d 100644 --- a/components/page-header/Breadcrumbs.tsx +++ b/components/page-header/Breadcrumbs.tsx @@ -29,41 +29,41 @@ export const Breadcrumbs = () => { aria-label="Breadcrumb" >
    - {Object.values(breadcrumbs).map((breadcrumb, i, arr) => { - if (!breadcrumb) { - return null - } - const title = `${breadcrumb.title}` - return [ - !breadcrumb.href ? ( - - {breadcrumb.title} - - ) : ( -
  • - + {Object.values(breadcrumbs) + .filter(Boolean) + .map((breadcrumb, i, arr) => { + const title = `${breadcrumb.title}` + return [ + !breadcrumb.href ? ( + {breadcrumb.title} - {i !== arr.length - 1 ? ( - - / - - ) : null} - -
  • - ), - ] - })} + + ) : ( +
  • + + {breadcrumb.title} + {i !== arr.length - 1 ? ( + + / + + ) : null} + +
  • + ), + ] + })}
) From 78500789e55093195b0ebdbec57198b72828b0b4 Mon Sep 17 00:00:00 2001 From: Peter Bengtsson Date: Mon, 10 Jan 2022 21:00:19 -0500 Subject: [PATCH 34/68] Don't remove `.feature` frontmatter key inside getApplicableVersions() (#24189) * goofing around to trigger an error * only call warmServer once * delete versions when it can be inherited * fix nasty unit test --- .../managing-accessibility-settings.md | 4 +-- .../using-github/github-command-palette.md | 20 ++++++------- lib/get-applicable-versions.js | 3 -- lib/warm-server.js | 1 + script/rendered-content-link-checker.mjs | 28 ++++++++----------- tests/unit/page.js | 2 -- 6 files changed, 22 insertions(+), 36 deletions(-) diff --git a/content/account-and-profile/setting-up-and-managing-your-github-user-account/managing-user-account-settings/managing-accessibility-settings.md b/content/account-and-profile/setting-up-and-managing-your-github-user-account/managing-user-account-settings/managing-accessibility-settings.md index b79c2b3be4..9c0dcea963 100644 --- a/content/account-and-profile/setting-up-and-managing-your-github-user-account/managing-user-account-settings/managing-accessibility-settings.md +++ b/content/account-and-profile/setting-up-and-managing-your-github-user-account/managing-user-account-settings/managing-accessibility-settings.md @@ -2,8 +2,6 @@ title: Managing accessibility settings intro: 'You can disable character key shortcuts on {% data variables.product.prodname_dotcom %} in your accessibility settings.' versions: - fpt: '*' - ghes: '>=3.4' feature: keyboard-shortcut-accessibility-setting --- @@ -17,6 +15,6 @@ All keyboard shortcuts are enabled by default on {% data variables.product.produ {% data reusables.user_settings.access_settings %} {% data reusables.user_settings.accessibility_settings %} -1. Select or deselect the **Enable character key shortcuts** checkbox. +1. Select or deselect the **Enable character key shortcuts** checkbox. ![Screenshot of the 'Enable character key shortcuts' checkbox](/assets/images/help/settings/disable-character-key-shortcuts.png) 2. Click **Save**. diff --git a/content/get-started/using-github/github-command-palette.md b/content/get-started/using-github/github-command-palette.md index 37b977176b..cdea5e13e2 100644 --- a/content/get-started/using-github/github-command-palette.md +++ b/content/get-started/using-github/github-command-palette.md @@ -2,8 +2,6 @@ title: GitHub Command Palette intro: 'Use the command palette in {% data variables.product.product_name %} to navigate, search, and run commands directly from your keyboard.' versions: - fpt: '*' - ghec: '*' feature: 'command-palette' shortTitle: GitHub Command Palette --- @@ -29,10 +27,10 @@ The ability to run commands directly from your keyboard, without navigating thro ## Opening the {% data variables.product.prodname_command_palette %} Open the command palette using one of the following keyboard shortcuts: -- Windows and Linux: Ctrlk or Ctrlaltk +- Windows and Linux: Ctrlk or Ctrlaltk - Mac: k or optionk -When you open the command palette, it shows your location at the top left and uses it as the scope for suggestions (for example, the `mashed-avocado` organization). +When you open the command palette, it shows your location at the top left and uses it as the scope for suggestions (for example, the `mashed-avocado` organization). ![Command palette launch](/assets/images/help/command-palette/command-palette-launch.png) @@ -46,11 +44,11 @@ When you open the command palette, it shows your location at the top left and us ## Navigating with the {% data variables.product.prodname_command_palette %} -You can use the command palette to navigate to any page that you have access to on {% data variables.product.product_name %}. +You can use the command palette to navigate to any page that you have access to on {% data variables.product.product_name %}. {% data reusables.command-palette.open-palette %} -2. Start typing the path you want to navigate to. The suggestions in the command palette change to match your text. +2. Start typing the path you want to navigate to. The suggestions in the command palette change to match your text. ![Command palette navigation current scope](/assets/images/help/command-palette/command-palette-navigation-current-scope.png) @@ -64,18 +62,18 @@ You can use the command palette to navigate to any page that you have access to ## Searching with the {% data variables.product.prodname_command_palette %} -You can use the command palette to search for anything on {% data variables.product.product_location %}. +You can use the command palette to search for anything on {% data variables.product.product_location %}. {% data reusables.command-palette.open-palette %} {% data reusables.command-palette.change-scope %} -3. Optionally, use keystrokes to find specific types of resource: +3. Optionally, use keystrokes to find specific types of resource: - # Search for issues, pull requests, discussions, and projects - ! Search for projects - @ Search for users, organizations, and repositories - - / Search for files within a repository scope + - / Search for files within a repository scope ![Command palette search files](/assets/images/help/command-palette/command-palette-search-files.png) @@ -94,7 +92,7 @@ You can use the command palette to search for anything on {% data variables.prod You can use the {% data variables.product.prodname_command_palette %} to run commands. For example, you can create a new repository or issue, or change your theme. When you run a command, the location for its action is determined by either the underlying page or the scope shown in the command palette. - Pull request and issue commands always run on the underlying page. -- Higher-level commands, for example, repository commands, run in the scope shown in the command palette. +- Higher-level commands, for example, repository commands, run in the scope shown in the command palette. For a full list of supported commands, see "[{% data variables.product.prodname_command_palette %} reference](#github-command-palette-reference)." @@ -198,7 +196,7 @@ These commands are available only when you open the command palette from an issu |`Convert issue to discussion...`|Convert the current issue into a discussion. For more information, see "[Moderating discussions](/discussions/managing-discussions-for-your-community/moderating-discussions#converting-an-issue-to-a-discussion)." |`Delete issue...`|Delete the current issue. For more information, see "[Deleting an issue](/issues/tracking-your-work-with-issues/deleting-an-issue)."| |`Edit issue body`|Open the main body of the issue ready for editing. -|`Edit issue title`|Open the title of the issue ready for editing. +|`Edit issue title`|Open the title of the issue ready for editing. |`Lock issue`|Limit new comments to users with write access to the repository. For more information, see "[Locking conversations](/communities/moderating-comments-and-conversations/locking-conversations)." |`Pin`/`unpin issue`|Change whether or not the issue is shown in the pinned issues section for the repository. For more information, see "[Pinning an issue to your repository](/issues/tracking-your-work-with-issues/pinning-an-issue-to-your-repository)."| |`Subscribe`/`unscubscribe`|Opt in or out of notifications for changes to this issue. For more information, see "[About notifications](/account-and-profile/managing-subscriptions-and-notifications-on-github/setting-up-notifications/about-notifications)." diff --git a/lib/get-applicable-versions.js b/lib/get-applicable-versions.js index 009e0bb239..b9aefd73ca 100644 --- a/lib/get-applicable-versions.js +++ b/lib/get-applicable-versions.js @@ -54,9 +54,6 @@ function getApplicableVersions(frontmatterVersions, filepath) { {} ) - // We will be evaluating feature versions separately, so we can remove this. - delete frontmatterVersions.feature - // Get available versions for frontmatter and for feature versions. const foundFeatureVersions = evaluateVersions(featureVersions) const foundFrontmatterVersions = evaluateVersions(frontmatterVersions) diff --git a/lib/warm-server.js b/lib/warm-server.js index 5f116d7d16..e3d000280b 100644 --- a/lib/warm-server.js +++ b/lib/warm-server.js @@ -45,6 +45,7 @@ async function warmServer() { redirects, unversionedTree, siteTree, + pageList, } } diff --git a/script/rendered-content-link-checker.mjs b/script/rendered-content-link-checker.mjs index 9aa16702ea..8462cbc7b8 100755 --- a/script/rendered-content-link-checker.mjs +++ b/script/rendered-content-link-checker.mjs @@ -16,8 +16,7 @@ import chalk from 'chalk' import shortVersions from '../middleware/contextualizers/short-versions.js' import contextualize from '../middleware/context.js' import { languageKeys } from '../lib/languages.js' -import { loadPages, loadPageMap, loadUnversionedTree } from '../lib/page-data.js' -import loadRedirects from '../lib/redirects/precompile.js' +import warmServer from '../lib/warm-server.js' import renderContent from '../lib/render-content/index.js' import { deprecated } from '../lib/enterprise-server-releases.js' @@ -74,21 +73,16 @@ main(program.opts(), program.args) async function main(opts, files) { const { random, language, filter, exit, debug, max, verbose } = opts - debug && console.time('loadUnversionedTree') - const unversionedTree = await loadUnversionedTree() - debug && console.timeEnd('loadUnversionedTree') - - debug && console.time('loadPages') - const pageList = await loadPages(unversionedTree) - debug && console.timeEnd('loadPages') - - debug && console.time('loadPageMap') - const pageMap = await loadPageMap(pageList) - debug && console.timeEnd('loadPageMap') - - debug && console.time('loadRedirects') - const redirects = await loadRedirects(pageList) - debug && console.timeEnd('loadRedirects') + // Note! The reason we're using `warmServer()` in this script, + // even though there's no server involved, is because + // the `contextualize()` function calls it. + // And because warmServer() is actually idempotent, meaning it's + // cheap to call it more than once, it would be expensive to call it + // twice unnecessarily. + // If we'd manually do the same operations that `warmServer()` does + // here (e.g. `loadPageMap()`), we'd end up having to do it all over + // again, the next time `contextualize()` is called. + const { redirects, pages: pageMap, pageList } = await warmServer() const languages = language || [] console.assert(Array.isArray(languages), `${languages} is not an array`) diff --git a/tests/unit/page.js b/tests/unit/page.js index 1329032205..63570c0f9f 100644 --- a/tests/unit/page.js +++ b/tests/unit/page.js @@ -666,8 +666,6 @@ describe('Page class', () => { expect(page.versions.fpt).toBe('*') expect(page.versions.ghes).toBe('>2.21') expect(page.versions.ghae).toBeUndefined() - // The `feature` prop gets deleted by lib/get-applicable-versions, so it's undefined. - expect(page.versions.feature).toBeUndefined() // Test the resolved versioning, where GHES releases specified in frontmatter and in // feature versions are combined (i.e., one doesn't overwrite the other). From c0a0b25f415bbcf6ec946e781b311057aa0b9cba Mon Sep 17 00:00:00 2001 From: GitHub Actions Date: Tue, 11 Jan 2022 02:22:38 +0000 Subject: [PATCH 35/68] update search indexes --- lib/search/indexes/github-docs-3.0-cn-records.json.br | 4 ++-- lib/search/indexes/github-docs-3.0-cn.json.br | 4 ++-- lib/search/indexes/github-docs-3.0-en-records.json.br | 4 ++-- lib/search/indexes/github-docs-3.0-en.json.br | 4 ++-- lib/search/indexes/github-docs-3.0-es-records.json.br | 4 ++-- lib/search/indexes/github-docs-3.0-es.json.br | 4 ++-- lib/search/indexes/github-docs-3.0-ja-records.json.br | 4 ++-- lib/search/indexes/github-docs-3.0-ja.json.br | 4 ++-- lib/search/indexes/github-docs-3.0-pt-records.json.br | 4 ++-- lib/search/indexes/github-docs-3.0-pt.json.br | 4 ++-- lib/search/indexes/github-docs-3.1-cn-records.json.br | 4 ++-- lib/search/indexes/github-docs-3.1-cn.json.br | 4 ++-- lib/search/indexes/github-docs-3.1-en-records.json.br | 4 ++-- lib/search/indexes/github-docs-3.1-en.json.br | 4 ++-- lib/search/indexes/github-docs-3.1-es-records.json.br | 4 ++-- lib/search/indexes/github-docs-3.1-es.json.br | 4 ++-- lib/search/indexes/github-docs-3.1-ja-records.json.br | 4 ++-- lib/search/indexes/github-docs-3.1-ja.json.br | 4 ++-- lib/search/indexes/github-docs-3.1-pt-records.json.br | 4 ++-- lib/search/indexes/github-docs-3.1-pt.json.br | 4 ++-- 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-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 ++-- 70 files changed, 140 insertions(+), 140 deletions(-) diff --git a/lib/search/indexes/github-docs-3.0-cn-records.json.br b/lib/search/indexes/github-docs-3.0-cn-records.json.br index 64f94f70fa..e0334f062f 100644 --- a/lib/search/indexes/github-docs-3.0-cn-records.json.br +++ b/lib/search/indexes/github-docs-3.0-cn-records.json.br @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:6e3a6f602db7d799cb1de0b7691be469e3a39f43f22012bf856d7518411fe697 -size 614283 +oid sha256:35d023e64d2bf855d9279aef301b339801dc9be4f48783ea859283813738fd58 +size 614231 diff --git a/lib/search/indexes/github-docs-3.0-cn.json.br b/lib/search/indexes/github-docs-3.0-cn.json.br index b069368694..23b24cdabe 100644 --- a/lib/search/indexes/github-docs-3.0-cn.json.br +++ b/lib/search/indexes/github-docs-3.0-cn.json.br @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:8cb793d0ab3d2eb1ae32a095222889505c7a90b607d14db5f1b42619c1c39a21 -size 1745981 +oid sha256:52a5f837dff5b70291d27f64c6ccd941f4580e35243f5c06277dc53432961e0e +size 1746386 diff --git a/lib/search/indexes/github-docs-3.0-en-records.json.br b/lib/search/indexes/github-docs-3.0-en-records.json.br index 5b52fc686d..15dc067644 100644 --- a/lib/search/indexes/github-docs-3.0-en-records.json.br +++ b/lib/search/indexes/github-docs-3.0-en-records.json.br @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:cddd81141a9e4768598f439ca3b16f2f2c2652c0cb7ff0d291e774a3ce3ce0cd -size 953503 +oid sha256:93510859d0f7d44b3ae48dfe086c89346143d3e26e0745b9434593d517368769 +size 953845 diff --git a/lib/search/indexes/github-docs-3.0-en.json.br b/lib/search/indexes/github-docs-3.0-en.json.br index 9bb61d0b8e..1346f46f25 100644 --- a/lib/search/indexes/github-docs-3.0-en.json.br +++ b/lib/search/indexes/github-docs-3.0-en.json.br @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:9bb7cceca7e6d4db6fd4708c8c66d6a56fa62a4b8ac2cb0e75362becb790e1e7 -size 3909026 +oid sha256:806aeeef3b531196df22887fad3c5d32f0d43eca1dd64112b20061c00ee4cb9f +size 3909707 diff --git a/lib/search/indexes/github-docs-3.0-es-records.json.br b/lib/search/indexes/github-docs-3.0-es-records.json.br index bfd9b4bf24..d8306a85f8 100644 --- a/lib/search/indexes/github-docs-3.0-es-records.json.br +++ b/lib/search/indexes/github-docs-3.0-es-records.json.br @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:b6dcb527bf1be1a9c0475c8754e01ec3e6b05f5ced3b1e97808221ad5ccf31db -size 583261 +oid sha256:343a93a1b03445b689bd2d6b2fcd033c86cfaae0634c77752b8a8b5b5d761c7b +size 592720 diff --git a/lib/search/indexes/github-docs-3.0-es.json.br b/lib/search/indexes/github-docs-3.0-es.json.br index ae46daf50b..00ae846e03 100644 --- a/lib/search/indexes/github-docs-3.0-es.json.br +++ b/lib/search/indexes/github-docs-3.0-es.json.br @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:20481f17463efcf81eaeed471b50435cb201fa41ad0678687b71a32f731cf844 -size 2697083 +oid sha256:ee32c654b52336d580121cf2480205fd0a928470ec581761b49d869f200b2789 +size 2845363 diff --git a/lib/search/indexes/github-docs-3.0-ja-records.json.br b/lib/search/indexes/github-docs-3.0-ja-records.json.br index 0e726f6f78..5ba04e594a 100644 --- a/lib/search/indexes/github-docs-3.0-ja-records.json.br +++ b/lib/search/indexes/github-docs-3.0-ja-records.json.br @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:3bdd5d45f4956ea256974f2076e35d8bdf59c59fc7bc041e70196a930599b332 -size 617848 +oid sha256:2f3b660c2b27d2f0ae20d78a53a5d823161aae48ddbcaed0410d0b3f54fb04fc +size 617936 diff --git a/lib/search/indexes/github-docs-3.0-ja.json.br b/lib/search/indexes/github-docs-3.0-ja.json.br index 9cd10dda3d..9d5777bf57 100644 --- a/lib/search/indexes/github-docs-3.0-ja.json.br +++ b/lib/search/indexes/github-docs-3.0-ja.json.br @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:721fbfc4f0847e5ef2b02619e4f6cd63da0aa48776a09f7b4964f540cdaf1b0f -size 3476088 +oid sha256:2047393008dfad00a6019d918156f33d7546100373b160c258136d09bd14cc70 +size 3476630 diff --git a/lib/search/indexes/github-docs-3.0-pt-records.json.br b/lib/search/indexes/github-docs-3.0-pt-records.json.br index da0c9f5b27..5a12f1fe3f 100644 --- a/lib/search/indexes/github-docs-3.0-pt-records.json.br +++ b/lib/search/indexes/github-docs-3.0-pt-records.json.br @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:dde8d0aea0880f49158d07e985697760912494ee8a66c6d126a3cc5eff7b70cf -size 595943 +oid sha256:acec0c094aca757ca7df3c62c353680d76cfd63466df539c982afdbe5d1bf296 +size 596163 diff --git a/lib/search/indexes/github-docs-3.0-pt.json.br b/lib/search/indexes/github-docs-3.0-pt.json.br index 9018a627c9..da91b2e4a9 100644 --- a/lib/search/indexes/github-docs-3.0-pt.json.br +++ b/lib/search/indexes/github-docs-3.0-pt.json.br @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:46710c805c2d81f16a3eebfe942d59042a12a70d9423f58813e573c3e84be790 -size 2818167 +oid sha256:81e0b5537205cc5b2c9933bea264d532250311ceeb04a52f8ff7a1cc9dd6082b +size 2818044 diff --git a/lib/search/indexes/github-docs-3.1-cn-records.json.br b/lib/search/indexes/github-docs-3.1-cn-records.json.br index ade0a0c3b3..dc6b7d8b44 100644 --- a/lib/search/indexes/github-docs-3.1-cn-records.json.br +++ b/lib/search/indexes/github-docs-3.1-cn-records.json.br @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:29e83f321dd4b63b80b12aa8b4ef0449f16d8b3d6cd31fe09fdf66eec04e9c02 -size 627788 +oid sha256:81fe83c7f8617839c560d038b0dfaed5fb040ffd977d03eac5676d51c1fbebf4 +size 627693 diff --git a/lib/search/indexes/github-docs-3.1-cn.json.br b/lib/search/indexes/github-docs-3.1-cn.json.br index fb81eff74e..c7c497d872 100644 --- a/lib/search/indexes/github-docs-3.1-cn.json.br +++ b/lib/search/indexes/github-docs-3.1-cn.json.br @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:12b51d78483aac8b6b6321964613893a88afc2a91b04af479b8e382ef37a1682 -size 1787536 +oid sha256:3c0f93c7442c2888251c83e02a18fbdb580757ff2df0e1a396261be430d3562d +size 1788031 diff --git a/lib/search/indexes/github-docs-3.1-en-records.json.br b/lib/search/indexes/github-docs-3.1-en-records.json.br index 71d857f547..2cb64cdd6d 100644 --- a/lib/search/indexes/github-docs-3.1-en-records.json.br +++ b/lib/search/indexes/github-docs-3.1-en-records.json.br @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:46270df1084356585ab13d6aca4ae72f09af1c3e27e9f1e6bfccd661a1e7ea15 -size 978475 +oid sha256:b42be0be4b765861cc3d2e0dbe79c73ca3ff1fb14518710cf1d2188e76c2454b +size 978440 diff --git a/lib/search/indexes/github-docs-3.1-en.json.br b/lib/search/indexes/github-docs-3.1-en.json.br index 8bd860bf7e..9b48bfe012 100644 --- a/lib/search/indexes/github-docs-3.1-en.json.br +++ b/lib/search/indexes/github-docs-3.1-en.json.br @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:98f6ef176c2014cf6bf8eb53e680b84c3775d43e4aac32b36e9b4b70cea4867e -size 4001238 +oid sha256:53abf3061b186ef20533f7e79ad3e4074aea257af8ff54d388f44958e04f826e +size 4001739 diff --git a/lib/search/indexes/github-docs-3.1-es-records.json.br b/lib/search/indexes/github-docs-3.1-es-records.json.br index 2690637009..e992c4bcf9 100644 --- a/lib/search/indexes/github-docs-3.1-es-records.json.br +++ b/lib/search/indexes/github-docs-3.1-es-records.json.br @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:d00332c5e5152a24471c66bf0ad5559d2abd208d9b598307d17a97825361d27e -size 595385 +oid sha256:fe7aaf53f6bcdf356f05e8dde06ef21f1fcfd23e4167802fbebd3e190bba9bdf +size 604273 diff --git a/lib/search/indexes/github-docs-3.1-es.json.br b/lib/search/indexes/github-docs-3.1-es.json.br index 2c1684f0f3..438cec3941 100644 --- a/lib/search/indexes/github-docs-3.1-es.json.br +++ b/lib/search/indexes/github-docs-3.1-es.json.br @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:49b6d02730bb7f68453267bf5745f530a7407d7b899a7473a4b3bc00befd16af -size 2759834 +oid sha256:47c9db33ca7ff3f08f647ce6f155fd8b76c08fafe1ff7194b0149f0094960b92 +size 2907759 diff --git a/lib/search/indexes/github-docs-3.1-ja-records.json.br b/lib/search/indexes/github-docs-3.1-ja-records.json.br index b95cd4b0e8..243add8e69 100644 --- a/lib/search/indexes/github-docs-3.1-ja-records.json.br +++ b/lib/search/indexes/github-docs-3.1-ja-records.json.br @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:e0c92c2755c0d87f59b9af2130444fabf0545df679f1dcd929c66b98d64d7229 -size 630920 +oid sha256:6bbb6ec941349422824094261a2d69b3ef9f9ba6dae7fb8854c284a97b9da25c +size 630907 diff --git a/lib/search/indexes/github-docs-3.1-ja.json.br b/lib/search/indexes/github-docs-3.1-ja.json.br index 8c00bb612b..ac97e945d2 100644 --- a/lib/search/indexes/github-docs-3.1-ja.json.br +++ b/lib/search/indexes/github-docs-3.1-ja.json.br @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:32989789d9e7910541b0dd33e3cc8a769b548be9a33b5bcdd42b2d22ddb3bda3 -size 3554179 +oid sha256:3b1afa455040ab39a1169ce4e2d17257af5d436e5412808b4b7d23d3f42a128d +size 3554231 diff --git a/lib/search/indexes/github-docs-3.1-pt-records.json.br b/lib/search/indexes/github-docs-3.1-pt-records.json.br index 816a60a738..a2b7482c4e 100644 --- a/lib/search/indexes/github-docs-3.1-pt-records.json.br +++ b/lib/search/indexes/github-docs-3.1-pt-records.json.br @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:65031bed1960c061ce327b929985da5645a855630b5624fda45af29d9811223c -size 608141 +oid sha256:296c78d60ae6c7f75f790b19a77378ce0df722b658aba1f36624416f6dde5f36 +size 608210 diff --git a/lib/search/indexes/github-docs-3.1-pt.json.br b/lib/search/indexes/github-docs-3.1-pt.json.br index dee29cf0b0..308ae44155 100644 --- a/lib/search/indexes/github-docs-3.1-pt.json.br +++ b/lib/search/indexes/github-docs-3.1-pt.json.br @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:04406502f1f587fbb538b3f78e814b43afff6f081a51582103e1a5519deacdf9 -size 2882627 +oid sha256:a6911fec4b1d6636194c9790a0858149372720e75283f8932ffc2679bf6d2a58 +size 2882493 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 f36d08bd17..54334452be 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:8f14398fb94e91474d5711e158c6ffebf56d9631b5056a8fc33d2b0ab86ba3a4 -size 639077 +oid sha256:a95c5b36adb5ea1570b357b0308577b0a32fc300f7631303dfe606c9a5e765cb +size 639192 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 79865d5c35..c3aea0fb41 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:dc6c84ff1760a227d14b4c9b9e4eabfb6da5fb350e0b24bfcd1aa32325c3c72d -size 1814798 +oid sha256:1da67feb677c75bf6686f0a61f24662db86d1d054ddf16b2ddf9c1ceb9cf6374 +size 1814561 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 8d4a9f043c..ef7b93d588 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:e1184ac77dfb6f9fcc378005a3c52f00be6e2340d9d3cbcaecd2ad0ae8b43a12 -size 1013338 +oid sha256:4b3cfb569e2433629d099fe9293c2c746e891429581e011660faf5cb2defd222 +size 1009711 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 063c8aa825..94b8a45625 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:4518981d4fb7aed263bfdefd5684d9089be1d5b370d4a837d26c78215985a367 -size 4122313 +oid sha256:462edd47e1d109110a3890ef3f13668a6444fc425bb32c7f8950ca409b9eb74e +size 4122967 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 935ed62086..663c9251e9 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:18f9619e23512f0deb9ce6a24dc29a24271d1effcdfaa14690df02824c4d734f -size 605859 +oid sha256:d9210f2d39cd78f94943e9f961f9c4757589d8f17063b42d8b4cd8604bc314e0 +size 615139 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 06040eb7a3..d229cf4ae4 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:2f6ac4ddfa61845fd95c7f94b4a8723e99439312e6ebec1a5188a76a59d1dd13 -size 2814019 +oid sha256:aa7aa7f7d07e859db84198b05d591ad14a77de66b56cec2a89786a4094cd1ff4 +size 2959996 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 0c4b8f0da2..86f02c72f2 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:af61673f15092b1382521cd50b96c2701ca14ad3ee91cc99a9b4f47aa487ad13 -size 642464 +oid sha256:85b32551fe3410e9f5f2406a8b6bee3658ac0d80392e9c3b1049fc80aaf6ab45 +size 642668 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 820d94ccc1..faa6f194f6 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:2624cb2761854e2a60ae43e3f0dab1e95c67e00bd9aeaee40d128e06e5a4eed6 -size 3621843 +oid sha256:2b9442d812012fda9834481c9d79616d384d90d9fe86b18357075b56097e24fe +size 3622272 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 59f4e1e83b..4911597d7d 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:0c629585e90905d263277e0f8e53018f642317498e3df0017873b4dfec6187df -size 619563 +oid sha256:79d7f15537f5649b2b24d48776051e177e0b3e1ac8c2562e016277996606e5f2 +size 619702 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 fcb2793c06..bc4855e0f6 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:20d3b40184b1cb566bb86a0cc1734004af818275eb47f379ad77fc6c27971681 -size 2932281 +oid sha256:df9322d2f67fa6c219b00918db39716a31483fff83bc984e04fdefae49ec2a9b +size 2932921 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 3738060d9b..00fb10c349 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:ad83678d03903802a8c198a275dc35a73fd75c4dc2930bb56438725173f8cabe -size 659530 +oid sha256:fee5a00b851867c47983b5cd707443cbef9e0e226f85139455914891ef6150d5 +size 659622 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 1e8558560e..0dc1956ea4 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:3e0655d23e9a50179f6da9e993e0cbcec6b19b2f22ba0ae52a9bc86b0caabdba -size 1871982 +oid sha256:fce41d7712c9a4a60f99e2e12a2149fd27e823e1a84aebe59389cd48984f51da +size 1872269 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 c7791b0c49..fb325d22f0 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:03517ee2d420cd4f0f95f6765b8092a583ffe95483a518499703e065ae284734 -size 1043341 +oid sha256:2840d043586c6f927b8e1f647496826c843af627ca23bf91e28c9e8226747fe4 +size 1047449 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 f88bb08982..117d7201c1 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:404e375d92ada2a30415f8fd87d4569c1fe544134b06d269d10b54f00d0de805 -size 4223634 +oid sha256:4342732209bde549f10c06c5406aadbbdcc6d37cebaff9ec8ab68b305fd78bf3 +size 4225394 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 5a6df390bc..8a0cb0a4c9 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:7aaf98cd28dd13e83062a9b2068e74e241c0f20479e71ea12c24b97463c58859 -size 623878 +oid sha256:81e5d886610dbf30f8cdf52e919911f789ffea494f567c067128fe0752afc85b +size 632843 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 3adf10c091..14762e3ab7 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:5a17ee79bc13e5c2cb8b6f0f2c06832856408d65e962abbd541b48ae28bf02bf -size 2912264 +oid sha256:6f7d48666f2df32e784e6c689248c217e93161d7069e1e76ea72d1ad5a87bf98 +size 3059492 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 87eb0ef378..d7e1c330fe 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:8277160beb0669cee238a592ebc889de177d42011253f82aa5adf361d3b52c6e -size 663732 +oid sha256:e4e518d5c570db335fffba5abb99d2a65f68ce4f2de759443aad8f7aa138b9b8 +size 663633 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 e9c9347139..811e57dada 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:092f6b92e395672257d36ff2a279781d09350c94b89ade415893f6c8ca0e7852 -size 3740331 +oid sha256:c38d05c89568c243833dc50422a03afdf6e81622a8e5d656ef38e72bd7ef8e05 +size 3740743 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 56395c093a..ab3f773aee 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:1a5dd8233457407365e0f1e3690f54ac13c5c6d921205f05fcdacde52fd6d66a -size 638672 +oid sha256:9d0f1e3f44cd68ccd5f1e413287596e43bcfc87c0c01a16632568083c44e20b6 +size 638615 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 fa9a8199a7..8260a84e77 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:f5fbb8477c44fab52666c67563fbccff8c0c4060c377d3f1b6eba5af5b339e22 -size 3019781 +oid sha256:ffcf3d1332174a679d41508a44d7cbed6911e7d7890255f243d4cf0304ed463b +size 3020398 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 d42db47fee..e2738e0fbc 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:2bd38a06fd5a600ffce05905530bb35ee13ec96690061e83973a7bcccc0d2c2e -size 848278 +oid sha256:9579a1aaece966aec9ec6961208844e34a49885f1b9e2ea2d44cf9f39bc47968 +size 848586 diff --git a/lib/search/indexes/github-docs-dotcom-cn.json.br b/lib/search/indexes/github-docs-dotcom-cn.json.br index 4d05bdaa15..f1b632503d 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:12244642e15b62f4981a880641aef517b41eee15df38d93cccea0efca4789026 -size 2091500 +oid sha256:3c232b14ddec9fc3133a3b9be38f49ccf2abf981f6a5f998aef5c55c69f4d36d +size 2092521 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 4db3d019b8..b518678f32 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:2ba5a129a3c8903add3223187d6ea77d54e911aaefa15c225c413526c6d2cd42 -size 1319658 +oid sha256:e4fceedc6a24ce27a0e2e57ca9d57cba473f9dbd06322fb1b5b1604b5bbf13cb +size 1322396 diff --git a/lib/search/indexes/github-docs-dotcom-en.json.br b/lib/search/indexes/github-docs-dotcom-en.json.br index 8b5a2f9253..3f58649933 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:b0a830b8b08e43606c9ff586179e375dd95687e71ce77f50cf9228a90c5d5530 -size 5067744 +oid sha256:e2622d38ea7303e5b09d7bbcfe39ed24f3975a588eb047dd8887279b5db42862 +size 5088754 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 ce3386ee20..9506d02912 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:6a979e712a044b991c6ceabb62c88a8fc3b0dd6f555fc5e263f69f2d9fd30eec -size 794635 +oid sha256:77891ba843a3b9d0eeecd29c208da2cf93d527816f9619af2351a8c0ee4535b2 +size 804739 diff --git a/lib/search/indexes/github-docs-dotcom-es.json.br b/lib/search/indexes/github-docs-dotcom-es.json.br index d6091f5d45..8d4ebe8b73 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:7f806192bbc67dc752d46ae8734a92e9a0c83dafd882120f317b8dc872aa0b0f -size 3497831 +oid sha256:4ec349332e288659997fbac42a6109220d482250c619dd1594da459328b47d4f +size 3664171 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 d056728761..b870213a8e 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:a809e4cffdc03481db7188fcb31e7106eeaae56e2cde51eb93e67db7bd808a5d -size 855959 +oid sha256:cc545d807deae3f59d1a3df859bf816e3cd2ee88bbe3a6b7afad848ccfbd8863 +size 856276 diff --git a/lib/search/indexes/github-docs-dotcom-ja.json.br b/lib/search/indexes/github-docs-dotcom-ja.json.br index 37474285d9..a858e04760 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:3e51a6c2d4d0eaca9438e0c5edecfbf60619954338569080c0a89f2819b14058 -size 4558659 +oid sha256:b6f45cce167effd79e27cc53e52d5c8a7741dbd3c5e2df14c4997e365b73150b +size 4558054 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 0a82a90933..b42a1ce6e9 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:ac93f97e253117171edd2ad39dc62b198350f9e4a6780804accf09096d0122e7 -size 810602 +oid sha256:078e02b9bdc9156e77f1e25d3428c88362b35be828400b64bd096b5101f50c7a +size 810637 diff --git a/lib/search/indexes/github-docs-dotcom-pt.json.br b/lib/search/indexes/github-docs-dotcom-pt.json.br index a10f358629..5f7e8c69b8 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:5752cda6ff34b76f61a212d062ede66db245cd2a27d01b366e03103ed201f409 -size 3612735 +oid sha256:dc203fd752503227a3a2e9fba855e39a331f9911e8d0646cffdba69260ced9a9 +size 3612586 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 686f3f40dc..328090cb30 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:4b8d56051eeb71ed2be92afa0621d505d9d7033c3f7982834669d42b2e8c063c -size 513012 +oid sha256:97960e76fe9cfe482ad78d0c0ea3488e7a94b26e2fac29f5eca9485b8ae779ef +size 512951 diff --git a/lib/search/indexes/github-docs-ghae-cn.json.br b/lib/search/indexes/github-docs-ghae-cn.json.br index f174c6270f..4dd572f854 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:f23c5c2f70adac94b7af647a68f64c131b41f00d6d1c4cb8876d3ccf65476922 -size 1416127 +oid sha256:e3c5139dbeede5a1378edf5ce217e1a6d425389b97cf5b25fdf3467091c4f68d +size 1416051 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 69e442cc93..2ff874cc7b 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:9ed7f7866d33e02ce900113a2814dab2504e689895e1bbd27ef4a446083e1e50 -size 832839 +oid sha256:705e22c2b0db889e8577a5463ae4b4de5534feba31a4d56277e5c040ec64a9f6 +size 833184 diff --git a/lib/search/indexes/github-docs-ghae-en.json.br b/lib/search/indexes/github-docs-ghae-en.json.br index f16d181626..0ec39720a1 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:9987cc2e1ac23f98c1f5f065e9b06300d4741680a815f6fb70aa44204a506844 -size 3341823 +oid sha256:f74057659a0ac7203cdd7c2ae6bc1c0130ed7e79f2386c45ff04ee660dbef45f +size 3344373 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 e3d81f7e95..86269f2d76 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:9fb241eeac219e9bbf533e8108f474748bb12403659c96b984aa22f09d3f9df8 -size 486825 +oid sha256:6c4e6344bed67a11e6ba26773a475f6643dacf9fef1bb1b52d682f3a7b294fae +size 496821 diff --git a/lib/search/indexes/github-docs-ghae-es.json.br b/lib/search/indexes/github-docs-ghae-es.json.br index 2e4b622c41..0e3d572e70 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:641fd9226a0343501e4fda209c10b6c694e7daf05308b8126fbc6484a93224bc -size 2189287 +oid sha256:e4190d47811259b636e96ec4abf5078efee785d73a8d2f78c3af214691391795 +size 2313027 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 dd5ce69029..7c58d92ed9 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:299f3ec4750171edfb4b46d3dc71a43d07ed80c95ad11012ce537688ca05b62f -size 516978 +oid sha256:0e77e9808271cd1245a8e4eeb65065fdc4fa013f497ebdcdebe8d4ce073f106b +size 516998 diff --git a/lib/search/indexes/github-docs-ghae-ja.json.br b/lib/search/indexes/github-docs-ghae-ja.json.br index e5a4ced60b..02d3ad0875 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:edab4df0f03ed5416096ca618ded4335b1c54e8888d494f8a853cb2e82c17b4a -size 2803042 +oid sha256:da42493989f1899eb202fcf8af630703985f46687a1c8b301c7ad80739275a2b +size 2803208 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 34d3adc314..84ad94e8a5 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:78da1963de527cd44d8d7d556135ecfec0ae6b1818e05d68682ea325cabf11a7 -size 500393 +oid sha256:c760cc4677207892472d9eb0bac67f77901dbee5a90254fe24398a1fcad59005 +size 500396 diff --git a/lib/search/indexes/github-docs-ghae-pt.json.br b/lib/search/indexes/github-docs-ghae-pt.json.br index 65e656c593..71afa0cf09 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:b1a43740588ee647c6cde859f1db436d18c5d59f3a3f445536a29b85f4194efb -size 2288903 +oid sha256:344eed0a3a47ce8f92266da6c9a115b06b553f72d209a124bb5e4307c13d31c4 +size 2288699 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 7b98c59070..084b34f547 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:7362ecbf7ed8e77c418175495c389761f91cc4bf1036e98a0de0dcc7ebcdb67e -size 772061 +oid sha256:8636ed91bf0c03b2eca9ec78b444f4e4200d91ba752acb84b5a790715a7bc8c0 +size 772172 diff --git a/lib/search/indexes/github-docs-ghec-cn.json.br b/lib/search/indexes/github-docs-ghec-cn.json.br index dd2398c4df..07d6ac20b5 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:c7d851b2fe03fc79bc961f86c4b916711dd1336cb76e694effa804fd905cd05a -size 2109854 +oid sha256:e24e8a878b60ce4ee84b846acb0fe8dd0fbcdf8d8ef7c439152c4dd4a63f6292 +size 2109887 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 ebb7d05d7d..a686da2d46 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:0281d178df516fe4a20c55b3cfd464d78e52a345efc640544751cebb61eb1dc0 -size 1190520 +oid sha256:5b1bb22b72a4a3e435f0f4b0d1fffd16c7b484231ce5a4117d3e9c9770221c62 +size 1188486 diff --git a/lib/search/indexes/github-docs-ghec-en.json.br b/lib/search/indexes/github-docs-ghec-en.json.br index 3fb192a67b..b47d557ae3 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:88bb93b3d556bbad08e1e3cd35964cad86bb27afdb589f3bce8f83b416afe74d -size 4804498 +oid sha256:a5f18a2bf68fbd33d21d67f6da3e03d1a3b3bcbe26525962fc025ddeb7d95c69 +size 4825541 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 8bffae1dca..42fdc47a36 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:de5649433a62eb38a177b05816248a6224075c8bd3ccda8b341d6b97b8ff19c9 -size 739477 +oid sha256:952ede2c2054c96b23496ac8b52ef090be5d1bc0abf6ea7212b08a7266054f84 +size 749132 diff --git a/lib/search/indexes/github-docs-ghec-es.json.br b/lib/search/indexes/github-docs-ghec-es.json.br index 67a709e02d..1be3caffbd 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:3127267f67467a80dffac7bff96117de9ddcb061472b3c4b484d41e454eb71a4 -size 3440584 +oid sha256:776ef8a577428e7a326f00e3504e5b1477b97534653a96839c9ec2fbd8d44cf6 +size 3605610 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 c517432a72..2d527e4876 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:2a763c1a50112576ae11180ec01e3ef4e8f523b32b558fe5f52778151ce856ca -size 782769 +oid sha256:5ae6c7aa25498d863f7716c333c1032371a4297f6c394c4b73cfafd26f27758a +size 782725 diff --git a/lib/search/indexes/github-docs-ghec-ja.json.br b/lib/search/indexes/github-docs-ghec-ja.json.br index 6a2c090063..85a204ba6e 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:da582df34b272d4bf0721e2ae043e5e47098d4ee523aed742c4c3ccf59b73cda -size 4395724 +oid sha256:50a7f3ff7f1d6f22475c19e3ad4283f4766f226553d51d5d7d169da78fc4cf9a +size 4396832 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 4294a53ee4..381485335a 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:62b4e2ab872add6bbd3737899606e0db8f3ab30c448f966859efd1078c8c0a14 -size 755834 +oid sha256:d0ec63a421a45d11dc13621e6e414df983238c953195f5308c186bfd739dd078 +size 756111 diff --git a/lib/search/indexes/github-docs-ghec-pt.json.br b/lib/search/indexes/github-docs-ghec-pt.json.br index 4a95e869b0..bd4153f100 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:e295de80e7e0a7dac5b06448398533933718625dbc869319518cb74273bcf6f1 -size 3551303 +oid sha256:b05d9dfc307831fde8bac8a67edac13f327f7ae9936b6ef7b811e989d4291837 +size 3552190 From 3d0f42f182c11f3a95f4d460b1ee1956b627673d Mon Sep 17 00:00:00 2001 From: github-openapi-bot Date: Mon, 10 Jan 2022 18:37:23 -0800 Subject: [PATCH 36/68] Update OpenAPI Descriptions --- .../dereferenced/api.github.com.deref.json | 25 +++++++++++++++++++ 1 file changed, 25 insertions(+) diff --git a/lib/rest/static/dereferenced/api.github.com.deref.json b/lib/rest/static/dereferenced/api.github.com.deref.json index 0e478a3746..bd35e46d2b 100644 --- a/lib/rest/static/dereferenced/api.github.com.deref.json +++ b/lib/rest/static/dereferenced/api.github.com.deref.json @@ -64771,6 +64771,31 @@ "schema": { "type": "string" } + }, + { + "name": "per_page", + "description": "Results per page (max 100)", + "in": "query", + "schema": { + "type": "integer", + "default": 30 + } + }, + { + "name": "page", + "description": "Page token", + "in": "query", + "schema": { + "type": "integer" + } + }, + { + "name": "login", + "description": "Limits the list of credentials authorizations for an organization to a specific login", + "in": "query", + "schema": { + "type": "string" + } } ], "responses": { From 716c7820ae4b7d6e40a270ddbf649b4ead9681a1 Mon Sep 17 00:00:00 2001 From: github-openapi-bot Date: Tue, 11 Jan 2022 02:43:33 +0000 Subject: [PATCH 37/68] Add decorated OpenAPI schema files --- lib/rest/static/decorated/api.github.com.json | 28 +++++++++++++++++++ 1 file changed, 28 insertions(+) diff --git a/lib/rest/static/decorated/api.github.com.json b/lib/rest/static/decorated/api.github.com.json index 359bdb0d19..0c888d348f 100644 --- a/lib/rest/static/decorated/api.github.com.json +++ b/lib/rest/static/decorated/api.github.com.json @@ -19183,6 +19183,34 @@ "type": "string" }, "descriptionHTML": "" + }, + { + "name": "per_page", + "description": "Results per page (max 100)", + "in": "query", + "schema": { + "type": "integer", + "default": 30 + }, + "descriptionHTML": "

Results per page (max 100)

" + }, + { + "name": "page", + "description": "Page token", + "in": "query", + "schema": { + "type": "integer" + }, + "descriptionHTML": "

Page token

" + }, + { + "name": "login", + "description": "Limits the list of credentials authorizations for an organization to a specific login", + "in": "query", + "schema": { + "type": "string" + }, + "descriptionHTML": "

Limits the list of credentials authorizations for an organization to a specific login

" } ], "x-codeSamples": [ From 4406fd98347541c25465a00f5a0936d6bd5487ff Mon Sep 17 00:00:00 2001 From: Peter Bengtsson Date: Mon, 10 Jan 2022 21:58:45 -0500 Subject: [PATCH 38/68] treat list of files as space separated (#24176) * treat list of files as space separated * debuggnig * debuggnig * better * test now * cleanup * all cleanups * mention feature request on the action --- .github/workflows/link-check-all.yml | 24 +++++++++++++++++------- lib/page-data.js | 4 ++-- script/rendered-content-link-checker.mjs | 24 ++++++++++++------------ 3 files changed, 31 insertions(+), 21 deletions(-) diff --git a/.github/workflows/link-check-all.yml b/.github/workflows/link-check-all.yml index 369aa5e194..6139618f9f 100644 --- a/.github/workflows/link-check-all.yml +++ b/.github/workflows/link-check-all.yml @@ -40,13 +40,23 @@ jobs: - name: Gather files changed uses: trilom/file-changes-action@a6ca26c14274c33b15e6499323aac178af06ad4b id: get_diff_files + + # Necessary because trilom/file-changes-action can't escape each file + # name for using in bash. So, we do it ourselves. + # trilom/file-changes-action will, by default produce outputs + # in JSON format. We consume that and set a new output where each + # filename is wrapped in quotation marks. + # Perhaps some day we can rely on this directly based on; + # https://github.com/trilom/file-changes-action/issues/130 + - name: Escape each diff file name + id: get_diff_files_escaped + uses: actions/github-script@2b34a689ec86a68d8ab9478298f91d5401337b7d with: - # So that `steps.get_diff_files.outputs.files` becomes - # a string like `foo.js path/bar.md` - output: ' ' - - name: Insight into changed files - run: | - echo "${{ steps.get_diff_files.outputs.files }}" + github-token: ${{ secrets.DOCUBOT_READORG_REPO_WORKFLOW_SCOPES }} + script: | + const input = JSON.parse('${{ steps.get_diff_files.outputs.files }}') + const files = input.map(filename => `"${filename}"`) + core.setOutput('files', files.join(' ')) - name: Link check (warnings, changed files) run: | @@ -56,7 +66,7 @@ jobs: --check-anchors \ --check-images \ --verbose \ - "${{ steps.get_diff_files.outputs.files }}" + ${{ steps.get_diff_files_escaped.outputs.files }} - name: Link check (critical, all files) run: | diff --git a/lib/page-data.js b/lib/page-data.js index d25fb8e980..e5ac95f2ba 100644 --- a/lib/page-data.js +++ b/lib/page-data.js @@ -114,12 +114,12 @@ export async function versionPages(obj, version, langCode, site) { } // Derive a flat array of Page objects in all languages. -export async function loadPageList(unversionedTree) { +export async function loadPageList(unversionedTree, languagesOnly = null) { const rawTree = unversionedTree || (await loadUnversionedTree()) const pageList = [] await Promise.all( - Object.keys(languages).map(async (langCode) => { + (languagesOnly || Object.keys(languages)).map(async (langCode) => { await addToCollection(rawTree[langCode], pageList) }) ) diff --git a/script/rendered-content-link-checker.mjs b/script/rendered-content-link-checker.mjs index 8462cbc7b8..e7e5f220b4 100755 --- a/script/rendered-content-link-checker.mjs +++ b/script/rendered-content-link-checker.mjs @@ -71,7 +71,7 @@ program main(program.opts(), program.args) async function main(opts, files) { - const { random, language, filter, exit, debug, max, verbose } = opts + const { random, exit, debug, max, verbose } = opts // Note! The reason we're using `warmServer()` in this script, // even though there's no server involved, is because @@ -84,11 +84,6 @@ async function main(opts, files) { // again, the next time `contextualize()` is called. const { redirects, pages: pageMap, pageList } = await warmServer() - const languages = language || [] - console.assert(Array.isArray(languages), `${languages} is not an array`) - const filters = filter || [] - console.assert(Array.isArray(filters), `${filters} is not an array`) - if (random) { shuffle(pageList) } @@ -123,12 +118,17 @@ async function main(opts, files) { function printGlobalCacheHitRatio() { const hits = globalCacheHitCount const misses = globalCacheMissCount - console.log( - `Cache hit ratio: ${hits.toLocaleString()} of ${(misses + hits).toLocaleString()} (${( - (100 * hits) / - (misses + hits) - ).toFixed(1)}%)` - ) + // It could be that the files that were tested didn't have a single + // link in them. In that case, there's no cache misses or hits at all. + // So avoid the division by zero. + if (misses + hits) { + console.log( + `Cache hit ratio: ${hits.toLocaleString()} of ${(misses + hits).toLocaleString()} (${( + (100 * hits) / + (misses + hits) + ).toFixed(1)}%)` + ) + } } function getDurationString(date1, date2) { From bb58be2d501ceb931b83dbf00b844bdad55b46b7 Mon Sep 17 00:00:00 2001 From: "James M. Greene" Date: Mon, 10 Jan 2022 22:30:25 -0600 Subject: [PATCH 39/68] Partial revert of PR #24176 to fix lint errors (#24196) --- script/rendered-content-link-checker.mjs | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/script/rendered-content-link-checker.mjs b/script/rendered-content-link-checker.mjs index e7e5f220b4..a236edfd73 100755 --- a/script/rendered-content-link-checker.mjs +++ b/script/rendered-content-link-checker.mjs @@ -71,7 +71,7 @@ program main(program.opts(), program.args) async function main(opts, files) { - const { random, exit, debug, max, verbose } = opts + const { random, language, filter, exit, debug, max, verbose } = opts // Note! The reason we're using `warmServer()` in this script, // even though there's no server involved, is because @@ -84,6 +84,11 @@ async function main(opts, files) { // again, the next time `contextualize()` is called. const { redirects, pages: pageMap, pageList } = await warmServer() + const languages = language || [] + console.assert(Array.isArray(languages), `${languages} is not an array`) + const filters = filter || [] + console.assert(Array.isArray(filters), `${filters} is not an array`) + if (random) { shuffle(pageList) } From 04da545821734058773d3774c6a1e02ccd85b4a6 Mon Sep 17 00:00:00 2001 From: Mike McDonald <2575327+asciimike@users.noreply.github.com> Date: Mon, 10 Jan 2022 23:23:08 -0700 Subject: [PATCH 40/68] Adding Codespace prebuilds to docs-internal (#23952) * Adding Codespaces prebuilds * Adding permissions * Use pinned SHA for github/codespaces-precache action * Add comments * Add codespaces-precache repo to reference allow list Co-authored-by: James M. Greene --- .github/workflows/codespaces-prebuild.yml | 30 +++++++++++++++++++++++ tests/meta/repository-references.js | 1 + 2 files changed, 31 insertions(+) create mode 100644 .github/workflows/codespaces-prebuild.yml diff --git a/.github/workflows/codespaces-prebuild.yml b/.github/workflows/codespaces-prebuild.yml new file mode 100644 index 0000000000..1a31b163ca --- /dev/null +++ b/.github/workflows/codespaces-prebuild.yml @@ -0,0 +1,30 @@ +name: Prebuild Codespaces + +# **What it does**: Prebuild the Codespaces image using powerful machines. +# See https://github.com/github/codespaces-precache#readme for more details. +# IMPORTANT: Requires we set a `EXPERIMENTAL_CODESPACE_CACHE_TOKEN` Codespaces +# Secret (NOT an Actions Secret) in the repository. +# **Why we have it**: Reduces startup time when booting Codespaces. +# **Who does it impact**: Any Docs contributors who want to use Codespaces. + +on: + push: + branches: + - main + workflow_dispatch: + +# Currently requires write, but in the future will only require read +permissions: + contents: write + +jobs: + createPrebuild: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@ec3a7ce113134d7a93b817d10a8272cb61118579 + - uses: github/codespaces-precache@2ad40630d7e3e45e8725d6a74656cb6dd17363dc + with: + regions: WestUs2 EastUs WestEurope SouthEastAsia + sku_name: basicLinux32gb + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} diff --git a/tests/meta/repository-references.js b/tests/meta/repository-references.js index a1523294ff..dbe5715ec0 100644 --- a/tests/meta/repository-references.js +++ b/tests/meta/repository-references.js @@ -54,6 +54,7 @@ const PUBLIC_REPOS = new Set([ 'insights-releases', 'help-docs-archived-enterprise-versions', 'stack-graphs', + 'codespaces-precache', ]) const ALLOW_DOCS_PATHS = [ From 1a961d974bbca8a2eeb1e8e27ba7bbc477cca203 Mon Sep 17 00:00:00 2001 From: Jules Parker <19994093+jules-p@users.noreply.github.com> Date: Tue, 11 Jan 2022 07:51:03 +0100 Subject: [PATCH 41/68] Adds MC's frontmatter suggestion --- ...ncy-graph-and-dependabot-alerts-on-your-enterprise-account.md | 1 + 1 file changed, 1 insertion(+) diff --git a/content/admin/configuration/managing-connections-between-your-enterprise-accounts/enabling-the-dependency-graph-and-dependabot-alerts-on-your-enterprise-account.md b/content/admin/configuration/managing-connections-between-your-enterprise-accounts/enabling-the-dependency-graph-and-dependabot-alerts-on-your-enterprise-account.md index c8411ebb15..509b12e80b 100644 --- a/content/admin/configuration/managing-connections-between-your-enterprise-accounts/enabling-the-dependency-graph-and-dependabot-alerts-on-your-enterprise-account.md +++ b/content/admin/configuration/managing-connections-between-your-enterprise-accounts/enabling-the-dependency-graph-and-dependabot-alerts-on-your-enterprise-account.md @@ -1,6 +1,7 @@ --- title: Enabling the dependency graph and Dependabot alerts on your enterprise account intro: 'You can connect {% data variables.product.product_location %} to {% data variables.product.prodname_ghe_cloud %} and enable the dependency graph and {% data variables.product.prodname_dependabot_alerts %} in repositories in your instance.' +miniTocMaxHeadingLevel: 3 shortTitle: Enable dependency analysis redirect_from: - /enterprise/admin/installation/enabling-security-alerts-for-vulnerable-dependencies-on-github-enterprise-server From 6f544183472d81115294ae25ec599ad9f64dfb6f Mon Sep 17 00:00:00 2001 From: Jules Parker <19994093+jules-p@users.noreply.github.com> Date: Tue, 11 Jan 2022 07:51:44 +0100 Subject: [PATCH 42/68] Update content/admin/configuration/managing-connections-between-your-enterprise-accounts/enabling-the-dependency-graph-and-dependabot-alerts-on-your-enterprise-account.md Co-authored-by: mc <42146119+mchammer01@users.noreply.github.com> --- ...cy-graph-and-dependabot-alerts-on-your-enterprise-account.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/content/admin/configuration/managing-connections-between-your-enterprise-accounts/enabling-the-dependency-graph-and-dependabot-alerts-on-your-enterprise-account.md b/content/admin/configuration/managing-connections-between-your-enterprise-accounts/enabling-the-dependency-graph-and-dependabot-alerts-on-your-enterprise-account.md index 509b12e80b..64899b57c1 100644 --- a/content/admin/configuration/managing-connections-between-your-enterprise-accounts/enabling-the-dependency-graph-and-dependabot-alerts-on-your-enterprise-account.md +++ b/content/admin/configuration/managing-connections-between-your-enterprise-accounts/enabling-the-dependency-graph-and-dependabot-alerts-on-your-enterprise-account.md @@ -42,7 +42,7 @@ Only {% data variables.product.company_short %}-reviewed advisories are synchron ### About scanning of repositories with synchronized data from the {% data variables.product.prodname_advisory_database %} -For repositories with {% data variables.product.prodname_dependabot_alerts %} enabled, scanning is triggered on any push to the default branch that contains a manifest file or lock file. Additionally, when a new vulnerability record is added to the instance, all existing repositories in that instance are scanned and alerts are issued for any repository that is vulnerable. For more information, see "[Detection of vulnerable dependencies](/code-security/supply-chain-security/managing-vulnerabilities-in-your-projects-dependencies/about-alerts-for-vulnerable-dependencies#detection-of-vulnerable-dependencies)." +For repositories with {% data variables.product.prodname_dependabot_alerts %} enabled, scanning is triggered on any push to the default branch that contains a manifest file or lock file. Additionally, when a new vulnerability record is added to the instance, {% data variables.product.prodname_ghe_server %} scans all existing repositories in that instance and generates alerts for any repository that is vulnerable. For more information, see "[Detection of vulnerable dependencies](/code-security/supply-chain-security/managing-vulnerabilities-in-your-projects-dependencies/about-alerts-for-vulnerable-dependencies#detection-of-vulnerable-dependencies)." ### About generation of {% data variables.product.prodname_dependabot_alerts %} From 2adf6fbc4103bb47ab8f8174e9e87d4f4d172542 Mon Sep 17 00:00:00 2001 From: GitHub Actions Date: Tue, 11 Jan 2022 10:00:30 +0000 Subject: [PATCH 43/68] update search indexes --- lib/search/indexes/github-docs-3.0-cn-records.json.br | 4 ++-- lib/search/indexes/github-docs-3.0-cn.json.br | 4 ++-- lib/search/indexes/github-docs-3.0-en-records.json.br | 4 ++-- lib/search/indexes/github-docs-3.0-en.json.br | 4 ++-- lib/search/indexes/github-docs-3.0-es-records.json.br | 4 ++-- lib/search/indexes/github-docs-3.0-es.json.br | 4 ++-- lib/search/indexes/github-docs-3.0-ja-records.json.br | 4 ++-- lib/search/indexes/github-docs-3.0-ja.json.br | 4 ++-- lib/search/indexes/github-docs-3.0-pt-records.json.br | 4 ++-- lib/search/indexes/github-docs-3.0-pt.json.br | 4 ++-- lib/search/indexes/github-docs-3.1-cn-records.json.br | 4 ++-- lib/search/indexes/github-docs-3.1-cn.json.br | 4 ++-- lib/search/indexes/github-docs-3.1-en-records.json.br | 4 ++-- lib/search/indexes/github-docs-3.1-en.json.br | 4 ++-- lib/search/indexes/github-docs-3.1-es-records.json.br | 4 ++-- lib/search/indexes/github-docs-3.1-es.json.br | 4 ++-- lib/search/indexes/github-docs-3.1-ja-records.json.br | 4 ++-- lib/search/indexes/github-docs-3.1-ja.json.br | 4 ++-- lib/search/indexes/github-docs-3.1-pt-records.json.br | 4 ++-- lib/search/indexes/github-docs-3.1-pt.json.br | 4 ++-- 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-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 ++-- 70 files changed, 140 insertions(+), 140 deletions(-) diff --git a/lib/search/indexes/github-docs-3.0-cn-records.json.br b/lib/search/indexes/github-docs-3.0-cn-records.json.br index e0334f062f..9bfed810c8 100644 --- a/lib/search/indexes/github-docs-3.0-cn-records.json.br +++ b/lib/search/indexes/github-docs-3.0-cn-records.json.br @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:35d023e64d2bf855d9279aef301b339801dc9be4f48783ea859283813738fd58 -size 614231 +oid sha256:ac42f24d1cef03b67c292ae0a5a3c240c911bb0f995d84afd2363ec0bd5c86e6 +size 612039 diff --git a/lib/search/indexes/github-docs-3.0-cn.json.br b/lib/search/indexes/github-docs-3.0-cn.json.br index 23b24cdabe..f9a00cb9aa 100644 --- a/lib/search/indexes/github-docs-3.0-cn.json.br +++ b/lib/search/indexes/github-docs-3.0-cn.json.br @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:52a5f837dff5b70291d27f64c6ccd941f4580e35243f5c06277dc53432961e0e -size 1746386 +oid sha256:f211e7a54e0c70499a3461ce9fbef0b0832c15c101e02e34410f8a9263b25e10 +size 1734621 diff --git a/lib/search/indexes/github-docs-3.0-en-records.json.br b/lib/search/indexes/github-docs-3.0-en-records.json.br index 15dc067644..3e2e8490a9 100644 --- a/lib/search/indexes/github-docs-3.0-en-records.json.br +++ b/lib/search/indexes/github-docs-3.0-en-records.json.br @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:93510859d0f7d44b3ae48dfe086c89346143d3e26e0745b9434593d517368769 -size 953845 +oid sha256:54697aa881851d88905747979a46c96cf70d3a516a0b4c14f5ab161e56c53a0a +size 954408 diff --git a/lib/search/indexes/github-docs-3.0-en.json.br b/lib/search/indexes/github-docs-3.0-en.json.br index 1346f46f25..2a527dc516 100644 --- a/lib/search/indexes/github-docs-3.0-en.json.br +++ b/lib/search/indexes/github-docs-3.0-en.json.br @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:806aeeef3b531196df22887fad3c5d32f0d43eca1dd64112b20061c00ee4cb9f -size 3909707 +oid sha256:e1999af8c8e7640551339563affd9a71e860e8597d2ecff0de9181db537dadd3 +size 3919086 diff --git a/lib/search/indexes/github-docs-3.0-es-records.json.br b/lib/search/indexes/github-docs-3.0-es-records.json.br index d8306a85f8..5c2aa0122b 100644 --- a/lib/search/indexes/github-docs-3.0-es-records.json.br +++ b/lib/search/indexes/github-docs-3.0-es-records.json.br @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:343a93a1b03445b689bd2d6b2fcd033c86cfaae0634c77752b8a8b5b5d761c7b -size 592720 +oid sha256:9b2e480f8b8b8376e479dd744f31345a9571a288f13221b765e9d60e9759933a +size 590349 diff --git a/lib/search/indexes/github-docs-3.0-es.json.br b/lib/search/indexes/github-docs-3.0-es.json.br index 00ae846e03..1bb052ba1e 100644 --- a/lib/search/indexes/github-docs-3.0-es.json.br +++ b/lib/search/indexes/github-docs-3.0-es.json.br @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:ee32c654b52336d580121cf2480205fd0a928470ec581761b49d869f200b2789 -size 2845363 +oid sha256:b1d23d6d4d478b57aeba0ef6970b1b51dcd1c986ef4293be13b3d9ac25cc9f55 +size 2833981 diff --git a/lib/search/indexes/github-docs-3.0-ja-records.json.br b/lib/search/indexes/github-docs-3.0-ja-records.json.br index 5ba04e594a..3f4c28771c 100644 --- a/lib/search/indexes/github-docs-3.0-ja-records.json.br +++ b/lib/search/indexes/github-docs-3.0-ja-records.json.br @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:2f3b660c2b27d2f0ae20d78a53a5d823161aae48ddbcaed0410d0b3f54fb04fc -size 617936 +oid sha256:5934e5b3c444343617c33a97df94143676e1a1429df2835889ac662b66a3a583 +size 615812 diff --git a/lib/search/indexes/github-docs-3.0-ja.json.br b/lib/search/indexes/github-docs-3.0-ja.json.br index 9d5777bf57..4deab6b682 100644 --- a/lib/search/indexes/github-docs-3.0-ja.json.br +++ b/lib/search/indexes/github-docs-3.0-ja.json.br @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:2047393008dfad00a6019d918156f33d7546100373b160c258136d09bd14cc70 -size 3476630 +oid sha256:217bae0503089d11fa2abed63e287290f95d52b40ba9d36b6a7e53ec4a4986d5 +size 3458071 diff --git a/lib/search/indexes/github-docs-3.0-pt-records.json.br b/lib/search/indexes/github-docs-3.0-pt-records.json.br index 5a12f1fe3f..2c51305d8c 100644 --- a/lib/search/indexes/github-docs-3.0-pt-records.json.br +++ b/lib/search/indexes/github-docs-3.0-pt-records.json.br @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:acec0c094aca757ca7df3c62c353680d76cfd63466df539c982afdbe5d1bf296 -size 596163 +oid sha256:ae8867d4fd25b42177ddd62541ea787612256874fd53338f1667324038b24b8f +size 593797 diff --git a/lib/search/indexes/github-docs-3.0-pt.json.br b/lib/search/indexes/github-docs-3.0-pt.json.br index da91b2e4a9..583561b756 100644 --- a/lib/search/indexes/github-docs-3.0-pt.json.br +++ b/lib/search/indexes/github-docs-3.0-pt.json.br @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:81e0b5537205cc5b2c9933bea264d532250311ceeb04a52f8ff7a1cc9dd6082b -size 2818044 +oid sha256:f668ab3800ab8cc0d4689d2329eefe47b7eb262c12e9eb9a37ef660562f703c7 +size 2806059 diff --git a/lib/search/indexes/github-docs-3.1-cn-records.json.br b/lib/search/indexes/github-docs-3.1-cn-records.json.br index dc6b7d8b44..9684bf2395 100644 --- a/lib/search/indexes/github-docs-3.1-cn-records.json.br +++ b/lib/search/indexes/github-docs-3.1-cn-records.json.br @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:81fe83c7f8617839c560d038b0dfaed5fb040ffd977d03eac5676d51c1fbebf4 -size 627693 +oid sha256:6b545e23b163c0eef24b50e53f6bc170e89ddd6a3cb197e2c43e973ec021f2e9 +size 625534 diff --git a/lib/search/indexes/github-docs-3.1-cn.json.br b/lib/search/indexes/github-docs-3.1-cn.json.br index c7c497d872..00eb0f1b0a 100644 --- a/lib/search/indexes/github-docs-3.1-cn.json.br +++ b/lib/search/indexes/github-docs-3.1-cn.json.br @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:3c0f93c7442c2888251c83e02a18fbdb580757ff2df0e1a396261be430d3562d -size 1788031 +oid sha256:ff1865c0deda2db8d9fafaf73523ac3e51ca1283a6992fdd999fc2d60c6c58a8 +size 1777687 diff --git a/lib/search/indexes/github-docs-3.1-en-records.json.br b/lib/search/indexes/github-docs-3.1-en-records.json.br index 2cb64cdd6d..4ac1e8b681 100644 --- a/lib/search/indexes/github-docs-3.1-en-records.json.br +++ b/lib/search/indexes/github-docs-3.1-en-records.json.br @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:b42be0be4b765861cc3d2e0dbe79c73ca3ff1fb14518710cf1d2188e76c2454b -size 978440 +oid sha256:7e909d7d774bdd32fd741b4e938551de333435f9b4f13e3e6bfa3d05863e5ac5 +size 979732 diff --git a/lib/search/indexes/github-docs-3.1-en.json.br b/lib/search/indexes/github-docs-3.1-en.json.br index 9b48bfe012..1d96784827 100644 --- a/lib/search/indexes/github-docs-3.1-en.json.br +++ b/lib/search/indexes/github-docs-3.1-en.json.br @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:53abf3061b186ef20533f7e79ad3e4074aea257af8ff54d388f44958e04f826e -size 4001739 +oid sha256:dae8f82b28496a838c1a3be7230036b8a978ef98d313199946a618d667d38a99 +size 4011519 diff --git a/lib/search/indexes/github-docs-3.1-es-records.json.br b/lib/search/indexes/github-docs-3.1-es-records.json.br index e992c4bcf9..57ab6a4f92 100644 --- a/lib/search/indexes/github-docs-3.1-es-records.json.br +++ b/lib/search/indexes/github-docs-3.1-es-records.json.br @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:fe7aaf53f6bcdf356f05e8dde06ef21f1fcfd23e4167802fbebd3e190bba9bdf -size 604273 +oid sha256:21a8f6002cb318f9020957ce05f244d55f4c3dfde2782d22c52bde378ccb9911 +size 602165 diff --git a/lib/search/indexes/github-docs-3.1-es.json.br b/lib/search/indexes/github-docs-3.1-es.json.br index 438cec3941..a0a57d0659 100644 --- a/lib/search/indexes/github-docs-3.1-es.json.br +++ b/lib/search/indexes/github-docs-3.1-es.json.br @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:47c9db33ca7ff3f08f647ce6f155fd8b76c08fafe1ff7194b0149f0094960b92 -size 2907759 +oid sha256:712b2a7306c25b8f2736a3cc82ae1fac4384929e36f2ddd96e7d220956d73fea +size 2894033 diff --git a/lib/search/indexes/github-docs-3.1-ja-records.json.br b/lib/search/indexes/github-docs-3.1-ja-records.json.br index 243add8e69..a7c8ffe4b1 100644 --- a/lib/search/indexes/github-docs-3.1-ja-records.json.br +++ b/lib/search/indexes/github-docs-3.1-ja-records.json.br @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:6bbb6ec941349422824094261a2d69b3ef9f9ba6dae7fb8854c284a97b9da25c -size 630907 +oid sha256:dcc1736b7c6b2f5e53034049d2b8ab9305bead71fb945ba32ef33a764104602c +size 628891 diff --git a/lib/search/indexes/github-docs-3.1-ja.json.br b/lib/search/indexes/github-docs-3.1-ja.json.br index ac97e945d2..7e209ee643 100644 --- a/lib/search/indexes/github-docs-3.1-ja.json.br +++ b/lib/search/indexes/github-docs-3.1-ja.json.br @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:3b1afa455040ab39a1169ce4e2d17257af5d436e5412808b4b7d23d3f42a128d -size 3554231 +oid sha256:49e036fa4b088255334122b70b6842c5e55de8a67c9788d6d041703267e7582e +size 3535262 diff --git a/lib/search/indexes/github-docs-3.1-pt-records.json.br b/lib/search/indexes/github-docs-3.1-pt-records.json.br index a2b7482c4e..4c46805ea1 100644 --- a/lib/search/indexes/github-docs-3.1-pt-records.json.br +++ b/lib/search/indexes/github-docs-3.1-pt-records.json.br @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:296c78d60ae6c7f75f790b19a77378ce0df722b658aba1f36624416f6dde5f36 -size 608210 +oid sha256:641e8b6e1a4c8ed446d993782545b341a83e508084af80bc27ec7a5c4932cbe0 +size 605983 diff --git a/lib/search/indexes/github-docs-3.1-pt.json.br b/lib/search/indexes/github-docs-3.1-pt.json.br index 308ae44155..76b322158d 100644 --- a/lib/search/indexes/github-docs-3.1-pt.json.br +++ b/lib/search/indexes/github-docs-3.1-pt.json.br @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:a6911fec4b1d6636194c9790a0858149372720e75283f8932ffc2679bf6d2a58 -size 2882493 +oid sha256:d35d07468f2faef1911a99c115b05267ece50c43bd1b725a054728dcc2b88018 +size 2869205 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 54334452be..ac6541d396 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:a95c5b36adb5ea1570b357b0308577b0a32fc300f7631303dfe606c9a5e765cb -size 639192 +oid sha256:73be82c13253151ea00273297e9bba3a1f65d387f4e526f9c3896e29446d61f9 +size 636899 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 c3aea0fb41..905293114d 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:1da67feb677c75bf6686f0a61f24662db86d1d054ddf16b2ddf9c1ceb9cf6374 -size 1814561 +oid sha256:136eea332e2f5100b60ea033e5ad3598186c44dca2ce5ec6bdaea78016980b61 +size 1804640 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 ef7b93d588..4f75964b69 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:4b3cfb569e2433629d099fe9293c2c746e891429581e011660faf5cb2defd222 -size 1009711 +oid sha256:62bd213b768b7ed3d0062cca384ebe913d9f2e0d9e2a77b78757d89421d59d92 +size 1010582 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 94b8a45625..013207a22d 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:462edd47e1d109110a3890ef3f13668a6444fc425bb32c7f8950ca409b9eb74e -size 4122967 +oid sha256:0e21f734044126a81abebe993bd252d8d43004f27848707b8329ab3de32e10f7 +size 4134049 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 663c9251e9..55c16b716d 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:d9210f2d39cd78f94943e9f961f9c4757589d8f17063b42d8b4cd8604bc314e0 -size 615139 +oid sha256:55798d110fe0ebdcc1b0a64223d57c9d205c714e2e17a37d74b577e9b52f9218 +size 612913 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 d229cf4ae4..1957876c7e 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:aa7aa7f7d07e859db84198b05d591ad14a77de66b56cec2a89786a4094cd1ff4 -size 2959996 +oid sha256:8ba0a554c7973c19d04ce48c6959925c50cc98cf5f7bcde67094090570574f0c +size 2948282 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 86f02c72f2..438219ac4d 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:85b32551fe3410e9f5f2406a8b6bee3658ac0d80392e9c3b1049fc80aaf6ab45 -size 642668 +oid sha256:bb974cfd369aba40d68e603868cb4eb99a4bfc534eae893c032cfd3a380ad015 +size 640264 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 faa6f194f6..b21e4675a6 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:2b9442d812012fda9834481c9d79616d384d90d9fe86b18357075b56097e24fe -size 3622272 +oid sha256:f3a31c64b1fcdce09f75b07764b97b623f44d33d43b59245f89f05ac2a2bf61d +size 3604162 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 4911597d7d..49d4adbedb 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:79d7f15537f5649b2b24d48776051e177e0b3e1ac8c2562e016277996606e5f2 -size 619702 +oid sha256:ca9171b11e6ab2d7558a997aa5531065cd3513ffc0b56bb36bd6fdaf4bf4ce00 +size 617288 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 bc4855e0f6..41fa4aaa8f 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:df9322d2f67fa6c219b00918db39716a31483fff83bc984e04fdefae49ec2a9b -size 2932921 +oid sha256:1fb4fb095d063d02d6333371dc8a832b06503f6e8757d188cc80764c087a3a93 +size 2919803 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 00fb10c349..da457b6b47 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:fee5a00b851867c47983b5cd707443cbef9e0e226f85139455914891ef6150d5 -size 659622 +oid sha256:8e3439851a82285d5d6dbcb490ebf25de57a3e4024d0d82585d2dba779719e84 +size 657327 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 0dc1956ea4..1feb8172d6 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:fce41d7712c9a4a60f99e2e12a2149fd27e823e1a84aebe59389cd48984f51da -size 1872269 +oid sha256:8b264ef5c29137c7ef551ced0cffc9957bc17f7e86be799727d3216fc78e7bdb +size 1861797 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 fb325d22f0..2a549b7c1a 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:2840d043586c6f927b8e1f647496826c843af627ca23bf91e28c9e8226747fe4 -size 1047449 +oid sha256:5512f6859131bf34bec72414bb5ab89445e365c9a7a9a359ccd15b92a902ab6b +size 1044688 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 117d7201c1..425b214d3a 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:4342732209bde549f10c06c5406aadbbdcc6d37cebaff9ec8ab68b305fd78bf3 -size 4225394 +oid sha256:2d89609f5fb1ed0625119a58d02596118cbdc1e7f97f16fd49f198c65992d40a +size 4235902 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 8a0cb0a4c9..ac33e7219d 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:81e5d886610dbf30f8cdf52e919911f789ffea494f567c067128fe0752afc85b -size 632843 +oid sha256:34bcd0daf9f916849c37d337c0b8bdad1ab5adb806266afd0de679b3b1216558 +size 630503 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 14762e3ab7..4c3809a4a8 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:6f7d48666f2df32e784e6c689248c217e93161d7069e1e76ea72d1ad5a87bf98 -size 3059492 +oid sha256:0e1800329971ea8874a74676dfe8519296372d45a83a99fb6bf4d667d539a0a4 +size 3046332 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 d7e1c330fe..6ae2006418 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:e4e518d5c570db335fffba5abb99d2a65f68ce4f2de759443aad8f7aa138b9b8 -size 663633 +oid sha256:e727c08cbd3e8969982b04784b7364e9bf187c53c610decee6764ead62d51989 +size 661356 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 811e57dada..97975986c1 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:c38d05c89568c243833dc50422a03afdf6e81622a8e5d656ef38e72bd7ef8e05 -size 3740743 +oid sha256:0d0fe0ae98083dacdd9581cf9bd38d2fddd2a9f80cc9b24b71474a93720c5c7b +size 3723171 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 ab3f773aee..0c81e08b2f 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:9d0f1e3f44cd68ccd5f1e413287596e43bcfc87c0c01a16632568083c44e20b6 -size 638615 +oid sha256:9920f386c51f43e93903bd64e95e608a009ce3485533cc62282ce0d9f06edb06 +size 636325 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 8260a84e77..6d15d9f047 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:ffcf3d1332174a679d41508a44d7cbed6911e7d7890255f243d4cf0304ed463b -size 3020398 +oid sha256:bdde95dbe78d59b8c8c9ffb7d7d29d7fdc2e80a1051993ee132518a084a4fc9e +size 3007364 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 e2738e0fbc..3e8e208dcf 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:9579a1aaece966aec9ec6961208844e34a49885f1b9e2ea2d44cf9f39bc47968 -size 848586 +oid sha256:ef0d4d4b81e9aec086c5095e3b3a25da5474234c42a1f2e2b060a277a1ece1de +size 845732 diff --git a/lib/search/indexes/github-docs-dotcom-cn.json.br b/lib/search/indexes/github-docs-dotcom-cn.json.br index f1b632503d..3561ff776b 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:3c232b14ddec9fc3133a3b9be38f49ccf2abf981f6a5f998aef5c55c69f4d36d -size 2092521 +oid sha256:c18cbd33cf1a637c90519d6a51cca690dd7e4da4ad02a6aaac25e163d7477b52 +size 2081476 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 b518678f32..a5cd06102d 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:e4fceedc6a24ce27a0e2e57ca9d57cba473f9dbd06322fb1b5b1604b5bbf13cb -size 1322396 +oid sha256:421d6fb2e88387f080d703add7d684337ed71ccf2ca0ca2f6533109599064333 +size 1329825 diff --git a/lib/search/indexes/github-docs-dotcom-en.json.br b/lib/search/indexes/github-docs-dotcom-en.json.br index 3f58649933..e7e424bdaf 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:e2622d38ea7303e5b09d7bbcfe39ed24f3975a588eb047dd8887279b5db42862 -size 5088754 +oid sha256:eb8551bf44393359f615250bf64b45540b1d5e28ebb8643bdfa2681af9e5d656 +size 5095501 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 9506d02912..691ce65798 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:77891ba843a3b9d0eeecd29c208da2cf93d527816f9619af2351a8c0ee4535b2 -size 804739 +oid sha256:60df14fdf6464eedfc0fae1cf3924596a18b1478fd688beed5728bb484150512 +size 802082 diff --git a/lib/search/indexes/github-docs-dotcom-es.json.br b/lib/search/indexes/github-docs-dotcom-es.json.br index 8d4ebe8b73..4dd8166d36 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:4ec349332e288659997fbac42a6109220d482250c619dd1594da459328b47d4f -size 3664171 +oid sha256:e23ddbac41d4ca03bfa8c3cd233d12559e475526bcfc5efcc09fcbf899eb8701 +size 3649814 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 b870213a8e..29a5a04427 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:cc545d807deae3f59d1a3df859bf816e3cd2ee88bbe3a6b7afad848ccfbd8863 -size 856276 +oid sha256:a95a2d27592d3118f461afcb9b2c448ebe037fab47b9b328fa999c8d1e273925 +size 853564 diff --git a/lib/search/indexes/github-docs-dotcom-ja.json.br b/lib/search/indexes/github-docs-dotcom-ja.json.br index a858e04760..c02481b777 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:b6f45cce167effd79e27cc53e52d5c8a7741dbd3c5e2df14c4997e365b73150b -size 4558054 +oid sha256:db4f7706d1ad6101d12930c1c0dc6a47d60582665baccc1f34fe2ad05bbdb73c +size 4539388 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 b42a1ce6e9..a60350e038 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:078e02b9bdc9156e77f1e25d3428c88362b35be828400b64bd096b5101f50c7a -size 810637 +oid sha256:f6500a77b6f5a94d4927312e2bfeeb7f6fe5fc0ee1abe958bf5ee3de607e2d0a +size 807870 diff --git a/lib/search/indexes/github-docs-dotcom-pt.json.br b/lib/search/indexes/github-docs-dotcom-pt.json.br index 5f7e8c69b8..adce60e431 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:dc203fd752503227a3a2e9fba855e39a331f9911e8d0646cffdba69260ced9a9 -size 3612586 +oid sha256:129dd5b59db3d0b4fd76a1d061d695e96f619540fcb97e09799889f9966e790d +size 3600004 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 328090cb30..d742d624a5 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:97960e76fe9cfe482ad78d0c0ea3488e7a94b26e2fac29f5eca9485b8ae779ef -size 512951 +oid sha256:c19c4c1a7c62bc5f337930ccf0a8ba0b5953a4b0884044a7678696b3ab255bab +size 510725 diff --git a/lib/search/indexes/github-docs-ghae-cn.json.br b/lib/search/indexes/github-docs-ghae-cn.json.br index 4dd572f854..c2cf1d611f 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:e3c5139dbeede5a1378edf5ce217e1a6d425389b97cf5b25fdf3467091c4f68d -size 1416051 +oid sha256:7efa938cd00128f8a4326ec4a4dc2b44c7d3a0adc47c43ae52b7e714996f2f25 +size 1404391 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 2ff874cc7b..6c042aa217 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:705e22c2b0db889e8577a5463ae4b4de5534feba31a4d56277e5c040ec64a9f6 -size 833184 +oid sha256:821b7666f0eae0becdd14b130ade1e3a6f71255d7acf4fe32286207f4267a691 +size 833757 diff --git a/lib/search/indexes/github-docs-ghae-en.json.br b/lib/search/indexes/github-docs-ghae-en.json.br index 0ec39720a1..fcbbf847b7 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:f74057659a0ac7203cdd7c2ae6bc1c0130ed7e79f2386c45ff04ee660dbef45f -size 3344373 +oid sha256:acc5a5aa0c39983b09a0e0febfc079cb3e13573240a95002acd3eb20f94b30e7 +size 3353908 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 86269f2d76..92514489ef 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:6c4e6344bed67a11e6ba26773a475f6643dacf9fef1bb1b52d682f3a7b294fae -size 496821 +oid sha256:a14a5b02cf2ec57b383a159eac0ca172db69ea69209793e5655607306c8a0c68 +size 494547 diff --git a/lib/search/indexes/github-docs-ghae-es.json.br b/lib/search/indexes/github-docs-ghae-es.json.br index 0e3d572e70..fea66e1e27 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:e4190d47811259b636e96ec4abf5078efee785d73a8d2f78c3af214691391795 -size 2313027 +oid sha256:67f9a3327e94fa1771b9af2f3fd1b5b7c8316cce5df3336fc50e31ebcc393c51 +size 2300470 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 7c58d92ed9..890edffe8c 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:0e77e9808271cd1245a8e4eeb65065fdc4fa013f497ebdcdebe8d4ce073f106b -size 516998 +oid sha256:e9fdeac0049d669b5dadfb9af876136d9e18591747de15b49e9f07f31b4b0ddf +size 514541 diff --git a/lib/search/indexes/github-docs-ghae-ja.json.br b/lib/search/indexes/github-docs-ghae-ja.json.br index 02d3ad0875..f08c7b60d3 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:da42493989f1899eb202fcf8af630703985f46687a1c8b301c7ad80739275a2b -size 2803208 +oid sha256:37678e509dac7112304dad029d141634a9896d98d824b413b99c71c40e6c7024 +size 2785127 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 84ad94e8a5..9b2998a5aa 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:c760cc4677207892472d9eb0bac67f77901dbee5a90254fe24398a1fcad59005 -size 500396 +oid sha256:646961f9f5f92eccf2b1eb727369b46893ff5c4d077d2157dc577b528002719e +size 498026 diff --git a/lib/search/indexes/github-docs-ghae-pt.json.br b/lib/search/indexes/github-docs-ghae-pt.json.br index 71afa0cf09..c96c4726f8 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:344eed0a3a47ce8f92266da6c9a115b06b553f72d209a124bb5e4307c13d31c4 -size 2288699 +oid sha256:fe0d86f12cd0dbd43ec6ff8a51a4f836a7ddcdf647c3d38640bed8d2a69ce4d7 +size 2275913 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 084b34f547..29d8043f4a 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:8636ed91bf0c03b2eca9ec78b444f4e4200d91ba752acb84b5a790715a7bc8c0 -size 772172 +oid sha256:72e0023ef69720fb2f657dd59965135a149bf1e7d0c9fcb03069920103f582d3 +size 769971 diff --git a/lib/search/indexes/github-docs-ghec-cn.json.br b/lib/search/indexes/github-docs-ghec-cn.json.br index 07d6ac20b5..529032171b 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:e24e8a878b60ce4ee84b846acb0fe8dd0fbcdf8d8ef7c439152c4dd4a63f6292 -size 2109887 +oid sha256:ce99740bdb1e6a294101af5c2283bb6e6d596e7b357c63ae828eff50cef5547d +size 2099372 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 a686da2d46..c723dbf713 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:5b1bb22b72a4a3e435f0f4b0d1fffd16c7b484231ce5a4117d3e9c9770221c62 -size 1188486 +oid sha256:dc3a2004fac432055439dcb643ee655f01823f5bb1c731ed2b774e514c58e1b3 +size 1193946 diff --git a/lib/search/indexes/github-docs-ghec-en.json.br b/lib/search/indexes/github-docs-ghec-en.json.br index b47d557ae3..20c1354c3e 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:a5f18a2bf68fbd33d21d67f6da3e03d1a3b3bcbe26525962fc025ddeb7d95c69 -size 4825541 +oid sha256:bdf5b5350a288fdb8e64817659691985d589c3e26e8c745a5d07162564dedfc4 +size 4834597 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 42fdc47a36..3aa27e15ee 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:952ede2c2054c96b23496ac8b52ef090be5d1bc0abf6ea7212b08a7266054f84 -size 749132 +oid sha256:651709ae2ae9ee3e8b2bc10b4a647a97e9111454ed1438b73135a5d8a541ebc1 +size 747527 diff --git a/lib/search/indexes/github-docs-ghec-es.json.br b/lib/search/indexes/github-docs-ghec-es.json.br index 1be3caffbd..d0b0d17cea 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:776ef8a577428e7a326f00e3504e5b1477b97534653a96839c9ec2fbd8d44cf6 -size 3605610 +oid sha256:044e9b7d9f3c2163ed094279643feb33fa9e94e3768fe30fb18cdf89ecf36c61 +size 3598665 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 2d527e4876..a2120f6356 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:5ae6c7aa25498d863f7716c333c1032371a4297f6c394c4b73cfafd26f27758a -size 782725 +oid sha256:5afdb4b380063193b2d314a4138700d9c17b93fe78b58ac1f45fbdd3b1d71a38 +size 781264 diff --git a/lib/search/indexes/github-docs-ghec-ja.json.br b/lib/search/indexes/github-docs-ghec-ja.json.br index 85a204ba6e..858aff14cc 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:50a7f3ff7f1d6f22475c19e3ad4283f4766f226553d51d5d7d169da78fc4cf9a -size 4396832 +oid sha256:2c7f55c91bdc2b55c85dec804323536b6fb631dc9714c073184ed4f22a4501a0 +size 4384092 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 381485335a..b28369f71a 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:d0ec63a421a45d11dc13621e6e414df983238c953195f5308c186bfd739dd078 -size 756111 +oid sha256:9f68ddf8353c533680c286867556f9995f227b788df0ee57aac312b3cb0e77f9 +size 754152 diff --git a/lib/search/indexes/github-docs-ghec-pt.json.br b/lib/search/indexes/github-docs-ghec-pt.json.br index bd4153f100..bfc084cef5 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:b05d9dfc307831fde8bac8a67edac13f327f7ae9936b6ef7b811e989d4291837 -size 3552190 +oid sha256:4930610e8051f57cb2ccf7e13961ad3dbbd6a9746dc2af44261d392b6c708ee7 +size 3543607 From 28f0d8c46ee202fce3016c367a92519563973266 Mon Sep 17 00:00:00 2001 From: Ramya Parimi <33761166+ramyaparimi@users.noreply.github.com> Date: Tue, 11 Jan 2022 09:04:15 -0600 Subject: [PATCH 44/68] Update README.md --- script/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/script/README.md b/script/README.md index 936650f12e..eb0273963f 100644 --- a/script/README.md +++ b/script/README.md @@ -460,7 +460,7 @@ Run this script to standardize frontmatter fields in all content files, per the ### [`sync-search-indices.js`](sync-search-indices.js) -This script is run on a schedule very four hours to generate searchable data. It can also be run manually. To run it manually, click "Run workflow" button in the [Actions tab](https://github.com/github/docs-internal/actions/workflows/sync-search-indices.yml). For more info see [contributing/search.md](contributing/search.md) +This script is run on a schedule every four hours to generate searchable data. It can also be run manually. To run it manually, click "Run workflow" button in the [Actions tab](https://github.com/github/docs-internal/actions/workflows/sync-search-indices.yml). For more info see [contributing/search.md](contributing/search.md) --- From 4228486ea49494245249af9f168b688a0648ba7b Mon Sep 17 00:00:00 2001 From: Bas van Schaik <5082246+sj@users.noreply.github.com> Date: Tue, 11 Jan 2022 15:19:16 +0000 Subject: [PATCH 45/68] Clarify that Go is not an interpreted language --- .../troubleshooting-the-codeql-workflow.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/content/code-security/code-scanning/automatically-scanning-your-code-for-vulnerabilities-and-errors/troubleshooting-the-codeql-workflow.md b/content/code-security/code-scanning/automatically-scanning-your-code-for-vulnerabilities-and-errors/troubleshooting-the-codeql-workflow.md index 322a5f346e..92f3ba7c48 100644 --- a/content/code-security/code-scanning/automatically-scanning-your-code-for-vulnerabilities-and-errors/troubleshooting-the-codeql-workflow.md +++ b/content/code-security/code-scanning/automatically-scanning-your-code-for-vulnerabilities-and-errors/troubleshooting-the-codeql-workflow.md @@ -182,7 +182,7 @@ Analysis time is typically proportional to the amount of code being analyzed. Yo For compiled languages like Java, C, C++, and C#, {% data variables.product.prodname_codeql %} analyzes all of the code which was built during the workflow run. To limit the amount of code being analyzed, build only the code which you wish to analyze by specifying your own build steps in a `run` block. You can combine specifying your own build steps with using the `paths` or `paths-ignore` filters on the `pull_request` and `push` events to ensure that your workflow only runs when specific code is changed. For more information, see "[Workflow syntax for {% data variables.product.prodname_actions %}](/actions/reference/workflow-syntax-for-github-actions#onpushpull_requestpaths)." -For interpreted languages like Go, JavaScript, Python, and TypeScript, that {% data variables.product.prodname_codeql %} analyzes without a specific build, you can specify additional configuration options to limit the amount of code to analyze. For more information, see "[Specifying directories to scan](/code-security/secure-coding/configuring-code-scanning#specifying-directories-to-scan)." +For languages like Go, JavaScript, Python, and TypeScript, that {% data variables.product.prodname_codeql %} analyzes without compiling the source code, you can specify additional configuration options to limit the amount of code to analyze. For more information, see "[Specifying directories to scan](/code-security/secure-coding/configuring-code-scanning#specifying-directories-to-scan)." If you split your analysis into multiple workflows as described above, we still recommend that you have at least one workflow which runs on a `schedule` which analyzes all of the code in your repository. Because {% data variables.product.prodname_codeql %} analyzes data flows between components, some complex security behaviors may only be detected on a complete build. From 738456c5b7eb1fa5faa1a08a87c5f1f130c0fb75 Mon Sep 17 00:00:00 2001 From: Ramya Parimi <33761166+ramyaparimi@users.noreply.github.com> Date: Tue, 11 Jan 2022 09:20:30 -0600 Subject: [PATCH 46/68] Revert "Update README.md" This reverts commit 28f0d8c46ee202fce3016c367a92519563973266. --- script/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/script/README.md b/script/README.md index eb0273963f..936650f12e 100644 --- a/script/README.md +++ b/script/README.md @@ -460,7 +460,7 @@ Run this script to standardize frontmatter fields in all content files, per the ### [`sync-search-indices.js`](sync-search-indices.js) -This script is run on a schedule every four hours to generate searchable data. It can also be run manually. To run it manually, click "Run workflow" button in the [Actions tab](https://github.com/github/docs-internal/actions/workflows/sync-search-indices.yml). For more info see [contributing/search.md](contributing/search.md) +This script is run on a schedule very four hours to generate searchable data. It can also be run manually. To run it manually, click "Run workflow" button in the [Actions tab](https://github.com/github/docs-internal/actions/workflows/sync-search-indices.yml). For more info see [contributing/search.md](contributing/search.md) --- From 0483deb47d7a910b616d73512728594cfcedc278 Mon Sep 17 00:00:00 2001 From: Ramya Parimi <33761166+ramyaparimi@users.noreply.github.com> Date: Tue, 11 Jan 2022 09:26:30 -0600 Subject: [PATCH 47/68] Revert "Merge branch 'main' of https://github.com/github/docs-internal" This reverts commit 0aec07e16a557852623e9e03b594afd52738f57d, reversing changes made to 738456c5b7eb1fa5faa1a08a87c5f1f130c0fb75. --- lib/rest/static/decorated/api.github.com.json | 28 ------------------- .../dereferenced/api.github.com.deref.json | 25 ----------------- 2 files changed, 53 deletions(-) diff --git a/lib/rest/static/decorated/api.github.com.json b/lib/rest/static/decorated/api.github.com.json index 0c888d348f..359bdb0d19 100644 --- a/lib/rest/static/decorated/api.github.com.json +++ b/lib/rest/static/decorated/api.github.com.json @@ -19183,34 +19183,6 @@ "type": "string" }, "descriptionHTML": "" - }, - { - "name": "per_page", - "description": "Results per page (max 100)", - "in": "query", - "schema": { - "type": "integer", - "default": 30 - }, - "descriptionHTML": "

Results per page (max 100)

" - }, - { - "name": "page", - "description": "Page token", - "in": "query", - "schema": { - "type": "integer" - }, - "descriptionHTML": "

Page token

" - }, - { - "name": "login", - "description": "Limits the list of credentials authorizations for an organization to a specific login", - "in": "query", - "schema": { - "type": "string" - }, - "descriptionHTML": "

Limits the list of credentials authorizations for an organization to a specific login

" } ], "x-codeSamples": [ diff --git a/lib/rest/static/dereferenced/api.github.com.deref.json b/lib/rest/static/dereferenced/api.github.com.deref.json index bd35e46d2b..0e478a3746 100644 --- a/lib/rest/static/dereferenced/api.github.com.deref.json +++ b/lib/rest/static/dereferenced/api.github.com.deref.json @@ -64771,31 +64771,6 @@ "schema": { "type": "string" } - }, - { - "name": "per_page", - "description": "Results per page (max 100)", - "in": "query", - "schema": { - "type": "integer", - "default": 30 - } - }, - { - "name": "page", - "description": "Page token", - "in": "query", - "schema": { - "type": "integer" - } - }, - { - "name": "login", - "description": "Limits the list of credentials authorizations for an organization to a specific login", - "in": "query", - "schema": { - "type": "string" - } } ], "responses": { From 9924ddfbea3059cfbb219a21008c91664d0189cd Mon Sep 17 00:00:00 2001 From: github-openapi-bot Date: Tue, 11 Jan 2022 07:32:02 -0800 Subject: [PATCH 48/68] Update OpenAPI Descriptions --- .../dereferenced/api.github.com.deref.json | 25 +++++++++++++++++++ 1 file changed, 25 insertions(+) diff --git a/lib/rest/static/dereferenced/api.github.com.deref.json b/lib/rest/static/dereferenced/api.github.com.deref.json index 0e478a3746..bd35e46d2b 100644 --- a/lib/rest/static/dereferenced/api.github.com.deref.json +++ b/lib/rest/static/dereferenced/api.github.com.deref.json @@ -64771,6 +64771,31 @@ "schema": { "type": "string" } + }, + { + "name": "per_page", + "description": "Results per page (max 100)", + "in": "query", + "schema": { + "type": "integer", + "default": 30 + } + }, + { + "name": "page", + "description": "Page token", + "in": "query", + "schema": { + "type": "integer" + } + }, + { + "name": "login", + "description": "Limits the list of credentials authorizations for an organization to a specific login", + "in": "query", + "schema": { + "type": "string" + } } ], "responses": { From 25987055aa874a0e5f01ece4be047ed6eae97138 Mon Sep 17 00:00:00 2001 From: github-openapi-bot Date: Tue, 11 Jan 2022 15:39:33 +0000 Subject: [PATCH 49/68] Add decorated OpenAPI schema files --- lib/rest/static/decorated/api.github.com.json | 28 +++++++++++++++++++ 1 file changed, 28 insertions(+) diff --git a/lib/rest/static/decorated/api.github.com.json b/lib/rest/static/decorated/api.github.com.json index 359bdb0d19..0c888d348f 100644 --- a/lib/rest/static/decorated/api.github.com.json +++ b/lib/rest/static/decorated/api.github.com.json @@ -19183,6 +19183,34 @@ "type": "string" }, "descriptionHTML": "" + }, + { + "name": "per_page", + "description": "Results per page (max 100)", + "in": "query", + "schema": { + "type": "integer", + "default": 30 + }, + "descriptionHTML": "

Results per page (max 100)

" + }, + { + "name": "page", + "description": "Page token", + "in": "query", + "schema": { + "type": "integer" + }, + "descriptionHTML": "

Page token

" + }, + { + "name": "login", + "description": "Limits the list of credentials authorizations for an organization to a specific login", + "in": "query", + "schema": { + "type": "string" + }, + "descriptionHTML": "

Limits the list of credentials authorizations for an organization to a specific login

" } ], "x-codeSamples": [ From ec6d783bb51562c7b26d0194d84dd96ba5e42b91 Mon Sep 17 00:00:00 2001 From: Ramya Parimi <33761166+ramyaparimi@users.noreply.github.com> Date: Tue, 11 Jan 2022 09:46:03 -0600 Subject: [PATCH 50/68] Update README.md (#24203) very -> every --- script/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/script/README.md b/script/README.md index 936650f12e..eb0273963f 100644 --- a/script/README.md +++ b/script/README.md @@ -460,7 +460,7 @@ Run this script to standardize frontmatter fields in all content files, per the ### [`sync-search-indices.js`](sync-search-indices.js) -This script is run on a schedule very four hours to generate searchable data. It can also be run manually. To run it manually, click "Run workflow" button in the [Actions tab](https://github.com/github/docs-internal/actions/workflows/sync-search-indices.yml). For more info see [contributing/search.md](contributing/search.md) +This script is run on a schedule every four hours to generate searchable data. It can also be run manually. To run it manually, click "Run workflow" button in the [Actions tab](https://github.com/github/docs-internal/actions/workflows/sync-search-indices.yml). For more info see [contributing/search.md](contributing/search.md) --- From d2d0805f81c84145340a7a2e688551fb6e995833 Mon Sep 17 00:00:00 2001 From: Jamie Cansdale Date: Tue, 11 Jan 2022 17:06:21 +0000 Subject: [PATCH 51/68] Add suggestion for nuspec files in troubleshooting (#12316) Co-authored-by: hubwriter --- .../working-with-the-nuget-registry.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/content/packages/working-with-a-github-packages-registry/working-with-the-nuget-registry.md b/content/packages/working-with-a-github-packages-registry/working-with-the-nuget-registry.md index 24357fc223..ac87e01173 100644 --- a/content/packages/working-with-a-github-packages-registry/working-with-the-nuget-registry.md +++ b/content/packages/working-with-a-github-packages-registry/working-with-the-nuget-registry.md @@ -231,6 +231,8 @@ Using packages from {% data variables.product.prodname_dotcom %} in your project Your NuGet package may fail to push if the `RepositoryUrl` in *.csproj* is not set to the expected repository . +If you're using a nuspec file, ensure that it has a `repository` element with the required `type` and `url` attributes. + ## Further reading - "{% ifversion fpt or ghes > 3.0 or ghec or ghae %}[Deleting and restoring a package](/packages/learn-github-packages/deleting-and-restoring-a-package){% elsif ghes < 3.1 %}[Deleting a package](/packages/learn-github-packages/deleting-a-package){% endif %}" From bee7f5b9c7b58f090dfe8868899812ba68b3a563 Mon Sep 17 00:00:00 2001 From: Winnie Li Date: Tue, 11 Jan 2022 12:21:25 -0500 Subject: [PATCH 52/68] Delete remove payment method page in billing docs (#23195) * deleted remove payment method page this feature is no longer supported * remove deleted article from index * remove links to deleted article * removed mention of deleting payment method * remove mention of deleting payment method * Merge `main` * Revert "Merge `main`" This reverts commit 59c4c3c27981a4b17e10cabe6fd0eb46f46d9dfe. * prune translations Co-authored-by: Matt Pollard Co-authored-by: Ethan P <56270045+ethanpalm@users.noreply.github.com> --- .../reviewing-your-security-log.md | 1 - content/billing/index.md | 1 - .../downgrading-your-github-subscription.md | 1 - .../index.md | 1 - .../removing-a-payment-method.md | 45 ------------------- ...ing-the-audit-log-for-your-organization.md | 1 - .../removing-a-payment-method.md | 45 ------------------- .../removing-a-payment-method.md | 45 ------------------- .../removing-a-payment-method.md | 45 ------------------- .../removing-a-payment-method.md | 45 ------------------- 10 files changed, 230 deletions(-) delete mode 100644 content/billing/managing-your-github-billing-settings/removing-a-payment-method.md delete mode 100644 translations/es-ES/content/billing/managing-your-github-billing-settings/removing-a-payment-method.md delete mode 100644 translations/ja-JP/content/billing/managing-your-github-billing-settings/removing-a-payment-method.md delete mode 100644 translations/pt-BR/content/billing/managing-your-github-billing-settings/removing-a-payment-method.md delete mode 100644 translations/zh-CN/content/billing/managing-your-github-billing-settings/removing-a-payment-method.md diff --git a/content/authentication/keeping-your-account-and-data-secure/reviewing-your-security-log.md b/content/authentication/keeping-your-account-and-data-secure/reviewing-your-security-log.md index df5bf71441..89e4fa9604 100644 --- a/content/authentication/keeping-your-account-and-data-secure/reviewing-your-security-log.md +++ b/content/authentication/keeping-your-account-and-data-secure/reviewing-your-security-log.md @@ -124,7 +124,6 @@ An overview of some of the most common actions that are recorded as events in th | Action | Description |------------------|------------------- -| `clear` | Triggered when [a payment method](/articles/removing-a-payment-method) on file is removed. | `create` | Triggered when a new payment method is added, such as a new credit card or PayPal account. | `update` | Triggered when an existing payment method is updated. diff --git a/content/billing/index.md b/content/billing/index.md index 067b356ef5..6071dcbf5f 100644 --- a/content/billing/index.md +++ b/content/billing/index.md @@ -28,7 +28,6 @@ featuredLinks: - '{% ifversion ghes %}/billing/managing-your-license-for-github-enterprise/uploading-a-new-license-to-github-enterprise-server{% endif %}' - '{% ifversion ghae %}/billing/managing-billing-for-your-github-account/about-billing-for-your-enterprise{% endif %}' guideCards: - - /billing/managing-your-github-billing-settings/removing-a-payment-method - /billing/managing-billing-for-your-github-account/how-does-upgrading-or-downgrading-affect-the-billing-process - /billing/managing-billing-for-git-large-file-storage/upgrading-git-large-file-storage - '{% ifversion ghes %}/billing/managing-your-license-for-github-enterprise/downloading-your-license-for-github-enterprise{% endif %}' diff --git a/content/billing/managing-billing-for-your-github-account/downgrading-your-github-subscription.md b/content/billing/managing-billing-for-your-github-account/downgrading-your-github-subscription.md index cdaa744340..18d4d43067 100644 --- a/content/billing/managing-billing-for-your-github-account/downgrading-your-github-subscription.md +++ b/content/billing/managing-billing-for-your-github-account/downgrading-your-github-subscription.md @@ -92,5 +92,4 @@ To reduce the number of paid seats your organization uses, you can remove member - "[{% data variables.product.prodname_dotcom %}'s products](/articles/github-s-products)" - "[How does upgrading or downgrading affect the billing process?](/articles/how-does-upgrading-or-downgrading-affect-the-billing-process)" - "[About billing on {% data variables.product.prodname_dotcom %}](/articles/about-billing-on-github)." -- "[Removing a payment method](/articles/removing-a-payment-method)" - "[About per-user pricing](/articles/about-per-user-pricing)" diff --git a/content/billing/managing-your-github-billing-settings/index.md b/content/billing/managing-your-github-billing-settings/index.md index c8d94f174f..d0d5f07683 100644 --- a/content/billing/managing-your-github-billing-settings/index.md +++ b/content/billing/managing-your-github-billing-settings/index.md @@ -25,6 +25,5 @@ children: - /redeeming-a-coupon - /troubleshooting-a-declined-credit-card-charge - /unlocking-a-locked-account - - /removing-a-payment-method --- diff --git a/content/billing/managing-your-github-billing-settings/removing-a-payment-method.md b/content/billing/managing-your-github-billing-settings/removing-a-payment-method.md deleted file mode 100644 index 8e7fe2ed0b..0000000000 --- a/content/billing/managing-your-github-billing-settings/removing-a-payment-method.md +++ /dev/null @@ -1,45 +0,0 @@ ---- -title: Removing a payment method -intro: 'If you aren''t using your payment method for any paid subscriptions on {% data variables.product.prodname_dotcom %}, you can remove the payment method so it''s no longer stored in your account.' -redirect_from: - - /github/setting-up-and-managing-billing-and-payments-on-github/removing-a-payment-method - - /articles/removing-a-credit-card-associated-with-your-user-account - - /articles/removing-a-payment-method-associated-with-your-user-account - - /articles/removing-a-credit-card-associated-with-your-organization - - /articles/removing-a-payment-method-associated-with-your-organization - - /articles/removing-a-payment-method - - /github/setting-up-and-managing-billing-and-payments-on-github/managing-your-github-billing-settings/removing-a-payment-method -versions: - fpt: '*' - ghec: '*' -type: how_to -topics: - - Organizations - - User account ---- -If you're paying for your {% data variables.product.product_name %} subscription with a coupon, and you aren't using your payment method for any [other paid features or products](/articles/about-billing-on-github) on {% data variables.product.product_name %}, you can remove your credit card or PayPal information. - -{% data reusables.dotcom_billing.coupon-expires %} - -{% tip %} - -**Tip:** If you [downgrade your account to a free product](/articles/downgrading-your-github-subscription) and you don't have subscriptions for any other paid features or products, we'll automatically remove your payment information. - -{% endtip %} - -## Removing your personal account's payment method - -{% data reusables.user_settings.access_settings %} -{% data reusables.user_settings.billing_plans %} -{% data reusables.user_settings.payment-info-link %} -{% data reusables.dotcom_billing.remove-payment-method %} -{% data reusables.dotcom_billing.remove_payment_info %} - -## Removing your organization's payment method - -{% data reusables.dotcom_billing.org-billing-perms %} - -{% data reusables.organizations.billing-settings %} -{% data reusables.user_settings.payment-info-link %} -{% data reusables.dotcom_billing.remove-payment-method %} -{% data reusables.dotcom_billing.remove_payment_info %} diff --git a/content/organizations/keeping-your-organization-secure/reviewing-the-audit-log-for-your-organization.md b/content/organizations/keeping-your-organization-secure/reviewing-the-audit-log-for-your-organization.md index 621972fd3c..034abf484e 100644 --- a/content/organizations/keeping-your-organization-secure/reviewing-the-audit-log-for-your-organization.md +++ b/content/organizations/keeping-your-organization-secure/reviewing-the-audit-log-for-your-organization.md @@ -515,7 +515,6 @@ For more information, see "[Managing the publication of {% data variables.produc | Action | Description |------------------|------------------- -| `clear` | Triggered when a payment method on file is [removed](/articles/removing-a-payment-method). | `create` | Triggered when a new payment method is added, such as a new credit card or PayPal account. | `update` | Triggered when an existing payment method is updated. diff --git a/translations/es-ES/content/billing/managing-your-github-billing-settings/removing-a-payment-method.md b/translations/es-ES/content/billing/managing-your-github-billing-settings/removing-a-payment-method.md deleted file mode 100644 index 8e7fe2ed0b..0000000000 --- a/translations/es-ES/content/billing/managing-your-github-billing-settings/removing-a-payment-method.md +++ /dev/null @@ -1,45 +0,0 @@ ---- -title: Removing a payment method -intro: 'If you aren''t using your payment method for any paid subscriptions on {% data variables.product.prodname_dotcom %}, you can remove the payment method so it''s no longer stored in your account.' -redirect_from: - - /github/setting-up-and-managing-billing-and-payments-on-github/removing-a-payment-method - - /articles/removing-a-credit-card-associated-with-your-user-account - - /articles/removing-a-payment-method-associated-with-your-user-account - - /articles/removing-a-credit-card-associated-with-your-organization - - /articles/removing-a-payment-method-associated-with-your-organization - - /articles/removing-a-payment-method - - /github/setting-up-and-managing-billing-and-payments-on-github/managing-your-github-billing-settings/removing-a-payment-method -versions: - fpt: '*' - ghec: '*' -type: how_to -topics: - - Organizations - - User account ---- -If you're paying for your {% data variables.product.product_name %} subscription with a coupon, and you aren't using your payment method for any [other paid features or products](/articles/about-billing-on-github) on {% data variables.product.product_name %}, you can remove your credit card or PayPal information. - -{% data reusables.dotcom_billing.coupon-expires %} - -{% tip %} - -**Tip:** If you [downgrade your account to a free product](/articles/downgrading-your-github-subscription) and you don't have subscriptions for any other paid features or products, we'll automatically remove your payment information. - -{% endtip %} - -## Removing your personal account's payment method - -{% data reusables.user_settings.access_settings %} -{% data reusables.user_settings.billing_plans %} -{% data reusables.user_settings.payment-info-link %} -{% data reusables.dotcom_billing.remove-payment-method %} -{% data reusables.dotcom_billing.remove_payment_info %} - -## Removing your organization's payment method - -{% data reusables.dotcom_billing.org-billing-perms %} - -{% data reusables.organizations.billing-settings %} -{% data reusables.user_settings.payment-info-link %} -{% data reusables.dotcom_billing.remove-payment-method %} -{% data reusables.dotcom_billing.remove_payment_info %} diff --git a/translations/ja-JP/content/billing/managing-your-github-billing-settings/removing-a-payment-method.md b/translations/ja-JP/content/billing/managing-your-github-billing-settings/removing-a-payment-method.md deleted file mode 100644 index 8e7fe2ed0b..0000000000 --- a/translations/ja-JP/content/billing/managing-your-github-billing-settings/removing-a-payment-method.md +++ /dev/null @@ -1,45 +0,0 @@ ---- -title: Removing a payment method -intro: 'If you aren''t using your payment method for any paid subscriptions on {% data variables.product.prodname_dotcom %}, you can remove the payment method so it''s no longer stored in your account.' -redirect_from: - - /github/setting-up-and-managing-billing-and-payments-on-github/removing-a-payment-method - - /articles/removing-a-credit-card-associated-with-your-user-account - - /articles/removing-a-payment-method-associated-with-your-user-account - - /articles/removing-a-credit-card-associated-with-your-organization - - /articles/removing-a-payment-method-associated-with-your-organization - - /articles/removing-a-payment-method - - /github/setting-up-and-managing-billing-and-payments-on-github/managing-your-github-billing-settings/removing-a-payment-method -versions: - fpt: '*' - ghec: '*' -type: how_to -topics: - - Organizations - - User account ---- -If you're paying for your {% data variables.product.product_name %} subscription with a coupon, and you aren't using your payment method for any [other paid features or products](/articles/about-billing-on-github) on {% data variables.product.product_name %}, you can remove your credit card or PayPal information. - -{% data reusables.dotcom_billing.coupon-expires %} - -{% tip %} - -**Tip:** If you [downgrade your account to a free product](/articles/downgrading-your-github-subscription) and you don't have subscriptions for any other paid features or products, we'll automatically remove your payment information. - -{% endtip %} - -## Removing your personal account's payment method - -{% data reusables.user_settings.access_settings %} -{% data reusables.user_settings.billing_plans %} -{% data reusables.user_settings.payment-info-link %} -{% data reusables.dotcom_billing.remove-payment-method %} -{% data reusables.dotcom_billing.remove_payment_info %} - -## Removing your organization's payment method - -{% data reusables.dotcom_billing.org-billing-perms %} - -{% data reusables.organizations.billing-settings %} -{% data reusables.user_settings.payment-info-link %} -{% data reusables.dotcom_billing.remove-payment-method %} -{% data reusables.dotcom_billing.remove_payment_info %} diff --git a/translations/pt-BR/content/billing/managing-your-github-billing-settings/removing-a-payment-method.md b/translations/pt-BR/content/billing/managing-your-github-billing-settings/removing-a-payment-method.md deleted file mode 100644 index 8e7fe2ed0b..0000000000 --- a/translations/pt-BR/content/billing/managing-your-github-billing-settings/removing-a-payment-method.md +++ /dev/null @@ -1,45 +0,0 @@ ---- -title: Removing a payment method -intro: 'If you aren''t using your payment method for any paid subscriptions on {% data variables.product.prodname_dotcom %}, you can remove the payment method so it''s no longer stored in your account.' -redirect_from: - - /github/setting-up-and-managing-billing-and-payments-on-github/removing-a-payment-method - - /articles/removing-a-credit-card-associated-with-your-user-account - - /articles/removing-a-payment-method-associated-with-your-user-account - - /articles/removing-a-credit-card-associated-with-your-organization - - /articles/removing-a-payment-method-associated-with-your-organization - - /articles/removing-a-payment-method - - /github/setting-up-and-managing-billing-and-payments-on-github/managing-your-github-billing-settings/removing-a-payment-method -versions: - fpt: '*' - ghec: '*' -type: how_to -topics: - - Organizations - - User account ---- -If you're paying for your {% data variables.product.product_name %} subscription with a coupon, and you aren't using your payment method for any [other paid features or products](/articles/about-billing-on-github) on {% data variables.product.product_name %}, you can remove your credit card or PayPal information. - -{% data reusables.dotcom_billing.coupon-expires %} - -{% tip %} - -**Tip:** If you [downgrade your account to a free product](/articles/downgrading-your-github-subscription) and you don't have subscriptions for any other paid features or products, we'll automatically remove your payment information. - -{% endtip %} - -## Removing your personal account's payment method - -{% data reusables.user_settings.access_settings %} -{% data reusables.user_settings.billing_plans %} -{% data reusables.user_settings.payment-info-link %} -{% data reusables.dotcom_billing.remove-payment-method %} -{% data reusables.dotcom_billing.remove_payment_info %} - -## Removing your organization's payment method - -{% data reusables.dotcom_billing.org-billing-perms %} - -{% data reusables.organizations.billing-settings %} -{% data reusables.user_settings.payment-info-link %} -{% data reusables.dotcom_billing.remove-payment-method %} -{% data reusables.dotcom_billing.remove_payment_info %} diff --git a/translations/zh-CN/content/billing/managing-your-github-billing-settings/removing-a-payment-method.md b/translations/zh-CN/content/billing/managing-your-github-billing-settings/removing-a-payment-method.md deleted file mode 100644 index 8e7fe2ed0b..0000000000 --- a/translations/zh-CN/content/billing/managing-your-github-billing-settings/removing-a-payment-method.md +++ /dev/null @@ -1,45 +0,0 @@ ---- -title: Removing a payment method -intro: 'If you aren''t using your payment method for any paid subscriptions on {% data variables.product.prodname_dotcom %}, you can remove the payment method so it''s no longer stored in your account.' -redirect_from: - - /github/setting-up-and-managing-billing-and-payments-on-github/removing-a-payment-method - - /articles/removing-a-credit-card-associated-with-your-user-account - - /articles/removing-a-payment-method-associated-with-your-user-account - - /articles/removing-a-credit-card-associated-with-your-organization - - /articles/removing-a-payment-method-associated-with-your-organization - - /articles/removing-a-payment-method - - /github/setting-up-and-managing-billing-and-payments-on-github/managing-your-github-billing-settings/removing-a-payment-method -versions: - fpt: '*' - ghec: '*' -type: how_to -topics: - - Organizations - - User account ---- -If you're paying for your {% data variables.product.product_name %} subscription with a coupon, and you aren't using your payment method for any [other paid features or products](/articles/about-billing-on-github) on {% data variables.product.product_name %}, you can remove your credit card or PayPal information. - -{% data reusables.dotcom_billing.coupon-expires %} - -{% tip %} - -**Tip:** If you [downgrade your account to a free product](/articles/downgrading-your-github-subscription) and you don't have subscriptions for any other paid features or products, we'll automatically remove your payment information. - -{% endtip %} - -## Removing your personal account's payment method - -{% data reusables.user_settings.access_settings %} -{% data reusables.user_settings.billing_plans %} -{% data reusables.user_settings.payment-info-link %} -{% data reusables.dotcom_billing.remove-payment-method %} -{% data reusables.dotcom_billing.remove_payment_info %} - -## Removing your organization's payment method - -{% data reusables.dotcom_billing.org-billing-perms %} - -{% data reusables.organizations.billing-settings %} -{% data reusables.user_settings.payment-info-link %} -{% data reusables.dotcom_billing.remove-payment-method %} -{% data reusables.dotcom_billing.remove_payment_info %} From fd32d3a4e24bac1003159d4a8356403660ef9d2a Mon Sep 17 00:00:00 2001 From: Peter Bengtsson Date: Tue, 11 Jan 2022 12:41:20 -0500 Subject: [PATCH 53/68] fix local dev with Safari (#24205) * fix local dev with Safari * refactoring * refactoring --- middleware/csp.js | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/middleware/csp.js b/middleware/csp.js index 049354a65a..e1f78f9e3d 100644 --- a/middleware/csp.js +++ b/middleware/csp.js @@ -8,12 +8,20 @@ const { contentSecurityPolicy } = helmet const AZURE_STORAGE_URL = 'githubdocs.azureedge.net' +const isDev = process.env.NODE_ENV === 'development' + export default function csp(req, res, next) { const csp = { directives: { defaultSrc: ["'none'"], prefetchSrc: ["'self'"], - connectSrc: ["'self'"], + + connectSrc: [ + "'self'", + // When doing local dev, especially in Safari, you need to add `ws:` + // which NextJS uses for the hot module reloading. + isDev && 'ws:', + ].filter(Boolean), fontSrc: ["'self'", 'data:', AZURE_STORAGE_URL], imgSrc: [ "'self'", @@ -30,7 +38,7 @@ export default function csp(req, res, next) { 'data:', // For use during development only! This allows us to use a performant webpack devtool setting (eval) // https://webpack.js.org/configuration/devtool/#devtool - process.env.NODE_ENV === 'development' && "'unsafe-eval'", + isDev && "'unsafe-eval'", ].filter(Boolean), frameSrc: [ // exceptions for GraphQL Explorer From 69543377cb4d5a27e624246bdf83eae54f325db9 Mon Sep 17 00:00:00 2001 From: Grace Park Date: Tue, 11 Jan 2022 09:53:55 -0800 Subject: [PATCH 54/68] Accessibility: Guides Pages, types/topics dropdown (#24185) * accessibility: make label autofocus on dropdown when clicked * update to div element --- components/guides/ArticleCards.tsx | 35 ++++++++++++++++++++++++------ 1 file changed, 28 insertions(+), 7 deletions(-) diff --git a/components/guides/ArticleCards.tsx b/components/guides/ArticleCards.tsx index 461b2a7610..be3eef451a 100644 --- a/components/guides/ArticleCards.tsx +++ b/components/guides/ArticleCards.tsx @@ -1,4 +1,4 @@ -import React, { useEffect, useState } from 'react' +import React, { useEffect, useRef, useState } from 'react' import { ArticleGuide, useProductGuidesContext } from 'components/context/ProductGuidesContext' import { useTranslation } from 'components/hooks/useTranslation' @@ -15,6 +15,8 @@ export const ArticleCards = () => { const [typeFilter, setTypeFilter] = useState() const [topicFilter, setTopicFilter] = useState() const [filteredResults, setFilteredResults] = useState>([]) + const typesRef = useRef(null) + const topicsRef = useRef(null) useEffect(() => { setNumVisible(PAGE_SIZE) @@ -27,6 +29,11 @@ export const ArticleCards = () => { ) }, [typeFilter, topicFilter]) + const clickDropdown = (e: React.RefObject) => { + if (e === typesRef && typesRef.current) typesRef.current.focus() + if (e === topicsRef && topicsRef.current) topicsRef.current.focus() + } + const isUserFiltering = typeFilter !== undefined || topicFilter !== undefined const guides = isUserFiltering ? filteredResults : includeGuides || [] @@ -48,11 +55,18 @@ export const ArticleCards = () => {
-
-
+

diff --git a/components/guides/ArticleCards.tsx b/components/guides/ArticleCards.tsx index be3eef451a..960827d2d6 100644 --- a/components/guides/ArticleCards.tsx +++ b/components/guides/ArticleCards.tsx @@ -17,6 +17,7 @@ export const ArticleCards = () => { const [filteredResults, setFilteredResults] = useState>([]) const typesRef = useRef(null) const topicsRef = useRef(null) + const articleCardRef = useRef(null) useEffect(() => { setNumVisible(PAGE_SIZE) @@ -34,6 +35,16 @@ export const ArticleCards = () => { if (e === topicsRef && topicsRef.current) topicsRef.current.focus() } + const loadMore = () => { + if (articleCardRef.current) { + const childListLength = articleCardRef.current.childElementCount + // Leading semi-colon due to prettier to prevent possible ASI failures + // Need to explicitly type assert as HTMLDivElement as focus property missing from dom type definitions for Element. + ;(articleCardRef.current.childNodes.item(childListLength - 1) as HTMLDivElement).focus() + } + setNumVisible(numVisible + PAGE_SIZE) + } + const isUserFiltering = typeFilter !== undefined || topicFilter !== undefined const guides = isUserFiltering ? filteredResults : includeGuides || [] @@ -59,7 +70,7 @@ export const ArticleCards = () => { onClick={() => clickDropdown(typesRef)} onKeyDown={() => clickDropdown(typesRef)} role="button" - tabIndex={0} + tabIndex={-1} className="text-uppercase f6 color-fg-muted d-block" > {t('filters.type')} @@ -80,7 +91,7 @@ export const ArticleCards = () => { onClick={() => clickDropdown(topicsRef)} onKeyDown={() => clickDropdown(topicsRef)} role="button" - tabIndex={0} + tabIndex={-1} className="text-uppercase f6 color-fg-muted d-block" > {t('filters.topic')} @@ -105,16 +116,23 @@ export const ArticleCards = () => { : t('guides_found.multiple').replace('{n}', guides.length)}
-
+
{guides.slice(0, numVisible).map((card) => { - return + return ( + + ) })}
{guides.length > numVisible && ( diff --git a/components/guides/LearningTrack.tsx b/components/guides/LearningTrack.tsx index f4ae20b9b4..12aad2722b 100644 --- a/components/guides/LearningTrack.tsx +++ b/components/guides/LearningTrack.tsx @@ -2,7 +2,7 @@ import cx from 'classnames' import { useTranslation } from 'components/hooks/useTranslation' import { ArrowRightIcon } from '@primer/octicons-react' import { ActionList } from '@primer/components' -import { useState } from 'react' +import { useEffect, useRef, useState } from 'react' import { FeaturedTrack } from 'components/context/ProductGuidesContext' import { TruncateLines } from 'components/ui/TruncateLines' import slugger from 'github-slugger' @@ -15,11 +15,16 @@ type Props = { const DEFAULT_VISIBLE_GUIDES = 4 export const LearningTrack = ({ track }: Props) => { const [numVisible, setNumVisible] = useState(DEFAULT_VISIBLE_GUIDES) + const { t } = useTranslation('product_guides') + const slug = track?.title ? slugger.slug(track?.title) : '' + const listRef = useRef(null) const showAll = () => { setNumVisible(track?.guides?.length || 0) } - const { t } = useTranslation('product_guides') - const slug = track?.title ? slugger.slug(track?.title) : '' + + useEffect(() => { + if (listRef.current) listRef.current.focus() + }) return (
@@ -57,6 +62,7 @@ export const LearningTrack = ({ track }: Props) => { return { renderItem: () => ( Date: Tue, 11 Jan 2022 11:38:57 -0800 Subject: [PATCH 57/68] Guides List markup and Link Icon in Permalink Headings (#24211) * list markup for article cards and learning paths * adding link icon to section permalinks --- components/guides/ArticleCard.tsx | 4 ++-- components/guides/ArticleCards.tsx | 6 +++--- components/guides/ProductGuides.tsx | 2 +- components/landing/LandingSection.tsx | 2 ++ 4 files changed, 8 insertions(+), 6 deletions(-) diff --git a/components/guides/ArticleCard.tsx b/components/guides/ArticleCard.tsx index f088fbf893..65cd9cb26a 100644 --- a/components/guides/ArticleCard.tsx +++ b/components/guides/ArticleCard.tsx @@ -9,7 +9,7 @@ type Props = { export const ArticleCard = ({ tabIndex, card, typeLabel }: Props) => { return ( - + ) } diff --git a/components/guides/ArticleCards.tsx b/components/guides/ArticleCards.tsx index 960827d2d6..d84d749e93 100644 --- a/components/guides/ArticleCards.tsx +++ b/components/guides/ArticleCards.tsx @@ -17,7 +17,7 @@ export const ArticleCards = () => { const [filteredResults, setFilteredResults] = useState>([]) const typesRef = useRef(null) const topicsRef = useRef(null) - const articleCardRef = useRef(null) + const articleCardRef = useRef(null) useEffect(() => { setNumVisible(PAGE_SIZE) @@ -116,7 +116,7 @@ export const ArticleCards = () => { : t('guides_found.multiple').replace('{n}', guides.length)}
-
+
    {guides.slice(0, numVisible).map((card) => { return ( { /> ) })} -
+ {guides.length > numVisible && (
+## Monitoring students' progress +The assignment overview page displays information about your assignment acceptances and team progress. You may have different summary information based on the configurations of your assignments. + +- **Total teams**: The number of teams that have been created. +- **Rostered students**: The number of students on the Classroom's roster. +- **Students not on a team**: The number of students on the Classroom roster who have not yet joined a team. +- **Accepted teams**: The number of teams who have accepted this assignment. +- **Assignment submissions**: The number of teams that have submitted the assignment. Submission is triggered at the assignment deadline. +- **Passing teams**: The number of teams that are currently passing the autograding tests for this assignment. + ## Next steps - After you create the assignment and your students form teams, team members can start work on the assignment using Git and {% data variables.product.product_name %}'s features. Students can clone the repository, push commits, manage branches, create and review pull requests, address merge conflicts, and discuss changes with issues. Both you and the team can review the commit history for the repository. For more information, see "[Getting started with {% data variables.product.prodname_dotcom %}](/github/getting-started-with-github)," "[Repositories](/repositories)," "[Using Git](/github/getting-started-with-github/using-git)," and "[Collaborating with issues and pull requests](/github/collaborating-with-issues-and-pull-requests)," and the free course on [managing merge conflicts](https://lab.github.com/githubtraining/managing-merge-conflicts) from {% data variables.product.prodname_learning %}. diff --git a/translations/pt-BR/content/education/manage-coursework-with-github-classroom/teach-with-github-classroom/create-an-individual-assignment.md b/translations/pt-BR/content/education/manage-coursework-with-github-classroom/teach-with-github-classroom/create-an-individual-assignment.md index 085d2558c4..e6526e2821 100644 --- a/translations/pt-BR/content/education/manage-coursework-with-github-classroom/teach-with-github-classroom/create-an-individual-assignment.md +++ b/translations/pt-BR/content/education/manage-coursework-with-github-classroom/teach-with-github-classroom/create-an-individual-assignment.md @@ -100,12 +100,21 @@ Optionally, you can automatically grade assignments and create a space for discu {% data reusables.classroom.assignments-guide-invite-students-to-assignment %} -You can see whether a student has joined the classroom and accepted or submitted an assignment in the **All students** tab for the assignment. {% data reusables.classroom.assignments-to-prevent-submission %} +You can see whether a student has joined the classroom and accepted or submitted an assignment in the **Classroom roster** tab for the assignment. You can also link students' {% data variables.product.prodname_dotcom %} aliases to their associated roster identifier and vice versa in this tab. {% data reusables.classroom.assignments-to-prevent-submission %}
Individual assignment
+## Monitoring students' progress +The assignment overview page provides an overview of your assignment acceptances and student progress. You may have different summary information based on the configurations of your assignments. + +- **Rostered students**: The number of students on the Classroom's roster. +- **Added students**: The number of {% data variables.product.prodname_dotcom %} accounts that have accepted the assignment and are not associated with a roster identifier. +- **Accepted students**: The number of accounts have accepted this assignment. +- **Assignment submissions**: The number of students that have submitted the assignment. Submission is triggered at the assignment deadline. +- **Passing students**: The number of students currently passing the autograding tests for this assignment. + ## Next steps - Once you create the assignment, students can start work on the assignment using Git and {% data variables.product.product_name %}'s features. Students can clone the repository, push commits, manage branches, create and review pull requests, address merge conflicts, and discuss changes with issues. Both you and student can review the commit history for the repository. For more information, see "[Getting started with {% data variables.product.prodname_dotcom %}](/github/getting-started-with-github)," "[Repositories](/repositories)," and "[Collaborating with issues and pull requests](/github/collaborating-with-issues-and-pull-requests)." diff --git a/translations/pt-BR/content/education/manage-coursework-with-github-classroom/teach-with-github-classroom/use-autograding.md b/translations/pt-BR/content/education/manage-coursework-with-github-classroom/teach-with-github-classroom/use-autograding.md index 31eee9a49a..05dd80d957 100644 --- a/translations/pt-BR/content/education/manage-coursework-with-github-classroom/teach-with-github-classroom/use-autograding.md +++ b/translations/pt-BR/content/education/manage-coursework-with-github-classroom/teach-with-github-classroom/use-autograding.md @@ -20,7 +20,7 @@ You can use a testing framework, run a custom command, write input/output tests, You can see an overview of which students are passing autograding tests by navigating to the assignment in {% data variables.product.prodname_classroom %}. A green checkmark means that all tests are passing for the student, and a red X means that some or all tests are failing for the student. If you award points for one or more tests, then a bubble shows the score for the tests out of the maximum possible score for the assignment. -![Overview for an assignment with autograding results](/assets/images/help/classroom/autograding-hero.png) +![Overview for an assignment with autograding results](/assets/images/help/classroom/assignment-individual-hero.png) ## Grading methods diff --git a/translations/pt-BR/content/get-started/learning-about-github/access-permissions-on-github.md b/translations/pt-BR/content/get-started/learning-about-github/access-permissions-on-github.md index 07127770d3..1c3d381166 100644 --- a/translations/pt-BR/content/get-started/learning-about-github/access-permissions-on-github.md +++ b/translations/pt-BR/content/get-started/learning-about-github/access-permissions-on-github.md @@ -37,16 +37,18 @@ Organization members can have *owner*{% ifversion fpt or ghec %}, *billing manag - "[Repository roles for an organization](/organizations/managing-access-to-your-organizations-repositories/repository-roles-for-an-organization)" - "[About teams](/articles/about-teams)" -{% ifversion fpt or ghec %} - ## Enterprise accounts -*Enterprise owners* have ultimate power over the enterprise account and can take every action in the enterprise account. *Billing managers* can manage your enterprise account's billing settings. Members and outside collaborators of organizations owned by your enterprise account are automatically members of the enterprise account, although they have no access to the enterprise account itself or its settings. For more information, see "[Roles in an enterprise](/admin/user-management/managing-users-in-your-enterprise/roles-in-an-enterprise)." +{% ifversion fpt %} +{% data reusables.gated-features.enterprise-accounts %} -If an enterprise uses {% data variables.product.prodname_emus %}, members are provisioned as new user accounts on {% data variables.product.prodname_dotcom %} and are fully managed by the identity provider. The {% data variables.product.prodname_managed_users %} have read-only access to repositories that are not a part of their enterprise and cannot interact with users that are not also members of the enterprise. Within the organizations owned by the enterprise, the {% data variables.product.prodname_managed_users %} can be granted the same granular access levels available for regular organizations. For more information, see "[About {% data variables.product.prodname_emus %}]({% ifversion fpt %}/enterprise-cloud@latest{% endif %}/admin/authentication/managing-your-enterprise-users-with-your-identity-provider/about-enterprise-managed-users){% ifversion fpt %}" in the {% data variables.product.prodname_ghe_cloud %} documentation{% else %}."{% endif %} - -{% data reusables.gated-features.enterprise-accounts %} +For more information about permissions for enterprise accounts, see [the {% data variables.product.prodname_ghe_cloud %} documentation](/enterprise-cloud@latest/get-started/learning-about-github/access-permissions-on-github). +{% else %} +*Enterprise owners* have ultimate power over the enterprise account and can take every action in the enterprise account.{% ifversion ghec or ghes %} *Billing managers* can manage your enterprise account's billing settings.{% endif %} Members and outside collaborators of organizations owned by your enterprise account are automatically members of the enterprise account, although they have no access to the enterprise account itself or its settings. For more information, see "[Roles in an enterprise](/admin/user-management/managing-users-in-your-enterprise/roles-in-an-enterprise)." +{% ifversion ghec %} +If an enterprise uses {% data variables.product.prodname_emus %}, members are provisioned as new user accounts on {% data variables.product.prodname_dotcom %} and are fully managed by the identity provider. The {% data variables.product.prodname_managed_users %} have read-only access to repositories that are not a part of their enterprise and cannot interact with users that are not also members of the enterprise. Within the organizations owned by the enterprise, the {% data variables.product.prodname_managed_users %} can be granted the same granular access levels available for regular organizations. For more information, see "[About {% data variables.product.prodname_emus %}](/admin/authentication/managing-your-enterprise-users-with-your-identity-provider/about-enterprise-managed-users)." +{% endif %} {% endif %} ## Further reading diff --git a/translations/pt-BR/content/get-started/using-github/github-command-palette.md b/translations/pt-BR/content/get-started/using-github/github-command-palette.md index 37b977176b..5bd52d490e 100644 --- a/translations/pt-BR/content/get-started/using-github/github-command-palette.md +++ b/translations/pt-BR/content/get-started/using-github/github-command-palette.md @@ -2,8 +2,6 @@ title: GitHub Command Palette intro: 'Use the command palette in {% data variables.product.product_name %} to navigate, search, and run commands directly from your keyboard.' versions: - fpt: '*' - ghec: '*' feature: 'command-palette' shortTitle: GitHub Command Palette --- @@ -29,28 +27,28 @@ The ability to run commands directly from your keyboard, without navigating thro ## Opening the {% data variables.product.prodname_command_palette %} Open the command palette using one of the following keyboard shortcuts: -- Windows and Linux: Ctrlk or Ctrlaltk -- Mac: k or optionk +- Windows and Linux: Ctrl+K or Ctrl+Alt+K +- Mac: Command+K or Command+Option+K -When you open the command palette, it shows your location at the top left and uses it as the scope for suggestions (for example, the `mashed-avocado` organization). +When you open the command palette, it shows your location at the top left and uses it as the scope for suggestions (for example, the `mashed-avocado` organization). ![Command palette launch](/assets/images/help/command-palette/command-palette-launch.png) {% note %} **Notes:** -- If you are editing Markdown text, open the command palette with Ctrlaltk (Windows and Linux) or optionk (Mac). +- If you are editing Markdown text, open the command palette with Ctrl+Alt+K (Windows and Linux) or Command+Option+K (Mac). - If you are working on a project (beta), a project-specific command palette is displayed instead. For more information, see "[Customizing your project (beta) views](/issues/trying-out-the-new-projects-experience/customizing-your-project-views)." {% endnote %} ## Navigating with the {% data variables.product.prodname_command_palette %} -You can use the command palette to navigate to any page that you have access to on {% data variables.product.product_name %}. +You can use the command palette to navigate to any page that you have access to on {% data variables.product.product_name %}. {% data reusables.command-palette.open-palette %} -2. Start typing the path you want to navigate to. The suggestions in the command palette change to match your text. +2. Start typing the path you want to navigate to. The suggestions in the command palette change to match your text. ![Command palette navigation current scope](/assets/images/help/command-palette/command-palette-navigation-current-scope.png) @@ -60,22 +58,22 @@ You can use the command palette to navigate to any page that you have access to 4. Finish entering the path, or use the arrow keys to highlight the path you want from the list of suggestions. -5. Use Enter to jump to your chosen location. Alternatively, use CtrlEnter (Windows and Linux) or Enter (Mac) to open the location in a new browser tab. +5. Use Enter to jump to your chosen location. Alternatively, use Ctrl+Enter (Windows and Linux) or Command+Enter (Mac) to open the location in a new browser tab. ## Searching with the {% data variables.product.prodname_command_palette %} -You can use the command palette to search for anything on {% data variables.product.product_location %}. +You can use the command palette to search for anything on {% data variables.product.product_location %}. {% data reusables.command-palette.open-palette %} {% data reusables.command-palette.change-scope %} -3. Optionally, use keystrokes to find specific types of resource: +3. Optionally, use keystrokes to find specific types of resource: - # Search for issues, pull requests, discussions, and projects - ! Search for projects - @ Search for users, organizations, and repositories - - / Search for files within a repository scope + - / Search for files within a repository scope ![Command palette search files](/assets/images/help/command-palette/command-palette-search-files.png) @@ -87,18 +85,18 @@ You can use the command palette to search for anything on {% data variables.prod {% endtip %} -5. Use the arrow keys to highlight the search result you want and use Enter to jump to your chosen location. Alternatively, use CtrlEnter (Windows and Linux) or Enter (Mac) to open the location in a new browser tab. +5. Use the arrow keys to highlight the search result you want and use Enter to jump to your chosen location. Alternatively, use Ctrl+Enter (Windows and Linux) or Command+Enter (Mac) to open the location in a new browser tab. ## Running commands from the {% data variables.product.prodname_command_palette %} You can use the {% data variables.product.prodname_command_palette %} to run commands. For example, you can create a new repository or issue, or change your theme. When you run a command, the location for its action is determined by either the underlying page or the scope shown in the command palette. - Pull request and issue commands always run on the underlying page. -- Higher-level commands, for example, repository commands, run in the scope shown in the command palette. +- Higher-level commands, for example, repository commands, run in the scope shown in the command palette. For a full list of supported commands, see "[{% data variables.product.prodname_command_palette %} reference](#github-command-palette-reference)." -1. Use CtrlShiftk (Windows and Linux) or Shiftk (Mac) to open the command palette in command mode. If you already have the command palette open, press > to switch to command mode. {% data variables.product.prodname_dotcom %} suggests commands based on your location. +1. Use Ctrl+Shift+K (Windows and Linux) or Command+Shift+K (Mac) to open the command palette in command mode. If you already have the command palette open, press > to switch to command mode. {% data variables.product.prodname_dotcom %} suggests commands based on your location. ![Command palette command mode](/assets/images/help/command-palette/command-palette-command-mode.png) @@ -112,8 +110,8 @@ For a full list of supported commands, see "[{% data variables.product.prodname_ When the command palette is active, you can use one of the following keyboard shortcuts to close the command palette: -- Search and navigation mode: esc or Ctrlk (Windows and Linux) k (Mac) -- Command mode: esc or CtrlShiftk (Windows and Linux) Shiftk (Mac) +- Search and navigation mode: Esc or Ctrl+K (Windows and Linux) Command+K (Mac) +- Command mode: Esc or Ctrl+Shift+K (Windows and Linux) Command+Shift+K (Mac) ## {% data variables.product.prodname_command_palette %} reference @@ -128,9 +126,9 @@ These keystrokes are available when the command palette is in navigation and sea |@| Search for users, organizations, and repositories. For more information, see "[Searching with the {% data variables.product.prodname_command_palette %}](#searching-with-the-github-command-palette)."| |/| Search for files within a repository scope or repositories within an organization scope. For more information, see "[Searching with the {% data variables.product.prodname_command_palette %}](#searching-with-the-github-command-palette)." | |!| Search just for projects. For more information, see "[Searching with the {% data variables.product.prodname_command_palette %}](#searching-with-the-github-command-palette)."| -|Ctrlc or c| Copy the search or navigation URL for the highlighted result to the clipboard.| +|Ctrl+C or Command+C| Copy the search or navigation URL for the highlighted result to the clipboard.| |Enter| Jump to the highlighted result or run the highlighted command.| -|CtrlEnter or Enter| Open the highlighted search or navigation result in a new brower tab.| +|Ctrl+Enter or Command+Enter| Open the highlighted search or navigation result in a new brower tab.| |?| Display help within the command palette.| ### Global commands @@ -198,7 +196,7 @@ These commands are available only when you open the command palette from an issu |`Convert issue to discussion...`|Convert the current issue into a discussion. For more information, see "[Moderating discussions](/discussions/managing-discussions-for-your-community/moderating-discussions#converting-an-issue-to-a-discussion)." |`Delete issue...`|Delete the current issue. For more information, see "[Deleting an issue](/issues/tracking-your-work-with-issues/deleting-an-issue)."| |`Edit issue body`|Open the main body of the issue ready for editing. -|`Edit issue title`|Open the title of the issue ready for editing. +|`Edit issue title`|Open the title of the issue ready for editing. |`Lock issue`|Limit new comments to users with write access to the repository. For more information, see "[Locking conversations](/communities/moderating-comments-and-conversations/locking-conversations)." |`Pin`/`unpin issue`|Change whether or not the issue is shown in the pinned issues section for the repository. For more information, see "[Pinning an issue to your repository](/issues/tracking-your-work-with-issues/pinning-an-issue-to-your-repository)."| |`Subscribe`/`unscubscribe`|Opt in or out of notifications for changes to this issue. For more information, see "[About notifications](/account-and-profile/managing-subscriptions-and-notifications-on-github/setting-up-notifications/about-notifications)." diff --git a/translations/pt-BR/content/get-started/using-github/github-mobile.md b/translations/pt-BR/content/get-started/using-github/github-mobile.md index 76e50e0dd8..2625518bd9 100644 --- a/translations/pt-BR/content/get-started/using-github/github-mobile.md +++ b/translations/pt-BR/content/get-started/using-github/github-mobile.md @@ -34,7 +34,7 @@ To install {% data variables.product.prodname_mobile %} for Android or iOS, see ## Managing accounts -You can be simultaneously signed into mobile with one user account on {% data variables.product.prodname_dotcom_the_website %} and one user account on {% data variables.product.prodname_ghe_server %}. +You can be simultaneously signed into mobile with one user account on {% data variables.product.prodname_dotcom_the_website %} and one user account on {% data variables.product.prodname_ghe_server %}. For more information about our different products, see "[{% data variables.product.company_short %}'s products](/get-started/learning-about-github/githubs-products)." {% data reusables.mobile.push-notifications-on-ghes %} @@ -50,11 +50,11 @@ During the beta for {% data variables.product.prodname_mobile %} with {% data va ### Adding, switching, or signing out of accounts -You can sign into mobile with a user account on {% data variables.product.product_location %}. At the bottom of the app, long-press {% octicon "person" aria-label="The person icon" %} **Profile**, then tap {% octicon "plus" aria-label="The plus icon" %} **Add Enterprise Account**. Follow the prompts to sign in. +You can sign into mobile with a user account on {% data variables.product.prodname_ghe_server %}. At the bottom of the app, long-press {% octicon "person" aria-label="The person icon" %} **Profile**, then tap {% octicon "plus" aria-label="The plus icon" %} **Add Enterprise Account**. Follow the prompts to sign in. -After you sign into mobile with a user account on {% data variables.product.product_location %}, you can switch between the account and your account on {% data variables.product.prodname_dotcom_the_website %}. At the bottom of the app, long-press {% octicon "person" aria-label="The person icon" %} **Profile**, then tap the account you want to switch to. +After you sign into mobile with a user account on {% data variables.product.prodname_ghe_server %}, you can switch between the account and your account on {% data variables.product.prodname_dotcom_the_website %}. At the bottom of the app, long-press {% octicon "person" aria-label="The person icon" %} **Profile**, then tap the account you want to switch to. -If you no longer need to access data for your user account on {% data variables.product.product_location %} from {% data variables.product.prodname_mobile %}, you can sign out of the account. At the bottom of the app, long-press {% octicon "person" aria-label="The person icon" %} **Profile**, swipe left on the account to sign out of, then tap **Sign out**. +If you no longer need to access data for your user account on {% data variables.product.prodname_ghe_server %} from {% data variables.product.prodname_mobile %}, you can sign out of the account. At the bottom of the app, long-press {% octicon "person" aria-label="The person icon" %} **Profile**, swipe left on the account to sign out of, then tap **Sign out**. ## Supported languages for {% data variables.product.prodname_mobile %} diff --git a/translations/pt-BR/content/organizations/collaborating-with-groups-in-organizations/about-organizations.md b/translations/pt-BR/content/organizations/collaborating-with-groups-in-organizations/about-organizations.md index d5073f08ca..f898eb21a5 100644 --- a/translations/pt-BR/content/organizations/collaborating-with-groups-in-organizations/about-organizations.md +++ b/translations/pt-BR/content/organizations/collaborating-with-groups-in-organizations/about-organizations.md @@ -20,17 +20,21 @@ topics: {% data reusables.organizations.org-ownership-recommendation %} For more information, see "[Maintaining ownership continuity for your organization](/organizations/managing-peoples-access-to-your-organization-with-roles/maintaining-ownership-continuity-for-your-organization)." -{% ifversion fpt or ghec %} ## Organizations and enterprise accounts -Enterprise accounts are a feature of {% data variables.product.prodname_ghe_cloud %} that allow owners to centrally manage policy and billing for multiple organizations. +{% ifversion fpt %} +Enterprise accounts are a feature of {% data variables.product.prodname_ghe_cloud %} that allow owners to centrally manage policy and billing for multiple organizations. For more information, see [the {% data variables.product.prodname_ghe_cloud %} documentation](/enterprise-cloud@latest/organizations/collaborating-with-groups-in-organizations/about-organizations). +{% else %} +{% ifversion ghec %}For organizations that belong to an enterprise account, billing is managed at the enterprise account level, and billing settings are not available at the organization level.{% endif %} Enterprise owners can set policy for all organizations in the enterprise account or allow organization owners to set the policy at the organization level. Organization owners cannot change settings enforced for your organization at the enterprise account level. If you have questions about a policy or setting for your organization, contact the owner of your enterprise account. -For organizations that belong to an enterprise account, billing is managed at the enterprise account level, and billing settings are not available at the organization level. Enterprise owners can set policy for all organizations in the enterprise account or allow organization owners to set the policy at the organization level. Organization owners cannot change settings enforced for your organization at the enterprise account level. If you have questions about a policy or setting for your organization, contact the owner of your enterprise account. - -{% data reusables.enterprise.create-an-enterprise-account %} For more information, see "[Creating an enterprise account]({% ifversion fpt %}/enterprise-cloud@latest{% endif %}/admin/overview/creating-an-enterprise-account){% ifversion ghec %}."{% else %}" in the {% data variables.product.prodname_ghe_cloud %} documentation.{% endif %} +{% ifversion ghec %} +{% data reusables.enterprise.create-an-enterprise-account %} For more information, see "[Creating an enterprise account](/admin/overview/creating-an-enterprise-account)." {% data reusables.enterprise-accounts.invite-organization %} +{% endif %} +{% endif %} +{% ifversion fpt or ghec %} ## Terms of service and data protection for organizations An entity, such as a company, non-profit, or group, can agree to the Standard Terms of Service or the Corporate Terms of Service for their organization. For more information, see "[Upgrading to the Corporate Terms of Service](/articles/upgrading-to-the-corporate-terms-of-service)." diff --git a/translations/pt-BR/content/organizations/managing-membership-in-your-organization/exporting-member-information-for-your-organization.md b/translations/pt-BR/content/organizations/managing-membership-in-your-organization/exporting-member-information-for-your-organization.md index 6df920f16c..b364a65fcc 100644 --- a/translations/pt-BR/content/organizations/managing-membership-in-your-organization/exporting-member-information-for-your-organization.md +++ b/translations/pt-BR/content/organizations/managing-membership-in-your-organization/exporting-member-information-for-your-organization.md @@ -13,7 +13,14 @@ topics: shortTitle: Export member information --- -You can export information about members in your organization. This is useful if you want to perform an audit of users within the organization. The exported information includes username and display name details, and whether the membership is public or private. +You can export information about members in your organization. This is useful if you want to perform an audit of users within the organization. + +The exported information includes: +- Username and display name details +- Whether the user has two-factor authentication enabled +- Whether the membership is public or private +- Whether the user is an organization owner or member +- Datetime of the user's last activity (for a full list of relevant activity, see "[Managing dormant users](/admin/user-management/managing-users-in-your-enterprise/managing-dormant-users)") You can get member information directly from the {% data variables.product.product_name %} user interface, or using APIs. This article explains how to obtain member information from within {% data variables.product.product_name %}. diff --git a/translations/pt-BR/content/organizations/managing-organization-settings/changing-the-visibility-of-your-organizations-dependency-insights.md b/translations/pt-BR/content/organizations/managing-organization-settings/changing-the-visibility-of-your-organizations-dependency-insights.md index 2465aeb1de..0374fccbee 100644 --- a/translations/pt-BR/content/organizations/managing-organization-settings/changing-the-visibility-of-your-organizations-dependency-insights.md +++ b/translations/pt-BR/content/organizations/managing-organization-settings/changing-the-visibility-of-your-organizations-dependency-insights.md @@ -16,7 +16,9 @@ shortTitle: Change insight visibility Organization owners can set limitations for viewing organization dependency insights. All members of an organization can view organization dependency insights by default. -Enterprise owners can set limitations for viewing organization dependency insights on all organizations in your enterprise account. For more information, see "[Enforcing policies for dependency insights in your enterprise](/enterprise-cloud@latest/admin/policies/enforcing-policies-for-your-enterprise/enforcing-policies-for-dependency-insights-in-your-enterprise)." +{% ifversion ghec %} +Enterprise owners can set limitations for viewing organization dependency insights on all organizations in your enterprise account. For more information, see "[Enforcing policies for dependency insights in your enterprise](/admin/policies/enforcing-policies-for-your-enterprise/enforcing-policies-for-dependency-insights-in-your-enterprise)." +{% endif %} {% data reusables.profile.access_org %} {% data reusables.profile.org_settings %} diff --git a/translations/pt-BR/content/organizations/managing-organization-settings/transferring-organization-ownership.md b/translations/pt-BR/content/organizations/managing-organization-settings/transferring-organization-ownership.md index da79cb679b..1f633c3f47 100644 --- a/translations/pt-BR/content/organizations/managing-organization-settings/transferring-organization-ownership.md +++ b/translations/pt-BR/content/organizations/managing-organization-settings/transferring-organization-ownership.md @@ -15,7 +15,7 @@ topics: - Teams shortTitle: Transfer ownership --- -{% ifversion fpt or ghec %} +{% ifversion ghec %} {% note %} **Note:** {% data reusables.enterprise-accounts.invite-organization %} diff --git a/translations/pt-BR/content/organizations/managing-peoples-access-to-your-organization-with-roles/adding-a-billing-manager-to-your-organization.md b/translations/pt-BR/content/organizations/managing-peoples-access-to-your-organization-with-roles/adding-a-billing-manager-to-your-organization.md index 098f9e0d7c..07439a142e 100644 --- a/translations/pt-BR/content/organizations/managing-peoples-access-to-your-organization-with-roles/adding-a-billing-manager-to-your-organization.md +++ b/translations/pt-BR/content/organizations/managing-peoples-access-to-your-organization-with-roles/adding-a-billing-manager-to-your-organization.md @@ -1,6 +1,6 @@ --- -title: Adicionar um gerente de cobrança à sua organização -intro: 'Um *gerente de cobrança* é um usuário que gerencia as configurações de cobrança para sua organização, como atualizar informações de pagamento. Essa será uma excelente opção se integrantes regulares da sua organização normalmente não tiverem acesso aos recursos de cobrança.' +title: Adding a billing manager to your organization +intro: 'A *billing manager* is a user who manages the billing settings for your organization, such as updating payment information. This is a great option if regular members of your organization don''t typically have access to billing resources.' redirect_from: - /articles/adding-a-billing-manager-to-your-organization - /github/setting-up-and-managing-organizations-and-teams/adding-a-billing-manager-to-your-organization @@ -11,55 +11,57 @@ topics: - Organizations - Teams - Billing -shortTitle: Adicionar um gerente de cobrança +shortTitle: Add a billing manager --- -Os integrantes da equipe Proprietários da organização podem conceder permissões de *gerente de cobrança* para as pessoas. Depois que uma pessoa aceita o convite deles para se tornar um gerente de cobrança da sua organização, ela poderá convidar mais pessoas para serem gerentes de cobrança. +Members of your organization's Owners team can give *billing manager* permissions to people. Once a person accepts their invitation to become a billing manager for your organization, they can invite additional people to be billing managers. {% note %} -**Observação:** Os gerentes de cobrança não usam licenças pagas na assinatura da sua organização. +**Note:** Billing managers do not use paid licenses in your organization's subscription. {% endnote %} -## Permissões para gerentes de cobrança +## Permissions for billing managers -Os gerentes de cobrança podem: +Billing managers can: -- Atualizar ou fazer downgrade da conta -- Adicionar, atualizar ou remover formas de pagamento -- Exibir o histórico de pagamentos -- Baixar recibos -- Exibir, convidar e remover gerentes de cobrança -- Iniciar, modificar ou cancelar patrocínios +- Upgrade or downgrade the account +- Add, update, or remove payment methods +- View payment history +- Download receipts +- View, invite, and remove billing managers +- Start, modify, or cancel sponsorships -Além disso, todos os gerentes de cobrança receberão recibos de cobrança por e-mail na data de cobrança da organização. +In addition, all billing managers will receive billing receipts by email on the organization's billing date. -Os gerentes de cobrança **não** podem: +Billing managers **are not** able to: -- Criar ou acessar repositórios nas suas organizações -- Ver integrantes privados da sua organização -- Ser vistos na lista de integrantes da organização -- Comprar, editar ou cancelar assinaturas para aplicativos do {% data variables.product.prodname_marketplace %} +- Create or access repositories in your organizations +- See private members of your organization +- Be seen in the list of organization members +- Purchase, edit, or cancel subscriptions for {% data variables.product.prodname_marketplace %} apps {% tip %} -**Dica:** se sua organização [exigir que integrantes, gerentes de cobrança e colaboradores externos usem a autenticação de dois fatores](/articles/requiring-two-factor-authentication-in-your-organization), o usuário deverá habilitar a autenticação de dois fatores antes de aceitar o convite para se tornar um gerente de cobrança da organização. +**Tip:** If your organization [requires members, billing managers, and outside collaborators to use two-factor authentication](/articles/requiring-two-factor-authentication-in-your-organization), the user must enable two-factor authentication before they can accept your invitation to become a billing manager for the organization. {% endtip %} -## Convidar um gerente de cobrança +## Inviting a billing manager {% ifversion ghec %} {% note %} -**Observação:** Se sua organização for gerenciada usando [Contas Corporativas](/github/setting-up-and-managing-your-enterprise/managing-your-enterprise-account/about-enterprise-accounts) você não poderá convidar os Gerentes de Cobrança no nível da organização. +**Note:** If your organization is owned by an enterprise account, you cannot invite billing managers at the organization level. For more information, see "[About enterprise accounts](/admin/overview/about-enterprise-accounts)." {% endnote %} {% endif %} -A pessoa convidada receberá um e-mail de convite solicitando que ela se torne um gerente de cobrança da sua organização. Assim que a pessoa convidada clicar no link de aceitação no e-mail de convite, ela será adicionada automaticamente à organização como um gerente de cobrança. Se ela ainda não tiver uma conta do GitHub, ela será direcionada para se inscrever em uma, e será adicionada automaticamente à organização como um gerente de cobrança depois que ela criar uma conta. +The invited person will receive an invitation email asking them to become a billing manager for your organization. Once the invited person clicks the accept link in their invitation email, they will automatically be added to the organization as a billing manager. If they don't already have a GitHub account, they will be directed to sign up for one, and they will be automatically added to the organization as a billing manager after they create an account. {% data reusables.organizations.billing-settings %} -1. Em "Gerenciamento de cobrança", ao lado de "Gerentes de cobrança", clique em **Adicionar**. ![Convidar gerente de cobrança](/assets/images/help/billing/settings_billing_managers_list.png) -6. Digite o nome de usuário ou endereço de e-mail da pessoa que deseja adicionar e clique em **Send invitation** (Enviar convite). ![Página para convidar gerente de cobrança](/assets/images/help/billing/billing_manager_invite.png) +1. Under "Billing management", next to "Billing managers", click **Add**. + ![Invite billing manager](/assets/images/help/billing/settings_billing_managers_list.png) +6. Type the username or email address of the person you want to add and click **Send invitation**. + ![Invite billing manager page](/assets/images/help/billing/billing_manager_invite.png) diff --git a/translations/pt-BR/content/pull-requests/collaborating-with-pull-requests/proposing-changes-to-your-work-with-pull-requests/about-pull-requests.md b/translations/pt-BR/content/pull-requests/collaborating-with-pull-requests/proposing-changes-to-your-work-with-pull-requests/about-pull-requests.md index a488f3afd5..1408b3e897 100644 --- a/translations/pt-BR/content/pull-requests/collaborating-with-pull-requests/proposing-changes-to-your-work-with-pull-requests/about-pull-requests.md +++ b/translations/pt-BR/content/pull-requests/collaborating-with-pull-requests/proposing-changes-to-your-work-with-pull-requests/about-pull-requests.md @@ -46,7 +46,7 @@ After you're happy with the proposed changes, you can merge the pull request. If {% tip %} **Tips:** -- To toggle between collapsing and expanding all outdated review comments in a pull request, hold down optionAltAlt and click **Show outdated** or **Hide outdated**. For more shortcuts, see "[Keyboard shortcuts](/articles/keyboard-shortcuts)." +- To toggle between collapsing and expanding all outdated review comments in a pull request, hold down OptionAltAlt and click **Show outdated** or **Hide outdated**. For more shortcuts, see "[Keyboard shortcuts](/articles/keyboard-shortcuts)." - You can squash commits when merging a pull request to gain a more streamlined view of changes. For more information, see "[About pull request merges](/pull-requests/collaborating-with-pull-requests/incorporating-changes-from-a-pull-request/about-pull-request-merges)." {% endtip %} diff --git a/translations/pt-BR/content/pull-requests/collaborating-with-pull-requests/working-with-forks/configuring-a-remote-for-a-fork.md b/translations/pt-BR/content/pull-requests/collaborating-with-pull-requests/working-with-forks/configuring-a-remote-for-a-fork.md index 6df2bd10ed..38e4a7e7d4 100644 --- a/translations/pt-BR/content/pull-requests/collaborating-with-pull-requests/working-with-forks/configuring-a-remote-for-a-fork.md +++ b/translations/pt-BR/content/pull-requests/collaborating-with-pull-requests/working-with-forks/configuring-a-remote-for-a-fork.md @@ -1,6 +1,6 @@ --- -title: Configurar remote para bifurcação -intro: 'You must configure a remote that points to the upstream repository in Git to [sync changes you make in a fork](/pull-requests/collaborating-with-pull-requests/working-with-forks/syncing-a-fork) with the original repository. Isso também permite sincronizar alterações feitas no repositório original com a bifurcação.' +title: Configuring a remote for a fork +intro: 'You must configure a remote that points to the upstream repository in Git to [sync changes you make in a fork](/pull-requests/collaborating-with-pull-requests/working-with-forks/syncing-a-fork) with the original repository. This also allows you to sync changes made in the original repository with the fork.' redirect_from: - /github/collaborating-with-issues-and-pull-requests/working-with-forks/configuring-a-remote-for-a-fork - /articles/configuring-a-remote-for-a-fork @@ -13,21 +13,20 @@ versions: ghec: '*' topics: - Pull requests -shortTitle: Configure um controle remoto +shortTitle: Configure a remote --- - {% data reusables.command_line.open_the_multi_os_terminal %} -2. Liste o repositório remote configurado no momento para sua bifurcação. +2. List the current configured remote repository for your fork. ```shell $ git remote -v > origin https://{% data variables.command_line.codeblock %}/YOUR_USERNAME/YOUR_FORK.git (fetch) > origin https://{% data variables.command_line.codeblock %}/YOUR_USERNAME/YOUR_FORK.git (push) ``` -3. Especifique um novo repositório *upstream* remote que será sincronizado com a bifurcação. +3. Specify a new remote *upstream* repository that will be synced with the fork. ```shell $ git remote add upstream https://{% data variables.command_line.codeblock %}/ORIGINAL_OWNER/ORIGINAL_REPOSITORY.git ``` -4. Verifique o novo repositório upstream especificado para a bifurcação. +4. Verify the new upstream repository you've specified for your fork. ```shell $ git remote -v > origin https://{% data variables.command_line.codeblock %}/YOUR_USERNAME/YOUR_FORK.git (fetch) diff --git a/translations/pt-BR/content/pull-requests/index.md b/translations/pt-BR/content/pull-requests/index.md index 2e442270b6..e9f3962102 100644 --- a/translations/pt-BR/content/pull-requests/index.md +++ b/translations/pt-BR/content/pull-requests/index.md @@ -1,6 +1,6 @@ --- title: Pull requests -intro: Learn how to commit changes to a project and use pull requests to collaborate with others. +intro: 'Learn how to commit changes to a project and use pull requests to collaborate with others.' shortTitle: Pull requests versions: fpt: '*' @@ -13,4 +13,3 @@ children: - /committing-changes-to-your-project - /collaborating-with-pull-requests --- - diff --git a/translations/pt-BR/content/repositories/archiving-a-github-repository/backing-up-a-repository.md b/translations/pt-BR/content/repositories/archiving-a-github-repository/backing-up-a-repository.md index 287796f7e5..433e593928 100644 --- a/translations/pt-BR/content/repositories/archiving-a-github-repository/backing-up-a-repository.md +++ b/translations/pt-BR/content/repositories/archiving-a-github-repository/backing-up-a-repository.md @@ -1,5 +1,5 @@ --- -title: Fazer backup de um repositório +title: Backing up a repository intro: 'You can use{% ifversion ghes or ghae %} Git and{% endif %} the API {% ifversion fpt or ghec %}or a third-party tool {% endif %}to back up your repository.' redirect_from: - /articles/backing-up-a-repository @@ -13,34 +13,33 @@ versions: topics: - Repositories --- - {% ifversion fpt or ghec %} -Para baixar um arquivo do seu repositório, você pode usar a API para usuário ou migrações da organização. Para obter mais informações, consulte "[Migrações](/rest/reference/migrations)". +To download an archive of your repository, you can use the API for user or organization migrations. For more information, see "[Migrations](/rest/reference/migrations)." {% else %} -Você pode baixar e fazer backup dos repositórios manualmente: +You can download and back up your repositories manually: -- Para baixar os dados Git de um repositório no computador local, é preciso clonar o repositório. Para obter mais informações, consulte "[Clonar um repositório](/articles/cloning-a-repository)". -- Também é possível baixar o wiki do repositório. Para obter mais informações, consulte "[Adicionar ou editar páginas wiki](/communities/documenting-your-project-with-wikis/adding-or-editing-wiki-pages)". +- To download a repository's Git data to your local machine, you'll need to clone the repository. For more information, see "[Cloning a repository](/articles/cloning-a-repository)." +- You can also download your repository's wiki. For more information, see "[Adding or editing wiki pages](/communities/documenting-your-project-with-wikis/adding-or-editing-wiki-pages)." -Quando você clona um repositório ou wiki, somente os dados Git, como arquivos e histórico de commits do projeto, são baixados. You can use our API to export other elements of your repository on {% ifversion ghae %}{% data variables.product.product_name %}{% else %}{% data variables.product.product_location %}{% endif %} to your local machine: +When you clone a repository or wiki, only Git data, such as project files and commit history, is downloaded. You can use our API to export other elements of your repository on {% ifversion ghae %}{% data variables.product.product_name %}{% else %}{% data variables.product.product_location %}{% endif %} to your local machine: -- [Problemas](/rest/reference/issues#list-issues-for-a-repository) +- [Issues](/rest/reference/issues#list-issues-for-a-repository) - [Pull requests](/rest/reference/pulls#list-pull-requests) -- [Bifurcações](/rest/reference/repos#list-forks) -- [Comentários](/rest/reference/issues#list-issue-comments-for-a-repository) -- [Marcos](/rest/reference/issues#list-milestones) -- [Etiquetas](/rest/reference/issues#list-labels-for-a-repository) -- [Inspetores](/rest/reference/activity#list-watchers) -- [observador](/rest/reference/activity#list-stargazers) -- [Projetos](/rest/reference/projects#list-repository-projects) +- [Forks](/rest/reference/repos#list-forks) +- [Comments](/rest/reference/issues#list-issue-comments-for-a-repository) +- [Milestones](/rest/reference/issues#list-milestones) +- [Labels](/rest/reference/issues#list-labels-for-a-repository) +- [Watchers](/rest/reference/activity#list-watchers) +- [Stargazers](/rest/reference/activity#list-stargazers) +- [Projects](/rest/reference/projects#list-repository-projects) {% endif %} -Depois que você tiver {% ifversion ghes or ghae %}uma versão local de todo o conteúdo que você deseja fazer backup, você poderá criar um arquivo zip e {% else %}baixado do seu arquivo, você pode {% endif %}copiá-lo para um disco rígido externo e/ou fazer o upload para um backup com base na nuvem ou serviço de armazenamento, como [Azure Blob Storage](https://docs.microsoft.com/en-us/azure/storage/blobs/storage-blobs-overview/), [Google Drive](https://www.google.com/drive/) ou [Dropbox](https://www.dropbox.com/). +Once you have {% ifversion ghes or ghae %}a local version of all the content you want to back up, you can create a zip archive and {% else %}downloaded your archive, you can {% endif %}copy it to an external hard drive and/or upload it to a cloud-based backup or storage service such as [Azure Blob Storage](https://docs.microsoft.com/en-us/azure/storage/blobs/storage-blobs-overview/), [Google Drive](https://www.google.com/drive/) or [Dropbox](https://www.dropbox.com/). {% ifversion fpt or ghec %} -## Ferramentas de backup de terceiros +## Third-party backup tools -Existem várias ferramentas de autoatendimento que automatizam backups de repositórios. Ao contrário de projetos arquivados, que arquivam _todos_ os repositórios públicos em {% data variables.product.product_name %} que não tenham optado por não participar e tornam os dados acessíveis para todos, as ferramentas de backup irão fazer o download dos dados de repositórios _específicos_ e organizá-los em um novo branch ou diretório. Para obter mais informações sobre projetos de arquivamento, consulte "[Sobre arquivamento de conteúdo e dados no {% data variables.product.prodname_dotcom %}](/github/creating-cloning-and-archiving-repositories/about-archiving-content-and-data-on-github#about-the-github-archive-program)". Para obter mais informações sobre ferramentas de backup self-service, consulte a categoria [Utilitários de backup em {% data variables.product.prodname_marketplace %}](https://github.com/marketplace?category=backup-utilities). +A number of self-service tools exist that automate backups of repositories. Unlike archival projects, which archive _all_ public repositories on {% data variables.product.product_name %} that have not opted out and make the data accessible to anyone, backup tools will download data from _specific_ repositories and organize it within a new branch or directory. For more information about archival projects, see "[About archiving content and data on {% data variables.product.prodname_dotcom %}](/github/creating-cloning-and-archiving-repositories/about-archiving-content-and-data-on-github#about-the-github-archive-program)." For more information about self-service backup tools, see the [Backup Utilities category on {% data variables.product.prodname_marketplace %}](https://github.com/marketplace?category=backup-utilities). {% endif %} diff --git a/translations/pt-BR/content/repositories/archiving-a-github-repository/referencing-and-citing-content.md b/translations/pt-BR/content/repositories/archiving-a-github-repository/referencing-and-citing-content.md index f5d40a231b..2e52835c43 100644 --- a/translations/pt-BR/content/repositories/archiving-a-github-repository/referencing-and-citing-content.md +++ b/translations/pt-BR/content/repositories/archiving-a-github-repository/referencing-and-citing-content.md @@ -1,6 +1,6 @@ --- -title: Referenciar e citar conteúdo -intro: Você pode usar ferramentas de terceiros para citar e referenciar conteúdo no GitHub. +title: Referencing and citing content +intro: You can use third-party tools to cite and reference content on GitHub. redirect_from: - /articles/referencing-and-citing-content - /github/creating-cloning-and-archiving-repositories/referencing-and-citing-content @@ -10,31 +10,30 @@ versions: ghec: '*' topics: - Repositories -shortTitle: Referência & citar conteúdo +shortTitle: Reference & cite content --- +## Issuing a persistent identifier for your repository with Zenodo -## Emitir um identificador persistente para o repositório com o Zenodo - -Para facilitar o referenciamento dos seus repositórios na literatura acadêmica, você pode criar identificadores persistentes, também conhecidos como identificadores de objetos digitais (DOIs). You can use the data archiving tool [Zenodo](https://zenodo.org/about) to archive a repository on {% ifversion ghae %}{% data variables.product.product_name %}{% else %}{% data variables.product.product_location %}{% endif %} and issue a DOI for the archive. +To make your repositories easier to reference in academic literature, you can create persistent identifiers, also known as Digital Object Identifiers (DOIs). You can use the data archiving tool [Zenodo](https://zenodo.org/about) to archive a repository on {% ifversion ghae %}{% data variables.product.product_name %}{% else %}{% data variables.product.product_location %}{% endif %} and issue a DOI for the archive. {% tip %} -**Dicas:** -- O Zenodo consegue acessar apenas repositórios públicos, então verifique se o repositório que você deseja arquivar está configurado como [público](/articles/making-a-private-repository-public). -- Se você quiser arquivar um repositório que pertence a uma organização, o proprietário da organização talvez precise [aprovar o acesso](/articles/approving-oauth-apps-for-your-organization) ao aplicativo Zenodo. -- Lembre-se de incluir uma [licença](/articles/open-source-licensing) no repositório para que os leitores saibam como podem reutilizar seu trabalho. +**Tips:** +- Zenodo can only access public repositories, so make sure the repository you want to archive is [public](/articles/making-a-private-repository-public). +- If you want to archive a repository that belongs to an organization, the organization owner may need to [approve access](/articles/approving-oauth-apps-for-your-organization) for the Zenodo application. +- Make sure to include a [license](/articles/open-source-licensing) in your repository so readers know how they can reuse your work. {% endtip %} -1. Acesse o [Zenodo](http://zenodo.org/). -2. No canto superior esquerdo da tela, clique em **Log in** (Fazer login). ![Botão de login do Zenodo](/assets/images/help/repository/zenodo_login.png) -3. Clique em **Log in with GitHub** (Fazer login com o GitHub). ![Login no Zenodo com o GitHub](/assets/images/help/repository/zenodo_login_with_github.png) -4. Leia as informações sobre permissões de acesso e clique em **Authorize application** (Autorizar aplicativo). ![Autorizar o Zenodo](/assets/images/help/repository/zenodo_authorize.png) -5. Acesse a página do [GitHub no Zenodo](https://zenodo.org/account/settings/github/). ![Página do GitHub no Zenodo](/assets/images/help/repository/zenodo_github_page.png) -6. À direita do nome do repositório que você deseja arquivar, altere o botão de **Off** para **On** para habilitar o repositório para arquivamento. ![Habilitar arquivamento do Zenodo no repositório](/assets/images/help/repository/zenodo_toggle_on.png) +1. Navigate to [Zenodo](http://zenodo.org/). +2. In the upper-left corner of the screen, click **Log in**. ![Zenodo log in button](/assets/images/help/repository/zenodo_login.png) +3. Click **Log in with GitHub**. ![Log into Zenodo with GitHub](/assets/images/help/repository/zenodo_login_with_github.png) +4. Review the information about access permissions, then click **Authorize application**. ![Authorize Zenodo](/assets/images/help/repository/zenodo_authorize.png) +5. Navigate to the [Zenodo GitHub page](https://zenodo.org/account/settings/github/). ![Zenodo GitHub page](/assets/images/help/repository/zenodo_github_page.png) +6. To the right of the name of the repository you want to archive, toggle the button from **Off** to **On** to enable it for archiving. ![Enable Zenodo archiving on repository](/assets/images/help/repository/zenodo_toggle_on.png) -O Zenodo arquiva o repositório e emite um novo DOI sempre que você cria uma nova [versão ](/articles/about-releases/) do {% data variables.product.product_name %}. Siga as etapas do artigo "[Criar versões](/articles/creating-releases/)" para criar uma versão. +Zenodo archives your repository and issues a new DOI each time you create a new {% data variables.product.product_name %} [release](/articles/about-releases/). Follow the steps at "[Creating releases](/articles/creating-releases/)" to create a new one. -## Divulgar e citar materiais de pesquisa com o Figshare +## Publicizing and citing research material with Figshare -Os integrantes de instituições acadêmicas podem usar o serviço de gerenciamento de dados [Figshare](http://figshare.com) para publicar e citar materiais de pesquisa. Para obter mais informações, consulte o [site de suporte do Figshare](https://knowledge.figshare.com/articles/item/how-to-connect-figshare-with-your-github-account). +Academics can use the data management service [Figshare](http://figshare.com) to publicize and cite research material. For more information, see [Figshare's support site](https://knowledge.figshare.com/articles/item/how-to-connect-figshare-with-your-github-account). diff --git a/translations/pt-BR/content/repositories/configuring-branches-and-merges-in-your-repository/configuring-pull-request-merges/about-merge-methods-on-github.md b/translations/pt-BR/content/repositories/configuring-branches-and-merges-in-your-repository/configuring-pull-request-merges/about-merge-methods-on-github.md index 7f5e2476d2..ce2d25bd63 100644 --- a/translations/pt-BR/content/repositories/configuring-branches-and-merges-in-your-repository/configuring-pull-request-merges/about-merge-methods-on-github.md +++ b/translations/pt-BR/content/repositories/configuring-branches-and-merges-in-your-repository/configuring-pull-request-merges/about-merge-methods-on-github.md @@ -1,6 +1,6 @@ --- -title: Sobre métodos de merge no GitHub -intro: 'Você pode permitir que contribuidores com acesso push ao seu repositório façam merge das respectivas pull requests no {% data variables.product.product_location %} com diferentes opções de merge ou apliquem um método de merge específico para todas as pull requests do seu repositório.' +title: About merge methods on GitHub +intro: 'You can allow contributors with push access to your repository to merge their pull requests on {% data variables.product.product_location %} with different merge options or enforce a specific merge method for all of your repository''s pull requests.' redirect_from: - /articles/about-merge-methods-on-github - /github/administering-a-repository/about-merge-methods-on-github @@ -12,10 +12,9 @@ versions: ghec: '*' topics: - Repositories -shortTitle: Sobre métodos de merge +shortTitle: About merge methods --- - -{% data reusables.pull_requests.configure_pull_request_merges_intro %} É possível aplicar um tipo de método de merge, como combinação por squash ou rebase de commit, apena habilitando o método desejado para o repositório. +{% data reusables.pull_requests.configure_pull_request_merges_intro %} You can enforce one type of merge method, such as commit squashing or rebasing, by only enabling the desired method for your repository. {% ifversion fpt or ghec %} {% note %} @@ -28,24 +27,24 @@ shortTitle: Sobre métodos de merge {% data reusables.pull_requests.default_merge_option %} {% ifversion fpt or ghae or ghes or ghec %} -O método de merge padrão cria um commit de mesclagem. Você pode impedir que uma pessoa faça pushing com commits por merge em um branch protegido aplicando um histórico de commit linear. Para obter mais informações, consulte "[Sobre branches protegidos](/github/administering-a-repository/about-protected-branches#require-linear-history)."{% endif %} +The default merge method creates a merge commit. You can prevent anyone from pushing merge commits to a protected branch by enforcing a linear commit history. For more information, see "[About protected branches](/github/administering-a-repository/about-protected-branches#require-linear-history)."{% endif %} -## Combinar por squash os commits de merge +## Squashing your merge commits {% data reusables.pull_requests.squash_and_merge_summary %} -Antes de habilitar a combinação de commits por squash, considere estas desvantagens: -- Você perde informações sobre quando alterações específicas foram originalmente feitas e quem criou os commits combinados por squash. -- Se você continuar trabalhando no branch principal de um pull request após a combinação por squash e o merge, e, em seguida, criar um novo pull request entre os mesmos branches, commits que você já tenha combinado por squash e feito merge serão listados no novo pull request. Você também pode ter conflitos que tenha que resolver repetidamente em cada pull request consecutivo. Para obter mais informações, consulte "[Sobre merges da pull request](/github/collaborating-with-issues-and-pull-requests/about-pull-request-merges#squashing-and-merging-a-long-running-branch)". -- Alguns comandos Git que usam a ID "SHA" ou "hash" podem ser mais difíceis de usar, pois a ID SHA para os commits originais é perdida. Por exemplo, usar [`git rerere`](https://git-scm.com/docs/git-rerere) pode não ser tão eficaz. +Before enabling squashing commits, consider these disadvantages: +- You lose information about when specific changes were originally made and who authored the squashed commits. +- If you continue working on the head branch of a pull request after squashing and merging, and then create a new pull request between the same branches, commits that you previously squashed and merged will be listed in the new pull request. You may also have conflicts that you have to repeatedly resolve in each successive pull request. For more information, see "[About pull request merges](/github/collaborating-with-issues-and-pull-requests/about-pull-request-merges#squashing-and-merging-a-long-running-branch)." +- Some Git commands that use the "SHA" or "hash" ID may be harder to use since the SHA ID for the original commits is lost. For example, using [`git rerere`](https://git-scm.com/docs/git-rerere) may not be as effective. -Para obter mais informações, consulte "[Configurar combinação de commits por squash para pull requests](/articles/configuring-commit-squashing-for-pull-requests)". +For more information, see "[Configuring commit squashing for pull requests](/articles/configuring-commit-squashing-for-pull-requests)." -## Fazer rebase e merge de seus commits +## Rebasing and merging your commits {% data reusables.pull_requests.rebase_and_merge_summary %} -Antes de habilitar o rebase de commit, leve em consideração estas desvantagens: -- Os contribuidores do repositório podem ter que fazer rebase na linha de comando, resolver conflitos e forçar push de suas alterações no branch de tópico da pull request (ou branch de head remoto) para que possam usar a opção **rebase and merge** (fazer rebase e merge) no {% data variables.product.product_location %}. O push forçado deve ser feito com cuidado para que os contribuidores não substituam o trabalho que outras pessoas usaram como base para o respectivo trabalho. Para saber mais sobre quando a opção **Rebase and merge** (Fazer rebase e merge) é desabilitada no {% data variables.product.product_location %} e sobre o fluxo de trabalho para reabilitá-la, consulte "[Sobre merges de pull request](/articles/about-pull-request-merges/#rebase-and-merge-your-pull-request-commits)". +Before enabling commit rebasing, consider these disadvantages: +- Repository contributors may have to rebase on the command line, resolve any conflicts, and force push their changes to the pull request's topic branch (or remote head branch) before they can use the **rebase and merge** option on {% data variables.product.product_location %}. Force pushing must be done carefully so contributors don't overwrite work that others have based their work on. To learn more about when the **Rebase and merge** option is disabled on {% data variables.product.product_location %} and the workflow to re-enable it, see "[About pull request merges](/articles/about-pull-request-merges/#rebase-and-merge-your-pull-request-commits)." -Para obter mais informações, consulte "[Configurar rebase de commit para pull requests](/articles/configuring-commit-rebasing-for-pull-requests)". +For more information, see "[Configuring commit rebasing for pull requests](/articles/configuring-commit-rebasing-for-pull-requests)." diff --git a/translations/pt-BR/content/repositories/creating-and-managing-repositories/restoring-a-deleted-repository.md b/translations/pt-BR/content/repositories/creating-and-managing-repositories/restoring-a-deleted-repository.md index 887b5033e6..9d3e3467d3 100644 --- a/translations/pt-BR/content/repositories/creating-and-managing-repositories/restoring-a-deleted-repository.md +++ b/translations/pt-BR/content/repositories/creating-and-managing-repositories/restoring-a-deleted-repository.md @@ -1,6 +1,6 @@ --- -title: Restaurar um repositório excluído -intro: Você pode restaurar alguns repositórios excluídos para recuperar o respectivo conteúdo. +title: Restoring a deleted repository +intro: You can restore some deleted repositories to recover their contents. redirect_from: - /articles/restoring-a-deleted-repository - /github/administering-a-repository/restoring-a-deleted-repository @@ -12,23 +12,22 @@ versions: ghae: '*' topics: - Repositories -shortTitle: Restaurar repositório excluído +shortTitle: Restore deleted repository --- - {% ifversion fpt or ghec %} -Qualquer pessoa pode restaurar repositórios excluídos que pertenciam à própria conta de usuário. Os proprietários da organização podem restaurar repositórios excluídos que pertenciam à organização. +Anyone can restore deleted repositories that were owned by their own user account. Organization owners can restore deleted repositories that were owned by the organization. -## Sobre a restauração do repositório +## About repository restoration -Um repositório excluído pode ser restaurado em até 90 dias, a menos que ele fizesse parte de uma rede de bifurcação que atualmente não está vazia. Uma rede de bifurcação consiste em um repositório principal, nas bifurcações do repositório e nas bifurcações das bifurcações do repositório. Se o repositório fazia parte de uma rede de bifurcação, ele não poderá ser restaurado, a menos que todos os outros repositórios na rede sejam excluídos ou tenham sido desanexados da rede. Para obter mais informações sobre bifurcações, consulte "[Sobre bifurcações](/pull-requests/collaborating-with-pull-requests/working-with-forks/about-forks)". +A deleted repository can be restored within 90 days, unless the repository was part of a fork network that is not currently empty. A fork network consists of a parent repository, the repository's forks, and forks of the repository's forks. If your repository was part of a fork network, it cannot be restored unless every other repository in the network is deleted or has been detached from the network. For more information about forks, see "[About forks](/pull-requests/collaborating-with-pull-requests/working-with-forks/about-forks)." -Se desejar restaurar um repositório que fazia parte de uma rede de bifurcação que atualmente não está vazia, contate o {% data variables.contact.contact_support %}. +If you want to restore a repository that was part of a fork network that is not currently empty, you can contact {% data variables.contact.contact_support %}. -Depois que um repositório é excluído, pode levar até uma hora para que ele seja disponibilizado para restauração. +It can take up to an hour after a repository is deleted before that repository is available for restoration. -Restaurar um repositório não vai restaurar anexos de versão nem permissões de equipe. Os problemas que são restaurados não serão etiquetados. +Restoring a repository will not restore release attachments or team permissions. Issues that are restored will not be labeled. -## Restaurar um repositório excluído que pertencia a uma conta de usuário +## Restoring a deleted repository that was owned by a user account {% data reusables.user_settings.access_settings %} {% data reusables.user_settings.repo-tab %} @@ -36,7 +35,7 @@ Restaurar um repositório não vai restaurar anexos de versão nem permissões d {% data reusables.user_settings.restore-repo %} {% data reusables.user_settings.restore-confirmation %} -## Restaurar um repositório excluído que pertencia a uma organização +## Restoring a deleted repository that was owned by an organization {% data reusables.profile.access_org %} @@ -45,10 +44,10 @@ Restaurar um repositório não vai restaurar anexos de versão nem permissões d {% data reusables.user_settings.restore-repo %} {% data reusables.user_settings.restore-confirmation %} -## Leia mais +## Further reading -- "[Excluir um repositório](/articles/deleting-a-repository)" +- "[Deleting a repository](/articles/deleting-a-repository)" {% else %} -Usually, deleted repositories can be restored within 90 days by a {% data variables.product.prodname_enterprise %} site administrator. Para obter mais informações, consulte "[Restaurar um repositório excluído](/admin/user-management/managing-repositories-in-your-enterprise/restoring-a-deleted-repository)". +Usually, deleted repositories can be restored within 90 days by a {% data variables.product.prodname_enterprise %} site administrator. For more information, see "[Restoring a deleted repository](/admin/user-management/managing-repositories-in-your-enterprise/restoring-a-deleted-repository)." {% endif %} diff --git a/translations/pt-BR/content/repositories/managing-your-repositorys-settings-and-features/customizing-your-repository/about-citation-files.md b/translations/pt-BR/content/repositories/managing-your-repositorys-settings-and-features/customizing-your-repository/about-citation-files.md index 860e24322d..461bb3da0c 100644 --- a/translations/pt-BR/content/repositories/managing-your-repositorys-settings-and-features/customizing-your-repository/about-citation-files.md +++ b/translations/pt-BR/content/repositories/managing-your-repositorys-settings-and-features/customizing-your-repository/about-citation-files.md @@ -1,6 +1,6 @@ --- -title: Sobre os arquivos de CITATION -intro: Você pode adicionar um arquivo de CITATION ao seu repositório para ajudar os usuários a citar corretamente o seu software. +title: About CITATION files +intro: You can add a CITATION file to your repository to help users correctly cite your software. redirect_from: - /github/creating-cloning-and-archiving-repositories/creating-a-repository-on-github/about-citation-files versions: @@ -11,12 +11,11 @@ versions: topics: - Repositories --- +## About CITATION files -## Sobre os arquivos de CITATION +You can add a `CITATION.cff` file to the root of a repository to let others know how you would like them to cite your work. The citation file format is plain text with human- and machine-readable citation information. -Você pode adicionar um arquivo de `CITATION.cff` à raiz de um repositório para que outros saibam como você gostaria que eles citassem seu trabalho. O formato do arquivo de citação é um texto simples com informações de citação legíveis por pessoas e máquinas. - -Exemplo de arquivo de `CITATION.cff`: +Example `CITATION.cff` file: ``` cff-version: 1.2.0 @@ -35,7 +34,7 @@ date-released: 2017-12-18 url: "https://github.com/github/linguist" ``` -A instrução da citação no GitHub no seu repositório irá mostrar o exemplo `CITATION.cff` nesses formatos: +The GitHub citation prompt on your repository will show the example `CITATION.cff` content in these formats: **APA** @@ -59,35 +58,35 @@ Lisa, M., & Bot, H. (2017). My Research Software (Version 2.0.4) [Computer softw ``` {% endraw %} -Observe o exemplo acima produz uma citação de
software_(ou seja, o tipo `@software` em BibTeX em vez de `@article`).

+Note the example above produces a _software_ citation (i.e., `@software` type in BibTeX rather than `@article`). -Para obter mais informações, consulte o site do [Formato do Arquivo de Citação](https://citation-file-format.github.io/). +For more information, see the [Citation File Format](https://citation-file-format.github.io/) website. -Ao adicionar um arquivo `CITATION.cff` ao branch padrão do repositório, ele será automaticamente vinculado a partir da página inicial do repositório. Isso torna fácil para outros usuários citar seu projeto de software, usando as informações que você forneceu. +When you add a `CITATION.cff` file to the default branch of your repository, it is automatically linked from the repository landing page. This makes it easy for other users to cite your software project, using the information you've provided. -![Link de citação na página inicial do repositório](/assets/images/help/repository/citation-link.png) +![Citation link on repository landing page](/assets/images/help/repository/citation-link.png) -## Citando algo diferente de software +## Citing something other than software -Se você prefere que as informações de citação de {% data variables.product.prodname_dotcom %} vinculem outro recurso, como um artigo de pesquisa, você poderá usar a substituição de `preferred-citation` no CFF pelos seguintes tipos. +If you would prefer the {% data variables.product.prodname_dotcom %} citation information to link to another resource such as a research article, then you can use the `preferred-citation` override in CFF with the following types. -| Recurso | CFF type | BibTeX type | APA annotation | -| --------------------------------- | ---------------------------------------------------------------------------------------------------- | ---------------- | ------------------- | -| Journal article/paper | `artigo` | `@article` | | -| Livro | `livro` | `@book` | | -| Booklet (bound but not published) | `pamphlet` | `@booklet` | | -| Conference article/paper | `conference-paper` | `@inproceedings` | [Conference paper] | -| Conference proceedings | `conference`, `proceedings` | `@proceedings` | | -| Data set | `data`, `database` | `@misc` | [Data set] | -| Magazine article | `magazine-article` | `@article` | | -| Manual | `manual` | `@manual` | | -| Misc/generic/other | `generic`, any other CFF type | `@misc` | | -| Newspaper article | `newspaper-article` | `@article` | | -| Software | `software`, `software-code`, `software-container`, `software-executable`, `software-virtual-machine` | `@software` | [Computer software] | -| Report/technical report | `report` | `@techreport` | | -| Unpublished | `unpublished` | `@unpublished` | | +| Resource | CFF type | BibTeX type | APA annotation | +|----------|----------|-------------|----------------| +| Journal article/paper | `article` | `@article` | | +| Book | `book` | `@book` | | +| Booklet (bound but not published) | `pamphlet` | `@booklet` | | +| Conference article/paper | `conference-paper` | `@inproceedings` | [Conference paper] | +| Conference proceedings | `conference`, `proceedings` | `@proceedings` | | +| Data set | `data`, `database` | `@misc` | [Data set] | +| Magazine article | `magazine-article` | `@article` | | +| Manual | `manual` | `@manual` | | +| Misc/generic/other | `generic`, any other CFF type | `@misc` | | +| Newspaper article | `newspaper-article` | `@article` | | +| Software | `software`, `software-code`, `software-container`, `software-executable`, `software-virtual-machine` | `@software` | [Computer software] | +| Report/technical report | `report` | `@techreport` | | +| Unpublished | `unpublished` | `@unpublished` | | -Arquivo de CITATION.cff estendido que descreve o software, mas vinculando a um artigo de pesquisa como a citação preferida: +Extended CITATION.cff file describing the software, but linking to a research article as the preferred citation: ``` cff-version: 1.2.0 @@ -124,12 +123,12 @@ preferred-citation: year: 2021 ``` -O exemplo do arquivo `CITATION.cff` acima produzirá as saídas a seguir na instrução da citação no GitHub: +The example `CITATION.cff` file above will produce the following outputs in the GitHub citation prompt: **APA** ``` -Lisa, M., & Bot, H. (2021). Meu software de pesquisa incrível. Journal Title, 1(1), 1. https://doi.org/10.0000/00000 +Lisa, M., & Bot, H. (2021). My awesome research software. Journal Title, 1(1), 1. https://doi.org/10.0000/00000 ``` **BibTeX** @@ -150,15 +149,15 @@ Lisa, M., & Bot, H. (2021). Meu software de pesquisa incrível. Journal Title, 1 ``` {% endraw %} -## Citando um conjunto de dados +## Citing a dataset If your repository contains a dataset, you can set `type: dataset` at the top level of your `CITATION.cff` file to produce a data citation string output in the {% data variables.product.prodname_dotcom %} citation prompt. -## Outros arquivos de citação +## Other citation files -O recurso de citação no GitHub também detecta um pequeno número de arquivos adicionais que são frequentemente usados pelas comunidades e projetos para descrever como gostariam que seu trabalho fosse citado. +The GitHub citation feature will also detect a small number of additional files that are often used by communities and projects to describe how they would like their work to be cited. -O GitHub irá vincular a esses arquivos na instrução _Citar este repositório_, mas não tentará analisá-los em outros formatos de citação. +GitHub will link to these files in the _Cite this repository_ prompt, but will not attempt to parse them into other citation formats. ``` # Note these are case-insensitive and must be in the root of the repository @@ -173,8 +172,8 @@ CITATIONS.md inst/CITATION ``` -## Formatos de citação +## Citation formats -Atualmente oferecemos suporte a formatos de arquivo APA e BibTex. +We currently support APA and BibTex file formats. -Você está buscando formatos de citação adicionais? O GitHub usa uma biblioteca do Ruby para analisar os arquivos `CITATION.cff`. Você pode solicitar formatos adicionais no repositório [ruby-cff](https://github.com/citation-file-format/ruby-cff) ou você mesmo pode fazer uma contribuição. +Are you looking for additional citation formats? GitHub uses a Ruby library, to parse the `CITATION.cff` files. You can request additional formats in the [ruby-cff](https://github.com/citation-file-format/ruby-cff) repository, or contribute them yourself. diff --git a/translations/pt-BR/content/rest/reference/branches.md b/translations/pt-BR/content/rest/reference/branches.md index 60a187a93b..e6f2f12982 100644 --- a/translations/pt-BR/content/rest/reference/branches.md +++ b/translations/pt-BR/content/rest/reference/branches.md @@ -12,19 +12,11 @@ topics: miniTocMaxHeadingLevel: 3 --- -## Branches {% for operation in currentRestOperations %} - {% if operation.subcategory == 'branches' %}{% include rest_operation %}{% endif %} + {% unless operation.subcategory %}{% include rest_operation %}{% endunless %} {% endfor %} -## Merging - -The Repo Merging API supports merging branches in a repository. This accomplishes -essentially the same thing as merging one branch into another in a local repository -and then pushing to {% data variables.product.product_name %}. The benefit is that the merge is done on the server side and a local repository is not needed. This makes it more appropriate for automation and other tools where maintaining local repositories would be cumbersome and inefficient. - -The authenticated user will be the author of any merges done through this endpoint. - +## Protected branches {% for operation in currentRestOperations %} - {% if operation.subcategory == 'merging' %}{% include rest_operation %}{% endif %} + {% if operation.subcategory == 'branch-protection' %}{% include rest_operation %}{% endif %} {% endfor %} \ No newline at end of file diff --git a/translations/pt-BR/content/rest/reference/collaborators.md b/translations/pt-BR/content/rest/reference/collaborators.md index c4842b7049..bec03092ee 100644 --- a/translations/pt-BR/content/rest/reference/collaborators.md +++ b/translations/pt-BR/content/rest/reference/collaborators.md @@ -12,10 +12,8 @@ topics: miniTocMaxHeadingLevel: 3 --- -## Collaborators - {% for operation in currentRestOperations %} - {% if operation.subcategory == 'collaborators' %}{% include rest_operation %}{% endif %} + {% unless operation.subcategory %}{% include rest_operation %}{% endunless %} {% endfor %} ## Invitations diff --git a/translations/pt-BR/content/rest/reference/commits.md b/translations/pt-BR/content/rest/reference/commits.md index 79591a09a6..4a017fd456 100644 --- a/translations/pt-BR/content/rest/reference/commits.md +++ b/translations/pt-BR/content/rest/reference/commits.md @@ -1,6 +1,6 @@ --- title: Commits -intro: 'The commits API allows you to retrieve information and commits, create commit comments, and create commit statuses.' +intro: 'The commits API allows you to list, view, and compare commits in a repository. You can also interact with commit comments and commit statuses.' allowTitleToDifferFromFilename: true versions: fpt: '*' @@ -12,12 +12,8 @@ topics: miniTocMaxHeadingLevel: 3 --- -## Commits - -The Repo Commits API supports listing, viewing, and comparing commits in a repository. - {% for operation in currentRestOperations %} - {% if operation.subcategory == 'commits' %}{% include rest_operation %}{% endif %} + {% unless operation.subcategory %}{% include rest_operation %}{% endunless %} {% endfor %} ## Commit comments diff --git a/translations/pt-BR/content/rest/reference/dependabot.md b/translations/pt-BR/content/rest/reference/dependabot.md new file mode 100644 index 0000000000..f60982c82b --- /dev/null +++ b/translations/pt-BR/content/rest/reference/dependabot.md @@ -0,0 +1,19 @@ +--- +title: Dependabot +intro: 'With the {% data variables.product.prodname_dependabot %} Secrets API, you can manage and control {% data variables.product.prodname_dependabot %} secrets for an organization or repository.' +versions: + fpt: '*' + ghes: '>=3.4' + ghec: '*' +topics: + - API +miniTocMaxHeadingLevel: 3 +--- + +The {% data variables.product.prodname_dependabot %} Secrets API lets you create, update, delete, and retrieve information about encrypted secrets. {% data reusables.actions.about-secrets %} For more information, see "[Managing encrypted secrets for Dependabot](/code-security/supply-chain-security/keeping-your-dependencies-updated-automatically/managing-encrypted-secrets-for-dependabot)." + +{% data reusables.actions.actions-authentication %} {% data variables.product.prodname_github_apps %} must have the `dependabot_secrets` permission to use this API. Authenticated users must have collaborator access to a repository to create, update, or read secrets. + +{% for operation in currentRestOperations %} + {% if operation.subcategory == 'secrets' %}{% include rest_operation %}{% endif %} +{% endfor %} diff --git a/translations/pt-BR/content/rest/reference/deployments.md b/translations/pt-BR/content/rest/reference/deployments.md index 1170b20485..c83f7a5ae4 100644 --- a/translations/pt-BR/content/rest/reference/deployments.md +++ b/translations/pt-BR/content/rest/reference/deployments.md @@ -12,18 +12,6 @@ topics: miniTocMaxHeadingLevel: 3 --- -## Deploy keys - -{% data reusables.repositories.deploy-keys %} - -Deploy keys can either be setup using the following API endpoints, or by using GitHub. To learn how to set deploy keys up in GitHub, see "[Managing deploy keys](/developers/overview/managing-deploy-keys)." - -{% for operation in currentRestOperations %} - {% if operation.subcategory == 'keys' %}{% include rest_operation %}{% endif %} -{% endfor %} - -## Deployments - Deployments are requests to deploy a specific ref (branch, SHA, tag). GitHub dispatches a [`deployment` event](/developers/webhooks-and-events/webhook-events-and-payloads#deployment) that external services can listen for and act on when new deployments are created. Deployments enable developers and organizations to build loosely coupled tooling around deployments, without having to worry about the implementation details of delivering different types of applications (e.g., web, native). Deployment statuses allow external services to mark deployments with an `error`, `failure`, `pending`, `in_progress`, `queued`, or `success` state that systems listening to [`deployment_status` events](/developers/webhooks-and-events/webhook-events-and-payloads#deployment_status) can consume. @@ -66,7 +54,6 @@ Keep in mind that GitHub is never actually accessing your servers. It's up to yo Note that the `repo_deployment` [OAuth scope](/developers/apps/scopes-for-oauth-apps) grants targeted access to deployments and deployment statuses **without** granting access to repository code, while the {% ifversion not ghae %}`public_repo` and{% endif %}`repo` scopes grant permission to code as well. - ### Inactive deployments When you set the state of a deployment to `success`, then all prior non-transient, non-production environment deployments in the same repository with the same environment name will become `inactive`. To avoid this, you can set `auto_inactive` to `false` when creating the deployment status. @@ -74,7 +61,23 @@ When you set the state of a deployment to `success`, then all prior non-transien You can communicate that a transient environment no longer exists by setting its `state` to `inactive`. Setting the `state` to `inactive` shows the deployment as `destroyed` in {% data variables.product.prodname_dotcom %} and removes access to it. {% for operation in currentRestOperations %} - {% if operation.subcategory == 'deployments' %}{% include rest_operation %}{% endif %} + {% unless operation.subcategory %}{% include rest_operation %}{% endunless %} +{% endfor %} + +## Deployment statuses + +{% for operation in currentRestOperations %} + {% if operation.subcategory == 'statuses' %}{% include rest_operation %}{% endif %} +{% endfor %} + +## Deploy keys + +{% data reusables.repositories.deploy-keys %} + +Deploy keys can either be setup using the following API endpoints, or by using GitHub. To learn how to set deploy keys up in GitHub, see "[Managing deploy keys](/developers/overview/managing-deploy-keys)." + +{% for operation in currentRestOperations %} + {% if operation.subcategory == 'keys' %}{% include rest_operation %}{% endif %} {% endfor %} {% ifversion fpt or ghes > 3.1 or ghae or ghec %} diff --git a/translations/pt-BR/content/rest/reference/index.md b/translations/pt-BR/content/rest/reference/index.md index eb8dc90939..b17a0da794 100644 --- a/translations/pt-BR/content/rest/reference/index.md +++ b/translations/pt-BR/content/rest/reference/index.md @@ -19,31 +19,32 @@ children: - /codes-of-conduct - /code-scanning - /codespaces - - /commits - /collaborators + - /commits + - /dependabot - /deployments - /emojis - /enterprise-admin - /gists - /git - - /pages - /gitignore - /interactions - /issues - /licenses - /markdown - /meta + - /metrics - /migrations - /oauth-authorizations - /orgs - /packages + - /pages - /projects - /pulls - /rate-limit - /reactions - /releases - /repos - - /repository-metrics - /scim - /search - /secret-scanning @@ -52,4 +53,3 @@ children: - /webhooks - /permissions-required-for-github-apps --- - diff --git a/translations/pt-BR/content/rest/reference/metrics.md b/translations/pt-BR/content/rest/reference/metrics.md new file mode 100644 index 0000000000..e7e1dd1926 --- /dev/null +++ b/translations/pt-BR/content/rest/reference/metrics.md @@ -0,0 +1,67 @@ +--- +title: Metrics +intro: 'The repository metrics API allows you to retrieve community profile, statistics, and traffic for your repository.' +allowTitleToDifferFromFilename: true +redirect_from: + - /rest/reference/repository-metrics +versions: + fpt: '*' + ghes: '*' + ghae: '*' + ghec: '*' +topics: + - API +miniTocMaxHeadingLevel: 3 +--- + +{% for operation in currentRestOperations %} + {% unless operation.subcategory %}{% include rest_operation %}{% endunless %} +{% endfor %} + +{% ifversion fpt or ghec %} +## Community + +{% for operation in currentRestOperations %} + {% if operation.subcategory == 'community' %}{% include rest_operation %}{% endif %} +{% endfor %} + +{% endif %} + +## Statistics + +The Repository Statistics API allows you to fetch the data that {% data variables.product.product_name %} uses for visualizing different +types of repository activity. + +### A word about caching + +Computing repository statistics is an expensive operation, so we try to return cached +data whenever possible. If the data hasn't been cached when you query a repository's +statistics, you'll receive a `202` response; a background job is also fired to +start compiling these statistics. Give the job a few moments to complete, and +then submit the request again. If the job has completed, that request will receive a +`200` response with the statistics in the response body. + +Repository statistics are cached by the SHA of the repository's default branch; pushing to the default branch resets the statistics cache. + +### Statistics exclude some types of commits + +The statistics exposed by the API match the statistics shown by [different repository graphs](/github/visualizing-repository-data-with-graphs/about-repository-graphs). + +To summarize: +- All statistics exclude merge commits. +- Contributor statistics also exclude empty commits. + +{% for operation in currentRestOperations %} + {% if operation.subcategory == 'statistics' %}{% include rest_operation %}{% endif %} +{% endfor %} + +{% ifversion fpt or ghec %} +## Traffic + +For repositories that you have push access to, the traffic API provides access +to the information provided in your repository graph. For more information, see "Viewing traffic to a repository." + +{% for operation in currentRestOperations %} + {% if operation.subcategory == 'traffic' %}{% include rest_operation %}{% endif %} +{% endfor %} +{% endif %} \ No newline at end of file diff --git a/translations/pt-BR/content/rest/reference/pages.md b/translations/pt-BR/content/rest/reference/pages.md index 713ca428fc..4892f85cfe 100644 --- a/translations/pt-BR/content/rest/reference/pages.md +++ b/translations/pt-BR/content/rest/reference/pages.md @@ -28,5 +28,5 @@ In {% data variables.product.prodname_pages %} API endpoints that return GitHub - `path`: The repository directory from which the site publishes. Will be either `/` or `/docs`. {% for operation in currentRestOperations %} - {% if operation.subcategory == 'pages' %}{% include rest_operation %}{% endif %} + {% unless operation.subcategory %}{% include rest_operation %}{% endunless %} {% endfor %} \ No newline at end of file diff --git a/translations/pt-BR/content/rest/reference/permissions-required-for-github-apps.md b/translations/pt-BR/content/rest/reference/permissions-required-for-github-apps.md index a067fef447..ab2c0d6769 100644 --- a/translations/pt-BR/content/rest/reference/permissions-required-for-github-apps.md +++ b/translations/pt-BR/content/rest/reference/permissions-required-for-github-apps.md @@ -872,6 +872,24 @@ _Teams_ - [`DELETE /orgs/:org/actions/secrets/:secret_name`](/rest/reference/actions#delete-an-organization-secret) (:write) {% endif %} +{% ifversion fpt or ghec or ghes > 3.3%} +### Permission on "dependabot_secrets" +- [`GET /repos/:owner/:repo/dependabot/secrets/public-key`](/rest/reference/dependabot#get-a-repository-public-key) (:read) +- [`GET /repos/:owner/:repo/dependabot/secrets`](/rest/reference/dependabot#list-repository-secrets) (:read) +- [`GET /repos/:owner/:repo/dependabot/secrets/:secret_name`](/rest/reference/dependabot#get-a-repository-secret) (:read) +- [`PUT /repos/:owner/:repo/dependabot/secrets/:secret_name`](/rest/reference/dependabot#create-or-update-a-repository-secret) (:write) +- [`DELETE /repos/:owner/:repo/dependabot/secrets/:secret_name`](/rest/reference/dependabot#delete-a-repository-secret) (:write) +- [`GET /orgs/:org/dependabot/secrets/public-key`](/rest/reference/dependabot#get-an-organization-public-key) (:read) +- [`GET /orgs/:org/dependabot/secrets`](/rest/reference/dependabot#list-organization-secrets) (:read) +- [`GET /orgs/:org/dependabot/secrets/:secret_name`](/rest/reference/dependabot#get-an-organization-secret) (:read) +- [`PUT /orgs/:org/dependabot/secrets/:secret_name`](/rest/reference/dependabot#create-or-update-an-organization-secret) (:write) +- [`GET /orgs/:org/dependabot/secrets/:secret_name/repositories`](/rest/reference/dependabot#list-selected-repositories-for-an-organization-secret) (:read) +- [`PUT /orgs/:org/dependabot/secrets/:secret_name/repositories`](/rest/reference/dependabot#set-selected-repositories-for-an-organization-secret) (:write) +- [`PUT /orgs/:org/dependabot/secrets/:secret_name/repositories/:repository_id`](/rest/reference/dependabot#add-selected-repository-to-an-organization-secret) (:write) +- [`DELETE /orgs/:org/dependabot/secrets/:secret_name/repositories/:repository_id`](/rest/reference/dependabot#remove-selected-repository-from-an-organization-secret) (:write) +- [`DELETE /orgs/:org/dependabot/secrets/:secret_name`](/rest/reference/dependabot#delete-an-organization-secret) (:write) +{% endif %} + {% ifversion fpt or ghes > 3.0 or ghec %} ### Permission on "secret scanning alerts" diff --git a/translations/pt-BR/content/rest/reference/releases.md b/translations/pt-BR/content/rest/reference/releases.md index a434451bea..db97fc243f 100644 --- a/translations/pt-BR/content/rest/reference/releases.md +++ b/translations/pt-BR/content/rest/reference/releases.md @@ -19,5 +19,11 @@ miniTocMaxHeadingLevel: 3 {% endnote %} {% for operation in currentRestOperations %} - {% if operation.subcategory == 'releases' %}{% include rest_operation %}{% endif %} + {% unless operation.subcategory %}{% include rest_operation %}{% endunless %} +{% endfor %} + +## Release assets + +{% for operation in currentRestOperations %} + {% if operation.subcategory == 'assets' %}{% include rest_operation %}{% endif %} {% endfor %} \ No newline at end of file diff --git a/translations/pt-BR/content/rest/reference/webhooks.md b/translations/pt-BR/content/rest/reference/webhooks.md index c9908012c1..c3ca959dc8 100644 --- a/translations/pt-BR/content/rest/reference/webhooks.md +++ b/translations/pt-BR/content/rest/reference/webhooks.md @@ -19,18 +19,36 @@ If you would like to set up a single webhook to receive events from all of your In addition to the REST API, {% data variables.product.prodname_dotcom %} can also serve as a [PubSubHubbub](#pubsubhubbub) hub for repositories. {% for operation in currentRestOperations %} - {% if operation.subcategory == 'webhooks' %}{% include rest_operation %}{% endif %} + {% unless operation.subcategory %}{% include rest_operation %}{% endunless %} {% endfor %} -### Receiving Webhooks +## Repository webhooks + +{% for operation in currentRestOperations %} + {% if operation.subcategory == 'repos' %}{% include rest_operation %}{% endif %} +{% endfor %} + +## Repository webhook configuration + +{% for operation in currentRestOperations %} + {% if operation.subcategory == 'repo-config' %}{% include rest_operation %}{% endif %} +{% endfor %} + +## Repository webhook deliveries + +{% for operation in currentRestOperations %} + {% if operation.subcategory == 'repo-deliveries' %}{% include rest_operation %}{% endif %} +{% endfor %} + +## Receiving Webhooks In order for {% data variables.product.product_name %} to send webhook payloads, your server needs to be accessible from the Internet. We also highly suggest using SSL so that we can send encrypted payloads over HTTPS. -#### Webhook headers +### Webhook headers {% data variables.product.product_name %} will send along several HTTP headers to differentiate between event types and payload identifiers. See [webhook headers](/developers/webhooks-and-events/webhook-events-and-payloads#delivery-headers) for details. -### PubSubHubbub +## PubSubHubbub GitHub can also serve as a [PubSubHubbub](https://github.com/pubsubhubbub/PubSubHubbub) hub for all repositories. PSHB is a simple publish/subscribe protocol that lets servers register to receive updates when a topic is updated. The updates are sent with an HTTP POST request to a callback URL. Topic URLs for a GitHub repository's pushes are in this format: @@ -39,21 +57,21 @@ Topic URLs for a GitHub repository's pushes are in this format: The event can be any available webhook event. For more information, see "[Webhook events and payloads](/developers/webhooks-and-events/webhook-events-and-payloads)." -#### Response format +### Response format The default format is what [existing post-receive hooks should expect](/post-receive-hooks/): A JSON body sent as the `payload` parameter in a POST. You can also specify to receive the raw JSON body with either an `Accept` header, or a `.json` extension. Accept: application/json https://github.com/{owner}/{repo}/events/push.json -#### Callback URLs +### Callback URLs Callback URLs can use the `http://` protocol. # Send updates to postbin.org http://postbin.org/123 -#### Subscribing +### Subscribing The GitHub PubSubHubbub endpoint is: `{% data variables.product.api_url_code %}/hub`. A successful request with curl looks like: @@ -67,7 +85,7 @@ curl -u "user" -i \ PubSubHubbub requests can be sent multiple times. If the hook already exists, it will be modified according to the request. -##### Parameters +#### Parameters Name | Type | Description -----|------|-------------- diff --git a/translations/pt-BR/data/glossaries/external.yml b/translations/pt-BR/data/glossaries/external.yml index 40fa76d3d7..455c0fa9b6 100644 --- a/translations/pt-BR/data/glossaries/external.yml +++ b/translations/pt-BR/data/glossaries/external.yml @@ -179,11 +179,11 @@ description: >- O branch base para os novos pull requests e commits de código em um repositório. Cada repositório tem pelo menos um branch, que o Git cria quando você inicializa o repositório. Geralmente, o primeiro branch é denominado {% ifversion ghes < 3.2 %}`master`{% else %}`main`{% endif %}, e, muitas vezes, é o branch padrão. - - term: dependents graph + term: gráfico de dependentes description: >- Gráfico que mostra os pacotes, projetos e repositórios que dependem de um repositório público. - - term: dependency graph + term: gráfico de dependências description: >- Gráfico que mostra os pacotes e projetos dos quais o repositório depende. - @@ -210,7 +210,7 @@ description: Notificações enviadas para o endereço de e-mail de um usuário. - term: enterprise account - description: As contas corporativas permitem que você gerencie a política e a cobrança centralmente para várias organizações de {% data variables.product.prodname_dotcom_the_website %}. {% data reusables.gated-features.enterprise-accounts %} + description: Enterprise accounts allow you to centrally manage policy and billing for multiple organizations. {% data reusables.gated-features.enterprise-accounts %} - term: Explorador description: >- @@ -248,7 +248,7 @@ - term: gist description: >- - A gist is a shareable file that you can edit, clone, and fork on GitHub. You can make a gist {% ifversion ghae %}internal{% else %}public{% endif %} or secret, although secret gists will be available to {% ifversion ghae %}any enterprise member{% else %}anyone{% endif %} with the URL. + Um gist é um arquivo compartilhável que você pode editar, clonar e bifurcar no GitHub. Você pode criar um gist {% ifversion ghae %}interno{% else %}público{% endif %} ou secreto, embora os gists secretos estejam disponíveis para {% ifversion ghae %}qualquer membro corporativo{% else %}qualquer pessoa{% endif %} com a URL. - term: Git description: >- @@ -373,7 +373,7 @@ description: >- Conta pessoal que não pode ser acessada pelo usuário. As contas ficam bloqueadas após o downgrade da modalidade paga para a grátis ou após o vencimento do plano da conta paga. - - term: management console + term: console de gerenciamento description: >- Seção na interface do GitHub Enterprise que contém recursos administrativos. - @@ -392,7 +392,7 @@ description: >- O branch padrão em muitos repositórios Git. Por padrão, quando você cria um novo repositório Git na linha de comando, um branch denominado `master` será criado. Muitas ferramentas agora usam um nome alternativo para o branch padrão.{% ifversion fpt or ghes > 3.1 or ghae %} Por exemplo, quando você cria um novo repositório no GitHub, o branch padrão é denominado `main`.{% endif %} - - term: members graph + term: gráfico de integrantes description: Gráfico que exibe todas as bifurcações de um repositório. - term: menção @@ -418,7 +418,7 @@ description: >- Equipe secundária de uma equipe principal. É possível ter várias equipes secundárias (ou aninhadas). - - term: network graph + term: gráfico de rede description: >- Gráfico que exibe o histórico de branches de toda a rede do repositório, incluindo branches do repositório raiz e branches de bifurcações que contêm commits exclusivos da rede. - @@ -539,10 +539,10 @@ description: >- Comentários de colaboradores sobre uma pull request que aprovem as alterações ou solicitem outras alterações antes do merge da pull request. - - term: pulse graph + term: gráfico Pulse description: Gráfico que mostra uma visão geral da atividade de um repositório. - - term: punch graph + term: gráfico Punch description: >- Gráfico que mostra a frequência de atualizações em um repositório conforme o dia da semana e a hora do dia. - diff --git a/translations/pt-BR/data/reusables/classroom/assignments-to-prevent-submission.md b/translations/pt-BR/data/reusables/classroom/assignments-to-prevent-submission.md index 7cfabf65ee..ad1874adb9 100644 --- a/translations/pt-BR/data/reusables/classroom/assignments-to-prevent-submission.md +++ b/translations/pt-BR/data/reusables/classroom/assignments-to-prevent-submission.md @@ -1 +1 @@ -Para impedir a aceitação ou submissão de uma atividade por alunos, desmarque **Habilitar a URL do convite da atividade**. Para editar a atividade, clique em {% octicon "pencil" aria-label="The pencil icon" %} **Editar atividade**. +To prevent acceptance or submission of an assignment by students, you can change the "Assignment Status" within the "Edit assignment" view. When an assignment is Active, students will be able to accept it using the invitation link. When it is Inactive, this link will no longer be valid. diff --git a/translations/pt-BR/data/reusables/codespaces/codespaces-machine-type-availability.md b/translations/pt-BR/data/reusables/codespaces/codespaces-machine-type-availability.md new file mode 100644 index 0000000000..43f134fbf4 --- /dev/null +++ b/translations/pt-BR/data/reusables/codespaces/codespaces-machine-type-availability.md @@ -0,0 +1,5 @@ + {% note %} + + **Note**: Your choice of available machine types may be limited by a policy configured for your organization, or by a minimum machine type specification for your repository. For more information, see "[Restricting access to machine types](/codespaces/managing-codespaces-for-your-organization/restricting-access-to-machine-types)" and "[Setting a minimum specification for codespace machines](/codespaces/setting-up-your-project-for-codespaces/setting-a-minimum-specification-for-codespace-machines)." + + {% endnote %} diff --git a/translations/pt-BR/data/reusables/codespaces/creating-a-codespace-in-vscode.md b/translations/pt-BR/data/reusables/codespaces/creating-a-codespace-in-vscode.md index cd96fc1ee2..df9e3ba492 100644 --- a/translations/pt-BR/data/reusables/codespaces/creating-a-codespace-in-vscode.md +++ b/translations/pt-BR/data/reusables/codespaces/creating-a-codespace-in-vscode.md @@ -15,4 +15,6 @@ After you connect your account on {% data variables.product.product_location %} 5. Clique no tipo de máquina na qual você deseja desenvolver. - ![Tipos de instância para um novo {% data variables.product.prodname_codespaces %}](/assets/images/help/codespaces/choose-sku-vscode.png) \ No newline at end of file + ![Tipos de instância para um novo {% data variables.product.prodname_codespaces %}](/assets/images/help/codespaces/choose-sku-vscode.png) + + {% data reusables.codespaces.codespaces-machine-type-availability %} diff --git a/translations/pt-BR/data/reusables/desktop/delete-branch-win.md b/translations/pt-BR/data/reusables/desktop/delete-branch-win.md index f08528bce1..6a4d678509 100644 --- a/translations/pt-BR/data/reusables/desktop/delete-branch-win.md +++ b/translations/pt-BR/data/reusables/desktop/delete-branch-win.md @@ -1 +1 @@ -1. Na sua barra de menu, clique em **Branch** e, em seguida, clique em **Excluir...**. Você também pode pressionar CtrlShiftD. +1. Na sua barra de menu, clique em **Branch** e, em seguida, clique em **Excluir...**. You can also press Ctrl+Shift+D. diff --git a/translations/pt-BR/data/reusables/docs/you-can-read-docs-for-your-product.md b/translations/pt-BR/data/reusables/docs/you-can-read-docs-for-your-product.md index 8de7a8d98f..6e35bcd929 100644 --- a/translations/pt-BR/data/reusables/docs/you-can-read-docs-for-your-product.md +++ b/translations/pt-BR/data/reusables/docs/you-can-read-docs-for-your-product.md @@ -1 +1 @@ -You can read documentation that reflects the features available to you on {% data variables.product.product_name %}. For more information, see "[About versions of {% data variables.product.prodname_docs %}](/get-started/learning-about-github/about-versions-of-github-docs)." +You can read documentation that reflects the features available to you on {% data variables.product.product_name %}. Para obter mais informações, consulte "[Sobre as versões do {% data variables.product.prodname_docs %}](/get-started/learning-about-github/about-versions-of-github-docs)." diff --git a/translations/pt-BR/data/reusables/gated-features/enterprise-accounts.md b/translations/pt-BR/data/reusables/gated-features/enterprise-accounts.md index 7afc75f553..561e5b3add 100644 --- a/translations/pt-BR/data/reusables/gated-features/enterprise-accounts.md +++ b/translations/pt-BR/data/reusables/gated-features/enterprise-accounts.md @@ -1 +1 @@ -As contas empresariais estão disponíveis com {% data variables.product.prodname_ghe_cloud %}{% ifversion ghae %}, {% data variables.product.prodname_ghe_managed %},{% endif %} e {% data variables.product.prodname_ghe_server %}. Para obter mais informações, consulte "[Sobre contas corporativas]({% ifversion fpt or ghec %}/enterprise-cloud@latest{% endif %}/admin/overview/about-enterprise-accounts)". +As contas empresariais estão disponíveis com {% data variables.product.prodname_ghe_cloud %}{% ifversion ghae %}, {% data variables.product.prodname_ghe_managed %},{% endif %} e {% data variables.product.prodname_ghe_server %}. Para obter mais informações, consulte "[Sobre contas corporativas]({% ifversion fpt %}/enterprise-cloud@latest{% endif %}/admin/overview/about-enterprise-accounts){% ifversion fpt %}" na documentação de {% data variables.product.prodname_ghe_cloud %}.{% else %}."{% endif %} diff --git a/translations/pt-BR/data/reusables/identity-and-permissions/team-sync-okta-requirements.md b/translations/pt-BR/data/reusables/identity-and-permissions/team-sync-okta-requirements.md index 882792b2a9..b96e4b185e 100644 --- a/translations/pt-BR/data/reusables/identity-and-permissions/team-sync-okta-requirements.md +++ b/translations/pt-BR/data/reusables/identity-and-permissions/team-sync-okta-requirements.md @@ -2,4 +2,4 @@ Before you enable team synchronization for Okta, you or your IdP administrator m - Configure the SAML, SSO, and SCIM integration for your organization using Okta. Para obter mais informações, consulte "[Configuring SAML single sign-on and SCIM using Okta](/organizations/managing-saml-single-sign-on-for-your-organization/configuring-saml-single-sign-on-and-scim-using-okta)" (Configurar SAML logon único e SCIM usando Okta) - Forneça o URL do inquilino para sua instância Okta. -- Gere um token SSWS válido com permissões de administrador somente leitura para a sua instalação do Okta como usuário do serviço. Para obter mais informações, consulte [Criar o token](https://developer.okta.com/docs/guides/create-an-api-token/create-the-token/) e [Usuários de serviços](https://help.okta.com/en/prod/Content/Topics/Adv_Server_Access/docs/service-users.htm) na documentação de Okta. +- Gere um token SSWS válido com permissões de administrador somente leitura para a sua instalação do Okta como usuário do serviço. Para obter mais informações, consulte [Criar o token](https://developer.okta.com/docs/guides/create-an-api-token/create-the-token/) e [Usuários de serviços](https://help.okta.com/asa/en-us/Content/Topics/Adv_Server_Access/docs/service-users.htm) na documentação de Okta. diff --git a/translations/pt-BR/data/reusables/organizations/internal-repos-enterprise.md b/translations/pt-BR/data/reusables/organizations/internal-repos-enterprise.md deleted file mode 100644 index 464b7f7fcb..0000000000 --- a/translations/pt-BR/data/reusables/organizations/internal-repos-enterprise.md +++ /dev/null @@ -1,7 +0,0 @@ -{% ifversion fpt or ghec %} -{% note %} - -**Nota:** Repositórios internos estão disponíveis para organizações que fazem parte de uma conta corporativa. Para obter mais informações, consulte "[Sobre repositórios](/repositories/creating-and-managing-repositories/about-repositories#about-repository-visibility)". - -{% endnote %} -{% endif %} diff --git a/translations/pt-BR/data/reusables/webhooks/webhooks-rest-api-links.md b/translations/pt-BR/data/reusables/webhooks/webhooks-rest-api-links.md index 02dd1f28a5..03e1f6cc92 100644 --- a/translations/pt-BR/data/reusables/webhooks/webhooks-rest-api-links.md +++ b/translations/pt-BR/data/reusables/webhooks/webhooks-rest-api-links.md @@ -1,5 +1,5 @@ The webhook REST APIs enable you to manage repository, organization, and app webhooks.{% ifversion fpt or ghes > 3.2 or ghae or ghec %} You can use this API to list webhook deliveries for a webhook, or get and redeliver an individual delivery for a webhook, which can be integrated into an external app or service.{% endif %} You can also use the REST API to change the configuration of the webhook. Por exemplo, você pode modificar a URL da carga, tipo de conteúdo, verificação de SSL e segredo. Para obter mais informações, consulte: -- [API REST para os webhooks dos repositórios](/rest/reference/repos#webhooks) +- [API REST para os webhooks dos repositórios](/rest/reference/webhooks#repository-webhooks) - [Organization Webhooks REST API](/rest/reference/orgs#webhooks) - [{% data variables.product.prodname_github_app %} Webhooks REST API](/rest/reference/apps#webhooks) From be826a21cb75c993dd36de8f8503190946a6ff7f Mon Sep 17 00:00:00 2001 From: Peter Bengtsson Date: Tue, 11 Jan 2022 20:26:38 -0500 Subject: [PATCH 66/68] remove all uses of include tool-switcher (part 2) (#24222) --- content/get-started/quickstart/fork-a-repo.md | 3 --- ...-and-searching-issues-and-pull-requests.md | 6 ++--- ...sferring-an-issue-to-another-repository.md | 2 -- .../using-the-api-to-manage-projects.md | 24 ------------------- .../merging-a-pull-request.md | 2 -- .../creating-a-pull-request.md | 4 +--- .../checking-out-pull-requests-locally.md | 2 -- ...wing-proposed-changes-in-a-pull-request.md | 2 -- .../cloning-a-repository.md | 2 -- .../managing-releases-in-a-repository.md | 8 +------ 10 files changed, 4 insertions(+), 51 deletions(-) diff --git a/content/get-started/quickstart/fork-a-repo.md b/content/get-started/quickstart/fork-a-repo.md index c9fa67d1cb..145314eb1f 100644 --- a/content/get-started/quickstart/fork-a-repo.md +++ b/content/get-started/quickstart/fork-a-repo.md @@ -51,7 +51,6 @@ If you haven't yet, you should first [set up Git](/articles/set-up-git). Don't f ## Forking a repository -{% include tool-switcher %} {% webui %} You might fork a project to propose changes to the upstream, or original, repository. In this case, it's good practice to regularly sync your fork with the upstream repository. To do this, you'll need to use Git on the command line. You can practice setting the upstream repository using the same [octocat/Spoon-Knife](https://github.com/octocat/Spoon-Knife) repository you just forked. @@ -87,7 +86,6 @@ gh repo fork repository --org "octo-org" Right now, you have a fork of the Spoon-Knife repository, but you don't have the files in that repository locally on your computer. -{% include tool-switcher %} {% webui %} 1. On {% ifversion fpt or ghec %}{% data variables.product.prodname_dotcom_the_website %}{% else %}{% data variables.product.product_location %}{% endif %}, navigate to **your fork** of the Spoon-Knife repository. @@ -137,7 +135,6 @@ gh repo fork repository --clone=true When you fork a project in order to propose changes to the original repository, you can configure Git to pull changes from the original, or upstream, repository into the local clone of your fork. -{% include tool-switcher %} {% webui %} 1. On {% ifversion fpt or ghec %}{% data variables.product.prodname_dotcom_the_website %}{% else %}{% data variables.product.product_location %}{% endif %}, navigate to the [octocat/Spoon-Knife](https://github.com/octocat/Spoon-Knife) repository. diff --git a/content/issues/tracking-your-work-with-issues/filtering-and-searching-issues-and-pull-requests.md b/content/issues/tracking-your-work-with-issues/filtering-and-searching-issues-and-pull-requests.md index 2b2ad52ec4..81f89fc1f3 100644 --- a/content/issues/tracking-your-work-with-issues/filtering-and-searching-issues-and-pull-requests.md +++ b/content/issues/tracking-your-work-with-issues/filtering-and-searching-issues-and-pull-requests.md @@ -47,7 +47,7 @@ type: how_to {% data reusables.cli.filter-issues-and-pull-requests-tip %} -## Filtering issues and pull requests +## Filtering issues and pull requests Issues and pull requests come with a set of default filters you can apply to organize your listings. @@ -124,8 +124,6 @@ You can use advanced filters to search for issues and pull requests that meet sp ### Searching for issues and pull requests -{% include tool-switcher %} - {% webui %} The issues and pull requests search bar allows you to define your own custom filters and sort by a wide variety of criteria. You can find the search bar on each repository's **Issues** and **Pull requests** tabs and on your [Issues and Pull requests dashboards](/articles/viewing-all-of-your-issues-and-pull-requests). @@ -174,7 +172,7 @@ With issue and pull request search terms, you can: {% tip %} **Tip:** You can filter issues and pull requests by label using logical OR or using logical AND. -- To filter issues using logical OR, use the comma syntax: `label:"bug","wip"`. +- To filter issues using logical OR, use the comma syntax: `label:"bug","wip"`. - To filter issues using logical AND, use separate label filters: `label:"bug" label:"wip"`. {% endtip %} diff --git a/content/issues/tracking-your-work-with-issues/transferring-an-issue-to-another-repository.md b/content/issues/tracking-your-work-with-issues/transferring-an-issue-to-another-repository.md index ad7784c38b..2fe8f14655 100644 --- a/content/issues/tracking-your-work-with-issues/transferring-an-issue-to-another-repository.md +++ b/content/issues/tracking-your-work-with-issues/transferring-an-issue-to-another-repository.md @@ -25,8 +25,6 @@ People or teams who are mentioned in the issue will receive a notification letti ## Transferring an open issue to another repository -{% include tool-switcher %} - {% webui %} {% data reusables.repositories.navigate-to-repo %} diff --git a/content/issues/trying-out-the-new-projects-experience/using-the-api-to-manage-projects.md b/content/issues/trying-out-the-new-projects-experience/using-the-api-to-manage-projects.md index 4b00391366..9f7bb61598 100644 --- a/content/issues/trying-out-the-new-projects-experience/using-the-api-to-manage-projects.md +++ b/content/issues/trying-out-the-new-projects-experience/using-the-api-to-manage-projects.md @@ -17,8 +17,6 @@ This article demonstrates how to use the GraphQL API to manage a project. For mo ## Authentication -{% include tool-switcher %} - {% curl %} In all of the following cURL examples, replace `TOKEN` with a token that has the `read:org` scope (for queries) or `write:org` scope (for queries and mutations). The token can be a personal access token for a user or an installation access token for a {% data variables.product.prodname_github_app %}. For more information about creating a personal access token, see "[Creating a personal access token](/github/authenticating-to-github/keeping-your-account-and-data-secure/creating-a-personal-access-token)." For more information about creating an installation access token for a {% data variables.product.prodname_github_app %}, see "[Authenticating with {% data variables.product.prodname_github_apps %}](/developers/apps/building-github-apps/authenticating-with-github-apps#authenticating-as-a-github-app)." @@ -66,8 +64,6 @@ To update your project through the API, you will need to know the node ID of the You can find the node ID of an organization project if you know the organization name and project number. Replace `ORGANIZATION` with the name of your organization. For example, `octo-org`. Replace `NUMBER` with the project number. To find the project number, look at the project URL. For example, `https://github.com/orgs/octo-org/projects/5` has a project number of 5. -{% include tool-switcher %} - {% curl %} ```shell curl --request POST \ @@ -92,8 +88,6 @@ gh api graphql -f query=' You can also find the node ID of all projects in your organization. The following example will return the node ID and title of the first 20 projects in an organization. Replace `ORGANIZATION` with the name of your organization. For example, `octo-org`. -{% include tool-switcher %} - {% curl %} ```shell curl --request POST \ @@ -125,8 +119,6 @@ To update your project through the API, you will need to know the node ID of the You can find the node ID of a user project if you know the project number. Replace `USER` with your user name. For example, `octocat`. Replace `NUMBER` with your project number. To find the project number, look at the project URL. For example, `https://github.com/users/octocat/projects/5` has a project number of 5. -{% include tool-switcher %} - {% curl %} ```shell curl --request POST \ @@ -151,8 +143,6 @@ gh api graphql -f query=' You can also find the node ID for all of your projects. The following example will return the node ID and title of your first 20 projects. Replace `USER` with your username. For example, `octocat`. -{% include tool-switcher %} - {% curl %} ```shell curl --request POST \ @@ -184,8 +174,6 @@ To update the value of a field, you will need to know the node ID of the field. The following example will return the ID, name, and settings for the first 20 fields in a project. Replace `PROJECT_ID` with the node ID of your project. -{% include tool-switcher %} - {% curl %} ```shell curl --request POST \ @@ -257,8 +245,6 @@ You can query the API to find information about items in your project. The following example will return the title and ID for the first 20 items in a project. For each item, it will also return the value and name for the first 8 fields in the project. If the item is an issue or pull request, it will return the login of the first 10 assignees. Replace `PROJECT_ID` with the node ID of your project. -{% include tool-switcher %} - {% curl %} ```shell curl --request POST \ @@ -335,8 +321,6 @@ Use mutations to update projects. For more information, see "[About mutations]({ The following example will add an issue or pull request to your project. Replace `PROJECT_ID` with the node ID of your project. Replace `CONTENT_ID` with the node ID of the issue or pull request that you want to add. -{% include tool-switcher %} - {% curl %} ```shell curl --request POST \ @@ -379,8 +363,6 @@ If you try to add an item that already exists, the existing item ID is returned The following example will update the value of a date field for an item. Replace `PROJECT_ID` with the node ID of your project. Replace `ITEM_ID` with the node ID of the item you want to update. Replace `FIELD_ID` with the ID of the field that you want to update. -{% include tool-switcher %} - {% curl %} ```shell curl --request POST \ @@ -425,8 +407,6 @@ The following example will update the value of a single select field for an item - `FIELD_ID` - Replace this with the ID of the single select field that you want to update. - `OPTION_ID` - Replace this with the ID of the desired single select option. -{% include tool-switcher %} - {% curl %} ```shell curl --request POST \ @@ -465,8 +445,6 @@ The following example will update the value of an iteration field for an item. - `FIELD_ID` - Replace this with the ID of the iteration field that you want to update. - `ITERATION_ID` - Replace this with the ID of the desired iteration. This can be either an active iteration (from the `iterations` array) or a completed iteration (from the `completed_iterations` array). -{% include tool-switcher %} - {% curl %} ```shell curl --request POST \ @@ -500,8 +478,6 @@ gh api graphql -f query=' The following example will delete an item from a project. Replace `PROJECT_ID` with the node ID of your project. Replace `ITEM_ID` with the node ID of the item you want to delete. -{% include tool-switcher %} - {% curl %} ```shell curl --request POST \ diff --git a/content/pull-requests/collaborating-with-pull-requests/incorporating-changes-from-a-pull-request/merging-a-pull-request.md b/content/pull-requests/collaborating-with-pull-requests/incorporating-changes-from-a-pull-request/merging-a-pull-request.md index 3dd13c576c..881c4b1c19 100644 --- a/content/pull-requests/collaborating-with-pull-requests/incorporating-changes-from-a-pull-request/merging-a-pull-request.md +++ b/content/pull-requests/collaborating-with-pull-requests/incorporating-changes-from-a-pull-request/merging-a-pull-request.md @@ -41,8 +41,6 @@ If you decide you don't want the changes in a topic branch to be merged to the u ## Merging a pull request -{% include tool-switcher %} - {% webui %} {% data reusables.repositories.sidebar-pr %} diff --git a/content/pull-requests/collaborating-with-pull-requests/proposing-changes-to-your-work-with-pull-requests/creating-a-pull-request.md b/content/pull-requests/collaborating-with-pull-requests/proposing-changes-to-your-work-with-pull-requests/creating-a-pull-request.md index fbe2575be6..225c6dbf6e 100644 --- a/content/pull-requests/collaborating-with-pull-requests/proposing-changes-to-your-work-with-pull-requests/creating-a-pull-request.md +++ b/content/pull-requests/collaborating-with-pull-requests/proposing-changes-to-your-work-with-pull-requests/creating-a-pull-request.md @@ -47,8 +47,6 @@ When you change any of the information in the branch range, the Commit and Files ## Creating the pull request -{% include tool-switcher %} - {% webui %} {% data reusables.repositories.navigate-to-repo %} @@ -159,7 +157,7 @@ gh pr create --web {% codespaces %} 1. Once you've committed changes to your local copy of the repository, click the **Create Pull Request** icon. -![Source control side bar with staging button highlighted](/assets/images/help/codespaces/codespaces-commit-pr-button.png) +![Source control side bar with staging button highlighted](/assets/images/help/codespaces/codespaces-commit-pr-button.png) 1. Check that the local branch and repository you're merging from, and the remote branch and repository you're merging into, are correct. Then give the pull request a title and a description. ![GitHub pull request side bar](/assets/images/help/codespaces/codespaces-commit-pr.png) 1. Click **Create**. diff --git a/content/pull-requests/collaborating-with-pull-requests/reviewing-changes-in-pull-requests/checking-out-pull-requests-locally.md b/content/pull-requests/collaborating-with-pull-requests/reviewing-changes-in-pull-requests/checking-out-pull-requests-locally.md index 69a679eec4..cbfc7e4cab 100644 --- a/content/pull-requests/collaborating-with-pull-requests/reviewing-changes-in-pull-requests/checking-out-pull-requests-locally.md +++ b/content/pull-requests/collaborating-with-pull-requests/reviewing-changes-in-pull-requests/checking-out-pull-requests-locally.md @@ -24,8 +24,6 @@ shortTitle: Check out a PR locally ## Modifying an active pull request locally -{% include tool-switcher %} - {% webui %} {% data reusables.repositories.sidebar-pr %} diff --git a/content/pull-requests/collaborating-with-pull-requests/reviewing-changes-in-pull-requests/reviewing-proposed-changes-in-a-pull-request.md b/content/pull-requests/collaborating-with-pull-requests/reviewing-changes-in-pull-requests/reviewing-proposed-changes-in-a-pull-request.md index 35a425283f..3635048c07 100644 --- a/content/pull-requests/collaborating-with-pull-requests/reviewing-changes-in-pull-requests/reviewing-proposed-changes-in-a-pull-request.md +++ b/content/pull-requests/collaborating-with-pull-requests/reviewing-changes-in-pull-requests/reviewing-proposed-changes-in-a-pull-request.md @@ -23,8 +23,6 @@ You can review changes in a pull request one file at a time. While reviewing the ## Starting a review -{% include tool-switcher %} - {% webui %} {% data reusables.repositories.sidebar-pr %} diff --git a/content/repositories/creating-and-managing-repositories/cloning-a-repository.md b/content/repositories/creating-and-managing-repositories/cloning-a-repository.md index 6aac36b72c..498d775b2d 100644 --- a/content/repositories/creating-and-managing-repositories/cloning-a-repository.md +++ b/content/repositories/creating-and-managing-repositories/cloning-a-repository.md @@ -24,8 +24,6 @@ You can clone your existing repository or clone another person's existing reposi ## Cloning a repository -{% include tool-switcher %} - {% webui %} {% data reusables.repositories.navigate-to-repo %} diff --git a/content/repositories/releasing-projects-on-github/managing-releases-in-a-repository.md b/content/repositories/releasing-projects-on-github/managing-releases-in-a-repository.md index eff47a5b08..4209b8a5f4 100644 --- a/content/repositories/releasing-projects-on-github/managing-releases-in-a-repository.md +++ b/content/repositories/releasing-projects-on-github/managing-releases-in-a-repository.md @@ -35,8 +35,6 @@ You can choose whether {% data variables.large_files.product_name_long %} ({% da ## Creating a release -{% include tool-switcher %} - {% webui %} {% data reusables.repositories.navigate-to-repo %} @@ -80,7 +78,7 @@ You can choose whether {% data variables.large_files.product_name_long %} ({% da {% ifversion fpt or ghec or ghes > 3.4 or ghae-issue-4974 %} ![Published release with @mentioned contributors](/assets/images/help/releases/refreshed-releases-overview-with-contributors.png) - {% else %} + {% else %} ![Published release with @mentioned contributors](/assets/images/help/releases/releases-overview-with-contributors.png) {% endif %} {%- endif %} @@ -110,8 +108,6 @@ If you @mention any {% data variables.product.product_name %} users in the notes ## Editing a release -{% include tool-switcher %} - {% webui %} {% data reusables.repositories.navigate-to-repo %} @@ -136,8 +132,6 @@ Releases cannot currently be edited with {% data variables.product.prodname_cli ## Deleting a release -{% include tool-switcher %} - {% webui %} {% data reusables.repositories.navigate-to-repo %} From 60e7477957c9fa0ed36958e8d268892bba769288 Mon Sep 17 00:00:00 2001 From: GitHub Actions Date: Wed, 12 Jan 2022 02:19:11 +0000 Subject: [PATCH 67/68] update search indexes --- lib/search/indexes/github-docs-3.0-cn-records.json.br | 4 ++-- lib/search/indexes/github-docs-3.0-cn.json.br | 4 ++-- lib/search/indexes/github-docs-3.0-en-records.json.br | 4 ++-- lib/search/indexes/github-docs-3.0-en.json.br | 4 ++-- lib/search/indexes/github-docs-3.0-es-records.json.br | 4 ++-- lib/search/indexes/github-docs-3.0-es.json.br | 4 ++-- lib/search/indexes/github-docs-3.0-ja-records.json.br | 4 ++-- lib/search/indexes/github-docs-3.0-ja.json.br | 4 ++-- lib/search/indexes/github-docs-3.0-pt-records.json.br | 4 ++-- lib/search/indexes/github-docs-3.0-pt.json.br | 4 ++-- lib/search/indexes/github-docs-3.1-cn-records.json.br | 4 ++-- lib/search/indexes/github-docs-3.1-cn.json.br | 4 ++-- lib/search/indexes/github-docs-3.1-en-records.json.br | 4 ++-- lib/search/indexes/github-docs-3.1-en.json.br | 4 ++-- lib/search/indexes/github-docs-3.1-es-records.json.br | 4 ++-- lib/search/indexes/github-docs-3.1-es.json.br | 4 ++-- lib/search/indexes/github-docs-3.1-ja-records.json.br | 4 ++-- lib/search/indexes/github-docs-3.1-ja.json.br | 4 ++-- lib/search/indexes/github-docs-3.1-pt-records.json.br | 4 ++-- lib/search/indexes/github-docs-3.1-pt.json.br | 4 ++-- 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-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 ++-- 70 files changed, 140 insertions(+), 140 deletions(-) diff --git a/lib/search/indexes/github-docs-3.0-cn-records.json.br b/lib/search/indexes/github-docs-3.0-cn-records.json.br index f2b941249a..54587b1b67 100644 --- a/lib/search/indexes/github-docs-3.0-cn-records.json.br +++ b/lib/search/indexes/github-docs-3.0-cn-records.json.br @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:57cdaaf531480b36b5c17fd9fe6987c978d6a2851e46c5a91f270b68139fc87e -size 611983 +oid sha256:924ea82954d28ca58b600b606cd9f0e800802c9c95eaa5dcfa203d0749e1d1f0 +size 612176 diff --git a/lib/search/indexes/github-docs-3.0-cn.json.br b/lib/search/indexes/github-docs-3.0-cn.json.br index 5831839a8d..b7cdb4014c 100644 --- a/lib/search/indexes/github-docs-3.0-cn.json.br +++ b/lib/search/indexes/github-docs-3.0-cn.json.br @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:4210eec14333f99380303c78261a3921425aaab1057afca1cb4e780e67465068 -size 1735667 +oid sha256:2520a0ff67de244d840ae77c5f8edd7b33d0732d68f62880b21d9cafc2448173 +size 1735255 diff --git a/lib/search/indexes/github-docs-3.0-en-records.json.br b/lib/search/indexes/github-docs-3.0-en-records.json.br index 874ca0612b..bba64b01f1 100644 --- a/lib/search/indexes/github-docs-3.0-en-records.json.br +++ b/lib/search/indexes/github-docs-3.0-en-records.json.br @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:7b79e6e4587170400e489940cb18ecc091c6c427a06899225b825030c4d32079 -size 954536 +oid sha256:c7f005777d2c9f221ff454216c3856542edeb8c4438ccbcd394d1658a0591cf3 +size 954708 diff --git a/lib/search/indexes/github-docs-3.0-en.json.br b/lib/search/indexes/github-docs-3.0-en.json.br index d0314e6c6f..26791c46d0 100644 --- a/lib/search/indexes/github-docs-3.0-en.json.br +++ b/lib/search/indexes/github-docs-3.0-en.json.br @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:7e2d9f4f3f7fb762f6438a228e5047ead1a895791dfc3c881503b099d779cc2f -size 3919689 +oid sha256:029c5ae3840c16718805040ae7b22c0fb449e95c047222fc84ef215473e74af6 +size 3920682 diff --git a/lib/search/indexes/github-docs-3.0-es-records.json.br b/lib/search/indexes/github-docs-3.0-es-records.json.br index cf9e0863fa..69eca06776 100644 --- a/lib/search/indexes/github-docs-3.0-es-records.json.br +++ b/lib/search/indexes/github-docs-3.0-es-records.json.br @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:4935e8cdd1cfe10e10bb35e4745e89db4323eb5d61f081bafda8adfb34b02351 -size 590273 +oid sha256:19df7d8d7f3e70477601b7c5b237ffcb4801ffc9252cfc3ed6e71b620807e52e +size 590332 diff --git a/lib/search/indexes/github-docs-3.0-es.json.br b/lib/search/indexes/github-docs-3.0-es.json.br index c3d1256034..6f59e7022e 100644 --- a/lib/search/indexes/github-docs-3.0-es.json.br +++ b/lib/search/indexes/github-docs-3.0-es.json.br @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:d682bf027237bd470cb3b92e5461d45860e7ab90739cb1d17b81bc1952c370d4 -size 2832771 +oid sha256:a966b4c286343b0fa16fea812663aa985816b15235b93974c08d415af4364c3a +size 2832648 diff --git a/lib/search/indexes/github-docs-3.0-ja-records.json.br b/lib/search/indexes/github-docs-3.0-ja-records.json.br index d17e11f94d..2ffd4aba7d 100644 --- a/lib/search/indexes/github-docs-3.0-ja-records.json.br +++ b/lib/search/indexes/github-docs-3.0-ja-records.json.br @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:b0640064abf7b91f43ce3448cb5720a4f02e181a694ad973d6e13e5de93feadb -size 615543 +oid sha256:6a6b8d89d827dabdae6ea849f4a635d2fca13d952aabda262b4948c85c36cc54 +size 615676 diff --git a/lib/search/indexes/github-docs-3.0-ja.json.br b/lib/search/indexes/github-docs-3.0-ja.json.br index ed37e86858..66576d59ef 100644 --- a/lib/search/indexes/github-docs-3.0-ja.json.br +++ b/lib/search/indexes/github-docs-3.0-ja.json.br @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:1c5e1de69861b9fc578048db82934cbee9bd3b3873bfbef215c525ca039fb986 -size 3457849 +oid sha256:93960db596148fc20f1b1d2d817e423a5ee05ca44982a37cc62e5fb91aa34509 +size 3459563 diff --git a/lib/search/indexes/github-docs-3.0-pt-records.json.br b/lib/search/indexes/github-docs-3.0-pt-records.json.br index d89c818f4b..1bbde34b77 100644 --- a/lib/search/indexes/github-docs-3.0-pt-records.json.br +++ b/lib/search/indexes/github-docs-3.0-pt-records.json.br @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:2cd298116be85df9f9422d6564bc805ed1bf5f9b0e492785fb7bcf2a06595d4f -size 593665 +oid sha256:990f2399a32e5b6f2efe5b2869b5600223b31874f2c9d7076c702f41cdbaccb2 +size 596696 diff --git a/lib/search/indexes/github-docs-3.0-pt.json.br b/lib/search/indexes/github-docs-3.0-pt.json.br index 4183f08bb1..0d07054a82 100644 --- a/lib/search/indexes/github-docs-3.0-pt.json.br +++ b/lib/search/indexes/github-docs-3.0-pt.json.br @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:8e20f839b9e3a905c5669da8526238a92889798dfcd20bf26cbf6db972393d5c -size 2805828 +oid sha256:9de74f4b066ab2977627f9e3ba3b90c023901ee9307c709f15cc8f9c23b17514 +size 2822491 diff --git a/lib/search/indexes/github-docs-3.1-cn-records.json.br b/lib/search/indexes/github-docs-3.1-cn-records.json.br index ef76f6cb2f..fdb9d3b27a 100644 --- a/lib/search/indexes/github-docs-3.1-cn-records.json.br +++ b/lib/search/indexes/github-docs-3.1-cn-records.json.br @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:38dcc8d64f80ccf81eab829235463998cdead44bc57bea6dd28f07a7b88b9726 -size 625603 +oid sha256:b93356f0a55b2ae6f5963131cc41253ece93cb8b4b6d844977051c4111668f6f +size 625391 diff --git a/lib/search/indexes/github-docs-3.1-cn.json.br b/lib/search/indexes/github-docs-3.1-cn.json.br index 45b3644ea2..ff1e055e02 100644 --- a/lib/search/indexes/github-docs-3.1-cn.json.br +++ b/lib/search/indexes/github-docs-3.1-cn.json.br @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:943f7ba983bf06c7ef6091d63aae8ad1c051b5882d0b125d491efc78db0d209c -size 1777804 +oid sha256:b5a9203da11228ac1dae13b05e7a4b03c7561bad111896f439d515efdfbceaa2 +size 1777485 diff --git a/lib/search/indexes/github-docs-3.1-en-records.json.br b/lib/search/indexes/github-docs-3.1-en-records.json.br index 1ba43a2b95..24b7dfb15d 100644 --- a/lib/search/indexes/github-docs-3.1-en-records.json.br +++ b/lib/search/indexes/github-docs-3.1-en-records.json.br @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:e308ec39e5159d5c2861d19c06f9c18058fddc6aa9a8061fae8b6753f75e8116 -size 979856 +oid sha256:2e30a8038fb5ef72da9f55632ebe11f78122b173b6f1a0295f05bb772cb557ce +size 979716 diff --git a/lib/search/indexes/github-docs-3.1-en.json.br b/lib/search/indexes/github-docs-3.1-en.json.br index 301e0152d0..56e6464662 100644 --- a/lib/search/indexes/github-docs-3.1-en.json.br +++ b/lib/search/indexes/github-docs-3.1-en.json.br @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:a7745e0c16598208eda99dd71e3e907772d67912b68be22d75bebce27a628d05 -size 4012202 +oid sha256:79a5c3d0ae119e1f94f29545c7717266a620b7b733bc0b404f398fb2cc142687 +size 4011721 diff --git a/lib/search/indexes/github-docs-3.1-es-records.json.br b/lib/search/indexes/github-docs-3.1-es-records.json.br index 72af4d7403..c75d0c4108 100644 --- a/lib/search/indexes/github-docs-3.1-es-records.json.br +++ b/lib/search/indexes/github-docs-3.1-es-records.json.br @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:7a8130110687bc31675d020116ee0081efa28f2913fa0e75ab00ebdc758fb388 -size 602078 +oid sha256:31d9083dd56dc72a3d98942f33bcfc8727606a586f39934d5e3e7d5d358ebc8b +size 602147 diff --git a/lib/search/indexes/github-docs-3.1-es.json.br b/lib/search/indexes/github-docs-3.1-es.json.br index bd127698f2..a016d7d307 100644 --- a/lib/search/indexes/github-docs-3.1-es.json.br +++ b/lib/search/indexes/github-docs-3.1-es.json.br @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:4320a2aa717fc186214e66169dd94ffae1ff6dbbde626825b2c942d126a23855 -size 2895341 +oid sha256:dd6cf2b86d5489e5b6d0a4690f0a5d552829322cf6f408beaec290475b154828 +size 2895391 diff --git a/lib/search/indexes/github-docs-3.1-ja-records.json.br b/lib/search/indexes/github-docs-3.1-ja-records.json.br index 26cacba8d1..c6b2d2a954 100644 --- a/lib/search/indexes/github-docs-3.1-ja-records.json.br +++ b/lib/search/indexes/github-docs-3.1-ja-records.json.br @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:2dcac417fdb69b8480762acdacc871f2555b1d27253405474359c0f8351a9016 -size 628786 +oid sha256:f62359092b728a52034dffa78f0bb5408982b9ba460168764bcbb8f82e75fed5 +size 628823 diff --git a/lib/search/indexes/github-docs-3.1-ja.json.br b/lib/search/indexes/github-docs-3.1-ja.json.br index 4542ee5b63..78b60ba09e 100644 --- a/lib/search/indexes/github-docs-3.1-ja.json.br +++ b/lib/search/indexes/github-docs-3.1-ja.json.br @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:7f8d738ba44707904ff1bf436c7d7395d1d0d587f889dafdd7735e81df3c08d6 -size 3535687 +oid sha256:896d30056fb0edc8361869a6cba185fca62fdfc5b162b1e321202d8694e97670 +size 3536909 diff --git a/lib/search/indexes/github-docs-3.1-pt-records.json.br b/lib/search/indexes/github-docs-3.1-pt-records.json.br index 8e1705e16a..2633f13eb6 100644 --- a/lib/search/indexes/github-docs-3.1-pt-records.json.br +++ b/lib/search/indexes/github-docs-3.1-pt-records.json.br @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:e44a69642987b534e9e4f34d36aeffb15811bb2f20f78ebe1309918db0f76953 -size 605806 +oid sha256:8cc03f44ce040604b034b8fb004184fb6b778ebcf3a619c07cb395dbff3ff894 +size 608980 diff --git a/lib/search/indexes/github-docs-3.1-pt.json.br b/lib/search/indexes/github-docs-3.1-pt.json.br index e5128cc4b6..000b2a3bc6 100644 --- a/lib/search/indexes/github-docs-3.1-pt.json.br +++ b/lib/search/indexes/github-docs-3.1-pt.json.br @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:40258eb5c07ba610f0c63c9a9c2a3c5baf00862b79bc9f11dda52318a971baf5 -size 2870033 +oid sha256:0927c16c2bd63f4d12f8b12a943918df82ea5bee8aaabb56a3a8b5dddf16f080 +size 2886292 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 f60d105bc9..ffb9b9972b 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:5b48b9d761fb8c3b5b1b41c33cd291bfe6a3e43193cdfd58a0051b4d3f305e67 -size 636928 +oid sha256:5caa94ecd969bfe5ec5d4f74de14d324c5e153b673898e72e8ba6f8bab1eefea +size 636980 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 d2ce2897cb..f2c088f85d 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:72d3acef803e3a034c4e62d40b853e5fd5e362aabb8cb7fcff0a604cd233269f -size 1804563 +oid sha256:1b7b8d31c24746c3b718d1e35657b02fc2e4205b5ac2f13ed6f52fee5ef7d380 +size 1804638 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 a335ff0cec..4524beec15 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:6140764cd90c78b92ef246ea77eb0b8cfbfcc33927934406126e52e25efa2881 -size 1010748 +oid sha256:4e4f36a64c97782b9b9355365fd6449aade7496212d445d940377193950a2354 +size 1010814 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 b078ce65ca..1ba9cdeade 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:d895342a2b2926c63a6fd6701843cf564e22c2def2af4e12860646103f9071dd -size 4132935 +oid sha256:532ef2f2b653b6e617184df28dbc3f505db279002e2d076ccb340c75bfbc23e8 +size 4133242 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 f1dc4d6526..921e78b914 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:9ef1946b8da528361dd86913ee4d9ca1e38f39236c81778c05f99b62fc33be71 -size 612708 +oid sha256:564ec16dde1f487fd810a30154423fcd074aa2c7245030972775b25aa56c558c +size 612861 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 dc27057eae..b4d35c9dfe 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:1b0e3f4a175a6c943c3efca7fb5ef2268dad79093c666f4cb23781269fc8e970 -size 2947887 +oid sha256:64d0be2c0f25aee38bc9f3a9e310826d28790a76533dc93613111c0be3296b6e +size 2948354 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 fcb8b7204a..97d8f4b13f 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:74a3e2c6c41cae6599829ba99d6f41dc97f4b500a5e6c17eaba0625211f3f80a -size 640150 +oid sha256:3dbb232a7e403633cf7e7f4183c87c306ece7ddf820f0cea8ae2fe03b69a191c +size 640381 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 6459983fda..c855e94bb6 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:6841563d5fad7eafce9ac7a1cbad5abe1c6368e877c156f981e7c5b677dc960d -size 3603648 +oid sha256:fde4b9922e78f6505dd72e23d2788c5e625461257ab1f091142e11fb6b9039dd +size 3605364 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 8147e37cc7..d2cbb490ac 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:2c0205bee3840b8bc2db9d01c4003b41fc721849bd04605c2bec9b3ebe7d685e -size 617255 +oid sha256:a1ac599eecfb3be47528f269d2a8f372620f709b4e6d1fa7d5d1f0af49ce1842 +size 620510 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 ec0338aef6..2e4270b5a9 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:c7146d35f6fd95f865b1f4240ebc027639a25566535323e50f60dea6c473fe07 -size 2919690 +oid sha256:72553803f034f34b0969ceec3333b0e5e266224e64a7d87f55f715afce0ede90 +size 2936931 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 ac15f41b00..958cf49b10 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:dfb6b176eaeec87f9ba7a11bbfb36bcf235fefafe1b2e9fdad22294db6eb39d8 -size 657129 +oid sha256:242fef21bbcda38e5fac8898de8e736bb32282dd64b43b339cc58d70b763b1b9 +size 657102 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 3d8567b6c6..585f5c2429 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:2bfa56edde4a5f9de040332d01689138faab667e5dc94aef099003f1b9a3c572 -size 1861587 +oid sha256:0979c15e294c6e8c3848cff8645be750cd6ef950287903eed179dfd6cc2481ca +size 1861834 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 7c92e5d9df..152d119d16 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:a662356b69a074cf58d23d360f52551842b8485510575cc7659ab4e5c5d5905f -size 1044415 +oid sha256:f1ec93564279c6797b5c3599f266caf34afd411b8a86c78de933edc6a06fd565 +size 1044888 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 c546476c2e..0d97f85900 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:c9683c7bffc402a94153493cf297d93ba7cfe49dbbc5dd8ca946cd51be2bc131 -size 4233801 +oid sha256:a9e1c9bf5fbf784025d1970a4eac46599932898ab2417fc2709b0ba3abde1b39 +size 4235920 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 a89445c6bc..48304bc182 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:656aa3dd2b200c97a7261c029d8ff38d061915fb6ed68b2880399033e782f48c -size 630321 +oid sha256:30310b5e94131c240772935fd52645d078b7a018449ffb81b67a1990764023c7 +size 630353 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 518b5c694d..ae73a334c1 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:0331ea901f3e499a2b942bde0274fa35f1ac75ca8b034bf91cee1397fabc0bed -size 3046626 +oid sha256:4a5467a9965eaf29a9ba2c9502657ce6a5a8cfc69baf7ee2f7b4bdee876e96f0 +size 3046034 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 dcf887ecb0..4ab5685674 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:b554921afd6105fa97f841daef90c9cd52ad664e10b36cb0228a93169c8a9bae -size 661321 +oid sha256:323f7e80da63a9c810e82fd272b5c88e42cc0236e698e1c5daaf8381e3dcb3b2 +size 661632 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 9149e291d7..df9facc571 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:36e338d5e56daced0e7e4f73e961b9ad8044ef03762ef752bc65f30175304b91 -size 3723248 +oid sha256:92c08c5ef407a06b8e9a898e09bccf3ba7250c6914513db903ae11d3f498a181 +size 3723338 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 558ef41f97..f9910c56e9 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:941eeec2134026335f0eae0247e331a43dca162f7f6cddea1819da748c7b05b4 -size 636312 +oid sha256:ced46d3ae9d40d4b562958bffec8abb431904cef65f8c9a7fa784c312350f6c1 +size 639390 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 cb5f55bce4..7c0c63e0de 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:f3e8244acf99ba4678aae0151eeb1026b6ee23818c83549d2fa1b729c071cb8e -size 3006286 +oid sha256:d988eb344e37d5ebad8b201c797b9c7194b6683b41946b39cd9b5a38f7b05b1d +size 3025626 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 8c53d6c122..78863f1f4d 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:d6c22e171143cac31ae08a09c9f8cf78868318b017ad36b6b8fad5dea9062de6 -size 845736 +oid sha256:92d496f14653072e8e8149eb0bb71d9f14d4228ff7699460bfccdb2b84aecb12 +size 845572 diff --git a/lib/search/indexes/github-docs-dotcom-cn.json.br b/lib/search/indexes/github-docs-dotcom-cn.json.br index cb89bc6885..6c1156b4e3 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:6b10ad269fa7409d86836b8d3350c9bc92cef49b9c61938163530b911852283e -size 2081180 +oid sha256:eef69801e39119eee552f2fd92a866f0efb87208085831fc672e31a1e38d6839 +size 2080375 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 c671d81f5c..1cdd40867c 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:223ebaa2a913cd5dd7e2006e1817a2e590377e9e5fdc627c2281504a0b606aed -size 1329738 +oid sha256:83830cdcb9b7846c0bfc5f3bd5d4b0f8eb3acd36501ff012347cb408f950dd1b +size 1330151 diff --git a/lib/search/indexes/github-docs-dotcom-en.json.br b/lib/search/indexes/github-docs-dotcom-en.json.br index f681333500..ce09b01027 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:d40eac843278f5cdd1d488db9e64da6a20b18af1de7ce0eda708c493b19f36d3 -size 5095516 +oid sha256:a3040ccb40e359a39fd7e371f9acaf33cd552e67e99d011cd0a44c515c42b875 +size 5095187 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 deca16e277..923e96fbdf 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:7cb1d03f4ff93aff51ffbfdc6389d0676f025368d64355b9a4db66191f673de1 -size 801987 +oid sha256:be43f75d745d4a30f92d381b9d742322105ba3bcc3de07287dde79fc8b1fb4c4 +size 801683 diff --git a/lib/search/indexes/github-docs-dotcom-es.json.br b/lib/search/indexes/github-docs-dotcom-es.json.br index 35ddfb77c0..6425c9d161 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:551dd35c05214b3cbb30d2e4c67d58c59b09876e096e638fd71b43ea106f29c4 -size 3650072 +oid sha256:9a34ecf15a14b6305edcf20cb5faccd473029becca51c223cda2b8643b7a5ac1 +size 3648683 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 e47be754fb..9ee9a46ea1 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:fdbcf904ea192e8b69f02e2f0118b93554b011483354d6e57935ff9861afbb45 -size 853501 +oid sha256:22eae62093099621a2ca4f3cd21ca662171d90a60ec0dffc1b1a1945c1d2ebd9 +size 853268 diff --git a/lib/search/indexes/github-docs-dotcom-ja.json.br b/lib/search/indexes/github-docs-dotcom-ja.json.br index e5b0371b68..9592844756 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:f25a6cc0eefb8063daa15b4e202aa7a9b76f1a620edb3aa0070f8a48a8d578a9 -size 4541081 +oid sha256:c8b54d3ef672f198b35967e587748a3bcb4e67fbb063abd7c8f0c8ea55f7f309 +size 4538555 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 f6d4487c43..dc2869664c 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:2890036c9ad709660c2bd58342d9dd84cb52397a28bea32051fec90b28dd4d93 -size 807848 +oid sha256:343f3777cdbd9717060124ff9163192eaf0b6dad3d8d0f770463c23911ca7742 +size 813193 diff --git a/lib/search/indexes/github-docs-dotcom-pt.json.br b/lib/search/indexes/github-docs-dotcom-pt.json.br index 8bd75a99f4..5c6804ebd4 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:b07f0b6213bec8181617c0e4298255e9df1a81943836c4cafdb7c420944b8bfc -size 3599687 +oid sha256:4f4d0a2ec08ef92537a3b8da55799606f83d320b3598842e90f152d8cc7a0fc0 +size 3629411 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 d72312aee7..38fdb4b5ed 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:4c0114c6ccfc14fc4cdb48c9afa45cbb118aef9c9a03f38a72cce49d81ac2ded -size 510476 +oid sha256:aec37a148bff27f9a6327694e3e6d219e90d390fbd874ee8912003cc3a7ff5af +size 510617 diff --git a/lib/search/indexes/github-docs-ghae-cn.json.br b/lib/search/indexes/github-docs-ghae-cn.json.br index fa73441991..7bb2f4830f 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:f821502439d349fba9f5387d8efd77ea0dfd462bdb030fd4d2472021eed619d7 -size 1404032 +oid sha256:c18d426cab0002850b7a09d417305c8fc54c3b23618d0580f64f1861a28a1083 +size 1404234 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 e28774dd5c..4436a44ddf 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:8ecc604be9f809bd2f7369b24f3bd88c8797700675fca289a09a6132c405a6d0 -size 834097 +oid sha256:5e260ca2b31bb20551dffb592ede0e741cc713e3c9270f20e3626e515a2fcccd +size 834053 diff --git a/lib/search/indexes/github-docs-ghae-en.json.br b/lib/search/indexes/github-docs-ghae-en.json.br index 4188309b91..43cbdf44b8 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:ca709cc9ef12ed0ca6940f906f8de2ad499abc336cb15398fb869d984fa12f8c -size 3353544 +oid sha256:625d484546a3155d94870653f8225b95f4636c2ebfbe803691d529ae9013fe1a +size 3354607 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 4b14b07f24..bc1e935da1 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:8b2ae4cef0e38212058ad4a1ccaab314e8d09df6d68d2acac2a3d43eb646c47e -size 494465 +oid sha256:484cb0deb406f4c6b6107e075023c8c094972f0de5e3bc6a7be1cef7b81692a8 +size 494488 diff --git a/lib/search/indexes/github-docs-ghae-es.json.br b/lib/search/indexes/github-docs-ghae-es.json.br index 8058475e5c..8e95f4824f 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:1c918623d2cd8a9c70d64da071fcacee2153b53e90f0d5c64ac57cd489df1631 -size 2300766 +oid sha256:98fe9ac9ca09b05a01a6bddbcbf494df13baa65d3f87304b85652d50f1ad23a0 +size 2300953 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 8724c66b2c..8f33aaa5fc 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:6d2d6340a68485f9704bb946aa360ab8c7e125890d192a22fc92fe867821b38a -size 514402 +oid sha256:a55124459cdba3cdda886edbda080cae80d479141cdbe74db0ed32ac4a288563 +size 514640 diff --git a/lib/search/indexes/github-docs-ghae-ja.json.br b/lib/search/indexes/github-docs-ghae-ja.json.br index b7e6c9b523..652df4fa4a 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:97a97ff39c8544bec6635d2b07780dc54f241a2f4ff8f5808a7f71ab4e553cfe -size 2784921 +oid sha256:6dd74f710ee3d307ad58538a722973af8f71a7e6c2a842a82317297190e36ba9 +size 2784195 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 b095b2b716..5e51d14aad 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:0561349bc5ba3de73034e3d2c248d322146f6178310eb514ca5cc338f88c3d92 -size 497899 +oid sha256:53afe9ae1b79863c67d61cbb301749910864d30fc6b5b28e4ec6f6b1fd7063e2 +size 500968 diff --git a/lib/search/indexes/github-docs-ghae-pt.json.br b/lib/search/indexes/github-docs-ghae-pt.json.br index 62d1dc888f..f59638d5f8 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:8d26ead732a4ada69c77fd95a9d0da1507c8558f6390beb78c8942343776a3dd -size 2276220 +oid sha256:b179523a757baa0d38d339a1f7a0130fb57b4c9bb08ee5631b5098667ab3e055 +size 2293142 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 0c75d0d148..9e48387a49 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:dc367f3010ed1230ea39ccae1a56ba94d598bdc70c93a869a9584d12e4297634 -size 769710 +oid sha256:0b71cd65b4dc027445d98b64370bc01f0517ef4ee1d62ca8e9b941a653f4f6b8 +size 769590 diff --git a/lib/search/indexes/github-docs-ghec-cn.json.br b/lib/search/indexes/github-docs-ghec-cn.json.br index 0e3b727292..dca02e64cc 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:1f586380f5c6dbc5d7ae0e2c39e6013d4753ef2963f1f56ed4469a787d93f515 -size 2099079 +oid sha256:ddd4794b02877ed8a4a81dfdafb3f9b0478459e2b8f38e688ca664fa80be97fb +size 2098593 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 a3150705ef..369cbfa51a 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:1e18a85dbc173f096f733a943337b165ebb532b8555484d5988621232826b2ad -size 1193395 +oid sha256:aa1fc5f23b7a48b8da3303fe40e6a923034746554fd9fcec3a9c2af963a70945 +size 1189580 diff --git a/lib/search/indexes/github-docs-ghec-en.json.br b/lib/search/indexes/github-docs-ghec-en.json.br index 9f0f026b2c..6aa317feae 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:7b5a3358367b645419f2c6743cddce9f967de66c2a4dbfac96b5f40270b98c11 -size 4832475 +oid sha256:4a62b52d3b79019bdf82f810c0542e01b24324aedbd5a0f601ae063a60aa89ed +size 4833100 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 6d3d8a9d0e..eb5e87d994 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:d7d3c9f760f48ebfeed522adf48e8df2dbbc23b7796bc259dc7a0a9213d0cd87 -size 747447 +oid sha256:35d08644b0fba0e04ac136566147aeb6c6a7c204d3f6db2ee6ed963ca86234c4 +size 747166 diff --git a/lib/search/indexes/github-docs-ghec-es.json.br b/lib/search/indexes/github-docs-ghec-es.json.br index a473298cd2..453d823d90 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:a36f9ae80c7b64a0f21ed067d90c90b380b706cd51edfcdb0fde723de2ba53ad -size 3597663 +oid sha256:e9a51356be2cdf3cab40eac0669fc7175e679f1090a69af82f686cc256ba1146 +size 3595027 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 311ab1a15c..56d9609a11 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:75e2b3b260d55ee0ae6cec13260407e0a5e63f2a285696cc23fe8eff3286f067 -size 781071 +oid sha256:6d02ce27e7f44d95b319ee8193cb0d07163a5d31a4dbbb9d2004ae3626081b46 +size 780797 diff --git a/lib/search/indexes/github-docs-ghec-ja.json.br b/lib/search/indexes/github-docs-ghec-ja.json.br index 009cc6ee27..dca86a50a4 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:2e0520c92f1698cc98150b544169fdbefb7bf025bce34c7a57e2ebf649933ee4 -size 4383614 +oid sha256:c1bc430907c1f4271cdd9cb343e496ea469729b8e34abe8d9e687b7cac86b467 +size 4381874 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 423e0058bf..0130c9666e 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:aeaf0c8d5d5c6d1589fe58b5ff026a723783f0715f8c37370ad7593072910b74 -size 754037 +oid sha256:d59e86ada1c8296be5bb4edd5868b2399a415b65f0b73183f67234fa3fef5268 +size 758722 diff --git a/lib/search/indexes/github-docs-ghec-pt.json.br b/lib/search/indexes/github-docs-ghec-pt.json.br index ead76b1573..f268acb03f 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:c3118a40ee992e7999c9b51d54c4fa4abd07ced5a7762749d643deb51512ed9d -size 3542875 +oid sha256:abeb6a1b48bb4b19c1f312411dd270140cf812ba6d2273df31db281910f4b26f +size 3577890 From 9fce1828ed203174ce8c0b9ee503e843c8094e37 Mon Sep 17 00:00:00 2001 From: GitHub Actions Date: Wed, 12 Jan 2022 10:12:41 +0000 Subject: [PATCH 68/68] update search indexes --- lib/search/indexes/github-docs-3.0-cn-records.json.br | 4 ++-- lib/search/indexes/github-docs-3.0-cn.json.br | 4 ++-- lib/search/indexes/github-docs-3.0-en-records.json.br | 4 ++-- lib/search/indexes/github-docs-3.0-en.json.br | 4 ++-- lib/search/indexes/github-docs-3.0-es-records.json.br | 4 ++-- lib/search/indexes/github-docs-3.0-es.json.br | 4 ++-- lib/search/indexes/github-docs-3.0-ja-records.json.br | 4 ++-- lib/search/indexes/github-docs-3.0-ja.json.br | 4 ++-- lib/search/indexes/github-docs-3.0-pt-records.json.br | 4 ++-- lib/search/indexes/github-docs-3.0-pt.json.br | 4 ++-- lib/search/indexes/github-docs-3.1-cn-records.json.br | 4 ++-- lib/search/indexes/github-docs-3.1-cn.json.br | 4 ++-- lib/search/indexes/github-docs-3.1-en-records.json.br | 4 ++-- lib/search/indexes/github-docs-3.1-en.json.br | 4 ++-- lib/search/indexes/github-docs-3.1-es-records.json.br | 4 ++-- lib/search/indexes/github-docs-3.1-es.json.br | 4 ++-- lib/search/indexes/github-docs-3.1-ja-records.json.br | 4 ++-- lib/search/indexes/github-docs-3.1-ja.json.br | 4 ++-- lib/search/indexes/github-docs-3.1-pt-records.json.br | 4 ++-- lib/search/indexes/github-docs-3.1-pt.json.br | 4 ++-- 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-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 ++-- 70 files changed, 140 insertions(+), 140 deletions(-) diff --git a/lib/search/indexes/github-docs-3.0-cn-records.json.br b/lib/search/indexes/github-docs-3.0-cn-records.json.br index 54587b1b67..4b9faa5540 100644 --- a/lib/search/indexes/github-docs-3.0-cn-records.json.br +++ b/lib/search/indexes/github-docs-3.0-cn-records.json.br @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:924ea82954d28ca58b600b606cd9f0e800802c9c95eaa5dcfa203d0749e1d1f0 -size 612176 +oid sha256:442de5d84335877597a241f6658ecf9fe3ee7a22b7d2c79d54b7559669b8ed01 +size 612215 diff --git a/lib/search/indexes/github-docs-3.0-cn.json.br b/lib/search/indexes/github-docs-3.0-cn.json.br index b7cdb4014c..a193baf2ba 100644 --- a/lib/search/indexes/github-docs-3.0-cn.json.br +++ b/lib/search/indexes/github-docs-3.0-cn.json.br @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:2520a0ff67de244d840ae77c5f8edd7b33d0732d68f62880b21d9cafc2448173 -size 1735255 +oid sha256:9e4b91a0998bf22036679144217f3a8ad51edabc73cd37ffa8eeb933a6bd5eea +size 1735479 diff --git a/lib/search/indexes/github-docs-3.0-en-records.json.br b/lib/search/indexes/github-docs-3.0-en-records.json.br index bba64b01f1..b95ce69975 100644 --- a/lib/search/indexes/github-docs-3.0-en-records.json.br +++ b/lib/search/indexes/github-docs-3.0-en-records.json.br @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:c7f005777d2c9f221ff454216c3856542edeb8c4438ccbcd394d1658a0591cf3 -size 954708 +oid sha256:bb1e55996a46e9e6a257a8139e32794f1fe75eb091e77435dfd0617097bfe016 +size 954661 diff --git a/lib/search/indexes/github-docs-3.0-en.json.br b/lib/search/indexes/github-docs-3.0-en.json.br index 26791c46d0..8ac56c8f6b 100644 --- a/lib/search/indexes/github-docs-3.0-en.json.br +++ b/lib/search/indexes/github-docs-3.0-en.json.br @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:029c5ae3840c16718805040ae7b22c0fb449e95c047222fc84ef215473e74af6 -size 3920682 +oid sha256:5d5b32374452b4e80c4ace297eb02eec66074252a726997e604d7277b72326ed +size 3919553 diff --git a/lib/search/indexes/github-docs-3.0-es-records.json.br b/lib/search/indexes/github-docs-3.0-es-records.json.br index 69eca06776..736eb5c944 100644 --- a/lib/search/indexes/github-docs-3.0-es-records.json.br +++ b/lib/search/indexes/github-docs-3.0-es-records.json.br @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:19df7d8d7f3e70477601b7c5b237ffcb4801ffc9252cfc3ed6e71b620807e52e -size 590332 +oid sha256:4475299865b8bd865a6b22e67bde1ea2b042aff26ece27545156f354e2caa133 +size 590289 diff --git a/lib/search/indexes/github-docs-3.0-es.json.br b/lib/search/indexes/github-docs-3.0-es.json.br index 6f59e7022e..5f01411057 100644 --- a/lib/search/indexes/github-docs-3.0-es.json.br +++ b/lib/search/indexes/github-docs-3.0-es.json.br @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:a966b4c286343b0fa16fea812663aa985816b15235b93974c08d415af4364c3a -size 2832648 +oid sha256:44460abd617ce73e5534b06e82965f95747eb11ea97f919af8f26d0b9b744d4a +size 2833356 diff --git a/lib/search/indexes/github-docs-3.0-ja-records.json.br b/lib/search/indexes/github-docs-3.0-ja-records.json.br index 2ffd4aba7d..a24819ebe3 100644 --- a/lib/search/indexes/github-docs-3.0-ja-records.json.br +++ b/lib/search/indexes/github-docs-3.0-ja-records.json.br @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:6a6b8d89d827dabdae6ea849f4a635d2fca13d952aabda262b4948c85c36cc54 -size 615676 +oid sha256:08f73c3789cdbbafd77f0b01f4137f541293980bb0395605d9c553232e748896 +size 615750 diff --git a/lib/search/indexes/github-docs-3.0-ja.json.br b/lib/search/indexes/github-docs-3.0-ja.json.br index 66576d59ef..bf1e27b531 100644 --- a/lib/search/indexes/github-docs-3.0-ja.json.br +++ b/lib/search/indexes/github-docs-3.0-ja.json.br @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:93960db596148fc20f1b1d2d817e423a5ee05ca44982a37cc62e5fb91aa34509 -size 3459563 +oid sha256:820c087a62118073b6bab9301f1930b45cb2a76edf4ac3655b5cf84faf4d1fbf +size 3457719 diff --git a/lib/search/indexes/github-docs-3.0-pt-records.json.br b/lib/search/indexes/github-docs-3.0-pt-records.json.br index 1bbde34b77..1fdb3057af 100644 --- a/lib/search/indexes/github-docs-3.0-pt-records.json.br +++ b/lib/search/indexes/github-docs-3.0-pt-records.json.br @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:990f2399a32e5b6f2efe5b2869b5600223b31874f2c9d7076c702f41cdbaccb2 -size 596696 +oid sha256:b1d4a663002eee7217a685009044d994cdc3b9275a67b7618aa61481889d1bf2 +size 596600 diff --git a/lib/search/indexes/github-docs-3.0-pt.json.br b/lib/search/indexes/github-docs-3.0-pt.json.br index 0d07054a82..c489aeaad4 100644 --- a/lib/search/indexes/github-docs-3.0-pt.json.br +++ b/lib/search/indexes/github-docs-3.0-pt.json.br @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:9de74f4b066ab2977627f9e3ba3b90c023901ee9307c709f15cc8f9c23b17514 -size 2822491 +oid sha256:4fbc2265a98dcd1f65c2977eb0aa3c9bd0ead9d8bb9562ba056dc10462100705 +size 2821417 diff --git a/lib/search/indexes/github-docs-3.1-cn-records.json.br b/lib/search/indexes/github-docs-3.1-cn-records.json.br index fdb9d3b27a..310e58cb84 100644 --- a/lib/search/indexes/github-docs-3.1-cn-records.json.br +++ b/lib/search/indexes/github-docs-3.1-cn-records.json.br @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:b93356f0a55b2ae6f5963131cc41253ece93cb8b4b6d844977051c4111668f6f -size 625391 +oid sha256:010b534b3b4497201a719efd17b7a4f05361fa4d68f5825700a49692bf812fd6 +size 625539 diff --git a/lib/search/indexes/github-docs-3.1-cn.json.br b/lib/search/indexes/github-docs-3.1-cn.json.br index ff1e055e02..554f2a092a 100644 --- a/lib/search/indexes/github-docs-3.1-cn.json.br +++ b/lib/search/indexes/github-docs-3.1-cn.json.br @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:b5a9203da11228ac1dae13b05e7a4b03c7561bad111896f439d515efdfbceaa2 -size 1777485 +oid sha256:13d9db7440623d49ce5abd884b490ef5c1b9c1a5b916770ce05dc4ec5ee226d2 +size 1777333 diff --git a/lib/search/indexes/github-docs-3.1-en-records.json.br b/lib/search/indexes/github-docs-3.1-en-records.json.br index 24b7dfb15d..8a7b69cc30 100644 --- a/lib/search/indexes/github-docs-3.1-en-records.json.br +++ b/lib/search/indexes/github-docs-3.1-en-records.json.br @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:2e30a8038fb5ef72da9f55632ebe11f78122b173b6f1a0295f05bb772cb557ce -size 979716 +oid sha256:eb4945738b0119683a354c55bf53396977d326a7151344568871f1ef91745880 +size 979810 diff --git a/lib/search/indexes/github-docs-3.1-en.json.br b/lib/search/indexes/github-docs-3.1-en.json.br index 56e6464662..91ec06eaa8 100644 --- a/lib/search/indexes/github-docs-3.1-en.json.br +++ b/lib/search/indexes/github-docs-3.1-en.json.br @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:79a5c3d0ae119e1f94f29545c7717266a620b7b733bc0b404f398fb2cc142687 -size 4011721 +oid sha256:75cacceeb759338cc7736796168bae9e2d36a796a259f0f2d08993caaf14aa36 +size 4012321 diff --git a/lib/search/indexes/github-docs-3.1-es-records.json.br b/lib/search/indexes/github-docs-3.1-es-records.json.br index c75d0c4108..969c3afcf3 100644 --- a/lib/search/indexes/github-docs-3.1-es-records.json.br +++ b/lib/search/indexes/github-docs-3.1-es-records.json.br @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:31d9083dd56dc72a3d98942f33bcfc8727606a586f39934d5e3e7d5d358ebc8b -size 602147 +oid sha256:9a0d625317b96a4c6c3c4545d813411b6ddf17195a350daf20455e2be17c641e +size 602135 diff --git a/lib/search/indexes/github-docs-3.1-es.json.br b/lib/search/indexes/github-docs-3.1-es.json.br index a016d7d307..80a6e983e8 100644 --- a/lib/search/indexes/github-docs-3.1-es.json.br +++ b/lib/search/indexes/github-docs-3.1-es.json.br @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:dd6cf2b86d5489e5b6d0a4690f0a5d552829322cf6f408beaec290475b154828 -size 2895391 +oid sha256:a3b65ad5b1ea32019a9574d0d50c412f0cc0c18c986ef2f5d0c5536ad4eea794 +size 2894946 diff --git a/lib/search/indexes/github-docs-3.1-ja-records.json.br b/lib/search/indexes/github-docs-3.1-ja-records.json.br index c6b2d2a954..e0daaa464b 100644 --- a/lib/search/indexes/github-docs-3.1-ja-records.json.br +++ b/lib/search/indexes/github-docs-3.1-ja-records.json.br @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:f62359092b728a52034dffa78f0bb5408982b9ba460168764bcbb8f82e75fed5 -size 628823 +oid sha256:dcfb3800b1e9579ac2e3cfbee3fec0f071290c048654d932c4a6ac43dcec20a8 +size 628652 diff --git a/lib/search/indexes/github-docs-3.1-ja.json.br b/lib/search/indexes/github-docs-3.1-ja.json.br index 78b60ba09e..a8755f02b3 100644 --- a/lib/search/indexes/github-docs-3.1-ja.json.br +++ b/lib/search/indexes/github-docs-3.1-ja.json.br @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:896d30056fb0edc8361869a6cba185fca62fdfc5b162b1e321202d8694e97670 -size 3536909 +oid sha256:9216875f41c44aea16ca2eed825b1932f34986e8697a9e863bccbf1513cb653e +size 3536173 diff --git a/lib/search/indexes/github-docs-3.1-pt-records.json.br b/lib/search/indexes/github-docs-3.1-pt-records.json.br index 2633f13eb6..df1cfc2b65 100644 --- a/lib/search/indexes/github-docs-3.1-pt-records.json.br +++ b/lib/search/indexes/github-docs-3.1-pt-records.json.br @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:8cc03f44ce040604b034b8fb004184fb6b778ebcf3a619c07cb395dbff3ff894 -size 608980 +oid sha256:02acdf1050447f32e1c56c2757cc6aec8df824e4e37817c1b3b2f9bf52efcdf8 +size 609104 diff --git a/lib/search/indexes/github-docs-3.1-pt.json.br b/lib/search/indexes/github-docs-3.1-pt.json.br index 000b2a3bc6..71d76dc84f 100644 --- a/lib/search/indexes/github-docs-3.1-pt.json.br +++ b/lib/search/indexes/github-docs-3.1-pt.json.br @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:0927c16c2bd63f4d12f8b12a943918df82ea5bee8aaabb56a3a8b5dddf16f080 -size 2886292 +oid sha256:e9f9739b5a3dc54853881a1c4c6ff8a7b440c94d6fcc42710f1b2d051ae59e60 +size 2887129 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 ffb9b9972b..ccc0ae5b2f 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:5caa94ecd969bfe5ec5d4f74de14d324c5e153b673898e72e8ba6f8bab1eefea -size 636980 +oid sha256:a4a5a924de4fbb5ba5efc58bc2e75859db54aca1c711d1ecb5e69da1087a3990 +size 636901 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 f2c088f85d..43fec8daa7 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:1b7b8d31c24746c3b718d1e35657b02fc2e4205b5ac2f13ed6f52fee5ef7d380 -size 1804638 +oid sha256:e02461f9060e995ea262242417840302b0c8b0f4b91d3c84c6bbe5b333b358ea +size 1804087 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 4524beec15..6d85d0fa47 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:4e4f36a64c97782b9b9355365fd6449aade7496212d445d940377193950a2354 -size 1010814 +oid sha256:bec04a9d92ebc439dbc689a55af2482fd176e84279ecbfec93adec196d09ddcd +size 1010727 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 1ba9cdeade..45dec7cd7c 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:532ef2f2b653b6e617184df28dbc3f505db279002e2d076ccb340c75bfbc23e8 -size 4133242 +oid sha256:671f9a6014e5d956fc40fc354c8c4c69b8ffa9743e6e76fef8081f4eef6cf157 +size 4132747 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 921e78b914..3acdffe07e 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:564ec16dde1f487fd810a30154423fcd074aa2c7245030972775b25aa56c558c -size 612861 +oid sha256:fb10e7bbc7136b4198cd1acb6e0401b8d668ddd70ee53bf108d18d47363a3443 +size 612837 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 b4d35c9dfe..47b5984058 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:64d0be2c0f25aee38bc9f3a9e310826d28790a76533dc93613111c0be3296b6e -size 2948354 +oid sha256:6ade2e0ec7779db9a2f02ea2c7f0fb3377f3022a4b509f69ebe8c97968255914 +size 2947746 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 97d8f4b13f..5ac3db8605 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:3dbb232a7e403633cf7e7f4183c87c306ece7ddf820f0cea8ae2fe03b69a191c -size 640381 +oid sha256:a5920a875d58ce368519da454d1290f7975f4adf92d84fcf2112c2792f74cd06 +size 640145 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 c855e94bb6..bae9fdf4bc 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:fde4b9922e78f6505dd72e23d2788c5e625461257ab1f091142e11fb6b9039dd -size 3605364 +oid sha256:df33858aa0be52434a8a7a8d440acfa2b6a32cc9441706e79b7775b707041997 +size 3603737 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 d2cbb490ac..54dc5ef724 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:a1ac599eecfb3be47528f269d2a8f372620f709b4e6d1fa7d5d1f0af49ce1842 -size 620510 +oid sha256:750c0550fdee9de65ca47cbe93fad1651fee2388e34f983ae53858f7a4df05b1 +size 620345 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 2e4270b5a9..ce58c2a739 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:72553803f034f34b0969ceec3333b0e5e266224e64a7d87f55f715afce0ede90 -size 2936931 +oid sha256:0971a4b2c468c1154564d399e3e76e1fa0518f4126ee71abb3b671f78f44596a +size 2937772 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 958cf49b10..1631935a5e 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:242fef21bbcda38e5fac8898de8e736bb32282dd64b43b339cc58d70b763b1b9 -size 657102 +oid sha256:b598d1d3d4cd8f16db43186ce5cb1c1aaf9bd51b1060950add17daee1bc6de3c +size 657455 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 585f5c2429..6c9fc07de0 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:0979c15e294c6e8c3848cff8645be750cd6ef950287903eed179dfd6cc2481ca -size 1861834 +oid sha256:c6ebe37792b11ea832ee78315f8b03bd855de43f14aa3b0f58cb64ec303e4483 +size 1861530 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 152d119d16..37e2e569b7 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:f1ec93564279c6797b5c3599f266caf34afd411b8a86c78de933edc6a06fd565 -size 1044888 +oid sha256:2a08706172f88610f706860d9780af1f91502638030100b386d1065ddd4170b8 +size 1044922 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 0d97f85900..09064611fe 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:a9e1c9bf5fbf784025d1970a4eac46599932898ab2417fc2709b0ba3abde1b39 -size 4235920 +oid sha256:2382bf1ef97939a9d094bee64ae663f4714e27f3340a1cbee787f85cd519abb1 +size 4234441 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 48304bc182..4296b72e0d 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:30310b5e94131c240772935fd52645d078b7a018449ffb81b67a1990764023c7 -size 630353 +oid sha256:bc9b3c363729cdd24fbbe475f1dae66ef021df91b526c8f356c3b60dad8255cf +size 630595 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 ae73a334c1..8b81e216a2 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:4a5467a9965eaf29a9ba2c9502657ce6a5a8cfc69baf7ee2f7b4bdee876e96f0 -size 3046034 +oid sha256:66c95f142d72d438578cef8f7e868d8209598f1f225ecea4c2d1fbbe4e264378 +size 3047459 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 4ab5685674..ed271b464e 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:323f7e80da63a9c810e82fd272b5c88e42cc0236e698e1c5daaf8381e3dcb3b2 -size 661632 +oid sha256:619eff9a2a92c4ee51e8bc8a5990ff364b226aef77f95dfcd7b9d18e13afdbdb +size 661391 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 df9facc571..b99362d194 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:92c08c5ef407a06b8e9a898e09bccf3ba7250c6914513db903ae11d3f498a181 -size 3723338 +oid sha256:07512b76b0184250ab3fe04af63e5960db2d52ced3090185a20119783874f21f +size 3723442 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 f9910c56e9..ea547fdd7f 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:ced46d3ae9d40d4b562958bffec8abb431904cef65f8c9a7fa784c312350f6c1 -size 639390 +oid sha256:e13e00a80d03004cf8ef88309d27c19411e94619e41437fccda5eb04eca27ed2 +size 639391 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 7c0c63e0de..5c7de51c2c 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:d988eb344e37d5ebad8b201c797b9c7194b6683b41946b39cd9b5a38f7b05b1d -size 3025626 +oid sha256:b687657a2930fbbc8592db081de48f9bf1caaad9908b6b75d0b3df50eba30b7b +size 3025149 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 78863f1f4d..bb8efe5f93 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:92d496f14653072e8e8149eb0bb71d9f14d4228ff7699460bfccdb2b84aecb12 -size 845572 +oid sha256:29caaee16fd4aaa5c0f4adbb7f9b0d5de70b786c0c43a6ccb8e51a436b09f8a4 +size 845570 diff --git a/lib/search/indexes/github-docs-dotcom-cn.json.br b/lib/search/indexes/github-docs-dotcom-cn.json.br index 6c1156b4e3..8a3dbf700f 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:eef69801e39119eee552f2fd92a866f0efb87208085831fc672e31a1e38d6839 -size 2080375 +oid sha256:2ebf6c74d0bbfda9cdfcef6c3bff4850d0d2dfc34ebdcfad4ae0698642288e6a +size 2080742 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 1cdd40867c..d3ec4875f9 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:83830cdcb9b7846c0bfc5f3bd5d4b0f8eb3acd36501ff012347cb408f950dd1b -size 1330151 +oid sha256:c89071ffa266c2b1890bdb0371adb0462dad900eeb10fc8e0b14ab0947d21809 +size 1329947 diff --git a/lib/search/indexes/github-docs-dotcom-en.json.br b/lib/search/indexes/github-docs-dotcom-en.json.br index ce09b01027..e4f40b6c9f 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:a3040ccb40e359a39fd7e371f9acaf33cd552e67e99d011cd0a44c515c42b875 -size 5095187 +oid sha256:113581b1cd754cc2172bf7ce0ff432e389261ec57d0fca59c543e9116462af57 +size 5095706 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 923e96fbdf..6f7262444e 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:be43f75d745d4a30f92d381b9d742322105ba3bcc3de07287dde79fc8b1fb4c4 -size 801683 +oid sha256:edbdcc276574fbc611dc45f73ed0f652b166d40cf7ae5fd0f9b4d99ccb65ff15 +size 802066 diff --git a/lib/search/indexes/github-docs-dotcom-es.json.br b/lib/search/indexes/github-docs-dotcom-es.json.br index 6425c9d161..0cb2f884f3 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:9a34ecf15a14b6305edcf20cb5faccd473029becca51c223cda2b8643b7a5ac1 -size 3648683 +oid sha256:7286f1e9ecc9f78a04b8930a95152dd81d720dc3f17374788bbb405cb64a647e +size 3648891 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 9ee9a46ea1..6a90bf8bb5 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:22eae62093099621a2ca4f3cd21ca662171d90a60ec0dffc1b1a1945c1d2ebd9 -size 853268 +oid sha256:32364bffa8682cd5f565e271adbc52c144715a156fd90bbbc2e3a303b575c73d +size 853484 diff --git a/lib/search/indexes/github-docs-dotcom-ja.json.br b/lib/search/indexes/github-docs-dotcom-ja.json.br index 9592844756..b8ba4e1b7c 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:c8b54d3ef672f198b35967e587748a3bcb4e67fbb063abd7c8f0c8ea55f7f309 -size 4538555 +oid sha256:7db621c257adddc2d6f3d77d49f61e75d437f4457d3c292dfd8fb83473204ad0 +size 4538364 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 dc2869664c..560003ca91 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:343f3777cdbd9717060124ff9163192eaf0b6dad3d8d0f770463c23911ca7742 -size 813193 +oid sha256:d36acc620a478c86a5d30c08bf16f918a0e498ac93ba6907bc885ee1d240daa4 +size 813300 diff --git a/lib/search/indexes/github-docs-dotcom-pt.json.br b/lib/search/indexes/github-docs-dotcom-pt.json.br index 5c6804ebd4..cd0bf972f8 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:4f4d0a2ec08ef92537a3b8da55799606f83d320b3598842e90f152d8cc7a0fc0 -size 3629411 +oid sha256:e1e8bd923d92dc0a7170a197d4fe9b8c7e19dbfb1e4ad5bd99be1aca239d31c9 +size 3628431 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 38fdb4b5ed..410c3deeb0 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:aec37a148bff27f9a6327694e3e6d219e90d390fbd874ee8912003cc3a7ff5af -size 510617 +oid sha256:170a66700cd91901916435abb28b3bfb7f6c7595e18b3474e7dff213924db300 +size 510693 diff --git a/lib/search/indexes/github-docs-ghae-cn.json.br b/lib/search/indexes/github-docs-ghae-cn.json.br index 7bb2f4830f..7d4eff843d 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:c18d426cab0002850b7a09d417305c8fc54c3b23618d0580f64f1861a28a1083 -size 1404234 +oid sha256:71d0ce6b0dc176c2344c03d4aa57f4a361e2f3959978695bacb8fac531726dc9 +size 1404728 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 4436a44ddf..fe89e0c9d0 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:5e260ca2b31bb20551dffb592ede0e741cc713e3c9270f20e3626e515a2fcccd -size 834053 +oid sha256:9c2641893daa6c4ae5e77ba12fa14ed4bdafffb7a7ded4d8513cf09a797e6a07 +size 834017 diff --git a/lib/search/indexes/github-docs-ghae-en.json.br b/lib/search/indexes/github-docs-ghae-en.json.br index 43cbdf44b8..74b25646c1 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:625d484546a3155d94870653f8225b95f4636c2ebfbe803691d529ae9013fe1a -size 3354607 +oid sha256:c45fbabf31b19efabcb154193f9ece8df1ee79735f50280f0971ed66cf8a745d +size 3353777 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 bc1e935da1..41d06c81d3 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:484cb0deb406f4c6b6107e075023c8c094972f0de5e3bc6a7be1cef7b81692a8 -size 494488 +oid sha256:10de6c377ee18afafe4751525b9b7693c317ffa86a11d8b852b066a8529607be +size 494468 diff --git a/lib/search/indexes/github-docs-ghae-es.json.br b/lib/search/indexes/github-docs-ghae-es.json.br index 8e95f4824f..b5b4048738 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:98fe9ac9ca09b05a01a6bddbcbf494df13baa65d3f87304b85652d50f1ad23a0 -size 2300953 +oid sha256:c8fc6551e88683c44e88684a46a738ea49f7e3593976aef2bfc0ed3429790209 +size 2300278 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 8f33aaa5fc..7ae4adf392 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:a55124459cdba3cdda886edbda080cae80d479141cdbe74db0ed32ac4a288563 -size 514640 +oid sha256:af150551a319a5f3f19c875b5ca0564c8e98c2fb3e2519d4657629ab3c543a51 +size 514443 diff --git a/lib/search/indexes/github-docs-ghae-ja.json.br b/lib/search/indexes/github-docs-ghae-ja.json.br index 652df4fa4a..cc2c4315d4 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:6dd74f710ee3d307ad58538a722973af8f71a7e6c2a842a82317297190e36ba9 -size 2784195 +oid sha256:ad528539063666af90b57afce333f428cdcd3b284f5d2d6bee74e45fa49ca302 +size 2784526 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 5e51d14aad..90da0b6ebc 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:53afe9ae1b79863c67d61cbb301749910864d30fc6b5b28e4ec6f6b1fd7063e2 -size 500968 +oid sha256:8cef51f8db56cc870c4631ec9de536599bebc36c69200e37d1644e5fec113f42 +size 500936 diff --git a/lib/search/indexes/github-docs-ghae-pt.json.br b/lib/search/indexes/github-docs-ghae-pt.json.br index f59638d5f8..c59b411038 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:b179523a757baa0d38d339a1f7a0130fb57b4c9bb08ee5631b5098667ab3e055 -size 2293142 +oid sha256:a53d3081956ed2cf711a438c0b5a360abd53c319a2a0cc261a037f96a24866de +size 2292475 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 9e48387a49..bbc96cdfaf 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:0b71cd65b4dc027445d98b64370bc01f0517ef4ee1d62ca8e9b941a653f4f6b8 -size 769590 +oid sha256:e9e287b4092df9d27c4aeb3f297fa578a1456937fba66b8e39abaa184973a45e +size 769560 diff --git a/lib/search/indexes/github-docs-ghec-cn.json.br b/lib/search/indexes/github-docs-ghec-cn.json.br index dca02e64cc..ad770d1846 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:ddd4794b02877ed8a4a81dfdafb3f9b0478459e2b8f38e688ca664fa80be97fb -size 2098593 +oid sha256:f2ec2fbf9eba27dbfe884d161c474d5127d28d538d7f1b4ff6b3531512c8b66e +size 2099025 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 369cbfa51a..106d5fa85f 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:aa1fc5f23b7a48b8da3303fe40e6a923034746554fd9fcec3a9c2af963a70945 -size 1189580 +oid sha256:07320830c3d83453ad640a3de9f844c32a6905c2045e060271cd75ac4949d9f7 +size 1193706 diff --git a/lib/search/indexes/github-docs-ghec-en.json.br b/lib/search/indexes/github-docs-ghec-en.json.br index 6aa317feae..90f99e7ca7 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:4a62b52d3b79019bdf82f810c0542e01b24324aedbd5a0f601ae063a60aa89ed -size 4833100 +oid sha256:11f494f413ff951949351ac2541bcd038e049625a2b0e524877d42059d53671c +size 4831623 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 eb5e87d994..bae745be58 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:35d08644b0fba0e04ac136566147aeb6c6a7c204d3f6db2ee6ed963ca86234c4 -size 747166 +oid sha256:0541cd689e9526bf7091fdf3a306aeaf81b43c026061eb80771a4a2f9bff8db5 +size 747185 diff --git a/lib/search/indexes/github-docs-ghec-es.json.br b/lib/search/indexes/github-docs-ghec-es.json.br index 453d823d90..d92343261a 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:e9a51356be2cdf3cab40eac0669fc7175e679f1090a69af82f686cc256ba1146 -size 3595027 +oid sha256:9daaa06d449e987a1d59758f62f1159078aa467335707cdeaa981852406ddefb +size 3595905 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 56d9609a11..0785c7417a 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:6d02ce27e7f44d95b319ee8193cb0d07163a5d31a4dbbb9d2004ae3626081b46 -size 780797 +oid sha256:1ee1b2c402a61f3600b352fea40dab311c7e479d3c74c9b7eb76ada09fa7818b +size 780910 diff --git a/lib/search/indexes/github-docs-ghec-ja.json.br b/lib/search/indexes/github-docs-ghec-ja.json.br index dca86a50a4..45ca99d062 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:c1bc430907c1f4271cdd9cb343e496ea469729b8e34abe8d9e687b7cac86b467 -size 4381874 +oid sha256:798f710eff4fb0d3d752e6250389f223aaa3dc7a1a92c3b0f37b8674f4ad0866 +size 4381995 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 0130c9666e..08dc50124e 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:d59e86ada1c8296be5bb4edd5868b2399a415b65f0b73183f67234fa3fef5268 -size 758722 +oid sha256:bea77bc025b6e13a1e613fbf3f51f57fc48fb1bab1561d881cb5aa095c07dca5 +size 758743 diff --git a/lib/search/indexes/github-docs-ghec-pt.json.br b/lib/search/indexes/github-docs-ghec-pt.json.br index f268acb03f..5f35a3aee1 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:abeb6a1b48bb4b19c1f312411dd270140cf812ba6d2273df31db281910f4b26f -size 3577890 +oid sha256:5976ab7e2d39a98587935e29b0e01ba64e53e04a015bad5bec973be6648daa74 +size 3578726

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 N5| 3.0 or ghae or ghec %} - - Unwatch a repository - - Ignore all notifications for a repository - - If enabled, customize the types of event you receive notifications for ({% data reusables.notifications-v2.custom-notification-types %}) - {%- else %} - - Unwatch a repository - - Only watch releases for a repository - - Ignore all notifications for a repository - {%- endif %} -{%- ifversion fpt or ghec or ghes > 3.3 or ghae-issue-5819 %} -1. Optionally, to unsubscribe from all repositories owned by a given user or organization, select the **Unwatch all** dropdown and click the organization whose repositories you'd like to unsubscribe from. The button to unwatch all repositories is only available if you are watching all notifications, custom notifications or ignoring activity on over 25 repositories. - - ![Unwatch All button](/assets/images/help/notifications-v2/unsubscribe-from-all-repos.png) - - - Click **Unwatch** to confirm that you want to unwatch the repositories owned by the selected user or organization, or click **Cancel** to cancel. - - ![Unwatch all confirmation](/assets/images/help/notifications-v2/unwatch-repo-dialog.png) - -{% endif %} \ No newline at end of file + {% ifversion fpt or ghes > 3.0 or ghae or ghec %} + - Unwatch a repository + - Ignore all notifications for a repository + - Customize the types of event you receive notifications for ({% data reusables.notifications-v2.custom-notification-types %}, if enabled) + {% else %} + - Unwatch a repository + - Only watch releases for a repository + - Ignore all notifications for a repository + {% endif %} diff --git a/data/reusables/notifications-v2/custom-notification-types.md b/data/reusables/notifications-v2/custom-notification-types.md index 67afdcde28..af96a38c7e 100644 --- a/data/reusables/notifications-v2/custom-notification-types.md +++ b/data/reusables/notifications-v2/custom-notification-types.md @@ -1,3 +1,5 @@ -{%- ifversion fpt or ghes > 3.1 or ghae-issue-4910 %}issues, pulls requests, releases, security alerts, or discussions -{%- else %}issues, pull requests, releases, or discussions -{%- endif %} +{%- ifversion fpt or ghes > 3.1 or ghae-issue-4910 %} +issues, pulls requests, releases, security alerts, or discussions +{%- else %}issues, pull requests, releases, or discussions +{% endif %} + From 2e9cf4d9ca269e0bef98853c5ca2eb9811acdd02 Mon Sep 17 00:00:00 2001 From: Anil Seervi <61609033+AnilSeervi@users.noreply.github.com> Date: Mon, 10 Jan 2022 21:17:24 +0530 Subject: [PATCH 15/68] Update keyboard shortcut to meet new style guidelines --- .../about-pull-requests.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/content/pull-requests/collaborating-with-pull-requests/proposing-changes-to-your-work-with-pull-requests/about-pull-requests.md b/content/pull-requests/collaborating-with-pull-requests/proposing-changes-to-your-work-with-pull-requests/about-pull-requests.md index a488f3afd5..1408b3e897 100644 --- a/content/pull-requests/collaborating-with-pull-requests/proposing-changes-to-your-work-with-pull-requests/about-pull-requests.md +++ b/content/pull-requests/collaborating-with-pull-requests/proposing-changes-to-your-work-with-pull-requests/about-pull-requests.md @@ -46,7 +46,7 @@ After you're happy with the proposed changes, you can merge the pull request. If {% tip %} **Tips:** -- To toggle between collapsing and expanding all outdated review comments in a pull request, hold down optionAltAlt and click **Show outdated** or **Hide outdated**. For more shortcuts, see "[Keyboard shortcuts](/articles/keyboard-shortcuts)." +- To toggle between collapsing and expanding all outdated review comments in a pull request, hold down OptionAltAlt and click **Show outdated** or **Hide outdated**. For more shortcuts, see "[Keyboard shortcuts](/articles/keyboard-shortcuts)." - You can squash commits when merging a pull request to gain a more streamlined view of changes. For more information, see "[About pull request merges](/pull-requests/collaborating-with-pull-requests/incorporating-changes-from-a-pull-request/about-pull-request-merges)." {% endtip %} From 5c8467752ef3d400c972c705a3e9862fd66a65e0 Mon Sep 17 00:00:00 2001 From: Anil Seervi <61609033+AnilSeervi@users.noreply.github.com> Date: Mon, 10 Jan 2022 21:48:52 +0530 Subject: [PATCH 16/68] Update keyboard tags to meet new style guidelines --- .../managing-accessibility-settings.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/content/account-and-profile/setting-up-and-managing-your-github-user-account/managing-user-account-settings/managing-accessibility-settings.md b/content/account-and-profile/setting-up-and-managing-your-github-user-account/managing-user-account-settings/managing-accessibility-settings.md index b79c2b3be4..7922e9318d 100644 --- a/content/account-and-profile/setting-up-and-managing-your-github-user-account/managing-user-account-settings/managing-accessibility-settings.md +++ b/content/account-and-profile/setting-up-and-managing-your-github-user-account/managing-user-account-settings/managing-accessibility-settings.md @@ -11,7 +11,7 @@ versions: {% data variables.product.product_name %} includes a variety of keyboard shortcuts so that you can perform actions across the site without using your mouse to navigate. While shortcuts are useful to save time, they can sometimes make {% data variables.product.prodname_dotcom %} harder to use and less accessible. -All keyboard shortcuts are enabled by default on {% data variables.product.product_name %}, but you can choose to disable character key shortcuts in your accessibility settings. This setting does not affect keyboard shortcuts provided by your web browser or {% data variables.product.prodname_dotcom %} shortcuts that use a modifier key such as `control` or `command`. +All keyboard shortcuts are enabled by default on {% data variables.product.product_name %}, but you can choose to disable character key shortcuts in your accessibility settings. This setting does not affect keyboard shortcuts provided by your web browser or {% data variables.product.prodname_dotcom %} shortcuts that use a modifier key such as Control or Command. ## Managing character key shortcuts From bfe2956ecd30dd56eaf7871b22341fb0bfc95d7d Mon Sep 17 00:00:00 2001 From: Ethan Palm <56270045+ethanpalm@users.noreply.github.com> Date: Mon, 10 Jan 2022 09:01:52 -0800 Subject: [PATCH 17/68] Update broken link (#24160) --- .../identity-and-permissions/team-sync-okta-requirements.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/data/reusables/identity-and-permissions/team-sync-okta-requirements.md b/data/reusables/identity-and-permissions/team-sync-okta-requirements.md index 6d1c34cfed..ced9093009 100644 --- a/data/reusables/identity-and-permissions/team-sync-okta-requirements.md +++ b/data/reusables/identity-and-permissions/team-sync-okta-requirements.md @@ -2,4 +2,4 @@ Before you enable team synchronization for Okta, you or your IdP administrator m - Configure the SAML, SSO, and SCIM integration for your organization using Okta. For more information, see "[Configuring SAML single sign-on and SCIM using Okta](/organizations/managing-saml-single-sign-on-for-your-organization/configuring-saml-single-sign-on-and-scim-using-okta)." - Provide the tenant URL for your Okta instance. -- Generate a valid SSWS token with read-only admin permissions for your Okta installation as a service user. For more information, see [Create the token](https://developer.okta.com/docs/guides/create-an-api-token/create-the-token/) and [Service users](https://help.okta.com/en/prod/Content/Topics/Adv_Server_Access/docs/service-users.htm) in Okta's documentation. +- Generate a valid SSWS token with read-only admin permissions for your Okta installation as a service user. For more information, see [Create the token](https://developer.okta.com/docs/guides/create-an-api-token/create-the-token/) and [Service users](https://help.okta.com/asa/en-us/Content/Topics/Adv_Server_Access/docs/service-users.htm) in Okta's documentation. From e687ff9fd21d77197edc2465bc5c7c5f4bfb5f81 Mon Sep 17 00:00:00 2001 From: jmarlena <6732600+jmarlena@users.noreply.github.com> Date: Mon, 10 Jan 2022 09:21:44 -0800 Subject: [PATCH 18/68] Version content about "enterprise accounts" (#23949) --- .../about-organization-membership.md | 2 +- ...ingle-sign-on-for-your-enterprise-using-okta.md | 1 - ...ization-for-organizations-in-your-enterprise.md | 1 - ...rom-an-organization-to-an-enterprise-account.md | 1 - ...s-for-dependency-insights-in-your-enterprise.md | 1 - ...ies-for-security-settings-in-your-enterprise.md | 1 - ...ng-project-board-policies-in-your-enterprise.md | 1 - ...itory-management-policies-in-your-enterprise.md | 1 - .../enforcing-team-policies-in-your-enterprise.md | 1 - .../adding-organizations-to-your-enterprise.md | 1 - ...ing-unowned-organizations-in-your-enterprise.md | 1 - ...for-organizations-in-your-enterprise-account.md | 1 - ...it-logs-for-organizations-in-your-enterprise.md | 1 - .../inviting-people-to-manage-your-enterprise.md | 1 - ...ing-support-entitlements-for-your-enterprise.md | 1 - .../roles-in-an-enterprise.md | 1 - ...aging-a-users-saml-access-to-your-enterprise.md | 1 - .../viewing-people-in-your-enterprise.md | 1 - .../about-billing-for-your-enterprise.md | 1 - ...ing-an-azure-subscription-to-your-enterprise.md | 1 - .../managing-invoices-for-your-enterprise.md | 1 - ...iption-and-usage-for-your-enterprise-account.md | 1 - .../events/github-event-types.md | 1 - .../access-permissions-on-github.md | 14 ++++++++------ content/get-started/using-github/github-mobile.md | 8 ++++---- .../about-organizations.md | 14 +++++++++----- ...ty-of-your-organizations-dependency-insights.md | 4 +++- .../transferring-organization-ownership.md | 2 +- ...dding-a-billing-manager-to-your-organization.md | 2 +- data/glossaries/external.yml | 2 +- .../gated-features/enterprise-accounts.md | 2 +- .../organizations/internal-repos-enterprise.md | 7 ------- 32 files changed, 29 insertions(+), 50 deletions(-) delete mode 100644 data/reusables/organizations/internal-repos-enterprise.md diff --git a/content/account-and-profile/setting-up-and-managing-your-github-user-account/managing-your-membership-in-organizations/about-organization-membership.md b/content/account-and-profile/setting-up-and-managing-your-github-user-account/managing-your-membership-in-organizations/about-organization-membership.md index 47f926a386..e4db7678d8 100644 --- a/content/account-and-profile/setting-up-and-managing-your-github-user-account/managing-your-membership-in-organizations/about-organization-membership.md +++ b/content/account-and-profile/setting-up-and-managing-your-github-user-account/managing-your-membership-in-organizations/about-organization-membership.md @@ -40,7 +40,7 @@ By default, your organization membership visibility is set to private. You can c {% ifversion fpt or ghec %} -If your organization belongs to an enterprise account, you are automatically a member of the enterprise account and visible to enterprise account owners. For more information, see "[About enterprise accounts](/admin/overview/about-enterprise-accounts)." +If your organization belongs to an enterprise account, you are automatically a member of the enterprise account and visible to enterprise account owners. For more information, see "[About enterprise accounts](/enterprise-cloud@latest/admin/overview/about-enterprise-accounts){% ifversion fpt %}" in the {% data variables.product.prodname_ghe_cloud %} documentation.{% else %}."{% endif %} {% endif %} diff --git a/content/admin/authentication/managing-identity-and-access-for-your-enterprise/configuring-saml-single-sign-on-for-your-enterprise-using-okta.md b/content/admin/authentication/managing-identity-and-access-for-your-enterprise/configuring-saml-single-sign-on-for-your-enterprise-using-okta.md index 19459440e4..800523818b 100644 --- a/content/admin/authentication/managing-identity-and-access-for-your-enterprise/configuring-saml-single-sign-on-for-your-enterprise-using-okta.md +++ b/content/admin/authentication/managing-identity-and-access-for-your-enterprise/configuring-saml-single-sign-on-for-your-enterprise-using-okta.md @@ -1,7 +1,6 @@ --- title: Configuring SAML single sign-on for your enterprise using Okta intro: 'You can use Security Assertion Markup Language (SAML) single sign-on (SSO) with Okta to automatically manage access to your enterprise account on {% data variables.product.product_name %}.' -product: '{% data reusables.gated-features.enterprise-accounts %}' redirect_from: - /github/setting-up-and-managing-your-enterprise/configuring-single-sign-on-for-your-enterprise-account-using-okta - /github/setting-up-and-managing-your-enterprise-account/configuring-saml-single-sign-on-for-your-enterprise-account-using-okta diff --git a/content/admin/authentication/managing-identity-and-access-for-your-enterprise/managing-team-synchronization-for-organizations-in-your-enterprise.md b/content/admin/authentication/managing-identity-and-access-for-your-enterprise/managing-team-synchronization-for-organizations-in-your-enterprise.md index 1b9d0eb84b..95c5251d19 100644 --- a/content/admin/authentication/managing-identity-and-access-for-your-enterprise/managing-team-synchronization-for-organizations-in-your-enterprise.md +++ b/content/admin/authentication/managing-identity-and-access-for-your-enterprise/managing-team-synchronization-for-organizations-in-your-enterprise.md @@ -1,7 +1,6 @@ --- title: Managing team synchronization for organizations in your enterprise intro: 'You can enable team synchronization between an identity provider (IdP) and {% data variables.product.product_name %} to allow organizations owned by your enterprise account to manage team membership through IdP groups.' -product: '{% data reusables.gated-features.enterprise-accounts %}' permissions: Enterprise owners can manage team synchronization for an enterprise account. versions: ghec: '*' diff --git a/content/admin/authentication/managing-identity-and-access-for-your-enterprise/switching-your-saml-configuration-from-an-organization-to-an-enterprise-account.md b/content/admin/authentication/managing-identity-and-access-for-your-enterprise/switching-your-saml-configuration-from-an-organization-to-an-enterprise-account.md index e6e4dd2328..88d845ce8d 100644 --- a/content/admin/authentication/managing-identity-and-access-for-your-enterprise/switching-your-saml-configuration-from-an-organization-to-an-enterprise-account.md +++ b/content/admin/authentication/managing-identity-and-access-for-your-enterprise/switching-your-saml-configuration-from-an-organization-to-an-enterprise-account.md @@ -1,7 +1,6 @@ --- title: Switching your SAML configuration from an organization to an enterprise account intro: Learn special considerations and best practices for replacing an organization-level SAML configuration with an enterprise-level SAML configuration. -product: '{% data reusables.gated-features.enterprise-accounts %}' permissions: Enterprise owners can configure SAML single sign-on for an enterprise account. versions: ghec: '*' diff --git a/content/admin/policies/enforcing-policies-for-your-enterprise/enforcing-policies-for-dependency-insights-in-your-enterprise.md b/content/admin/policies/enforcing-policies-for-your-enterprise/enforcing-policies-for-dependency-insights-in-your-enterprise.md index 3756eb9670..7867d8f11e 100644 --- a/content/admin/policies/enforcing-policies-for-your-enterprise/enforcing-policies-for-dependency-insights-in-your-enterprise.md +++ b/content/admin/policies/enforcing-policies-for-your-enterprise/enforcing-policies-for-dependency-insights-in-your-enterprise.md @@ -2,7 +2,6 @@ title: Enforcing policies for dependency insights in your enterprise intro: 'You can enforce policies for dependency insights within your enterprise''s organizations, or allow policies to be set in each organization.' permissions: Enterprise owners can enforce policies for dependency insights in an enterprise. -product: '{% data reusables.gated-features.enterprise-accounts %}' redirect_from: - /articles/enforcing-a-policy-on-dependency-insights - /articles/enforcing-a-policy-on-dependency-insights-in-your-enterprise-account diff --git a/content/admin/policies/enforcing-policies-for-your-enterprise/enforcing-policies-for-security-settings-in-your-enterprise.md b/content/admin/policies/enforcing-policies-for-your-enterprise/enforcing-policies-for-security-settings-in-your-enterprise.md index 580c1dcf78..848d68d68f 100644 --- a/content/admin/policies/enforcing-policies-for-your-enterprise/enforcing-policies-for-security-settings-in-your-enterprise.md +++ b/content/admin/policies/enforcing-policies-for-your-enterprise/enforcing-policies-for-security-settings-in-your-enterprise.md @@ -2,7 +2,6 @@ title: Enforcing policies for security settings in your enterprise intro: 'You can enforce policies to manage security settings in your enterprise''s organizations, or allow policies to be set in each organization.' permissions: Enterprise owners can enforce policies for security settings in an enterprise. -product: '{% data reusables.gated-features.enterprise-accounts %}' miniTocMaxHeadingLevel: 3 redirect_from: - /articles/enforcing-security-settings-for-organizations-in-your-business-account diff --git a/content/admin/policies/enforcing-policies-for-your-enterprise/enforcing-project-board-policies-in-your-enterprise.md b/content/admin/policies/enforcing-policies-for-your-enterprise/enforcing-project-board-policies-in-your-enterprise.md index 251c60ac98..92779bbbf0 100644 --- a/content/admin/policies/enforcing-policies-for-your-enterprise/enforcing-project-board-policies-in-your-enterprise.md +++ b/content/admin/policies/enforcing-policies-for-your-enterprise/enforcing-project-board-policies-in-your-enterprise.md @@ -2,7 +2,6 @@ title: Enforcing project board policies in your enterprise intro: 'You can enforce policies for projects within your enterprise''s organizations, or allow policies to be set in each organization.' permissions: Enterprise owners can enforce policies for project boards in an enterprise. -product: '{% data reusables.gated-features.enterprise-accounts %}' redirect_from: - /articles/enforcing-project-board-settings-for-organizations-in-your-business-account - /articles/enforcing-project-board-policies-for-organizations-in-your-enterprise-account diff --git a/content/admin/policies/enforcing-policies-for-your-enterprise/enforcing-repository-management-policies-in-your-enterprise.md b/content/admin/policies/enforcing-policies-for-your-enterprise/enforcing-repository-management-policies-in-your-enterprise.md index be790e0250..b7a4825066 100644 --- a/content/admin/policies/enforcing-policies-for-your-enterprise/enforcing-repository-management-policies-in-your-enterprise.md +++ b/content/admin/policies/enforcing-policies-for-your-enterprise/enforcing-repository-management-policies-in-your-enterprise.md @@ -2,7 +2,6 @@ title: Enforcing repository management policies in your enterprise intro: 'You can enforce policies for repository management within your enterprise''s organizations, or allow policies to be set in each organization.' permissions: Enterprise owners can enforce policies for repository management in an enterprise. -product: '{% data reusables.gated-features.enterprise-accounts %}' redirect_from: - /enterprise/admin/installation/configuring-the-default-visibility-of-new-repositories-on-your-appliance - /enterprise/admin/guides/user-management/preventing-users-from-changing-a-repository-s-visibility diff --git a/content/admin/policies/enforcing-policies-for-your-enterprise/enforcing-team-policies-in-your-enterprise.md b/content/admin/policies/enforcing-policies-for-your-enterprise/enforcing-team-policies-in-your-enterprise.md index 14860a36f6..3b95f63b1f 100644 --- a/content/admin/policies/enforcing-policies-for-your-enterprise/enforcing-team-policies-in-your-enterprise.md +++ b/content/admin/policies/enforcing-policies-for-your-enterprise/enforcing-team-policies-in-your-enterprise.md @@ -2,7 +2,6 @@ title: Enforcing team policies in your enterprise intro: 'You can enforce policies for teams in your enterprise''s organizations, or allow policies to be set in each organization.' permissions: Enterprise owners can enforce policies for teams in an enterprise. -product: '{% data reusables.gated-features.enterprise-accounts %}' redirect_from: - /articles/enforcing-team-settings-for-organizations-in-your-business-account - /articles/enforcing-team-policies-for-organizations-in-your-enterprise-account diff --git a/content/admin/user-management/managing-organizations-in-your-enterprise/adding-organizations-to-your-enterprise.md b/content/admin/user-management/managing-organizations-in-your-enterprise/adding-organizations-to-your-enterprise.md index 8e5c3ea588..2ab321db12 100644 --- a/content/admin/user-management/managing-organizations-in-your-enterprise/adding-organizations-to-your-enterprise.md +++ b/content/admin/user-management/managing-organizations-in-your-enterprise/adding-organizations-to-your-enterprise.md @@ -1,7 +1,6 @@ --- title: Adding organizations to your enterprise intro: You can create new organizations or invite existing organizations to manage within your enterprise. -product: '{% data reusables.gated-features.enterprise-accounts %}' redirect_from: - /github/setting-up-and-managing-your-enterprise/managing-organizations-in-your-enterprise-account/adding-organizations-to-your-enterprise-account - /articles/adding-organizations-to-your-enterprise-account diff --git a/content/admin/user-management/managing-organizations-in-your-enterprise/managing-unowned-organizations-in-your-enterprise.md b/content/admin/user-management/managing-organizations-in-your-enterprise/managing-unowned-organizations-in-your-enterprise.md index b902f6b446..4ea1c865ce 100644 --- a/content/admin/user-management/managing-organizations-in-your-enterprise/managing-unowned-organizations-in-your-enterprise.md +++ b/content/admin/user-management/managing-organizations-in-your-enterprise/managing-unowned-organizations-in-your-enterprise.md @@ -1,7 +1,6 @@ --- title: Managing unowned organizations in your enterprise intro: You can become an owner of an organization in your enterprise account that currently has no owners. -product: '{% data reusables.gated-features.enterprise-accounts %}' permissions: Enterprise owners can manage unowned organizations in an enterprise account. redirect_from: - /github/setting-up-and-managing-your-enterprise/managing-organizations-in-your-enterprise-account/managing-unowned-organizations-in-your-enterprise-account diff --git a/content/admin/user-management/managing-organizations-in-your-enterprise/streaming-the-audit-logs-for-organizations-in-your-enterprise-account.md b/content/admin/user-management/managing-organizations-in-your-enterprise/streaming-the-audit-logs-for-organizations-in-your-enterprise-account.md index 01153604dc..1e22462b13 100644 --- a/content/admin/user-management/managing-organizations-in-your-enterprise/streaming-the-audit-logs-for-organizations-in-your-enterprise-account.md +++ b/content/admin/user-management/managing-organizations-in-your-enterprise/streaming-the-audit-logs-for-organizations-in-your-enterprise-account.md @@ -1,7 +1,6 @@ --- title: Streaming the audit logs for organizations in your enterprise account intro: 'You can stream audit and Git events data from {% data variables.product.prodname_dotcom %} to an external data management system.' -product: '{% data reusables.gated-features.enterprise-accounts %}' miniTocMaxHeadingLevel: 3 versions: ghec: '*' diff --git a/content/admin/user-management/managing-organizations-in-your-enterprise/viewing-the-audit-logs-for-organizations-in-your-enterprise.md b/content/admin/user-management/managing-organizations-in-your-enterprise/viewing-the-audit-logs-for-organizations-in-your-enterprise.md index 8ee2d906ec..b931319e81 100644 --- a/content/admin/user-management/managing-organizations-in-your-enterprise/viewing-the-audit-logs-for-organizations-in-your-enterprise.md +++ b/content/admin/user-management/managing-organizations-in-your-enterprise/viewing-the-audit-logs-for-organizations-in-your-enterprise.md @@ -1,7 +1,6 @@ --- title: Viewing the audit logs for organizations in your enterprise intro: Enterprise owners can view aggregated actions from all of the organizations owned by an enterprise account in its audit log. -product: '{% data reusables.gated-features.enterprise-accounts %}' redirect_from: - /github/setting-up-and-managing-your-enterprise/managing-organizations-in-your-enterprise-account/viewing-the-audit-logs-for-organizations-in-your-enterprise-account - /articles/viewing-the-audit-logs-for-organizations-in-your-business-account diff --git a/content/admin/user-management/managing-users-in-your-enterprise/inviting-people-to-manage-your-enterprise.md b/content/admin/user-management/managing-users-in-your-enterprise/inviting-people-to-manage-your-enterprise.md index bdb7d0b4f9..250b63d8bd 100644 --- a/content/admin/user-management/managing-users-in-your-enterprise/inviting-people-to-manage-your-enterprise.md +++ b/content/admin/user-management/managing-users-in-your-enterprise/inviting-people-to-manage-your-enterprise.md @@ -1,7 +1,6 @@ --- title: Inviting people to manage your enterprise intro: 'You can {% ifversion ghec %}invite people to become enterprise owners or billing managers for{% elsif ghes %}add enterprise owners to{% endif %} your enterprise account. You can also remove enterprise owners {% ifversion ghec %}or billing managers {% endif %}who no longer need access to the enterprise account.' -product: '{% data reusables.gated-features.enterprise-accounts %}' permissions: 'Enterprise owners can {% ifversion ghec %}invite other people to become{% elsif ghes %}add{% endif %} additional enterprise administrators.' redirect_from: - /github/setting-up-and-managing-your-enterprise/managing-users-in-your-enterprise/inviting-people-to-manage-your-enterprise diff --git a/content/admin/user-management/managing-users-in-your-enterprise/managing-support-entitlements-for-your-enterprise.md b/content/admin/user-management/managing-users-in-your-enterprise/managing-support-entitlements-for-your-enterprise.md index 691d68f393..0bfadd6101 100644 --- a/content/admin/user-management/managing-users-in-your-enterprise/managing-support-entitlements-for-your-enterprise.md +++ b/content/admin/user-management/managing-users-in-your-enterprise/managing-support-entitlements-for-your-enterprise.md @@ -1,7 +1,6 @@ --- title: Managing support entitlements for your enterprise intro: You can grant enterprise members the ability to manage support tickets for your enterprise account. -product: '{% data reusables.gated-features.enterprise-accounts %}' redirect_from: - /github/setting-up-and-managing-your-enterprise/managing-users-in-your-enterprise/managing-support-entitlements-for-your-enterprise versions: diff --git a/content/admin/user-management/managing-users-in-your-enterprise/roles-in-an-enterprise.md b/content/admin/user-management/managing-users-in-your-enterprise/roles-in-an-enterprise.md index 9fb394b311..e256768655 100644 --- a/content/admin/user-management/managing-users-in-your-enterprise/roles-in-an-enterprise.md +++ b/content/admin/user-management/managing-users-in-your-enterprise/roles-in-an-enterprise.md @@ -1,7 +1,6 @@ --- title: Roles in an enterprise intro: 'Everyone in an enterprise is a member of the enterprise. To control access to your enterprise''s settings and data, you can assign different roles to members of your enterprise.' -product: '{% data reusables.gated-features.enterprise-accounts %}' redirect_from: - /github/setting-up-and-managing-your-enterprise/managing-users-in-your-enterprise/roles-in-an-enterprise - /github/setting-up-and-managing-your-enterprise-account/roles-for-an-enterprise-account diff --git a/content/admin/user-management/managing-users-in-your-enterprise/viewing-and-managing-a-users-saml-access-to-your-enterprise.md b/content/admin/user-management/managing-users-in-your-enterprise/viewing-and-managing-a-users-saml-access-to-your-enterprise.md index d1577b8174..5df6306c2e 100644 --- a/content/admin/user-management/managing-users-in-your-enterprise/viewing-and-managing-a-users-saml-access-to-your-enterprise.md +++ b/content/admin/user-management/managing-users-in-your-enterprise/viewing-and-managing-a-users-saml-access-to-your-enterprise.md @@ -2,7 +2,6 @@ title: Viewing and managing a user's SAML access to your enterprise intro: 'You can view and revoke an enterprise member''s linked identity, active sessions, and authorized credentials.' permissions: Enterprise owners can view and manage a member's SAML access to an organization. -product: '{% data reusables.gated-features.enterprise-accounts %}' redirect_from: - /github/setting-up-and-managing-your-enterprise/viewing-and-managing-a-users-saml-access-to-your-enterprise-account - /github/setting-up-and-managing-your-enterprise-account/viewing-and-managing-a-users-saml-access-to-your-enterprise-account diff --git a/content/admin/user-management/managing-users-in-your-enterprise/viewing-people-in-your-enterprise.md b/content/admin/user-management/managing-users-in-your-enterprise/viewing-people-in-your-enterprise.md index 477627f28a..d84d677ab1 100644 --- a/content/admin/user-management/managing-users-in-your-enterprise/viewing-people-in-your-enterprise.md +++ b/content/admin/user-management/managing-users-in-your-enterprise/viewing-people-in-your-enterprise.md @@ -1,7 +1,6 @@ --- title: Viewing people in your enterprise intro: 'To audit access to enterprise-owned resources or user license usage, enterprise owners can view every administrator and member of the enterprise.' -product: '{% data reusables.gated-features.enterprise-accounts %}' redirect_from: - /github/setting-up-and-managing-your-enterprise-account/viewing-people-in-your-enterprise-account - /articles/viewing-people-in-your-enterprise-account diff --git a/content/billing/managing-billing-for-your-github-account/about-billing-for-your-enterprise.md b/content/billing/managing-billing-for-your-github-account/about-billing-for-your-enterprise.md index d3615d9aa8..0d45bff9b1 100644 --- a/content/billing/managing-billing-for-your-github-account/about-billing-for-your-enterprise.md +++ b/content/billing/managing-billing-for-your-github-account/about-billing-for-your-enterprise.md @@ -1,7 +1,6 @@ --- title: About billing for your enterprise intro: You can view billing information for your enterprise. -product: '{% data reusables.gated-features.enterprise-accounts %}' redirect_from: - /admin/overview/managing-billing-for-your-enterprise - /enterprise/admin/installation/managing-billing-for-github-enterprise diff --git a/content/billing/managing-billing-for-your-github-account/connecting-an-azure-subscription-to-your-enterprise.md b/content/billing/managing-billing-for-your-github-account/connecting-an-azure-subscription-to-your-enterprise.md index 92bc0b3b49..f02a62f158 100644 --- a/content/billing/managing-billing-for-your-github-account/connecting-an-azure-subscription-to-your-enterprise.md +++ b/content/billing/managing-billing-for-your-github-account/connecting-an-azure-subscription-to-your-enterprise.md @@ -1,7 +1,6 @@ --- title: Connecting an Azure subscription to your enterprise intro: 'You can use your Microsoft Enterprise Agreement to enable and pay for {% data variables.product.prodname_actions %} and {% data variables.product.prodname_registry %} usage beyond the included amounts for your enterprise.' -product: '{% data reusables.gated-features.enterprise-accounts %}' redirect_from: - /github/setting-up-and-managing-your-enterprise/managing-your-enterprise-account/connecting-an-azure-subscription-to-your-enterprise - /github/setting-up-and-managing-billing-and-payments-on-github/connecting-an-azure-subscription-to-your-enterprise diff --git a/content/billing/managing-billing-for-your-github-account/managing-invoices-for-your-enterprise.md b/content/billing/managing-billing-for-your-github-account/managing-invoices-for-your-enterprise.md index f744f0fb04..a48523abbd 100644 --- a/content/billing/managing-billing-for-your-github-account/managing-invoices-for-your-enterprise.md +++ b/content/billing/managing-billing-for-your-github-account/managing-invoices-for-your-enterprise.md @@ -2,7 +2,6 @@ title: Managing invoices for your enterprise shortTitle: Manage invoices intro: 'You can view, pay, or download a current invoice for your enterprise, and you can view your payment history.' -product: '{% data reusables.gated-features.enterprise-accounts %}' versions: ghec: '*' type: how_to diff --git a/content/billing/managing-billing-for-your-github-account/viewing-the-subscription-and-usage-for-your-enterprise-account.md b/content/billing/managing-billing-for-your-github-account/viewing-the-subscription-and-usage-for-your-enterprise-account.md index 8caeb64051..58ec0b2f36 100644 --- a/content/billing/managing-billing-for-your-github-account/viewing-the-subscription-and-usage-for-your-enterprise-account.md +++ b/content/billing/managing-billing-for-your-github-account/viewing-the-subscription-and-usage-for-your-enterprise-account.md @@ -1,7 +1,6 @@ --- title: Viewing the subscription and usage for your enterprise account intro: 'You can view the current {% ifversion ghec %}subscription, {% endif %}license usage{% ifversion ghec %}, invoices, payment history, and other billing information{% endif %} for {% ifversion ghec %}your enterprise account{% elsif ghes %}{% data variables.product.product_location_enterprise %}{% endif %}.' -product: '{% data reusables.gated-features.enterprise-accounts %}' permissions: 'Enterprise owners {% ifversion ghec %}and billing managers {% endif %}can access and manage all billing settings for enterprise accounts.' redirect_from: - /github/setting-up-and-managing-your-enterprise/managing-your-enterprise-account/viewing-the-subscription-and-usage-for-your-enterprise-account diff --git a/content/developers/webhooks-and-events/events/github-event-types.md b/content/developers/webhooks-and-events/events/github-event-types.md index 9fc83a14a9..e231c58afb 100644 --- a/content/developers/webhooks-and-events/events/github-event-types.md +++ b/content/developers/webhooks-and-events/events/github-event-types.md @@ -1,7 +1,6 @@ --- title: GitHub event types intro: 'For the {% data variables.product.prodname_dotcom %} Events API, learn about each event type, the triggering action on {% data variables.product.prodname_dotcom %}, and each event''s unique properties.' -product: '{% data reusables.gated-features.enterprise-accounts %}' redirect_from: - /v3/activity/event_types - /developers/webhooks-and-events/github-event-types diff --git a/content/get-started/learning-about-github/access-permissions-on-github.md b/content/get-started/learning-about-github/access-permissions-on-github.md index 07127770d3..1c3d381166 100644 --- a/content/get-started/learning-about-github/access-permissions-on-github.md +++ b/content/get-started/learning-about-github/access-permissions-on-github.md @@ -37,16 +37,18 @@ Organization members can have *owner*{% ifversion fpt or ghec %}, *billing manag - "[Repository roles for an organization](/organizations/managing-access-to-your-organizations-repositories/repository-roles-for-an-organization)" - "[About teams](/articles/about-teams)" -{% ifversion fpt or ghec %} - ## Enterprise accounts -*Enterprise owners* have ultimate power over the enterprise account and can take every action in the enterprise account. *Billing managers* can manage your enterprise account's billing settings. Members and outside collaborators of organizations owned by your enterprise account are automatically members of the enterprise account, although they have no access to the enterprise account itself or its settings. For more information, see "[Roles in an enterprise](/admin/user-management/managing-users-in-your-enterprise/roles-in-an-enterprise)." +{% ifversion fpt %} +{% data reusables.gated-features.enterprise-accounts %} -If an enterprise uses {% data variables.product.prodname_emus %}, members are provisioned as new user accounts on {% data variables.product.prodname_dotcom %} and are fully managed by the identity provider. The {% data variables.product.prodname_managed_users %} have read-only access to repositories that are not a part of their enterprise and cannot interact with users that are not also members of the enterprise. Within the organizations owned by the enterprise, the {% data variables.product.prodname_managed_users %} can be granted the same granular access levels available for regular organizations. For more information, see "[About {% data variables.product.prodname_emus %}]({% ifversion fpt %}/enterprise-cloud@latest{% endif %}/admin/authentication/managing-your-enterprise-users-with-your-identity-provider/about-enterprise-managed-users){% ifversion fpt %}" in the {% data variables.product.prodname_ghe_cloud %} documentation{% else %}."{% endif %} - -{% data reusables.gated-features.enterprise-accounts %} +For more information about permissions for enterprise accounts, see [the {% data variables.product.prodname_ghe_cloud %} documentation](/enterprise-cloud@latest/get-started/learning-about-github/access-permissions-on-github). +{% else %} +*Enterprise owners* have ultimate power over the enterprise account and can take every action in the enterprise account.{% ifversion ghec or ghes %} *Billing managers* can manage your enterprise account's billing settings.{% endif %} Members and outside collaborators of organizations owned by your enterprise account are automatically members of the enterprise account, although they have no access to the enterprise account itself or its settings. For more information, see "[Roles in an enterprise](/admin/user-management/managing-users-in-your-enterprise/roles-in-an-enterprise)." +{% ifversion ghec %} +If an enterprise uses {% data variables.product.prodname_emus %}, members are provisioned as new user accounts on {% data variables.product.prodname_dotcom %} and are fully managed by the identity provider. The {% data variables.product.prodname_managed_users %} have read-only access to repositories that are not a part of their enterprise and cannot interact with users that are not also members of the enterprise. Within the organizations owned by the enterprise, the {% data variables.product.prodname_managed_users %} can be granted the same granular access levels available for regular organizations. For more information, see "[About {% data variables.product.prodname_emus %}](/admin/authentication/managing-your-enterprise-users-with-your-identity-provider/about-enterprise-managed-users)." +{% endif %} {% endif %} ## Further reading diff --git a/content/get-started/using-github/github-mobile.md b/content/get-started/using-github/github-mobile.md index 76e50e0dd8..2625518bd9 100644 --- a/content/get-started/using-github/github-mobile.md +++ b/content/get-started/using-github/github-mobile.md @@ -34,7 +34,7 @@ To install {% data variables.product.prodname_mobile %} for Android or iOS, see ## Managing accounts -You can be simultaneously signed into mobile with one user account on {% data variables.product.prodname_dotcom_the_website %} and one user account on {% data variables.product.prodname_ghe_server %}. +You can be simultaneously signed into mobile with one user account on {% data variables.product.prodname_dotcom_the_website %} and one user account on {% data variables.product.prodname_ghe_server %}. For more information about our different products, see "[{% data variables.product.company_short %}'s products](/get-started/learning-about-github/githubs-products)." {% data reusables.mobile.push-notifications-on-ghes %} @@ -50,11 +50,11 @@ During the beta for {% data variables.product.prodname_mobile %} with {% data va ### Adding, switching, or signing out of accounts -You can sign into mobile with a user account on {% data variables.product.product_location %}. At the bottom of the app, long-press {% octicon "person" aria-label="The person icon" %} **Profile**, then tap {% octicon "plus" aria-label="The plus icon" %} **Add Enterprise Account**. Follow the prompts to sign in. +You can sign into mobile with a user account on {% data variables.product.prodname_ghe_server %}. At the bottom of the app, long-press {% octicon "person" aria-label="The person icon" %} **Profile**, then tap {% octicon "plus" aria-label="The plus icon" %} **Add Enterprise Account**. Follow the prompts to sign in. -After you sign into mobile with a user account on {% data variables.product.product_location %}, you can switch between the account and your account on {% data variables.product.prodname_dotcom_the_website %}. At the bottom of the app, long-press {% octicon "person" aria-label="The person icon" %} **Profile**, then tap the account you want to switch to. +After you sign into mobile with a user account on {% data variables.product.prodname_ghe_server %}, you can switch between the account and your account on {% data variables.product.prodname_dotcom_the_website %}. At the bottom of the app, long-press {% octicon "person" aria-label="The person icon" %} **Profile**, then tap the account you want to switch to. -If you no longer need to access data for your user account on {% data variables.product.product_location %} from {% data variables.product.prodname_mobile %}, you can sign out of the account. At the bottom of the app, long-press {% octicon "person" aria-label="The person icon" %} **Profile**, swipe left on the account to sign out of, then tap **Sign out**. +If you no longer need to access data for your user account on {% data variables.product.prodname_ghe_server %} from {% data variables.product.prodname_mobile %}, you can sign out of the account. At the bottom of the app, long-press {% octicon "person" aria-label="The person icon" %} **Profile**, swipe left on the account to sign out of, then tap **Sign out**. ## Supported languages for {% data variables.product.prodname_mobile %} diff --git a/content/organizations/collaborating-with-groups-in-organizations/about-organizations.md b/content/organizations/collaborating-with-groups-in-organizations/about-organizations.md index d5073f08ca..f898eb21a5 100644 --- a/content/organizations/collaborating-with-groups-in-organizations/about-organizations.md +++ b/content/organizations/collaborating-with-groups-in-organizations/about-organizations.md @@ -20,17 +20,21 @@ topics: {% data reusables.organizations.org-ownership-recommendation %} For more information, see "[Maintaining ownership continuity for your organization](/organizations/managing-peoples-access-to-your-organization-with-roles/maintaining-ownership-continuity-for-your-organization)." -{% ifversion fpt or ghec %} ## Organizations and enterprise accounts -Enterprise accounts are a feature of {% data variables.product.prodname_ghe_cloud %} that allow owners to centrally manage policy and billing for multiple organizations. +{% ifversion fpt %} +Enterprise accounts are a feature of {% data variables.product.prodname_ghe_cloud %} that allow owners to centrally manage policy and billing for multiple organizations. For more information, see [the {% data variables.product.prodname_ghe_cloud %} documentation](/enterprise-cloud@latest/organizations/collaborating-with-groups-in-organizations/about-organizations). +{% else %} +{% ifversion ghec %}For organizations that belong to an enterprise account, billing is managed at the enterprise account level, and billing settings are not available at the organization level.{% endif %} Enterprise owners can set policy for all organizations in the enterprise account or allow organization owners to set the policy at the organization level. Organization owners cannot change settings enforced for your organization at the enterprise account level. If you have questions about a policy or setting for your organization, contact the owner of your enterprise account. -For organizations that belong to an enterprise account, billing is managed at the enterprise account level, and billing settings are not available at the organization level. Enterprise owners can set policy for all organizations in the enterprise account or allow organization owners to set the policy at the organization level. Organization owners cannot change settings enforced for your organization at the enterprise account level. If you have questions about a policy or setting for your organization, contact the owner of your enterprise account. - -{% data reusables.enterprise.create-an-enterprise-account %} For more information, see "[Creating an enterprise account]({% ifversion fpt %}/enterprise-cloud@latest{% endif %}/admin/overview/creating-an-enterprise-account){% ifversion ghec %}."{% else %}" in the {% data variables.product.prodname_ghe_cloud %} documentation.{% endif %} +{% ifversion ghec %} +{% data reusables.enterprise.create-an-enterprise-account %} For more information, see "[Creating an enterprise account](/admin/overview/creating-an-enterprise-account)." {% data reusables.enterprise-accounts.invite-organization %} +{% endif %} +{% endif %} +{% ifversion fpt or ghec %} ## Terms of service and data protection for organizations An entity, such as a company, non-profit, or group, can agree to the Standard Terms of Service or the Corporate Terms of Service for their organization. For more information, see "[Upgrading to the Corporate Terms of Service](/articles/upgrading-to-the-corporate-terms-of-service)." diff --git a/content/organizations/managing-organization-settings/changing-the-visibility-of-your-organizations-dependency-insights.md b/content/organizations/managing-organization-settings/changing-the-visibility-of-your-organizations-dependency-insights.md index 2465aeb1de..0374fccbee 100644 --- a/content/organizations/managing-organization-settings/changing-the-visibility-of-your-organizations-dependency-insights.md +++ b/content/organizations/managing-organization-settings/changing-the-visibility-of-your-organizations-dependency-insights.md @@ -16,7 +16,9 @@ shortTitle: Change insight visibility Organization owners can set limitations for viewing organization dependency insights. All members of an organization can view organization dependency insights by default. -Enterprise owners can set limitations for viewing organization dependency insights on all organizations in your enterprise account. For more information, see "[Enforcing policies for dependency insights in your enterprise](/enterprise-cloud@latest/admin/policies/enforcing-policies-for-your-enterprise/enforcing-policies-for-dependency-insights-in-your-enterprise)." +{% ifversion ghec %} +Enterprise owners can set limitations for viewing organization dependency insights on all organizations in your enterprise account. For more information, see "[Enforcing policies for dependency insights in your enterprise](/admin/policies/enforcing-policies-for-your-enterprise/enforcing-policies-for-dependency-insights-in-your-enterprise)." +{% endif %} {% data reusables.profile.access_org %} {% data reusables.profile.org_settings %} diff --git a/content/organizations/managing-organization-settings/transferring-organization-ownership.md b/content/organizations/managing-organization-settings/transferring-organization-ownership.md index da79cb679b..1f633c3f47 100644 --- a/content/organizations/managing-organization-settings/transferring-organization-ownership.md +++ b/content/organizations/managing-organization-settings/transferring-organization-ownership.md @@ -15,7 +15,7 @@ topics: - Teams shortTitle: Transfer ownership --- -{% ifversion fpt or ghec %} +{% ifversion ghec %} {% note %} **Note:** {% data reusables.enterprise-accounts.invite-organization %} diff --git a/content/organizations/managing-peoples-access-to-your-organization-with-roles/adding-a-billing-manager-to-your-organization.md b/content/organizations/managing-peoples-access-to-your-organization-with-roles/adding-a-billing-manager-to-your-organization.md index 0c6f49db2d..07439a142e 100644 --- a/content/organizations/managing-peoples-access-to-your-organization-with-roles/adding-a-billing-manager-to-your-organization.md +++ b/content/organizations/managing-peoples-access-to-your-organization-with-roles/adding-a-billing-manager-to-your-organization.md @@ -53,7 +53,7 @@ Billing managers **are not** able to: {% ifversion ghec %} {% note %} -**Note:** If your organization is managed using [Enterprise Accounts](/github/setting-up-and-managing-your-enterprise/managing-your-enterprise-account/about-enterprise-accounts) you will not be able to invite Billing Managers at the organization level. +**Note:** If your organization is owned by an enterprise account, you cannot invite billing managers at the organization level. For more information, see "[About enterprise accounts](/admin/overview/about-enterprise-accounts)." {% endnote %} {% endif %} diff --git a/data/glossaries/external.yml b/data/glossaries/external.yml index 3685fe5a6e..c9ad845103 100644 --- a/data/glossaries/external.yml +++ b/data/glossaries/external.yml @@ -211,7 +211,7 @@ - term: email notifications description: Notifications sent to a user's email address. - term: enterprise account - description: Enterprise accounts allow you to centrally manage policy and billing for multiple {% data variables.product.prodname_dotcom_the_website %} organizations. {% data reusables.gated-features.enterprise-accounts %} + description: Enterprise accounts allow you to centrally manage policy and billing for multiple organizations. {% data reusables.gated-features.enterprise-accounts %} - term: Explorer description: >- An instance of GraphiQL, which is a "graphical interactive in-browser GraphQL diff --git a/data/reusables/gated-features/enterprise-accounts.md b/data/reusables/gated-features/enterprise-accounts.md index 9e32c5025e..7953568f7e 100644 --- a/data/reusables/gated-features/enterprise-accounts.md +++ b/data/reusables/gated-features/enterprise-accounts.md @@ -1 +1 @@ -Enterprise accounts are available with {% data variables.product.prodname_ghe_cloud %}{% ifversion ghae %}, {% data variables.product.prodname_ghe_managed %},{% endif %} and {% data variables.product.prodname_ghe_server %}. For more information, see "[About enterprise accounts]({% ifversion fpt or ghec %}/enterprise-cloud@latest{% endif %}/admin/overview/about-enterprise-accounts)." +Enterprise accounts are available with {% data variables.product.prodname_ghe_cloud %}{% ifversion ghae %}, {% data variables.product.prodname_ghe_managed %},{% endif %} and {% data variables.product.prodname_ghe_server %}. For more information, see "[About enterprise accounts]({% ifversion fpt %}/enterprise-cloud@latest{% endif %}/admin/overview/about-enterprise-accounts){% ifversion fpt %}" in the {% data variables.product.prodname_ghe_cloud %} documentation.{% else %}."{% endif %} diff --git a/data/reusables/organizations/internal-repos-enterprise.md b/data/reusables/organizations/internal-repos-enterprise.md deleted file mode 100644 index d3b55e1d1b..0000000000 --- a/data/reusables/organizations/internal-repos-enterprise.md +++ /dev/null @@ -1,7 +0,0 @@ -{% ifversion fpt or ghec %} -{% note %} - -**Note:** Internal repositories are available for organizations that are part of an enterprise account. For more information, see "[About repositories](/repositories/creating-and-managing-repositories/about-repositories#about-repository-visibility)." - -{% endnote %} -{% endif %} From ab4416eefa858e9e56b7158cd9581a6468e9013d Mon Sep 17 00:00:00 2001 From: GitHub Actions Date: Mon, 10 Jan 2022 18:11:02 +0000 Subject: [PATCH 19/68] update search indexes --- lib/search/indexes/github-docs-3.0-cn-records.json.br | 4 ++-- lib/search/indexes/github-docs-3.0-cn.json.br | 4 ++-- lib/search/indexes/github-docs-3.0-en-records.json.br | 4 ++-- lib/search/indexes/github-docs-3.0-en.json.br | 4 ++-- lib/search/indexes/github-docs-3.0-es-records.json.br | 4 ++-- lib/search/indexes/github-docs-3.0-es.json.br | 4 ++-- lib/search/indexes/github-docs-3.0-ja-records.json.br | 4 ++-- lib/search/indexes/github-docs-3.0-ja.json.br | 4 ++-- lib/search/indexes/github-docs-3.0-pt-records.json.br | 4 ++-- lib/search/indexes/github-docs-3.0-pt.json.br | 4 ++-- lib/search/indexes/github-docs-3.1-cn-records.json.br | 4 ++-- lib/search/indexes/github-docs-3.1-cn.json.br | 4 ++-- lib/search/indexes/github-docs-3.1-en-records.json.br | 4 ++-- lib/search/indexes/github-docs-3.1-en.json.br | 4 ++-- lib/search/indexes/github-docs-3.1-es-records.json.br | 4 ++-- lib/search/indexes/github-docs-3.1-es.json.br | 4 ++-- lib/search/indexes/github-docs-3.1-ja-records.json.br | 4 ++-- lib/search/indexes/github-docs-3.1-ja.json.br | 4 ++-- lib/search/indexes/github-docs-3.1-pt-records.json.br | 4 ++-- lib/search/indexes/github-docs-3.1-pt.json.br | 4 ++-- 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-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 ++-- 70 files changed, 140 insertions(+), 140 deletions(-) diff --git a/lib/search/indexes/github-docs-3.0-cn-records.json.br b/lib/search/indexes/github-docs-3.0-cn-records.json.br index 501fe33769..64f94f70fa 100644 --- a/lib/search/indexes/github-docs-3.0-cn-records.json.br +++ b/lib/search/indexes/github-docs-3.0-cn-records.json.br @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:a9d44ca7ada0f2f0eaa554439ff0a604cf2a8b732ea198f8a62b656272ff0f6d -size 614298 +oid sha256:6e3a6f602db7d799cb1de0b7691be469e3a39f43f22012bf856d7518411fe697 +size 614283 diff --git a/lib/search/indexes/github-docs-3.0-cn.json.br b/lib/search/indexes/github-docs-3.0-cn.json.br index 61345fb8b0..b069368694 100644 --- a/lib/search/indexes/github-docs-3.0-cn.json.br +++ b/lib/search/indexes/github-docs-3.0-cn.json.br @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:e94bcabff67497771bb35355d82a1469f01652ec637fc97348c5cbf1db5548a4 -size 1746776 +oid sha256:8cb793d0ab3d2eb1ae32a095222889505c7a90b607d14db5f1b42619c1c39a21 +size 1745981 diff --git a/lib/search/indexes/github-docs-3.0-en-records.json.br b/lib/search/indexes/github-docs-3.0-en-records.json.br index 399bc89c55..5b52fc686d 100644 --- a/lib/search/indexes/github-docs-3.0-en-records.json.br +++ b/lib/search/indexes/github-docs-3.0-en-records.json.br @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:4a50facab66724a4b513f35acec6a359039ddcb78dead1352eebf80959aa1c91 -size 953597 +oid sha256:cddd81141a9e4768598f439ca3b16f2f2c2652c0cb7ff0d291e774a3ce3ce0cd +size 953503 diff --git a/lib/search/indexes/github-docs-3.0-en.json.br b/lib/search/indexes/github-docs-3.0-en.json.br index 264c1275e0..9bb61d0b8e 100644 --- a/lib/search/indexes/github-docs-3.0-en.json.br +++ b/lib/search/indexes/github-docs-3.0-en.json.br @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:33c1eff715646e486598beb9873cbb356bb013b11bc47f30fc4337a75dbb3e11 -size 3908721 +oid sha256:9bb7cceca7e6d4db6fd4708c8c66d6a56fa62a4b8ac2cb0e75362becb790e1e7 +size 3909026 diff --git a/lib/search/indexes/github-docs-3.0-es-records.json.br b/lib/search/indexes/github-docs-3.0-es-records.json.br index ec44a99adb..bfd9b4bf24 100644 --- a/lib/search/indexes/github-docs-3.0-es-records.json.br +++ b/lib/search/indexes/github-docs-3.0-es-records.json.br @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:5760957b3ec4372b756d32fbf6675fcc30fa4553be61f968ae4ea3e0a9713e9f -size 583248 +oid sha256:b6dcb527bf1be1a9c0475c8754e01ec3e6b05f5ced3b1e97808221ad5ccf31db +size 583261 diff --git a/lib/search/indexes/github-docs-3.0-es.json.br b/lib/search/indexes/github-docs-3.0-es.json.br index 71dba7a84d..ae46daf50b 100644 --- a/lib/search/indexes/github-docs-3.0-es.json.br +++ b/lib/search/indexes/github-docs-3.0-es.json.br @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:615d7ca5b5b189280ad5ad198abe640b0c2f97787ede907606a316d255ca6b25 -size 2696776 +oid sha256:20481f17463efcf81eaeed471b50435cb201fa41ad0678687b71a32f731cf844 +size 2697083 diff --git a/lib/search/indexes/github-docs-3.0-ja-records.json.br b/lib/search/indexes/github-docs-3.0-ja-records.json.br index 0d42408961..0e726f6f78 100644 --- a/lib/search/indexes/github-docs-3.0-ja-records.json.br +++ b/lib/search/indexes/github-docs-3.0-ja-records.json.br @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:c0ba9e6e9cdfab8e1bceb578c72622236d649a7b9aa04031fa6fccfb06720732 -size 617767 +oid sha256:3bdd5d45f4956ea256974f2076e35d8bdf59c59fc7bc041e70196a930599b332 +size 617848 diff --git a/lib/search/indexes/github-docs-3.0-ja.json.br b/lib/search/indexes/github-docs-3.0-ja.json.br index 91bc84db1d..9cd10dda3d 100644 --- a/lib/search/indexes/github-docs-3.0-ja.json.br +++ b/lib/search/indexes/github-docs-3.0-ja.json.br @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:8461aa7104f4ccfb1ffe864409fa1d504980cf76db6cdb7f31acf5d14936a10e -size 3476307 +oid sha256:721fbfc4f0847e5ef2b02619e4f6cd63da0aa48776a09f7b4964f540cdaf1b0f +size 3476088 diff --git a/lib/search/indexes/github-docs-3.0-pt-records.json.br b/lib/search/indexes/github-docs-3.0-pt-records.json.br index 2aec1d4d25..da0c9f5b27 100644 --- a/lib/search/indexes/github-docs-3.0-pt-records.json.br +++ b/lib/search/indexes/github-docs-3.0-pt-records.json.br @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:6b99cc10c6c715cc0f3f08611664ce49c2e391748832c2c0df1f69514f0fbac7 -size 596030 +oid sha256:dde8d0aea0880f49158d07e985697760912494ee8a66c6d126a3cc5eff7b70cf +size 595943 diff --git a/lib/search/indexes/github-docs-3.0-pt.json.br b/lib/search/indexes/github-docs-3.0-pt.json.br index 0bddf741d4..9018a627c9 100644 --- a/lib/search/indexes/github-docs-3.0-pt.json.br +++ b/lib/search/indexes/github-docs-3.0-pt.json.br @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:dd569040437f70529d02abe54a7bb7021d17a334c60bb8ce8fafcb274805f789 -size 2817897 +oid sha256:46710c805c2d81f16a3eebfe942d59042a12a70d9423f58813e573c3e84be790 +size 2818167 diff --git a/lib/search/indexes/github-docs-3.1-cn-records.json.br b/lib/search/indexes/github-docs-3.1-cn-records.json.br index caa4a290f3..ade0a0c3b3 100644 --- a/lib/search/indexes/github-docs-3.1-cn-records.json.br +++ b/lib/search/indexes/github-docs-3.1-cn-records.json.br @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:c24404de39659893a3620f465e37548c3920bf4f5d102d8c59687cbda270e843 -size 627852 +oid sha256:29e83f321dd4b63b80b12aa8b4ef0449f16d8b3d6cd31fe09fdf66eec04e9c02 +size 627788 diff --git a/lib/search/indexes/github-docs-3.1-cn.json.br b/lib/search/indexes/github-docs-3.1-cn.json.br index c183f1089d..fb81eff74e 100644 --- a/lib/search/indexes/github-docs-3.1-cn.json.br +++ b/lib/search/indexes/github-docs-3.1-cn.json.br @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:c9cb3e40e2e5d3a4cc87df1e697f3ff5a49ca103c7aa50242ce43b33197f5453 -size 1787962 +oid sha256:12b51d78483aac8b6b6321964613893a88afc2a91b04af479b8e382ef37a1682 +size 1787536 diff --git a/lib/search/indexes/github-docs-3.1-en-records.json.br b/lib/search/indexes/github-docs-3.1-en-records.json.br index 3c62b5d8fe..71d857f547 100644 --- a/lib/search/indexes/github-docs-3.1-en-records.json.br +++ b/lib/search/indexes/github-docs-3.1-en-records.json.br @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:5b7f669b90194d4559cb9cf9e7f070115c2702cfc10025ebebd3f8985c7d31ac -size 978548 +oid sha256:46270df1084356585ab13d6aca4ae72f09af1c3e27e9f1e6bfccd661a1e7ea15 +size 978475 diff --git a/lib/search/indexes/github-docs-3.1-en.json.br b/lib/search/indexes/github-docs-3.1-en.json.br index 503a78bd3a..8bd860bf7e 100644 --- a/lib/search/indexes/github-docs-3.1-en.json.br +++ b/lib/search/indexes/github-docs-3.1-en.json.br @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:df15a0e8a191f8932ad26e9c7f37815b8f81d11516abaaf2dd26ea2c2d1eb5fc -size 3999779 +oid sha256:98f6ef176c2014cf6bf8eb53e680b84c3775d43e4aac32b36e9b4b70cea4867e +size 4001238 diff --git a/lib/search/indexes/github-docs-3.1-es-records.json.br b/lib/search/indexes/github-docs-3.1-es-records.json.br index e4f487a59d..2690637009 100644 --- a/lib/search/indexes/github-docs-3.1-es-records.json.br +++ b/lib/search/indexes/github-docs-3.1-es-records.json.br @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:4cdcc358695761c9aef100b0a2d6b762638174426593bd2260aaf0de744aa1cd -size 595438 +oid sha256:d00332c5e5152a24471c66bf0ad5559d2abd208d9b598307d17a97825361d27e +size 595385 diff --git a/lib/search/indexes/github-docs-3.1-es.json.br b/lib/search/indexes/github-docs-3.1-es.json.br index 1a3a3f23cd..2c1684f0f3 100644 --- a/lib/search/indexes/github-docs-3.1-es.json.br +++ b/lib/search/indexes/github-docs-3.1-es.json.br @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:a75147b07d04927c9cbd6312a10c145e091b9a1e926fb69aef03ae807a2ccc59 -size 2759162 +oid sha256:49b6d02730bb7f68453267bf5745f530a7407d7b899a7473a4b3bc00befd16af +size 2759834 diff --git a/lib/search/indexes/github-docs-3.1-ja-records.json.br b/lib/search/indexes/github-docs-3.1-ja-records.json.br index fe35e78b6e..b95cd4b0e8 100644 --- a/lib/search/indexes/github-docs-3.1-ja-records.json.br +++ b/lib/search/indexes/github-docs-3.1-ja-records.json.br @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:b940ee9e932de7de555baeaeff4021652c0391ce600066850956d5bf3a7ffbf4 -size 630845 +oid sha256:e0c92c2755c0d87f59b9af2130444fabf0545df679f1dcd929c66b98d64d7229 +size 630920 diff --git a/lib/search/indexes/github-docs-3.1-ja.json.br b/lib/search/indexes/github-docs-3.1-ja.json.br index e33f980102..8c00bb612b 100644 --- a/lib/search/indexes/github-docs-3.1-ja.json.br +++ b/lib/search/indexes/github-docs-3.1-ja.json.br @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:db252ba7d5fe7c73f6d9f7aa48a35370274595d783815d0842c21f3a95a53052 -size 3555858 +oid sha256:32989789d9e7910541b0dd33e3cc8a769b548be9a33b5bcdd42b2d22ddb3bda3 +size 3554179 diff --git a/lib/search/indexes/github-docs-3.1-pt-records.json.br b/lib/search/indexes/github-docs-3.1-pt-records.json.br index 1f9901ff70..816a60a738 100644 --- a/lib/search/indexes/github-docs-3.1-pt-records.json.br +++ b/lib/search/indexes/github-docs-3.1-pt-records.json.br @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:3a45f3566bf3ad132b7d6af3b308a350a68ac1cbd63696938e86588ddb8db0fc -size 608297 +oid sha256:65031bed1960c061ce327b929985da5645a855630b5624fda45af29d9811223c +size 608141 diff --git a/lib/search/indexes/github-docs-3.1-pt.json.br b/lib/search/indexes/github-docs-3.1-pt.json.br index 5ec4433fde..dee29cf0b0 100644 --- a/lib/search/indexes/github-docs-3.1-pt.json.br +++ b/lib/search/indexes/github-docs-3.1-pt.json.br @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:6e377f1ada605ba90f8c8ecbda90ae755bc974d4aa17e6bd84b6f8eb2b5b349c -size 2882151 +oid sha256:04406502f1f587fbb538b3f78e814b43afff6f081a51582103e1a5519deacdf9 +size 2882627 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 6f3fd69e09..f36d08bd17 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:69b86b14b6785253936b4488485635f3d41a87af11f420f9ed079287cd3a9905 -size 639138 +oid sha256:8f14398fb94e91474d5711e158c6ffebf56d9631b5056a8fc33d2b0ab86ba3a4 +size 639077 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 cf17c32ca4..79865d5c35 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:b87c8d76d4c4e606b9985ff6587c1efe488fb74e845ed3bb4d33880c7220e299 -size 1815174 +oid sha256:dc6c84ff1760a227d14b4c9b9e4eabfb6da5fb350e0b24bfcd1aa32325c3c72d +size 1814798 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 bd787d5643..8d4a9f043c 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:43610fba25dce07c571c08ab7b400f4e19686cd10d9ea92421e80ddc9d51952d -size 1009393 +oid sha256:e1184ac77dfb6f9fcc378005a3c52f00be6e2340d9d3cbcaecd2ad0ae8b43a12 +size 1013338 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 490309ece1..063c8aa825 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:11d2d189f7c38f6c58eadb0ec27546185c1388d42e86f84904c62598c3ce67ea -size 4122757 +oid sha256:4518981d4fb7aed263bfdefd5684d9089be1d5b370d4a837d26c78215985a367 +size 4122313 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 aa6ddbd9f8..935ed62086 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:800882301b2518f70b22bf9944eacdcc4840c54181d6cbcf336fce082cf76c8e -size 606020 +oid sha256:18f9619e23512f0deb9ce6a24dc29a24271d1effcdfaa14690df02824c4d734f +size 605859 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 015c9f3e8b..06040eb7a3 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:7ae57b7d12a5a61d22e4213b9d6334c6ab887477dbe8b6b254ac4f97c7daaa97 -size 2814091 +oid sha256:2f6ac4ddfa61845fd95c7f94b4a8723e99439312e6ebec1a5188a76a59d1dd13 +size 2814019 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 550b814e92..0c4b8f0da2 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:fd6219c9e8061887df3dbc5da1edd94e7e8f9cc3122c638fe709ca6af50f19fa -size 642419 +oid sha256:af61673f15092b1382521cd50b96c2701ca14ad3ee91cc99a9b4f47aa487ad13 +size 642464 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 842400e80e..820d94ccc1 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:8643ddbe68385f8ce2ffdd2bf7ccf4c5161ef77fc961c1999c9aac8cf14d5261 -size 3622469 +oid sha256:2624cb2761854e2a60ae43e3f0dab1e95c67e00bd9aeaee40d128e06e5a4eed6 +size 3621843 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 18f2b3df07..59f4e1e83b 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:3d640448a375d590cf1dba4505fc66f25e234ae68b996a77be382a8a26f2e8bf -size 619475 +oid sha256:0c629585e90905d263277e0f8e53018f642317498e3df0017873b4dfec6187df +size 619563 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 f1eb67a901..fcb2793c06 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:86936658aaa96ef42b7c69db5766b87c7bdb8df814ca7fc93b287029d7613be4 -size 2932250 +oid sha256:20d3b40184b1cb566bb86a0cc1734004af818275eb47f379ad77fc6c27971681 +size 2932281 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 28cd455139..3738060d9b 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:bdaeab2bf8a897ad0cc2d8dc2d76d0c7146c4bc54deff5410dec5cd81eddf316 -size 659548 +oid sha256:ad83678d03903802a8c198a275dc35a73fd75c4dc2930bb56438725173f8cabe +size 659530 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 543d8a106a..1e8558560e 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:9a43d0652d74fee0fd21dcb50ba374ab24af616f0b88416669be3e204c3bef3a -size 1872029 +oid sha256:3e0655d23e9a50179f6da9e993e0cbcec6b19b2f22ba0ae52a9bc86b0caabdba +size 1871982 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 f9f1766bfe..c7791b0c49 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:9dca8c7135cffcaca3fcc38b16eaee875b0bb5d744a6a17191dbae663145a7bd -size 1043581 +oid sha256:03517ee2d420cd4f0f95f6765b8092a583ffe95483a518499703e065ae284734 +size 1043341 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 5b84f83540..f88bb08982 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:7062687eac8c8a8251806ab6a7b8251edff08434f3c0e1ec8cfabc590de44d38 -size 4224070 +oid sha256:404e375d92ada2a30415f8fd87d4569c1fe544134b06d269d10b54f00d0de805 +size 4223634 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 8986198951..5a6df390bc 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:0f709a884ce18a4b8a65938ccc1add6e9000f98c782ca63abc9f30bd752bab3c -size 624161 +oid sha256:7aaf98cd28dd13e83062a9b2068e74e241c0f20479e71ea12c24b97463c58859 +size 623878 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 4794d87d2f..3adf10c091 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:f34a2c63ca6032dbccc1ffa7e4158c6031a9e9d5d49b8f702c612255db7b65aa -size 2912068 +oid sha256:5a17ee79bc13e5c2cb8b6f0f2c06832856408d65e962abbd541b48ae28bf02bf +size 2912264 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 e8f5729ad6..87eb0ef378 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:171d4d4e9ba399893f79611c78c5972639a8af166689619b1139b3b9a6ecd3e7 -size 663687 +oid sha256:8277160beb0669cee238a592ebc889de177d42011253f82aa5adf361d3b52c6e +size 663732 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 c8e9580951..e9c9347139 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:55a1d1c1afc0414da32782fddba2b5bb469f2d5668976550a7f074372801073b -size 3740793 +oid sha256:092f6b92e395672257d36ff2a279781d09350c94b89ade415893f6c8ca0e7852 +size 3740331 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 a1793f23a4..56395c093a 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:a97ac766bb0a7e62faf742fb5225bb859d8586ce278b2ce912d0f2837abe584f -size 638750 +oid sha256:1a5dd8233457407365e0f1e3690f54ac13c5c6d921205f05fcdacde52fd6d66a +size 638672 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 1c2a624f48..fa9a8199a7 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:baf2652376c0edcb87f64cdcb8287e41073636943e540f7c1aad76a0e935c6cc -size 3020054 +oid sha256:f5fbb8477c44fab52666c67563fbccff8c0c4060c377d3f1b6eba5af5b339e22 +size 3019781 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 cb83db6286..d42db47fee 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:a0571d3a3dfb63b35967f9da999a77d8c85654db872245dae1130c2e28331609 -size 848344 +oid sha256:2bd38a06fd5a600ffce05905530bb35ee13ec96690061e83973a7bcccc0d2c2e +size 848278 diff --git a/lib/search/indexes/github-docs-dotcom-cn.json.br b/lib/search/indexes/github-docs-dotcom-cn.json.br index 449c72e74a..4d05bdaa15 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:b2ae88ad0f6e57ff48c42094fa5a68e9f3f3c5f0139dff3c0e4bc7bb5b8e420a -size 2091933 +oid sha256:12244642e15b62f4981a880641aef517b41eee15df38d93cccea0efca4789026 +size 2091500 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 4ab5ac49a8..4db3d019b8 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:2edf81157ae618f696d568112258f581504eff3ad8e372126db5ff6b57da7189 -size 1326515 +oid sha256:2ba5a129a3c8903add3223187d6ea77d54e911aaefa15c225c413526c6d2cd42 +size 1319658 diff --git a/lib/search/indexes/github-docs-dotcom-en.json.br b/lib/search/indexes/github-docs-dotcom-en.json.br index c71e0eab6b..8b5a2f9253 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:5c957ae499e8bc09c83db0b8aecd7f339e0496fe3d9e88ca9f46623b34775a64 -size 5068817 +oid sha256:b0a830b8b08e43606c9ff586179e375dd95687e71ce77f50cf9228a90c5d5530 +size 5067744 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 a6f383a928..ce3386ee20 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:06dac6a4791ea26bbd6e73923b9030935dcce58efa4e4b8a7f211f15e66a4293 -size 794683 +oid sha256:6a979e712a044b991c6ceabb62c88a8fc3b0dd6f555fc5e263f69f2d9fd30eec +size 794635 diff --git a/lib/search/indexes/github-docs-dotcom-es.json.br b/lib/search/indexes/github-docs-dotcom-es.json.br index 1a2e52f85c..d6091f5d45 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:103b277a4653edb805f9931449d86a3028b35b6190ebdeee5fcb220939626410 -size 3497765 +oid sha256:7f806192bbc67dc752d46ae8734a92e9a0c83dafd882120f317b8dc872aa0b0f +size 3497831 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 036155868a..d056728761 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:081198b2eb9e266547445f561759c37e5f1f4ab8f66848a94b074aab5adb5f9b -size 855757 +oid sha256:a809e4cffdc03481db7188fcb31e7106eeaae56e2cde51eb93e67db7bd808a5d +size 855959 diff --git a/lib/search/indexes/github-docs-dotcom-ja.json.br b/lib/search/indexes/github-docs-dotcom-ja.json.br index 49b4f34db7..37474285d9 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:66fa902de51bfdd6e3759291368c8ee084888b10af5422e61c83dd2f2fb72e7b -size 4558249 +oid sha256:3e51a6c2d4d0eaca9438e0c5edecfbf60619954338569080c0a89f2819b14058 +size 4558659 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 a4ea97e8a9..0a82a90933 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:6063f03d5cd2b57399ff6c70a7703fc3216f66093e34b6af39821366ae8218c2 -size 810655 +oid sha256:ac93f97e253117171edd2ad39dc62b198350f9e4a6780804accf09096d0122e7 +size 810602 diff --git a/lib/search/indexes/github-docs-dotcom-pt.json.br b/lib/search/indexes/github-docs-dotcom-pt.json.br index 74e6b0cd37..a10f358629 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:34f5e82f2b6dea2baf87956026a7d3507a9de3633c462292027c66d0048bf4c5 -size 3613438 +oid sha256:5752cda6ff34b76f61a212d062ede66db245cd2a27d01b366e03103ed201f409 +size 3612735 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 deb0cdb2a7..686f3f40dc 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:fba891587f5a1edc0ba6e1d9b042871ef6057df3fb647bd524824959449a31a6 -size 512933 +oid sha256:4b8d56051eeb71ed2be92afa0621d505d9d7033c3f7982834669d42b2e8c063c +size 513012 diff --git a/lib/search/indexes/github-docs-ghae-cn.json.br b/lib/search/indexes/github-docs-ghae-cn.json.br index 01686dee90..f174c6270f 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:073e0177733c0d5cc46a6104bf7c618303d2298a8a17aa6e203d4ff1e687e39b -size 1416048 +oid sha256:f23c5c2f70adac94b7af647a68f64c131b41f00d6d1c4cb8876d3ccf65476922 +size 1416127 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 e08d3b1ccb..69e442cc93 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:b24477a24d2cc3677abd4c19dfff25d789e4fe242343609bb7290dccb6ff84a0 -size 832500 +oid sha256:9ed7f7866d33e02ce900113a2814dab2504e689895e1bbd27ef4a446083e1e50 +size 832839 diff --git a/lib/search/indexes/github-docs-ghae-en.json.br b/lib/search/indexes/github-docs-ghae-en.json.br index dc0a2177b0..f16d181626 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:3f4bb040b3b734d9ad707adfa06dc27e6686b28515108c8e915c58b266a5c417 -size 3342926 +oid sha256:9987cc2e1ac23f98c1f5f065e9b06300d4741680a815f6fb70aa44204a506844 +size 3341823 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 28aba8927c..e3d81f7e95 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:d67d75fab6318b555667159c79bd59f13615fb3a3d8eeafdbc6ae03439f53e83 -size 486883 +oid sha256:9fb241eeac219e9bbf533e8108f474748bb12403659c96b984aa22f09d3f9df8 +size 486825 diff --git a/lib/search/indexes/github-docs-ghae-es.json.br b/lib/search/indexes/github-docs-ghae-es.json.br index 5f76c5fa17..2e4b622c41 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:254258cd5f54eea43abbacbaa3de08ce7d05417a8fcde67dc317e9bb5db48a4f -size 2189440 +oid sha256:641fd9226a0343501e4fda209c10b6c694e7daf05308b8126fbc6484a93224bc +size 2189287 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 badb790f33..dd5ce69029 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:ff989650ad50029f39e042870044d4192608280f1fb746787183ae7e0c43780a -size 517031 +oid sha256:299f3ec4750171edfb4b46d3dc71a43d07ed80c95ad11012ce537688ca05b62f +size 516978 diff --git a/lib/search/indexes/github-docs-ghae-ja.json.br b/lib/search/indexes/github-docs-ghae-ja.json.br index 798cbe21c5..e5a4ced60b 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:a6419f8f6bc6946714d806da4f1875ea146e6d8853f1a050add20fb1fdc5f4fe -size 2802920 +oid sha256:edab4df0f03ed5416096ca618ded4335b1c54e8888d494f8a853cb2e82c17b4a +size 2803042 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 3193aa5f69..34d3adc314 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:866269a58881ccfdd402953696795995587c301825b1e8a4b7720faf71b59024 -size 500436 +oid sha256:78da1963de527cd44d8d7d556135ecfec0ae6b1818e05d68682ea325cabf11a7 +size 500393 diff --git a/lib/search/indexes/github-docs-ghae-pt.json.br b/lib/search/indexes/github-docs-ghae-pt.json.br index 1fefc986f4..65e656c593 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:38646acde0bb91009fde0827179dc1c422e8b57c21ec86046c49074feeb525cf -size 2289406 +oid sha256:b1a43740588ee647c6cde859f1db436d18c5d59f3a3f445536a29b85f4194efb +size 2288903 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 e12cc71183..7b98c59070 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:ece4b2ccd8cfda539d88407b6f1209c3162147e54defb6f15499021b9582c05f -size 772157 +oid sha256:7362ecbf7ed8e77c418175495c389761f91cc4bf1036e98a0de0dcc7ebcdb67e +size 772061 diff --git a/lib/search/indexes/github-docs-ghec-cn.json.br b/lib/search/indexes/github-docs-ghec-cn.json.br index a5fef1beac..dd2398c4df 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:d5379946757af7791df5310b92f7bcfaaab562126348ea72a64d11ed52c1bb92 -size 2109645 +oid sha256:c7d851b2fe03fc79bc961f86c4b916711dd1336cb76e694effa804fd905cd05a +size 2109854 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 50404b7fd4..ebb7d05d7d 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:5b18a76e8c5ecf6d670d1e358bdf1112929b2cdd91054e8cdfab17b1bf3ae44d -size 1189942 +oid sha256:0281d178df516fe4a20c55b3cfd464d78e52a345efc640544751cebb61eb1dc0 +size 1190520 diff --git a/lib/search/indexes/github-docs-ghec-en.json.br b/lib/search/indexes/github-docs-ghec-en.json.br index fe660c4029..3fb192a67b 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:fe5610a95ded20b3b0682eea3d0903e02d2f59db8975d4cbdabf21a6840fbc5f -size 4804444 +oid sha256:88bb93b3d556bbad08e1e3cd35964cad86bb27afdb589f3bce8f83b416afe74d +size 4804498 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 639b33e60b..8bffae1dca 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:0c99b17a8afddcbcfc0ce4bf40c306fce6a6200ed4d397b4408fa8ac7819299c -size 739588 +oid sha256:de5649433a62eb38a177b05816248a6224075c8bd3ccda8b341d6b97b8ff19c9 +size 739477 diff --git a/lib/search/indexes/github-docs-ghec-es.json.br b/lib/search/indexes/github-docs-ghec-es.json.br index c7090a7b38..67a709e02d 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:31c6662f4b64da234173cfbfea491b8c39f941418a18faf0387b341b8888a973 -size 3441129 +oid sha256:3127267f67467a80dffac7bff96117de9ddcb061472b3c4b484d41e454eb71a4 +size 3440584 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 d533cf006c..c517432a72 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:5a22e90a7f12e3ed92f7f1f0466cb5ec0c963a4ee26aa3637640d4cd887802b2 -size 782697 +oid sha256:2a763c1a50112576ae11180ec01e3ef4e8f523b32b558fe5f52778151ce856ca +size 782769 diff --git a/lib/search/indexes/github-docs-ghec-ja.json.br b/lib/search/indexes/github-docs-ghec-ja.json.br index 393a98d91f..6a2c090063 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:4635a5c0734539383b51545798f5688d776c646accec4ff51808b3ef63599117 -size 4397008 +oid sha256:da582df34b272d4bf0721e2ae043e5e47098d4ee523aed742c4c3ccf59b73cda +size 4395724 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 94cc5d9b01..4294a53ee4 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:70e356cc7e5b123e145be7dbb62ef85b87f1d29e7cf88ad6f4b8031951a8c0cb -size 756115 +oid sha256:62b4e2ab872add6bbd3737899606e0db8f3ab30c448f966859efd1078c8c0a14 +size 755834 diff --git a/lib/search/indexes/github-docs-ghec-pt.json.br b/lib/search/indexes/github-docs-ghec-pt.json.br index fd1954c7be..4a95e869b0 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:691b6cd047a22f82b2eb74355867b8bc537dbc018e71cd66f62c4d85198adae1 -size 3550691 +oid sha256:e295de80e7e0a7dac5b06448398533933718625dbc869319518cb74273bcf6f1 +size 3551303 From 8ce7c7f355f4a55ee2d60ee8c104ba6bb7504d91 Mon Sep 17 00:00:00 2001 From: Jurre Date: Mon, 10 Jan 2022 20:00:48 +0100 Subject: [PATCH 20/68] Apply suggestions from code review Co-authored-by: Sarita Iyer <66540150+saritai@users.noreply.github.com> --- .../rest/reference/permissions-required-for-github-apps.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/content/rest/reference/permissions-required-for-github-apps.md b/content/rest/reference/permissions-required-for-github-apps.md index cd04125707..ab2c0d6769 100644 --- a/content/rest/reference/permissions-required-for-github-apps.md +++ b/content/rest/reference/permissions-required-for-github-apps.md @@ -872,8 +872,8 @@ _Teams_ - [`DELETE /orgs/:org/actions/secrets/:secret_name`](/rest/reference/actions#delete-an-organization-secret) (:write) {% endif %} -{% ifversion fpt or ghec %} -### Permissions on "dependabot_secrets" +{% ifversion fpt or ghec or ghes > 3.3%} +### Permission on "dependabot_secrets" - [`GET /repos/:owner/:repo/dependabot/secrets/public-key`](/rest/reference/dependabot#get-a-repository-public-key) (:read) - [`GET /repos/:owner/:repo/dependabot/secrets`](/rest/reference/dependabot#list-repository-secrets) (:read) - [`GET /repos/:owner/:repo/dependabot/secrets/:secret_name`](/rest/reference/dependabot#get-a-repository-secret) (:read) From 0090d0caa0d42bc92ea3385f3caf01891e5e7f94 Mon Sep 17 00:00:00 2001 From: Jurre Date: Mon, 10 Jan 2022 20:01:17 +0100 Subject: [PATCH 21/68] Apply suggestions from code review Co-authored-by: Sarita Iyer <66540150+saritai@users.noreply.github.com> --- content/rest/reference/dependabot.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/content/rest/reference/dependabot.md b/content/rest/reference/dependabot.md index efff366858..f60982c82b 100644 --- a/content/rest/reference/dependabot.md +++ b/content/rest/reference/dependabot.md @@ -1,6 +1,6 @@ --- title: Dependabot -intro: 'With the {% data variables.product.prodname_dependabot %} Secrets API, you can manage and control {% data variables.product.prodname_dependabot %} Secrets for an organization or repository.' +intro: 'With the {% data variables.product.prodname_dependabot %} Secrets API, you can manage and control {% data variables.product.prodname_dependabot %} secrets for an organization or repository.' versions: fpt: '*' ghes: '>=3.4' From 08acbe77281ed570fe20aba6c1205b2abffc4174 Mon Sep 17 00:00:00 2001 From: docubot <67483024+docubot@users.noreply.github.com> Date: Mon, 10 Jan 2022 11:12:26 -0800 Subject: [PATCH 22/68] New translation batch for es (#24183) * Add crowdin translations * Run script/i18n/homogenize-frontmatter.js * Run script/i18n/fix-translation-errors.js * Run script/i18n/lint-translation-files.js --check parsing * Run script/i18n/lint-translation-files.js --check rendering * run script/i18n/reset-files-with-broken-liquid-tags.js --language=es * Check in es CSV report --- .../managing-your-theme-settings.md | 4 +- .../merging-multiple-user-accounts.md | 6 + ...on-levels-for-a-user-account-repository.md | 6 +- ...iewing-peoples-roles-in-an-organization.md | 56 +++- .../about-continuous-integration.md | 10 +- .../building-and-testing-java-with-ant.md | 8 +- .../building-and-testing-java-with-gradle.md | 8 +- .../building-and-testing-java-with-maven.md | 8 +- .../building-and-testing-net.md | 6 +- .../building-and-testing-nodejs.md | 8 +- .../building-and-testing-python.md | 8 +- .../building-and-testing-ruby.md | 6 +- .../building-and-testing-swift.md | 6 +- .../creating-a-javascript-action.md | 6 +- .../content/actions/creating-actions/index.md | 2 +- .../metadata-syntax-for-github-actions.md | 46 ++- .../about-continuous-deployment.md | 2 +- .../deploying-docker-to-azure-app-service.md | 153 +++++++++ .../deploying-java-to-azure-app-service.md | 134 ++++++++ .../deploying-net-to-azure-app-service.md | 144 ++++++++ .../deploying-nodejs-to-azure-app-service.md | 141 ++++++++ .../deploying-php-to-azure-app-service.md | 155 +++++++++ .../deploying-python-to-azure-app-service.md | 151 +++++++++ .../deploying-to-azure-kubernetes-service.md | 126 +++++++ .../deploying-to-azure-static-web-app.md | 113 +++++++ .../deploying-to-azure/index.md | 19 ++ .../deploying-to-your-cloud-provider/index.md | 5 +- .../viewing-deployment-history.md | 2 +- ...g-openid-connect-in-amazon-web-services.md | 4 +- ...uring-openid-connect-in-cloud-providers.md | 29 +- ...uring-openid-connect-in-hashicorp-vault.md | 16 +- translations/es-ES/content/actions/guides.md | 11 +- ...using-self-hosted-runners-in-a-workflow.md | 9 +- translations/es-ES/content/actions/index.md | 8 +- .../actions/learn-github-actions/contexts.md | 2 +- ...starter-workflows-for-your-organization.md | 99 ++++++ .../events-that-trigger-workflows.md | 4 +- .../learn-github-actions/expressions.md | 30 +- .../actions/learn-github-actions/index.md | 6 +- .../managing-complex-workflows.md | 4 +- .../learn-github-actions/reusing-workflows.md | 33 +- ...rets-and-runners-with-your-organization.md | 10 +- .../using-starter-workflows.md | 54 +++ .../workflow-syntax-for-github-actions.md | 2 +- .../adding-labels-to-issues.md | 2 +- .../migrating-to-github-actions/index.md | 2 +- .../adding-a-workflow-status-badge.md | 4 +- .../es-ES/content/actions/quickstart.md | 2 +- .../about-github-hosted-runners.md | 4 +- .../content/admin/advanced-security/index.md | 8 +- .../disabling-unauthenticated-sign-ups.md | 12 +- .../index.md | 14 +- .../using-cas.md | 4 +- .../using-ldap.md | 10 +- .../using-saml.md | 13 +- .../index.md | 8 +- .../configuring-a-hostname.md | 19 +- ...onfiguring-an-outbound-web-proxy-server.md | 26 +- .../configuring-built-in-firewall-rules.md | 45 ++- .../configuring-dns-nameservers.md | 25 +- .../configuring-tls.md | 4 +- .../enabling-subdomain-isolation.md | 66 ++-- .../configuring-network-settings/index.md | 14 +- .../network-ports.md | 8 +- ...-enterprise-server-with-a-load-balancer.md | 6 +- .../command-line-utilities.md | 4 +- .../configuring-email-for-notifications.md | 157 +++++---- ...guring-github-pages-for-your-enterprise.md | 6 +- .../configuring-time-synchronization.md | 40 +-- .../enabling-private-mode.md | 18 +- .../site-admin-dashboard.md | 6 +- .../troubleshooting-ssl-errors.md | 53 ++- ...rise-account-to-github-enterprise-cloud.md | 23 +- ...dabot-alerts-on-your-enterprise-account.md | 14 +- ...n-your-enterprise-account-and-githubcom.md | 6 +- ...n-your-enterprise-account-and-githubcom.md | 6 +- .../index.md | 6 +- .../about-clustering.md | 25 +- .../configuring-clustering/index.md | 6 +- .../configuring-high-availability/index.md | 12 +- .../configuring-collectd.md | 51 ++- .../monitoring-your-appliance/index.md | 8 +- .../monitoring-using-snmp.md | 102 +++--- .../recommended-alert-thresholds.md | 51 ++- .../index.md | 10 +- ...ng-from-github-enterprise-1110x-to-2123.md | 106 +++--- .../upgrade-requirements.md | 2 +- .../upgrading-github-enterprise-server.md | 22 +- ...um-support-for-github-enterprise-server.md | 45 ++- .../index.md | 8 +- .../providing-data-to-github-support.md | 145 ++++---- .../reaching-github-support.md | 2 +- ...rise-server-with-github-actions-enabled.md | 51 ++- ...ucing-github-actions-to-your-enterprise.md | 6 +- ...lling-github-enterprise-server-on-azure.md | 2 +- .../content/admin/overview/about-github-ae.md | 35 +- ...e-ecosystem-support-for-your-enterprise.md | 36 +- ...-dependency-insights-in-your-enterprise.md | 14 +- ...or-security-settings-in-your-enterprise.md | 4 +- ...oject-board-policies-in-your-enterprise.md | 4 +- ...-management-policies-in-your-enterprise.md | 22 +- ...orcing-team-policies-in-your-enterprise.md | 18 +- .../creating-a-pre-receive-hook-script.md | 191 ++++++----- ...-the-github-enterprise-server-appliance.md | 65 ++-- .../content/admin/user-management/index.md | 8 +- .../adding-people-to-teams.md | 23 +- .../index.md | 4 +- .../managing-projects-using-jira.md | 79 +++-- ...nting-users-from-creating-organizations.md | 14 +- ...gs-for-organizations-in-your-enterprise.md | 2 +- ...-large-file-storage-for-your-enterprise.md | 58 ++-- ...bling-git-ssh-access-on-your-enterprise.md | 40 +-- .../troubleshooting-service-hooks.md | 49 +-- .../auditing-ssh-keys.md | 59 ++-- .../auditing-users-across-your-enterprise.md | 2 +- .../best-practices-for-user-security.md | 21 +- ...izing-user-messages-for-your-enterprise.md | 90 ++--- .../index.md | 2 +- ...viting-people-to-manage-your-enterprise.md | 55 +-- .../managing-dormant-users.md | 6 +- ...moting-or-demoting-a-site-administrator.md | 4 +- .../rebuilding-contributions-data.md | 23 +- .../roles-in-an-enterprise.md | 4 +- .../suspending-and-unsuspending-users.md | 10 +- ...-a-users-saml-access-to-your-enterprise.md | 23 +- ...ing-migration-data-from-your-enterprise.md | 53 ++- .../index.md | 10 +- .../migrating-data-to-your-enterprise.md | 10 +- ...ring-to-migrate-data-to-your-enterprise.md | 137 ++++---- .../activity-dashboard.md | 37 +- .../audit-logging.md | 27 +- .../audited-actions.md | 4 +- .../log-forwarding.md | 2 +- .../managing-global-webhooks.md | 66 ++-- .../searching-the-audit-log.md | 52 +-- .../viewing-push-logs.md | 39 +-- .../testing-your-ssh-connection.md | 39 ++- .../authorizing-oauth-apps.md | 75 ++--- .../token-expiration-and-revocation.md | 42 +-- ...ng-a-new-gpg-key-to-your-github-account.md | 36 +- .../associating-an-email-with-your-gpg-key.md | 37 +- .../error-key-already-in-use.md | 23 +- .../downgrading-git-large-file-storage.md | 37 +- .../index.md | 12 +- .../upgrading-git-large-file-storage.md | 25 +- ...ewing-your-git-large-file-storage-usage.md | 21 +- .../about-billing-for-codespaces.md | 56 ++-- .../viewing-your-codespaces-usage.md | 17 +- .../canceling-a-github-marketplace-app.md | 23 +- ...lling-plan-for-a-github-marketplace-app.md | 21 +- .../index.md | 10 +- ...lling-plan-for-a-github-marketplace-app.md | 17 +- .../about-billing-for-github-accounts.md | 28 +- ...unted-subscriptions-for-github-accounts.md | 6 +- .../downgrading-your-github-subscription.md | 24 +- .../index.md | 22 +- .../upgrading-your-github-subscription.md | 50 +-- ...ng-pending-changes-to-your-subscription.md | 25 +- .../adding-information-to-your-receipts.md | 33 +- .../adding-or-editing-a-payment-method.md | 48 +-- ...ging-the-duration-of-your-billing-cycle.md | 29 +- .../index.md | 18 +- .../redeeming-a-coupon.md | 25 +- .../removing-a-payment-method.md | 21 +- .../setting-your-billing-email.md | 67 ++-- ...eshooting-a-declined-credit-card-charge.md | 35 +- .../unlocking-a-locked-account.md | 29 +- ...ewing-your-payment-history-and-receipts.md | 17 +- ...ing-your-subscriptions-and-billing-date.md | 23 +- .../index.md | 14 +- ...new-license-to-github-enterprise-server.md | 23 +- ...organizations-for-procurement-companies.md | 35 +- .../index.md | 10 +- .../configuring-code-scanning.md | 13 +- .../index.md | 1 + ...d-hardware-resources-for-running-codeql.md | 32 ++ .../troubleshooting-the-codeql-workflow.md | 4 +- ...installing-codeql-cli-in-your-ci-system.md | 2 +- ...ng-from-the-codeql-runner-to-codeql-cli.md | 2 + .../github-security-features.md | 16 +- .../securing-your-organization.md | 33 +- .../securing-your-repository.md | 31 +- ...bout-alerts-for-vulnerable-dependencies.md | 7 +- ...ilities-in-the-github-advisory-database.md | 34 +- .../index.md | 6 +- ...pace-to-access-a-private-image-registry.md | 32 +- .../security-in-codespaces.md | 106 +++--- ...ting-your-timeout-period-for-codespaces.md | 10 +- ...nvironment-variables-for-your-codespace.md | 40 +++ .../developing-in-codespaces/index.md | 1 + ...abling-codespaces-for-your-organization.md | 13 +- .../the-githubdev-web-based-editor.md | 107 +++--- .../troubleshooting-codespaces-clients.md | 32 +- ...ing-creation-and-deletion-of-codespaces.md | 52 +-- .../about-wikis.md | 2 +- .../adding-or-editing-wiki-pages.md | 64 ++-- ...ating-a-footer-or-sidebar-for-your-wiki.md | 40 ++- .../editing-wiki-content.md | 63 ++-- .../index.md | 10 +- ...imiting-interactions-in-your-repository.md | 2 +- .../managing-disruptive-comments.md | 89 ++--- ...munity-profiles-for-public-repositories.md | 40 +-- .../index.md | 8 +- ...-guidelines-for-repository-contributors.md | 58 ++-- .../index.md | 8 +- ...ngle-issue-template-for-your-repository.md | 64 ++-- .../overview/keyboard-shortcuts.md | 185 +++++----- .../authenticating-with-github-apps.md | 4 +- .../creating-a-github-app.md | 64 ++-- ...g-and-authorizing-users-for-github-apps.md | 182 +++++----- .../apps/building-github-apps/index.md | 6 +- .../rate-limits-for-github-apps.md | 6 +- .../setting-permissions-for-github-apps.md | 11 +- .../authorizing-oauth-apps.md | 10 +- .../creating-an-oauth-app.md | 31 +- .../apps/building-oauth-apps/index.md | 6 +- .../scopes-for-oauth-apps.md | 6 +- .../getting-started-with-apps/about-apps.md | 6 +- ...nces-between-github-apps-and-oauth-apps.md | 135 ++++---- .../migrating-oauth-apps-to-github-apps.md | 121 ++++--- .../content/developers/apps/guides/index.md | 2 +- .../using-the-github-api-in-your-app.md | 189 ++++++----- .../es-ES/content/developers/apps/index.md | 14 +- .../deleting-a-github-app.md | 17 +- .../editing-a-github-apps-permissions.md | 27 +- .../apps/managing-github-apps/index.md | 6 +- .../making-a-github-app-public-or-private.md | 8 +- .../modifying-a-github-app.md | 11 +- .../transferring-ownership-of-a-github-app.md | 22 +- .../deleting-an-oauth-app.md | 14 +- .../apps/managing-oauth-apps/index.md | 6 +- .../modifying-an-oauth-app.md | 7 +- .../transferring-ownership-of-an-oauth-app.md | 22 +- ...leshooting-authorization-request-errors.md | 30 +- ...g-oauth-app-access-token-request-errors.md | 34 +- .../requirements-for-listing-an-app.md | 10 +- .../security-best-practices-for-apps.md | 78 ++--- .../viewing-metrics-for-your-listing.md | 48 +-- .../about-github-marketplace.md | 2 +- .../developers/github-marketplace/index.md | 6 +- ...a-webhook-to-notify-you-of-plan-changes.md | 39 ++- .../drafting-a-listing-for-your-app.md | 63 ++-- .../index.md | 20 +- .../setting-pricing-plans-for-your-listing.md | 87 +++-- ...ting-a-listing-description-for-your-app.md | 14 +- .../billing-customers.md | 45 ++- .../index.md | 16 +- ...icing-plans-for-github-marketplace-apps.md | 2 +- .../receiving-payment-for-app-purchases.md | 23 +- .../handling-new-purchases-and-free-trials.md | 67 ++-- .../handling-plan-cancellations.md | 31 +- .../handling-plan-changes.md | 49 ++- .../index.md | 10 +- ...ndpoints-for-the-github-marketplace-api.md | 29 +- .../testing-your-app.md | 37 +- ...k-events-for-the-github-marketplace-api.md | 4 +- .../overview/managing-deploy-keys.md | 2 +- .../overview/replacing-github-services.md | 74 ++-- .../secret-scanning-partner-program.md | 134 ++++---- .../overview/using-ssh-agent-forwarding.md | 78 ++--- .../webhooks/webhook-events-and-payloads.md | 21 +- .../about-campus-advisors.md | 11 +- ...n-for-a-student-developer-pack-approved.md | 2 +- ...-for-an-educator-or-researcher-discount.md | 45 +-- ...ducator-or-researcher-discount-approved.md | 33 +- .../es-ES/content/get-started/index.md | 1 + .../about-github-advanced-security.md | 46 +-- .../about-versions-of-github-docs.md | 56 ++++ .../access-permissions-on-github.md | 9 +- .../learning-about-github/githubs-products.md | 119 +++---- .../learning-about-github/index.md | 3 +- .../types-of-github-accounts.md | 80 ++--- .../getting-started-with-github-ae.md | 7 +- ...ng-started-with-github-enterprise-cloud.md | 10 +- ...g-started-with-github-enterprise-server.md | 10 +- .../getting-started-with-github-team.md | 9 +- ...etting-started-with-your-github-account.md | 10 +- .../get-started/quickstart/github-flow.md | 2 +- .../get-started/quickstart/set-up-git.md | 10 + ...g-up-a-trial-of-github-enterprise-cloud.md | 10 +- ...-up-a-trial-of-github-enterprise-server.md | 1 + .../signing-up-for-a-new-github-account.md | 26 +- ...ly-access-releases-with-feature-preview.md | 28 +- ...se-settings-for-your-private-repository.md | 24 +- .../about-writing-and-formatting-on-github.md | 40 ++- .../basic-writing-and-formatting-syntax.md | 2 + .../creating-and-highlighting-code-blocks.md | 38 +-- .../organizing-information-with-tables.md | 67 ++-- .../content/graphql/reference/mutations.md | 13 +- translations/es-ES/content/issues/index.md | 12 +- .../about-project-boards.md | 68 ++-- .../closing-a-project-board.md | 31 +- .../creating-a-project-board.md | 35 +- .../deleting-a-project-board.md | 24 +- .../editing-a-project-board.md | 26 +- .../reopening-a-closed-project-board.md | 25 +- ...es-and-pull-requests-to-a-project-board.md | 68 ++-- .../adding-notes-to-a-project-board.md | 74 ++-- .../about-issues.md | 45 ++- .../creating-an-issue.md | 2 +- ...-and-searching-issues-and-pull-requests.md | 2 +- .../linking-a-pull-request-to-an-issue.md | 4 +- ...-tracking-work-for-your-team-or-project.md | 145 ++++---- .../creating-a-project.md | 2 +- .../using-the-api-to-manage-projects.md | 4 +- ...milestones-for-issues-and-pull-requests.md | 46 +-- .../managing-labels.md | 75 +++-- .../about-organizations.md | 2 +- .../about-your-organizations-news-feed.md | 2 +- .../accessing-your-organizations-settings.md | 19 +- .../index.md | 8 +- .../es-ES/content/organizations/index.md | 8 +- .../keeping-your-organization-secure/index.md | 8 +- ...analysis-settings-for-your-organization.md | 44 ++- ...ail-notifications-for-your-organization.md | 2 +- ...ing-the-audit-log-for-your-organization.md | 29 +- .../index.md | 8 +- ...ls-access-to-an-organization-repository.md | 2 +- ...am-access-to-an-organization-repository.md | 2 +- .../repository-roles-for-an-organization.md | 18 +- .../index.md | 8 +- ...-accounts-for-people-in-my-organization.md | 2 +- ...ember-information-for-your-organization.md | 9 +- .../index.md | 2 +- ...nviting-users-to-join-your-organization.md | 2 +- .../renaming-an-organization.md | 2 +- ...ssions-for-adding-outside-collaborators.md | 15 +- ...r-deleting-or-transferring-repositories.md | 15 +- .../transferring-organization-ownership.md | 21 +- ...-security-managers-in-your-organization.md | 20 +- .../roles-in-an-organization.md | 2 +- .../index.md | 2 +- ...am-to-improved-organization-permissions.md | 2 +- ...am-to-improved-organization-permissions.md | 39 ++- .../index.md | 12 +- ...ms-to-improved-organization-permissions.md | 2 +- .../adding-organization-members-to-a-team.md | 17 +- ...e-team-maintainer-role-to-a-team-member.md | 39 ++- .../creating-a-team.md | 2 +- .../organizing-members-into-teams/index.md | 16 +- ...-a-team-in-your-organizations-hierarchy.md | 29 +- ...moving-organization-members-from-a-team.md | 16 +- .../about-oauth-app-access-restrictions.md | 64 ++-- ...roving-oauth-apps-for-your-organization.md | 21 +- ...pproved-oauth-app-for-your-organization.md | 14 +- ...cess-restrictions-for-your-organization.md | 16 +- ...cess-restrictions-for-your-organization.md | 22 +- .../about-permissions-for-github-packages.md | 2 +- .../deleting-a-package.md | 37 +- .../deleting-and-restoring-a-package.md | 26 +- .../introduction-to-github-packages.md | 2 +- .../working-with-the-apache-maven-registry.md | 2 +- .../working-with-the-docker-registry.md | 2 +- .../working-with-the-gradle-registry.md | 2 +- .../working-with-the-npm-registry.md | 4 +- .../working-with-the-nuget-registry.md | 2 +- .../working-with-the-rubygems-registry.md | 2 +- .../about-custom-domains-and-github-pages.md | 8 +- .../index.md | 15 +- ...ustom-domain-for-your-github-pages-site.md | 16 +- ...hooting-custom-domains-and-github-pages.md | 6 +- .../about-github-pages.md | 12 +- ...ithub-pages-site-with-the-theme-chooser.md | 49 +-- ...shing-source-for-your-github-pages-site.md | 16 +- ...tom-404-page-for-your-github-pages-site.md | 19 +- .../creating-a-github-pages-site.md | 9 +- .../index.md | 8 +- ...uring-your-github-pages-site-with-https.md | 55 +-- .../unpublishing-a-github-pages-site.md | 27 +- .../using-submodules-with-github-pages.md | 20 +- translations/es-ES/content/pages/index.md | 12 +- .../about-github-pages-and-jekyll.md | 18 +- ...yll-build-errors-for-github-pages-sites.md | 27 +- ...-to-your-github-pages-site-using-jekyll.md | 50 +-- ...reating-a-github-pages-site-with-jekyll.md | 1 + .../index.md | 8 +- ...for-your-github-pages-site-using-jekyll.md | 27 +- ...r-github-pages-site-locally-with-jekyll.md | 42 +-- ...yll-build-errors-for-github-pages-sites.md | 198 +++++------ .../addressing-merge-conflicts/index.md | 2 +- ...a-merge-conflict-using-the-command-line.md | 2 +- .../about-status-checks.md | 2 +- .../index.md | 4 +- .../about-collaborative-development-models.md | 2 +- .../getting-started/index.md | 2 +- .../about-pull-request-merges.md | 2 +- .../index.md | 2 +- .../collaborating-with-pull-requests/index.md | 12 +- .../about-branches.md | 2 +- .../about-pull-requests.md | 2 +- ...eleting-branches-within-your-repository.md | 2 +- .../index.md | 2 +- .../commenting-on-a-pull-request.md | 6 +- .../filtering-files-in-a-pull-request.md | 2 +- .../index.md | 4 +- ...wing-proposed-changes-in-a-pull-request.md | 2 +- .../working-with-forks/about-forks.md | 2 +- .../working-with-forks/index.md | 4 +- ...sitory-is-deleted-or-changes-visibility.md | 2 +- .../changing-a-commit-message.md | 2 +- .../index.md | 4 +- ...are-my-commits-linked-to-the-wrong-user.md | 2 +- .../about-protected-branches.md | 14 +- .../managing-a-branch-protection-rule.md | 14 +- .../troubleshooting-required-status-checks.md | 3 +- .../renaming-a-branch.md | 2 +- .../about-repositories.md | 2 +- ...d-analysis-settings-for-your-repository.md | 24 +- .../setting-repository-visibility.md | 2 +- .../linking-to-releases.md | 13 +- .../adding-a-file-to-a-repository.md | 33 +- .../working-with-non-code-files.md | 257 +++++++------- .../guides/best-practices-for-integrators.md | 2 +- .../rest/guides/building-a-ci-server.md | 2 +- .../rest/guides/delivering-deployments.md | 130 ++++--- .../discovering-resources-for-a-user.md | 2 +- .../getting-started-with-the-rest-api.md | 2 +- .../es-ES/content/rest/guides/index.md | 2 +- .../rest/guides/rendering-data-as-graphs.md | 2 +- .../rest/guides/traversing-with-pagination.md | 4 +- .../rest/guides/working-with-comments.md | 4 +- .../content/rest/overview/api-previews.md | 2 +- .../es-ES/content/rest/overview/libraries.md | 2 +- .../overview/resources-in-the-rest-api.md | 2 +- .../es-ES/content/rest/reference/branches.md | 30 ++ .../content/rest/reference/collaborators.md | 35 ++ .../es-ES/content/rest/reference/commits.md | 68 ++++ .../content/rest/reference/deployments.md | 90 +++++ .../rest/reference/enterprise-admin.md | 2 +- .../es-ES/content/rest/reference/index.md | 14 +- .../es-ES/content/rest/reference/orgs.md | 36 +- .../es-ES/content/rest/reference/pages.md | 32 ++ .../permissions-required-for-github-apps.md | 186 +++++----- .../es-ES/content/rest/reference/pulls.md | 2 +- .../es-ES/content/rest/reference/releases.md | 23 ++ .../es-ES/content/rest/reference/repos.md | 317 ------------------ .../rest/reference/repository-metrics.md | 61 ++++ .../es-ES/content/rest/reference/search.md | 2 +- .../es-ES/content/rest/reference/webhooks.md | 77 +++++ .../about-searching-on-github.md | 10 +- ...rom-your-private-enterprise-environment.md | 6 +- .../understanding-the-search-syntax.md | 2 +- .../es-ES/content/search-github/index.md | 10 +- .../searching-on-github/searching-commits.md | 2 - .../searching-for-repositories.md | 2 +- .../searching-issues-and-pull-requests.md | 2 +- .../features/actions-starter-template-ui.yml | 6 + ...erprise-owners-visible-for-org-members.yml | 7 + .../features/fixed-width-font-gfm-fields.yml | 8 + translations/es-ES/data/glossaries/README.md | 1 + .../es-ES/data/learning-tracks/README.md | 6 +- .../enterprise-server/3-0/16.yml | 2 +- .../enterprise-server/3-0/17.yml | 2 +- .../enterprise-server/3-0/19.yml | 2 +- .../enterprise-server/3-0/20.yml | 1 + .../enterprise-server/3-0/22.yml | 3 +- .../enterprise-server/3-1/11.yml | 4 +- .../enterprise-server/3-1/12.yml | 1 + .../enterprise-server/3-1/14.yml | 3 +- .../release-notes/enterprise-server/3-1/8.yml | 2 +- .../release-notes/enterprise-server/3-1/9.yml | 2 +- .../enterprise-server/3-2/0-rc1.yml | 4 +- .../release-notes/enterprise-server/3-2/0.yml | 2 +- .../release-notes/enterprise-server/3-2/1.yml | 2 +- .../release-notes/enterprise-server/3-2/3.yml | 4 +- .../release-notes/enterprise-server/3-2/4.yml | 1 + .../release-notes/enterprise-server/3-2/6.yml | 3 +- .../enterprise-server/3-3/0-rc1.yml | 60 ++-- .../release-notes/enterprise-server/3-3/0.yml | 63 ++-- .../release-notes/enterprise-server/3-3/1.yml | 3 +- .../github-ae/2021-03/2021-03-03.yml | 4 +- .../github-ae/2021-06/2021-12-06.yml | 6 +- .../accounts/accounts-billed-separately.md | 1 + .../actions/actions-group-concurrency.md | 2 +- .../reusables/actions/cd-templates-actions.md | 2 +- .../actions/create-azure-app-plan.md | 17 + .../actions/create-azure-publish-profile.md | 5 + .../actions/environment-deployment-event.md | 2 +- .../reusables/actions/environment-example.md | 8 +- .../workflow-organization-templates.md | 2 +- .../workflow-run-approve-public-fork.md | 2 +- .../actions/workflow-template-overview.md | 4 +- .../advanced-security/ghas-availability.md | 10 + .../note-org-enable-uses-seats.md | 2 +- .../security-feature-availability.md | 1 + .../apps/oauth-auth-vary-response.md | 2 +- .../es-ES/data/reusables/cli/cli-features.md | 6 +- .../codespaces/command-palette-container.md | 4 +- .../reusables/community/issue-forms-beta.md | 2 +- .../dependabot/dependabot-alerts-beta.md | 2 +- .../enterprise-enable-dependabot.md | 2 +- .../you-can-read-docs-for-your-product.md | 1 + .../codespaces-report-download.md | 1 + .../dormant-user-activity-threshold.md | 2 +- .../invite-organization.md | 2 +- .../reusables/enterprise/ghec-cta-button.md | 2 +- .../enterprise/upgrade-ghes-for-features.md | 2 +- .../locking-repositories.md | 2 +- .../gated-features/advanced-security.md | 2 +- .../gated-features/dependency-review.md | 2 +- .../data/reusables/getting-started/api.md | 2 +- .../customizing-and-automating.md | 2 +- ...ng-access-to-repositories-projects-apps.md | 2 +- ...eviewing-org-audit-log-and-integrations.md | 2 +- .../github-actions/example-github-runner.md | 2 +- .../github-actions/java-jvm-architecture.md | 2 +- ...-groups-navigate-to-repo-org-enterprise.md | 14 +- ...osted-runner-navigate-to-org-enterprise.md | 4 +- ...-runner-navigate-to-repo-org-enterprise.md | 6 +- .../reusables/github-ae/saml-idp-table.md | 6 +- .../team-sync-okta-requirements.md | 2 +- .../organizations/org-invite-scim.md | 2 +- .../organizations/organization-plans.md | 8 + .../organizations/organizations_include.md | 13 +- .../data/reusables/organizations/people.md | 2 +- .../reusables/pages/check-workflow-run.md | 8 + ...-builds-with-github-actions-public-beta.md | 5 + .../pages/twenty-minutes-to-publish.md | 2 +- .../projects/open-command-palette.md | 2 +- .../data/reusables/projects/projects-beta.md | 2 +- .../reusables/repositories/actions-tab.md | 2 +- .../private_forks_inherit_permissions.md | 2 +- .../saml/external-group-audit-events.md | 14 +- .../saml/external-identity-audit-events.md | 10 +- .../data/reusables/saml/saml-accounts.md | 8 +- .../partner-secret-list-private-repo.md | 14 +- .../user_settings/appearance-settings.md | 3 + .../enabling-fixed-width-fonts.md | 5 + .../webhooks/commit_comment_properties.md | 8 +- .../webhooks/deploy_key_properties.md | 8 +- .../webhooks/deployment_short_desc.md | 2 +- .../webhooks/deployment_status_short_desc.md | 2 +- .../webhooks/issue_event_api_properties.md | 6 +- .../pull_request_event_api_properties.md | 6 +- .../webhooks/workflow_job_properties.md | 20 +- translations/es-ES/data/ui.yml | 8 +- translations/es-ES/data/variables/product.yml | 9 +- translations/log/es-resets.csv | 235 ++++++++++++- 538 files changed, 8093 insertions(+), 5552 deletions(-) create mode 100644 translations/es-ES/content/actions/deployment/deploying-to-your-cloud-provider/deploying-to-azure/deploying-docker-to-azure-app-service.md create mode 100644 translations/es-ES/content/actions/deployment/deploying-to-your-cloud-provider/deploying-to-azure/deploying-java-to-azure-app-service.md create mode 100644 translations/es-ES/content/actions/deployment/deploying-to-your-cloud-provider/deploying-to-azure/deploying-net-to-azure-app-service.md create mode 100644 translations/es-ES/content/actions/deployment/deploying-to-your-cloud-provider/deploying-to-azure/deploying-nodejs-to-azure-app-service.md create mode 100644 translations/es-ES/content/actions/deployment/deploying-to-your-cloud-provider/deploying-to-azure/deploying-php-to-azure-app-service.md create mode 100644 translations/es-ES/content/actions/deployment/deploying-to-your-cloud-provider/deploying-to-azure/deploying-python-to-azure-app-service.md create mode 100644 translations/es-ES/content/actions/deployment/deploying-to-your-cloud-provider/deploying-to-azure/deploying-to-azure-kubernetes-service.md create mode 100644 translations/es-ES/content/actions/deployment/deploying-to-your-cloud-provider/deploying-to-azure/deploying-to-azure-static-web-app.md create mode 100644 translations/es-ES/content/actions/deployment/deploying-to-your-cloud-provider/deploying-to-azure/index.md create mode 100644 translations/es-ES/content/actions/learn-github-actions/creating-starter-workflows-for-your-organization.md create mode 100644 translations/es-ES/content/actions/learn-github-actions/using-starter-workflows.md create mode 100644 translations/es-ES/content/code-security/code-scanning/automatically-scanning-your-code-for-vulnerabilities-and-errors/recommended-hardware-resources-for-running-codeql.md create mode 100644 translations/es-ES/content/codespaces/developing-in-codespaces/default-environment-variables-for-your-codespace.md create mode 100644 translations/es-ES/content/get-started/learning-about-github/about-versions-of-github-docs.md create mode 100644 translations/es-ES/content/rest/reference/branches.md create mode 100644 translations/es-ES/content/rest/reference/collaborators.md create mode 100644 translations/es-ES/content/rest/reference/commits.md create mode 100644 translations/es-ES/content/rest/reference/deployments.md create mode 100644 translations/es-ES/content/rest/reference/pages.md create mode 100644 translations/es-ES/content/rest/reference/releases.md create mode 100644 translations/es-ES/content/rest/reference/repository-metrics.md create mode 100644 translations/es-ES/content/rest/reference/webhooks.md create mode 100644 translations/es-ES/data/features/actions-starter-template-ui.yml create mode 100644 translations/es-ES/data/features/enterprise-owners-visible-for-org-members.yml create mode 100644 translations/es-ES/data/features/fixed-width-font-gfm-fields.yml create mode 100644 translations/es-ES/data/reusables/accounts/accounts-billed-separately.md create mode 100644 translations/es-ES/data/reusables/actions/create-azure-app-plan.md create mode 100644 translations/es-ES/data/reusables/actions/create-azure-publish-profile.md create mode 100644 translations/es-ES/data/reusables/advanced-security/ghas-availability.md create mode 100644 translations/es-ES/data/reusables/advanced-security/security-feature-availability.md create mode 100644 translations/es-ES/data/reusables/docs/you-can-read-docs-for-your-product.md create mode 100644 translations/es-ES/data/reusables/dotcom_billing/codespaces-report-download.md create mode 100644 translations/es-ES/data/reusables/organizations/organization-plans.md create mode 100644 translations/es-ES/data/reusables/pages/check-workflow-run.md create mode 100644 translations/es-ES/data/reusables/pages/pages-builds-with-github-actions-public-beta.md create mode 100644 translations/es-ES/data/reusables/user_settings/appearance-settings.md create mode 100644 translations/es-ES/data/reusables/user_settings/enabling-fixed-width-fonts.md diff --git a/translations/es-ES/content/account-and-profile/setting-up-and-managing-your-github-user-account/managing-user-account-settings/managing-your-theme-settings.md b/translations/es-ES/content/account-and-profile/setting-up-and-managing-your-github-user-account/managing-user-account-settings/managing-your-theme-settings.md index dcf8763603..d8335fc89f 100644 --- a/translations/es-ES/content/account-and-profile/setting-up-and-managing-your-github-user-account/managing-user-account-settings/managing-your-theme-settings.md +++ b/translations/es-ES/content/account-and-profile/setting-up-and-managing-your-github-user-account/managing-user-account-settings/managing-your-theme-settings.md @@ -29,9 +29,7 @@ You may want to use a dark theme to reduce power consumption on certain devices, {% endif %} {% data reusables.user_settings.access_settings %} -1. In the user settings sidebar, click **Appearance**. - - !["Appearance" tab in user settings sidebar](/assets/images/help/settings/appearance-tab.png) +{% data reusables.user_settings.appearance-settings %} 1. Under "Theme mode", select the drop-down menu, then click a theme preference. diff --git a/translations/es-ES/content/account-and-profile/setting-up-and-managing-your-github-user-account/managing-user-account-settings/merging-multiple-user-accounts.md b/translations/es-ES/content/account-and-profile/setting-up-and-managing-your-github-user-account/managing-user-account-settings/merging-multiple-user-accounts.md index 57084beb98..baf34206bf 100644 --- a/translations/es-ES/content/account-and-profile/setting-up-and-managing-your-github-user-account/managing-user-account-settings/merging-multiple-user-accounts.md +++ b/translations/es-ES/content/account-and-profile/setting-up-and-managing-your-github-user-account/managing-user-account-settings/merging-multiple-user-accounts.md @@ -20,6 +20,12 @@ shortTitle: Merge multiple user accounts {% endtip %} +{% warning %} + +**Warning:** Organization and repository access permissions aren't transferable between accounts. If the account you want to delete has an existing access permission, an organization owner or repository administrator will need to invite the account that you want to keep. + +{% endwarning %} + 1. [Transfer any repositories](/articles/how-to-transfer-a-repository) from the account you want to delete to the account you want to keep. Issues, pull requests, and wikis are transferred as well. Verify the repositories exist on the account you want to keep. 2. [Update the remote URLs](/github/getting-started-with-github/managing-remote-repositories) in any local clones of the repositories that were moved. 3. [Delete the account](/articles/deleting-your-user-account) you no longer want to use. diff --git a/translations/es-ES/content/account-and-profile/setting-up-and-managing-your-github-user-account/managing-user-account-settings/permission-levels-for-a-user-account-repository.md b/translations/es-ES/content/account-and-profile/setting-up-and-managing-your-github-user-account/managing-user-account-settings/permission-levels-for-a-user-account-repository.md index ad89e73102..08fa6a7891 100644 --- a/translations/es-ES/content/account-and-profile/setting-up-and-managing-your-github-user-account/managing-user-account-settings/permission-levels-for-a-user-account-repository.md +++ b/translations/es-ES/content/account-and-profile/setting-up-and-managing-your-github-user-account/managing-user-account-settings/permission-levels-for-a-user-account-repository.md @@ -37,11 +37,11 @@ The repository owner has full control of the repository. In addition to the acti | Limit interactions with the repository | "[Limiting interactions in your repository](/communities/moderating-comments-and-conversations/limiting-interactions-in-your-repository)" |{% endif %}{% ifversion fpt or ghes > 3.0 or ghae or ghec %} | Rename a branch, including the default branch | "[Renaming a branch](/github/administering-a-repository/renaming-a-branch)" |{% endif %} | Merge a pull request on a protected branch, even if there are no approving reviews | "[About protected branches](/github/administering-a-repository/about-protected-branches)" | -| Delete the repository | "[Deleting a repository](/github/administering-a-repository/deleting-a-repository)" | +| Delete the repository | "[Deleting a repository](/repositories/creating-and-managing-repositories/deleting-a-repository)" | | Manage the repository's topics | "[Classifying your repository with topics](/github/administering-a-repository/classifying-your-repository-with-topics)" |{% ifversion fpt or ghec %} | Manage security and analysis settings for the repository | "[Managing security and analysis settings for your repository](/github/administering-a-repository/managing-security-and-analysis-settings-for-your-repository)" |{% endif %}{% ifversion fpt or ghec %} -| Enable the dependency graph for a private repository | "[Exploring the dependencies of a repository](/github/visualizing-repository-data-with-graphs/exploring-the-dependencies-of-a-repository#enabling-and-disabling-the-dependency-graph-for-a-private-repository)" |{% endif %}{% ifversion fpt or ghes > 3.0 or ghec %} -| Delete and restore packages | "[Deleting and restoring a package](/packages/learn-github-packages/deleting-and-restoring-a-package)" |{% endif %}{% ifversion ghes = 3.0 or ghae %} +| Enable the dependency graph for a private repository | "[Exploring the dependencies of a repository](/github/visualizing-repository-data-with-graphs/exploring-the-dependencies-of-a-repository#enabling-and-disabling-the-dependency-graph-for-a-private-repository)" |{% endif %}{% ifversion fpt or ghes > 3.1 or ghec or ghae %} +| Delete and restore packages | "[Deleting and restoring a package](/packages/learn-github-packages/deleting-and-restoring-a-package)" |{% endif %}{% ifversion ghes < 3.1 %} | Delete packages | "[Deleting packages](/packages/learn-github-packages/deleting-a-package)" |{% endif %} | Customize the repository's social media preview | "[Customizing your repository's social media preview](/github/administering-a-repository/customizing-your-repositorys-social-media-preview)" | | Create a template from the repository | "[Creating a template repository](/github/creating-cloning-and-archiving-repositories/creating-a-template-repository)" |{% ifversion fpt or ghes or ghae-issue-4864 or ghec %} diff --git a/translations/es-ES/content/account-and-profile/setting-up-and-managing-your-github-user-account/managing-your-membership-in-organizations/viewing-peoples-roles-in-an-organization.md b/translations/es-ES/content/account-and-profile/setting-up-and-managing-your-github-user-account/managing-your-membership-in-organizations/viewing-peoples-roles-in-an-organization.md index bbff7062cd..28c8a5dcf8 100644 --- a/translations/es-ES/content/account-and-profile/setting-up-and-managing-your-github-user-account/managing-your-membership-in-organizations/viewing-peoples-roles-in-an-organization.md +++ b/translations/es-ES/content/account-and-profile/setting-up-and-managing-your-github-user-account/managing-your-membership-in-organizations/viewing-peoples-roles-in-an-organization.md @@ -1,6 +1,7 @@ --- -title: Ver los roles de las personas en una organización -intro: 'Puedes ver una lista de personas en tu organización y filtrar por su rol. For more information on organization roles, see "[Roles in an organization](/organizations/managing-peoples-access-to-your-organization-with-roles/roles-in-an-organization)."' +title: Viewing people's roles in an organization +intro: 'You can view a list of the people in your organization and filter by their role. For more information on organization roles, see "[Roles in an organization](/organizations/managing-peoples-access-to-your-organization-with-roles/roles-in-an-organization)."' +permissions: "Organization members can see people's roles in the organization." redirect_from: - /articles/viewing-people-s-roles-in-an-organization - /articles/viewing-peoples-roles-in-an-organization @@ -13,16 +14,53 @@ versions: ghec: '*' topics: - Accounts -shortTitle: Visualizar a las personas en una organización +shortTitle: View people in an organization --- -{% note %} - -**Nota:** debes ser miembro de una organización para ver los roles de las personas en tu organización. - -{% endnote %} +## View organization roles {% data reusables.profile.access_org %} {% data reusables.user_settings.access_org %} {% data reusables.organizations.people %} -4. Verás una lista de personas en tu organización. Para filtrar esta lista por rol, haz clic en **Role (Rol)** y seleccionar el rol que estás buscando. ![click-role](/assets/images/help/organizations/view-list-of-people-in-org-by-role.png) +4. You will see a list of the people in your organization. To filter the list by role, click **Role** and select the role you're searching for. + ![click-role](/assets/images/help/organizations/view-list-of-people-in-org-by-role.png) + +{% ifversion fpt %} + +If your organization uses {% data variables.product.prodname_ghe_cloud %}, you can also view the enterprise owners who manage billing settings and policies for all your enterprise's organizations. For more information, see [the {% data variables.product.prodname_ghe_cloud %} documentation](/enterprise-cloud@latest/account-and-profile/setting-up-and-managing-your-github-user-account/managing-your-membership-in-organizations/viewing-peoples-roles-in-an-organization#view-enterprise-owners-and-their-roles-in-an-organization). + +{% endif %} + +{% if enterprise-owners-visible-for-org-members %} +## View enterprise owners and their roles in an organization + +If your organization is managed by an enterprise account, then you can view the enterprise owners who manage billing settings and policies for all of your enterprise's organizations. For more information about enterprise accounts, see "[Types of {% data variables.product.prodname_dotcom %} accounts](/get-started/learning-about-github/types-of-github-accounts)." + +You can also view whether an enterprise owner has a specific role in the organization. Enterprise owners can also be an organization member, any other organization role, or be unaffililated with the organization. + +{% note %} + +**Note:** If you're an organization owner, you can also invite an enterprise owner to have a role in the organization. If an enterprise owner accepts the invitation, a seat or license in the organization is used from the available licenses for your enterprise. For more information about how licensing works, see "[Roles in an enterprise](/admin/user-management/managing-users-in-your-enterprise/roles-in-an-enterprise#enterprise-owner)." + +{% endnote %} + +| **Enterprise role** | **Organization role** | **Organization access or impact** | +|----|----|----|----| +| Enterprise owner | Unaffililated or no official organization role | Cannot access organization content or repositories but manages enterprise settings and policies that impact your organization. | +| Enterprise owner | Organization owner | Able to configure organization settings and manage access to the organization's resources through teams, etc. | +| Enterprise owner | Organization member | Able to access organization resources and content, such as repositories, without access to the organization's settings. | + +To review all roles in an organization, see "[Roles in an organization](/organizations/managing-peoples-access-to-your-organization-with-roles/roles-in-an-organization)." {% ifversion ghec %} An organization member can also have a custom role for a specific repository. For more information, see "[Managing custom repository roles for an organization](/organizations/managing-peoples-access-to-your-organization-with-roles/managing-custom-repository-roles-for-an-organization)."{% endif %} + +For more information about the enterprise owner role, see "[Roles in an enterprise](/admin/user-management/managing-users-in-your-enterprise/roles-in-an-enterprise#enterprise-owner)." + +{% data reusables.profile.access_org %} +{% data reusables.user_settings.access_org %} +{% data reusables.organizations.people %} +4. In the left sidebar, under "Enterprise permissions", click **Enterprise owners**. + ![Screenshot of "Enterprise owners" option in sidebar menu](/assets/images/help/organizations/enterprise-owners-sidebar.png) +5. View the list of the enterprise owners for your enterprise. If the enterprise owner is also a member of your organization, you can see their role in the organization. + + ![Screenshot of list of Enterprise owners and their role in the organization](/assets/images/help/organizations/enterprise-owners-list-on-org-page.png) + +{% endif %} \ No newline at end of file diff --git a/translations/es-ES/content/actions/automating-builds-and-tests/about-continuous-integration.md b/translations/es-ES/content/actions/automating-builds-and-tests/about-continuous-integration.md index 393d8c7c60..5c660e6ecb 100644 --- a/translations/es-ES/content/actions/automating-builds-and-tests/about-continuous-integration.md +++ b/translations/es-ES/content/actions/automating-builds-and-tests/about-continuous-integration.md @@ -39,19 +39,19 @@ You can configure your CI workflow to run when a {% data variables.product.prodn {% data variables.product.product_name %} runs your CI tests and provides the results of each test in the pull request, so you can see whether the change in your branch introduces an error. When all CI tests in a workflow pass, the changes you pushed are ready to be reviewed by a team member or merged. When a test fails, one of your changes may have caused the failure. -When you set up CI in your repository, {% data variables.product.product_name %} analyzes the code in your repository and recommends CI workflows based on the language and framework in your repository. For example, if you use [Node.js](https://nodejs.org/en/), {% data variables.product.product_name %} will suggest a template file that installs your Node.js packages and runs your tests. You can use the CI workflow template suggested by {% data variables.product.product_name %}, customize the suggested template, or create your own custom workflow file to run your CI tests. +When you set up CI in your repository, {% data variables.product.product_name %} analyzes the code in your repository and recommends CI workflows based on the language and framework in your repository. For example, if you use [Node.js](https://nodejs.org/en/), {% data variables.product.product_name %} will suggest a starter workflow that installs your Node.js packages and runs your tests. You can use the CI starter workflow suggested by {% data variables.product.product_name %}, customize the suggested starter workflow, or create your own custom workflow file to run your CI tests. -![Screenshot of suggested continuous integration templates](/assets/images/help/repository/ci-with-actions-template-picker.png) +![Screenshot of suggested continuous integration starter workflows](/assets/images/help/repository/ci-with-actions-template-picker.png) In addition to helping you set up CI workflows for your project, you can use {% data variables.product.prodname_actions %} to create workflows across the full software development life cycle. For example, you can use actions to deploy, package, or release your project. For more information, see "[About {% data variables.product.prodname_actions %}](/articles/about-github-actions)." For a definition of common terms, see "[Core concepts for {% data variables.product.prodname_actions %}](/github/automating-your-workflow-with-github-actions/core-concepts-for-github-actions)." -## Workflow templates +## Starter workflow -{% data variables.product.product_name %} offers CI workflow templates for a variety of languages and frameworks. +{% data variables.product.product_name %} offers CI starter workflow for a variety of languages and frameworks. -Browse the complete list of CI workflow templates offered by {% data variables.product.company_short %} in the {% ifversion fpt or ghec %}[actions/starter-workflows](https://github.com/actions/starter-workflows/tree/main/ci) repository{% else %} `actions/starter-workflows` repository on {% data variables.product.product_location %}{% endif %}. +Browse the complete list of CI starter workflow offered by {% data variables.product.company_short %} in the {% ifversion fpt or ghec %}[actions/starter-workflows](https://github.com/actions/starter-workflows/tree/main/ci) repository{% else %} `actions/starter-workflows` repository on {% data variables.product.product_location %}{% endif %}. ## Further reading diff --git a/translations/es-ES/content/actions/automating-builds-and-tests/building-and-testing-java-with-ant.md b/translations/es-ES/content/actions/automating-builds-and-tests/building-and-testing-java-with-ant.md index e064761894..ccf04b5c79 100644 --- a/translations/es-ES/content/actions/automating-builds-and-tests/building-and-testing-java-with-ant.md +++ b/translations/es-ES/content/actions/automating-builds-and-tests/building-and-testing-java-with-ant.md @@ -40,11 +40,11 @@ We recommend that you have a basic understanding of Java and the Ant framework. {% data reusables.actions.enterprise-setup-prereq %} -## Starting with an Ant workflow template +## Using the Ant starter workflow -{% data variables.product.prodname_dotcom %} provides an Ant workflow template that will work for most Ant-based Java projects. For more information, see the [Ant workflow template](https://github.com/actions/starter-workflows/blob/main/ci/ant.yml). +{% data variables.product.prodname_dotcom %} provides an Ant starter workflow that will work for most Ant-based Java projects. For more information, see the [Ant starter workflow](https://github.com/actions/starter-workflows/blob/main/ci/ant.yml). -To get started quickly, you can choose the preconfigured Ant template when you create a new workflow. For more information, see the "[{% data variables.product.prodname_actions %} quickstart](/actions/quickstart)." +To get started quickly, you can choose the preconfigured Ant starter workflow when you create a new workflow. For more information, see the "[{% data variables.product.prodname_actions %} quickstart](/actions/quickstart)." You can also add this workflow manually by creating a new file in the `.github/workflows` directory of your repository. @@ -76,7 +76,7 @@ This workflow performs the following steps: 2. The `setup-java` step configures the Java 11 JDK by Adoptium. 3. The "Build with Ant" step runs the default target in your `build.xml` in non-interactive mode. -The default workflow templates are excellent starting points when creating your build and test workflow, and you can customize the template to suit your project’s needs. +The default starter workflows are excellent starting points when creating your build and test workflow, and you can customize the starter workflow to suit your project’s needs. {% data reusables.github-actions.example-github-runner %} diff --git a/translations/es-ES/content/actions/automating-builds-and-tests/building-and-testing-java-with-gradle.md b/translations/es-ES/content/actions/automating-builds-and-tests/building-and-testing-java-with-gradle.md index 74fb4ffb74..53d8174806 100644 --- a/translations/es-ES/content/actions/automating-builds-and-tests/building-and-testing-java-with-gradle.md +++ b/translations/es-ES/content/actions/automating-builds-and-tests/building-and-testing-java-with-gradle.md @@ -40,11 +40,11 @@ We recommend that you have a basic understanding of Java and the Gradle framewor {% data reusables.actions.enterprise-setup-prereq %} -## Starting with a Gradle workflow template +## Using the Gradle starter workflow -{% data variables.product.prodname_dotcom %} provides a Gradle workflow template that will work for most Gradle-based Java projects. For more information, see the [Gradle workflow template](https://github.com/actions/starter-workflows/blob/main/ci/gradle.yml). +{% data variables.product.prodname_dotcom %} provides a Gradle starter workflow that will work for most Gradle-based Java projects. For more information, see the [Gradle starter workflow](https://github.com/actions/starter-workflows/blob/main/ci/gradle.yml). -To get started quickly, you can choose the preconfigured Gradle template when you create a new workflow. For more information, see the "[{% data variables.product.prodname_actions %} quickstart](/actions/quickstart)." +To get started quickly, you can choose the preconfigured Gradle starter workflow when you create a new workflow. For more information, see the "[{% data variables.product.prodname_actions %} quickstart](/actions/quickstart)." You can also add this workflow manually by creating a new file in the `.github/workflows` directory of your repository. @@ -79,7 +79,7 @@ This workflow performs the following steps: 3. The "Validate Gradle wrapper" step validates the checksums of Gradle Wrapper JAR files present in the source tree. 4. The "Build with Gradle" step runs the `gradlew` wrapper script to ensure that your code builds, tests pass, and a package can be created. -The default workflow templates are excellent starting points when creating your build and test workflow, and you can customize the template to suit your project’s needs. +The default starter workflows are excellent starting points when creating your build and test workflow, and you can customize the starter workflow to suit your project’s needs. {% data reusables.github-actions.example-github-runner %} diff --git a/translations/es-ES/content/actions/automating-builds-and-tests/building-and-testing-java-with-maven.md b/translations/es-ES/content/actions/automating-builds-and-tests/building-and-testing-java-with-maven.md index a8403ce752..bc44e08de5 100644 --- a/translations/es-ES/content/actions/automating-builds-and-tests/building-and-testing-java-with-maven.md +++ b/translations/es-ES/content/actions/automating-builds-and-tests/building-and-testing-java-with-maven.md @@ -40,11 +40,11 @@ We recommend that you have a basic understanding of Java and the Maven framework {% data reusables.actions.enterprise-setup-prereq %} -## Starting with a Maven workflow template +## Using the Maven starter workflow -{% data variables.product.prodname_dotcom %} provides a Maven workflow template that will work for most Maven-based Java projects. For more information, see the [Maven workflow template](https://github.com/actions/starter-workflows/blob/main/ci/maven.yml). +{% data variables.product.prodname_dotcom %} provides a Maven starter workflow that will work for most Maven-based Java projects. For more information, see the [Maven starter workflow](https://github.com/actions/starter-workflows/blob/main/ci/maven.yml). -To get started quickly, you can choose the preconfigured Maven template when you create a new workflow. For more information, see the "[{% data variables.product.prodname_actions %} quickstart](/actions/quickstart)." +To get started quickly, you can choose the preconfigured Maven starter workflow when you create a new workflow. For more information, see the "[{% data variables.product.prodname_actions %} quickstart](/actions/quickstart)." You can also add this workflow manually by creating a new file in the `.github/workflows` directory of your repository. @@ -76,7 +76,7 @@ This workflow performs the following steps: 2. The `setup-java` step configures the Java 11 JDK by Adoptium. 3. The "Build with Maven" step runs the Maven `package` target in non-interactive mode to ensure that your code builds, tests pass, and a package can be created. -The default workflow templates are excellent starting points when creating your build and test workflow, and you can customize the template to suit your project’s needs. +The default starter workflows are excellent starting points when creating your build and test workflow, and you can customize the starter workflow to suit your project’s needs. {% data reusables.github-actions.example-github-runner %} diff --git a/translations/es-ES/content/actions/automating-builds-and-tests/building-and-testing-net.md b/translations/es-ES/content/actions/automating-builds-and-tests/building-and-testing-net.md index ba114a3e74..774d757556 100644 --- a/translations/es-ES/content/actions/automating-builds-and-tests/building-and-testing-net.md +++ b/translations/es-ES/content/actions/automating-builds-and-tests/building-and-testing-net.md @@ -28,11 +28,11 @@ You should already be familiar with YAML syntax and how it's used with {% data v We recommend that you have a basic understanding of the .NET Core SDK. For more information, see [Getting started with .NET](https://dotnet.microsoft.com/learn). -## Starting with the .NET workflow template +## Using the .NET starter workflow -{% data variables.product.prodname_dotcom %} provides a .NET workflow template that should work for most .NET projects, and this guide includes examples that show you how to customize this template. For more information, see the [.NET workflow template](https://github.com/actions/setup-dotnet). +{% data variables.product.prodname_dotcom %} provides a .NET starter workflow that should work for most .NET projects, and this guide includes examples that show you how to customize this starter workflow. For more information, see the [.NET starter workflow](https://github.com/actions/setup-dotnet). -To get started quickly, add the template to the `.github/workflows` directory of your repository. +To get started quickly, add the starter workflow to the `.github/workflows` directory of your repository. {% raw %} ```yaml diff --git a/translations/es-ES/content/actions/automating-builds-and-tests/building-and-testing-nodejs.md b/translations/es-ES/content/actions/automating-builds-and-tests/building-and-testing-nodejs.md index 8460d39730..ecb2e61aa8 100644 --- a/translations/es-ES/content/actions/automating-builds-and-tests/building-and-testing-nodejs.md +++ b/translations/es-ES/content/actions/automating-builds-and-tests/building-and-testing-nodejs.md @@ -36,11 +36,11 @@ We recommend that you have a basic understanding of Node.js, YAML, workflow conf {% data reusables.actions.enterprise-setup-prereq %} -## Starting with the Node.js workflow template +## Using the Node.js starter workflow -{% data variables.product.prodname_dotcom %} provides a Node.js workflow template that will work for most Node.js projects. This guide includes npm and Yarn examples that you can use to customize the template. For more information, see the [Node.js workflow template](https://github.com/actions/starter-workflows/blob/main/ci/node.js.yml). +{% data variables.product.prodname_dotcom %} provides a Node.js starter workflow that will work for most Node.js projects. This guide includes npm and Yarn examples that you can use to customize the starter workflow. For more information, see the [Node.js starter workflow](https://github.com/actions/starter-workflows/blob/main/ci/node.js.yml). -To get started quickly, add the template to the `.github/workflows` directory of your repository. The workflow shown below assumes that the default branch for your repository is `main`. +To get started quickly, add the starter workflow to the `.github/workflows` directory of your repository. The workflow shown below assumes that the default branch for your repository is `main`. {% raw %} ```yaml{:copy} @@ -81,7 +81,7 @@ The easiest way to specify a Node.js version is by using the `setup-node` action The `setup-node` action takes a Node.js version as an input and configures that version on the runner. The `setup-node` action finds a specific version of Node.js from the tools cache on each runner and adds the necessary binaries to `PATH`, which persists for the rest of the job. Using the `setup-node` action is the recommended way of using Node.js with {% data variables.product.prodname_actions %} because it ensures consistent behavior across different runners and different versions of Node.js. If you are using a self-hosted runner, you must install Node.js and add it to `PATH`. -The template includes a matrix strategy that builds and tests your code with four Node.js versions: 10.x, 12.x, 14.x, and 15.x. The 'x' is a wildcard character that matches the latest minor and patch release available for a version. Each version of Node.js specified in the `node-version` array creates a job that runs the same steps. +The starter workflow includes a matrix strategy that builds and tests your code with four Node.js versions: 10.x, 12.x, 14.x, and 15.x. The 'x' is a wildcard character that matches the latest minor and patch release available for a version. Each version of Node.js specified in the `node-version` array creates a job that runs the same steps. Each job can access the value defined in the matrix `node-version` array using the `matrix` context. The `setup-node` action uses the context as the `node-version` input. The `setup-node` action configures each job with a different Node.js version before building and testing code. For more information about matrix strategies and contexts, see "[Workflow syntax for {% data variables.product.prodname_actions %}](/actions/automating-your-workflow-with-github-actions/workflow-syntax-for-github-actions#jobsjob_idstrategymatrix)" and "[Contexts](/actions/learn-github-actions/contexts)." diff --git a/translations/es-ES/content/actions/automating-builds-and-tests/building-and-testing-python.md b/translations/es-ES/content/actions/automating-builds-and-tests/building-and-testing-python.md index bdbeef71ff..c67f6a545b 100644 --- a/translations/es-ES/content/actions/automating-builds-and-tests/building-and-testing-python.md +++ b/translations/es-ES/content/actions/automating-builds-and-tests/building-and-testing-python.md @@ -42,11 +42,11 @@ We recommend that you have a basic understanding of Python, PyPy, and pip. For m {% data reusables.actions.enterprise-setup-prereq %} -## Starting with the Python workflow template +## Using the Python starter workflow -{% data variables.product.prodname_dotcom %} provides a Python workflow template that should work for most Python projects. This guide includes examples that you can use to customize the template. For more information, see the [Python workflow template](https://github.com/actions/starter-workflows/blob/main/ci/python-package.yml). +{% data variables.product.prodname_dotcom %} provides a Python starter workflow that should work for most Python projects. This guide includes examples that you can use to customize the starter workflow. For more information, see the [Python starter workflow](https://github.com/actions/starter-workflows/blob/main/ci/python-package.yml). -To get started quickly, add the template to the `.github/workflows` directory of your repository. +To get started quickly, add the starter workflow to the `.github/workflows` directory of your repository. {% raw %} ```yaml{:copy} @@ -426,4 +426,4 @@ jobs: password: {% raw %}${{ secrets.PYPI_API_TOKEN }}{% endraw %} ``` -For more information about the template workflow, see [`python-publish`](https://github.com/actions/starter-workflows/blob/main/ci/python-publish.yml). +For more information about the starter workflow, see [`python-publish`](https://github.com/actions/starter-workflows/blob/main/ci/python-publish.yml). diff --git a/translations/es-ES/content/actions/automating-builds-and-tests/building-and-testing-ruby.md b/translations/es-ES/content/actions/automating-builds-and-tests/building-and-testing-ruby.md index 6da09a7717..09d888b839 100644 --- a/translations/es-ES/content/actions/automating-builds-and-tests/building-and-testing-ruby.md +++ b/translations/es-ES/content/actions/automating-builds-and-tests/building-and-testing-ruby.md @@ -29,11 +29,11 @@ We recommend that you have a basic understanding of Ruby, YAML, workflow configu - [Learn {% data variables.product.prodname_actions %}](/actions/learn-github-actions) - [Ruby in 20 minutes](https://www.ruby-lang.org/en/documentation/quickstart/) -## Starting with the Ruby workflow template +## Using the Ruby starter workflow -{% data variables.product.prodname_dotcom %} provides a Ruby workflow template that will work for most Ruby projects. For more information, see the [Ruby workflow template](https://github.com/actions/starter-workflows/blob/master/ci/ruby.yml). +{% data variables.product.prodname_dotcom %} provides a Ruby starter workflow that will work for most Ruby projects. For more information, see the [Ruby starter workflow](https://github.com/actions/starter-workflows/blob/master/ci/ruby.yml). -To get started quickly, add the template to the `.github/workflows` directory of your repository. The workflow shown below assumes that the default branch for your repository is `main`. +To get started quickly, add the starter workflow to the `.github/workflows` directory of your repository. The workflow shown below assumes that the default branch for your repository is `main`. ```yaml {% data reusables.actions.actions-not-certified-by-github-comment %} diff --git a/translations/es-ES/content/actions/automating-builds-and-tests/building-and-testing-swift.md b/translations/es-ES/content/actions/automating-builds-and-tests/building-and-testing-swift.md index 8bbcaef747..c343875e70 100644 --- a/translations/es-ES/content/actions/automating-builds-and-tests/building-and-testing-swift.md +++ b/translations/es-ES/content/actions/automating-builds-and-tests/building-and-testing-swift.md @@ -31,11 +31,11 @@ You should already be familiar with YAML syntax and how it's used with {% data v We recommend that you have a basic understanding of Swift packages. For more information, see "[Swift Packages](https://developer.apple.com/documentation/swift_packages)" in the Apple developer documentation. -## Starting with the Swift workflow template +## Using the Swift starter workflow -{% data variables.product.prodname_dotcom %} provides a Swift workflow template that should work for most Swift projects, and this guide includes examples that show you how to customize this template. For more information, see the [Swift workflow template](https://github.com/actions/starter-workflows/blob/main/ci/swift.yml). +{% data variables.product.prodname_dotcom %} provides a Swift starter workflow that should work for most Swift projects, and this guide includes examples that show you how to customize this starter workflow. For more information, see the [Swift starter workflow](https://github.com/actions/starter-workflows/blob/main/ci/swift.yml). -To get started quickly, add the template to the `.github/workflows` directory of your repository. +To get started quickly, add the starter workflow to the `.github/workflows` directory of your repository. {% raw %} ```yaml{:copy} diff --git a/translations/es-ES/content/actions/creating-actions/creating-a-javascript-action.md b/translations/es-ES/content/actions/creating-actions/creating-a-javascript-action.md index 72621a7252..be64353589 100644 --- a/translations/es-ES/content/actions/creating-actions/creating-a-javascript-action.md +++ b/translations/es-ES/content/actions/creating-actions/creating-a-javascript-action.md @@ -37,9 +37,9 @@ Once you complete this project, you should understand how to build your own Java Before you begin, you'll need to download Node.js and create a public {% data variables.product.prodname_dotcom %} repository. -1. Download and install Node.js 12.x, which includes npm. +1. Download and install Node.js {% ifversion fpt or ghes > 3.3 or ghae-issue-5504 or ghec %}16.x{% else %}12.x{% endif %}, which includes npm. - https://nodejs.org/en/download/current/ + {% ifversion fpt or ghes > 3.3 or ghae-issue-5504 or ghec %}https://nodejs.org/en/download/{% else %}https://nodejs.org/en/download/releases/{% endif %} 1. Create a new public repository on {% data variables.product.product_location %} and call it "hello-world-javascript-action". For more information, see "[Create a new repository](/articles/creating-a-new-repository)." @@ -73,7 +73,7 @@ outputs: time: # id of output description: 'The time we greeted you' runs: - using: 'node12' + using: {% ifversion fpt or ghes > 3.3 or ghae-issue-5504 or ghec %}'node16'{% else %}'node12'{% endif %} main: 'index.js' ``` diff --git a/translations/es-ES/content/actions/creating-actions/index.md b/translations/es-ES/content/actions/creating-actions/index.md index 7ed06229d7..1d91ced73d 100644 --- a/translations/es-ES/content/actions/creating-actions/index.md +++ b/translations/es-ES/content/actions/creating-actions/index.md @@ -6,7 +6,7 @@ redirect_from: - /github/automating-your-workflow-with-github-actions/building-actions - /actions/automating-your-workflow-with-github-actions/building-actions - /actions/building-actions - - /articles/creating-a-github-action/ + - /articles/creating-a-github-action versions: fpt: '*' ghes: '*' diff --git a/translations/es-ES/content/actions/creating-actions/metadata-syntax-for-github-actions.md b/translations/es-ES/content/actions/creating-actions/metadata-syntax-for-github-actions.md index 4e9757aec3..2c0ebd6eaf 100644 --- a/translations/es-ES/content/actions/creating-actions/metadata-syntax-for-github-actions.md +++ b/translations/es-ES/content/actions/creating-actions/metadata-syntax-for-github-actions.md @@ -140,11 +140,11 @@ For more information on how to use context syntax, see "[Contexts](/actions/lear **Required** Configures the path to the action's code and the runtime used to execute the code. -### Example using Node.js v12 +### Example using Node.js {% ifversion fpt or ghes > 3.3 or ghae-issue-5504 or ghec %}v16{% else %}v12{% endif %} ```yaml runs: - using: 'node12' + using: {% ifversion fpt or ghes > 3.3 or ghae-issue-5504 or ghec %}'node16'{% else %}'node12'{% endif %} main: 'main.js' ``` @@ -152,8 +152,8 @@ runs: **Required** The runtime used to execute the code specified in [`main`](#runsmain). -- Use `node12` for Node.js v12. -- Use `node16` for Node.js v16. +- Use `node12` for Node.js v12.{% ifversion fpt or ghes > 3.3 or ghae-issue-5504 or ghec %} +- Use `node16` for Node.js v16.{% endif %} ### `runs.main` @@ -167,7 +167,7 @@ In this example, the `pre:` action runs a script called `setup.js`: ```yaml runs: - using: 'node12' + using: {% ifversion fpt or ghes > 3.3 or ghae-issue-5504 or ghec %}'node16'{% else %}'node12'{% endif %} pre: 'setup.js' main: 'index.js' post: 'cleanup.js' @@ -175,7 +175,8 @@ runs: ### `pre-if` -**Optional** Allows you to define conditions for the `pre:` action execution. The `pre:` action will only run if the conditions in `pre-if` are met. If not set, then `pre-if` defaults to `always()`. +**Optional** Allows you to define conditions for the `pre:` action execution. The `pre:` action will only run if the conditions in `pre-if` are met. If not set, then `pre-if` defaults to `always()`. In `pre-if`, status check functions evaluate against the job's status, not the action's own status. + Note that the `step` context is unavailable, as no steps have run yet. In this example, `cleanup.js` only runs on Linux-based runners: @@ -193,7 +194,7 @@ In this example, the `post:` action runs a script called `cleanup.js`: ```yaml runs: - using: 'node12' + using: {% ifversion fpt or ghes > 3.3 or ghae-issue-5504 or ghec %}'node16'{% else %}'node12'{% endif %} main: 'index.js' post: 'cleanup.js' ``` @@ -202,7 +203,7 @@ The `post:` action always runs by default but you can override this using `post- ### `post-if` -**Optional** Allows you to define conditions for the `post:` action execution. The `post:` action will only run if the conditions in `post-if` are met. If not set, then `post-if` defaults to `always()`. +**Optional** Allows you to define conditions for the `post:` action execution. The `post:` action will only run if the conditions in `post-if` are met. If not set, then `post-if` defaults to `always()`. In `post-if`, status check functions evaluate against the job's status, not the action's own status. For example, this `cleanup.js` will only run on Linux-based runners: @@ -265,6 +266,35 @@ For more information, see "[`github context`](/actions/reference/context-and-exp **Required** The shell where you want to run the command. You can use any of the shells listed [here](/actions/reference/workflow-syntax-for-github-actions#jobsjob_idstepsshell). Required if `run` is set. {% endif %} +#### `runs.steps[*].if` + +**Optional** You can use the `if` conditional to prevent a step from running unless a condition is met. You can use any supported context and expression to create a conditional. + +{% data reusables.github-actions.expression-syntax-if %} For more information, see "[Expressions](/actions/learn-github-actions/expressions)." + +**Example: Using contexts** + + This step only runs when the event type is a `pull_request` and the event action is `unassigned`. + + ```yaml +steps: + - run: echo This event is a pull request that had an assignee removed. + if: {% raw %}${{ github.event_name == 'pull_request' && github.event.action == 'unassigned' }}{% endraw %} +``` + +**Example: Using status check functions** + +The `my backup step` only runs when the previous step of a composite action fails. For more information, see "[Expressions](/actions/learn-github-actions/expressions#job-status-check-functions)." + +```yaml +steps: + - name: My first step + uses: octo-org/action-name@main + - name: My backup step + if: {% raw %}${{ failure() }}{% endraw %} + uses: actions/heroku@1.0.0 +``` + #### `runs.steps[*].name` **Optional** The name of the composite step. diff --git a/translations/es-ES/content/actions/deployment/about-deployments/about-continuous-deployment.md b/translations/es-ES/content/actions/deployment/about-deployments/about-continuous-deployment.md index cf534d337e..e941449aa8 100644 --- a/translations/es-ES/content/actions/deployment/about-deployments/about-continuous-deployment.md +++ b/translations/es-ES/content/actions/deployment/about-deployments/about-continuous-deployment.md @@ -40,7 +40,7 @@ You can configure your CD workflow to run when a {% data variables.product.produ {% endif %} -## Workflow templates and third party actions +## Starter workflows and third party actions {% data reusables.actions.cd-templates-actions %} diff --git a/translations/es-ES/content/actions/deployment/deploying-to-your-cloud-provider/deploying-to-azure/deploying-docker-to-azure-app-service.md b/translations/es-ES/content/actions/deployment/deploying-to-your-cloud-provider/deploying-to-azure/deploying-docker-to-azure-app-service.md new file mode 100644 index 0000000000..8133adef88 --- /dev/null +++ b/translations/es-ES/content/actions/deployment/deploying-to-your-cloud-provider/deploying-to-azure/deploying-docker-to-azure-app-service.md @@ -0,0 +1,153 @@ +--- +title: Deploying Docker to Azure App Service +intro: You can deploy a Docker container to Azure App Service as part of your continuous deployment (CD) workflows. +versions: + fpt: '*' + ghes: '*' + ghae: '*' + ghec: '*' +type: tutorial +topics: + - CD + - Containers + - Docker + - Azure App Service +--- + +{% data reusables.actions.enterprise-beta %} +{% data reusables.actions.enterprise-github-hosted-runners %} + +## Introduction + +This guide explains how to use {% data variables.product.prodname_actions %} to build and deploy a Docker container to [Azure App Service](https://azure.microsoft.com/services/app-service/). + +{% ifversion fpt or ghec or ghae-issue-4856 %} + +{% note %} + +**Note**: {% data reusables.actions.about-oidc-short-overview %} and "[Configuring OpenID Connect in Azure](/actions/deployment/security-hardening-your-deployments/configuring-openid-connect-in-azure)." + +{% endnote %} + +{% endif %} + +## Prerequisites + +Before creating your {% data variables.product.prodname_actions %} workflow, you will first need to complete the following setup steps: + +{% data reusables.actions.create-azure-app-plan %} + +1. Create a web app. + + For example, you can use the Azure CLI to create an Azure App Service web app: + + ```bash{:copy} + az webapp create \ + --name MY_WEBAPP_NAME \ + --plan MY_APP_SERVICE_PLAN \ + --resource-group MY_RESOURCE_GROUP \ + --deployment-container-image-name nginx:latest + ``` + + In the command above, replace the parameters with your own values, where `MY_WEBAPP_NAME` is a new name for the web app. + +{% data reusables.actions.create-azure-publish-profile %} + +1. Set registry credentials for your web app. + + Create a personal access token with the `repo` and `read:packages` scopes. For more information, see "[Creating a personal access token](/authentication/keeping-your-account-and-data-secure/creating-a-personal-access-token)." + + Set `DOCKER_REGISTRY_SERVER_URL` to `https://ghcr.io`, `DOCKER_REGISTRY_SERVER_USERNAME` to the GitHub username or organization that owns the repository, and `DOCKER_REGISTRY_SERVER_PASSWORD` to your personal access token from above. This will give your web app credentials so it can pull the container image after your workflow pushes a newly built image to the registry. You can do this with the following Azure CLI command: + + ```shell + az webapp config appsettings set \ + --name MY_WEBAPP_NAME \ + --resource-group MY_RESOURCE_GROUP \ + --settings DOCKER_REGISTRY_SERVER_URL=https://ghcr.io DOCKER_REGISTRY_SERVER_USERNAME=MY_REPOSITORY_OWNER DOCKER_REGISTRY_SERVER_PASSWORD=MY_PERSONAL_ACCESS_TOKEN +``` + +{% ifversion fpt or ghes > 3.0 or ghae or ghec %} +5. Optionally, configure a deployment environment. {% data reusables.actions.about-environments %} +{% endif %} + +## Creating the workflow + +Once you've completed the prerequisites, you can proceed with creating the workflow. + +The following example workflow demonstrates how to build and deploy a Docker container to Azure App Service when there is a push to the `main` branch. + +Ensure that you set `AZURE_WEBAPP_NAME` in the workflow `env` key to the name of the web app you created. + +{% data reusables.actions.delete-env-key %} + +```yaml{:copy} +{% data reusables.actions.actions-not-certified-by-github-comment %} + +name: Build and deploy a container to an Azure Web App + +env: + AZURE_WEBAPP_NAME: MY_WEBAPP_NAME # set this to your application's name + +on: + push: + branches: + - main + +permissions: + contents: 'read' + packages: 'write' + +jobs: + build: + runs-on: ubuntu-latest + + steps: + - uses: actions/checkout@v2 + + - name: Set up Docker Buildx + uses: docker/setup-buildx-action@v1 + + - name: Log in to GitHub container registry + uses: docker/login-action@v1.10.0 + with: + registry: ghcr.io + username: {% raw %}${{ github.actor }}{% endraw %} + password: {% raw %}${{ secrets.GITHUB_TOKEN }}{% endraw %} + + - name: Lowercase the repo name + run: echo "REPO=${GITHUB_REPOSITORY,,}" >>${GITHUB_ENV} + + - name: Build and push container image to registry + uses: docker/build-push-action@v2 + with: + push: true + tags: ghcr.io/{% raw %}${{ env.REPO }}{% endraw %}:{% raw %}${{ github.sha }}{% endraw %} + file: ./Dockerfile + + deploy: + runs-on: ubuntu-latest + needs: build + environment: + name: 'production' + url: {% raw %}${{ steps.deploy-to-webapp.outputs.webapp-url }}{% endraw %} + + steps: + - name: Lowercase the repo name + run: echo "REPO=${GITHUB_REPOSITORY,,}" >>${GITHUB_ENV} + + - name: Deploy to Azure Web App + id: deploy-to-webapp + uses: azure/webapps-deploy@0b651ed7546ecfc75024011f76944cb9b381ef1e + with: + app-name: {% raw %}${{ env.AZURE_WEBAPP_NAME }}{% endraw %} + publish-profile: {% raw %}${{ secrets.AZURE_WEBAPP_PUBLISH_PROFILE }}{% endraw %} + images: 'ghcr.io/{% raw %}${{ env.REPO }}{% endraw %}:{% raw %}${{ github.sha }}{% endraw %}' +``` + +## Additional resources + +The following resources may also be useful: + +* For the original starter workflow, see [`azure-container-webapp.yml`](https://github.com/actions/starter-workflows/blob/main/deployments/azure-container-webapp.yml) in the {% data variables.product.prodname_actions %} `starter-workflows` repository. +* The action used to deploy the web app is the official Azure [`Azure/webapps-deploy`](https://github.com/Azure/webapps-deploy) action. +* For more examples of GitHub Action workflows that deploy to Azure, see the [actions-workflow-samples](https://github.com/Azure/actions-workflow-samples) repository. diff --git a/translations/es-ES/content/actions/deployment/deploying-to-your-cloud-provider/deploying-to-azure/deploying-java-to-azure-app-service.md b/translations/es-ES/content/actions/deployment/deploying-to-your-cloud-provider/deploying-to-azure/deploying-java-to-azure-app-service.md new file mode 100644 index 0000000000..7959f41764 --- /dev/null +++ b/translations/es-ES/content/actions/deployment/deploying-to-your-cloud-provider/deploying-to-azure/deploying-java-to-azure-app-service.md @@ -0,0 +1,134 @@ +--- +title: Deploying Java to Azure App Service +intro: You can deploy your Java project to Azure App Service as part of your continuous deployment (CD) workflows. +versions: + fpt: '*' + ghes: '*' + ghae: '*' + ghec: '*' +type: tutorial +topics: + - CD + - Java + - Azure App Service +--- + +{% data reusables.actions.enterprise-beta %} +{% data reusables.actions.enterprise-github-hosted-runners %} + + +## Introduction + +This guide explains how to use {% data variables.product.prodname_actions %} to build and deploy a Java project to [Azure App Service](https://azure.microsoft.com/services/app-service/). + +{% ifversion fpt or ghec or ghae-issue-4856 %} + +{% note %} + +**Note**: {% data reusables.actions.about-oidc-short-overview %} and "[Configuring OpenID Connect in Azure](/actions/deployment/security-hardening-your-deployments/configuring-openid-connect-in-azure)." + +{% endnote %} + +{% endif %} + +## Prerequisites + +Before creating your {% data variables.product.prodname_actions %} workflow, you will first need to complete the following setup steps: + +{% data reusables.actions.create-azure-app-plan %} + +1. Create a web app. + + For example, you can use the Azure CLI to create an Azure App Service web app with a Java runtime: + + ```bash{:copy} + az webapp create \ + --name MY_WEBAPP_NAME \ + --plan MY_APP_SERVICE_PLAN \ + --resource-group MY_RESOURCE_GROUP \ + --runtime "JAVA|11-java11" + ``` + + In the command above, replace the parameters with your own values, where `MY_WEBAPP_NAME` is a new name for the web app. + +{% data reusables.actions.create-azure-publish-profile %} + +{% ifversion fpt or ghes > 3.0 or ghae or ghec %} +1. Optionally, configure a deployment environment. {% data reusables.actions.about-environments %} +{% endif %} + +## Creating the workflow + +Once you've completed the prerequisites, you can proceed with creating the workflow. + +The following example workflow demonstrates how to build and deploy a Java project to Azure App Service when there is a push to the `main` branch. + +Ensure that you set `AZURE_WEBAPP_NAME` in the workflow `env` key to the name of the web app you created. If you want to use a Java version other than `11`, change `JAVA_VERSION`. + +{% data reusables.actions.delete-env-key %} + +```yaml{:copy} +{% data reusables.actions.actions-not-certified-by-github-comment %} + +name: Build and deploy JAR app to Azure Web App + +env: + AZURE_WEBAPP_NAME: MY_WEBAPP_NAME # set this to your application's name + JAVA_VERSION: '11' # set this to the Java version to use + +on: + push: + branches: + - main + +jobs: + build: + runs-on: ubuntu-latest + + steps: + - uses: actions/checkout@v2 + + - name: Set up Java version + uses: actions/setup-java@v2.3.1 + with: + java-version: {% raw %}${{ env.JAVA_VERSION }}{% endraw %} + cache: 'maven' + + - name: Build with Maven + run: mvn clean install + + - name: Upload artifact for deployment job + uses: actions/upload-artifact@v2 + with: + name: java-app + path: '{% raw %}${{ github.workspace }}{% endraw %}/target/*.jar' + + deploy: + runs-on: ubuntu-latest + needs: build + environment: + name: 'production' + url: {% raw %}${{ steps.deploy-to-webapp.outputs.webapp-url }}{% endraw %} + + steps: + - name: Download artifact from build job + uses: actions/download-artifact@v2 + with: + name: java-app + + - name: Deploy to Azure Web App + id: deploy-to-webapp + uses: azure/webapps-deploy@0b651ed7546ecfc75024011f76944cb9b381ef1e + with: + app-name: {% raw %}${{ env.AZURE_WEBAPP_NAME }}{% endraw %} + publish-profile: {% raw %}${{ secrets.AZURE_WEBAPP_PUBLISH_PROFILE }}{% endraw %} + package: '*.jar' +``` + +## Additional resources + +The following resources may also be useful: + +* For the original starter workflow, see [`azure-webapps-java-jar.yml`](https://github.com/actions/starter-workflows/blob/main/deployments/azure-webapps-java-jar.yml) in the {% data variables.product.prodname_actions %} `starter-workflows` repository. +* The action used to deploy the web app is the official Azure [`Azure/webapps-deploy`](https://github.com/Azure/webapps-deploy) action. +* For more examples of GitHub Action workflows that deploy to Azure, see the [actions-workflow-samples](https://github.com/Azure/actions-workflow-samples) repository. diff --git a/translations/es-ES/content/actions/deployment/deploying-to-your-cloud-provider/deploying-to-azure/deploying-net-to-azure-app-service.md b/translations/es-ES/content/actions/deployment/deploying-to-your-cloud-provider/deploying-to-azure/deploying-net-to-azure-app-service.md new file mode 100644 index 0000000000..2da7e39ce0 --- /dev/null +++ b/translations/es-ES/content/actions/deployment/deploying-to-your-cloud-provider/deploying-to-azure/deploying-net-to-azure-app-service.md @@ -0,0 +1,144 @@ +--- +title: Deploying .NET to Azure App Service +intro: You can deploy your .NET project to Azure App Service as part of your continuous deployment (CD) workflows. +versions: + fpt: '*' + ghes: '*' + ghae: '*' + ghec: '*' +type: tutorial +topics: + - CD + - Azure App Service +--- + +{% data reusables.actions.enterprise-beta %} +{% data reusables.actions.enterprise-github-hosted-runners %} + + +## Introduction + +This guide explains how to use {% data variables.product.prodname_actions %} to build and deploy a .NET project to [Azure App Service](https://azure.microsoft.com/services/app-service/). + +{% ifversion fpt or ghec or ghae-issue-4856 %} + +{% note %} + +**Note**: {% data reusables.actions.about-oidc-short-overview %} and "[Configuring OpenID Connect in Azure](/actions/deployment/security-hardening-your-deployments/configuring-openid-connect-in-azure)." + +{% endnote %} + +{% endif %} + +## Prerequisites + +Before creating your {% data variables.product.prodname_actions %} workflow, you will first need to complete the following setup steps: + +{% data reusables.actions.create-azure-app-plan %} + +2. Create a web app. + + For example, you can use the Azure CLI to create an Azure App Service web app with a .NET runtime: + + ```bash{:copy} + az webapp create \ + --name MY_WEBAPP_NAME \ + --plan MY_APP_SERVICE_PLAN \ + --resource-group MY_RESOURCE_GROUP \ + --runtime "DOTNET|5.0" + ``` + + In the command above, replace the parameters with your own values, where `MY_WEBAPP_NAME` is a new name for the web app. + +{% data reusables.actions.create-azure-publish-profile %} + +{% ifversion fpt or ghes > 3.0 or ghae or ghec %} +5. Optionally, configure a deployment environment. {% data reusables.actions.about-environments %} +{% endif %} + +## Creating the workflow + +Once you've completed the prerequisites, you can proceed with creating the workflow. + +The following example workflow demonstrates how to build and deploy a .NET project to Azure App Service when there is a push to the `main` branch. + +Ensure that you set `AZURE_WEBAPP_NAME` in the workflow `env` key to the name of the web app you created. If the path to your project is not the repository root, change `AZURE_WEBAPP_PACKAGE_PATH`. If you use a version of .NET other than `5`, change `DOTNET_VERSION`. + +{% data reusables.actions.delete-env-key %} + +```yaml{:copy} +{% data reusables.actions.actions-not-certified-by-github-comment %} + +name: Build and deploy ASP.Net Core app to an Azure Web App + +env: + AZURE_WEBAPP_NAME: MY_WEBAPP_NAME # set this to your application's name + AZURE_WEBAPP_PACKAGE_PATH: '.' # set this to the path to your web app project, defaults to the repository root + DOTNET_VERSION: '5' # set this to the .NET Core version to use + +on: + push: + branches: + - main + +jobs: + build: + runs-on: ubuntu-latest + + steps: + - uses: actions/checkout@v2 + + - name: Set up .NET Core + uses: actions/setup-dotnet@v1 + with: + dotnet-version: {% raw %}${{ env.DOTNET_VERSION }}{% endraw %} + + - name: Set up dependency caching for faster builds + uses: actions/cache@v2 + with: + path: ~/.nuget/packages + key: {% raw %}${{ runner.os }}-nuget-${{ hashFiles('**/packages.lock.json') }}{% endraw %} + restore-keys: | + {% raw %}${{ runner.os }}-nuget-{% endraw %} + + - name: Build with dotnet + run: dotnet build --configuration Release + + - name: dotnet publish + run: dotnet publish -c Release -o {% raw %}${{env.DOTNET_ROOT}}{% endraw %}/myapp + + - name: Upload artifact for deployment job + uses: actions/upload-artifact@v2 + with: + name: .net-app + path: {% raw %}${{env.DOTNET_ROOT}}{% endraw %}/myapp + + deploy: + runs-on: ubuntu-latest + needs: build + environment: + name: 'production' + url: {% raw %}${{ steps.deploy-to-webapp.outputs.webapp-url }}{% endraw %} + + steps: + - name: Download artifact from build job + uses: actions/download-artifact@v2 + with: + name: .net-app + + - name: Deploy to Azure Web App + id: deploy-to-webapp + uses: azure/webapps-deploy@0b651ed7546ecfc75024011f76944cb9b381ef1e + with: + app-name: {% raw %}${{ env.AZURE_WEBAPP_NAME }}{% endraw %} + publish-profile: {% raw %}${{ secrets.AZURE_WEBAPP_PUBLISH_PROFILE }}{% endraw %} + package: {% raw %}${{ env.AZURE_WEBAPP_PACKAGE_PATH }}{% endraw %} +``` + +## Additional resources + +The following resources may also be useful: + +* For the original starter workflow, see [`azure-webapps-dotnet-core.yml`](https://github.com/actions/starter-workflows/blob/main/deployments/azure-webapps-dotnet-core.yml) in the {% data variables.product.prodname_actions %} `starter-workflows` repository. +* The action used to deploy the web app is the official Azure [`Azure/webapps-deploy`](https://github.com/Azure/webapps-deploy) action. +* For more examples of GitHub Action workflows that deploy to Azure, see the [actions-workflow-samples](https://github.com/Azure/actions-workflow-samples) repository. diff --git a/translations/es-ES/content/actions/deployment/deploying-to-your-cloud-provider/deploying-to-azure/deploying-nodejs-to-azure-app-service.md b/translations/es-ES/content/actions/deployment/deploying-to-your-cloud-provider/deploying-to-azure/deploying-nodejs-to-azure-app-service.md new file mode 100644 index 0000000000..e6f8f08b7c --- /dev/null +++ b/translations/es-ES/content/actions/deployment/deploying-to-your-cloud-provider/deploying-to-azure/deploying-nodejs-to-azure-app-service.md @@ -0,0 +1,141 @@ +--- +title: Deploying Node.js to Azure App Service +intro: You can deploy your Node.js project to Azure App Service as part of your continuous deployment (CD) workflows. +redirect_from: + - /actions/guides/deploying-to-azure-app-service + - /actions/deployment/deploying-to-azure-app-service + - /actions/deployment/deploying-to-your-cloud-provider/deploying-to-azure-app-service +versions: + fpt: '*' + ghes: '*' + ghae: '*' + ghec: '*' +type: tutorial +topics: + - CD + - Node + - JavaScript + - Azure App Service +--- + +{% data reusables.actions.enterprise-beta %} +{% data reusables.actions.enterprise-github-hosted-runners %} + + +## Introduction + +This guide explains how to use {% data variables.product.prodname_actions %} to build, test, and deploy a Node.js project to [Azure App Service](https://azure.microsoft.com/services/app-service/). + +{% ifversion fpt or ghec or ghae-issue-4856 %} + +{% note %} + +**Note**: {% data reusables.actions.about-oidc-short-overview %} and "[Configuring OpenID Connect in Azure](/actions/deployment/security-hardening-your-deployments/configuring-openid-connect-in-azure)." + +{% endnote %} + +{% endif %} + +## Prerequisites + +Before creating your {% data variables.product.prodname_actions %} workflow, you will first need to complete the following setup steps: + +{% data reusables.actions.create-azure-app-plan %} + +2. Create a web app. + + For example, you can use the Azure CLI to create an Azure App Service web app with a Node.js runtime: + + ```bash{:copy} + az webapp create \ + --name MY_WEBAPP_NAME \ + --plan MY_APP_SERVICE_PLAN \ + --resource-group MY_RESOURCE_GROUP \ + --runtime "NODE|14-lts" + ``` + + In the command above, replace the parameters with your own values, where `MY_WEBAPP_NAME` is a new name for the web app. + +{% data reusables.actions.create-azure-publish-profile %} + +{% ifversion fpt or ghes > 3.0 or ghae or ghec %} +5. Optionally, configure a deployment environment. {% data reusables.actions.about-environments %} +{% endif %} + +## Creating the workflow + +Once you've completed the prerequisites, you can proceed with creating the workflow. + +The following example workflow demonstrates how to build, test, and deploy the Node.js project to Azure App Service when there is a push to the `main` branch. + +Ensure that you set `AZURE_WEBAPP_NAME` in the workflow `env` key to the name of the web app you created. If the path to your project is not the repository root, change `AZURE_WEBAPP_PACKAGE_PATH` to your project path. If you use a version of Node.js other than `10.x`, change `NODE_VERSION` to the version that you use. + +{% data reusables.actions.delete-env-key %} + +```yaml{:copy} +{% data reusables.actions.actions-not-certified-by-github-comment %} + +on: + push: + branches: + - main + +env: + AZURE_WEBAPP_NAME: MY_WEBAPP_NAME # set this to your application's name + AZURE_WEBAPP_PACKAGE_PATH: '.' # set this to the path to your web app project, defaults to the repository root + NODE_VERSION: '14.x' # set this to the node version to use + +jobs: + build: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v2 + + - name: Set up Node.js + uses: actions/setup-node@v2 + with: + node-version: {% raw %}${{ env.NODE_VERSION }}{% endraw %} + cache: 'npm' + + - name: npm install, build, and test + run: | + npm install + npm run build --if-present + npm run test --if-present + - name: Upload artifact for deployment job + uses: actions/upload-artifact@v2 + with: + name: node-app + path: . + + deploy: + runs-on: ubuntu-latest + needs: build + environment: + name: 'production' + url: {% raw %}${{ steps.deploy-to-webapp.outputs.webapp-url }}{% endraw %} + + steps: + - name: Download artifact from build job + uses: actions/download-artifact@v2 + with: + name: node-app + + - name: 'Deploy to Azure WebApp' + id: deploy-to-webapp + uses: azure/webapps-deploy@0b651ed7546ecfc75024011f76944cb9b381ef1e + with: + app-name: {% raw %}${{ env.AZURE_WEBAPP_NAME }}{% endraw %} + publish-profile: {% raw %}${{ secrets.AZURE_WEBAPP_PUBLISH_PROFILE }}{% endraw %} + package: {% raw %}${{ env.AZURE_WEBAPP_PACKAGE_PATH }}{% endraw %} +``` + +## Additional resources + +The following resources may also be useful: + +* For the original starter workflow, see [`azure-webapps-node.yml`](https://github.com/actions/starter-workflows/blob/main/deployments/azure-webapps-node.yml) in the {% data variables.product.prodname_actions %} `starter-workflows` repository. +* The action used to deploy the web app is the official Azure [`Azure/webapps-deploy`](https://github.com/Azure/webapps-deploy) action. +* For more examples of GitHub Action workflows that deploy to Azure, see the +[actions-workflow-samples](https://github.com/Azure/actions-workflow-samples) repository. +* The "[Create a Node.js web app in Azure](https://docs.microsoft.com/azure/app-service/quickstart-nodejs)" quickstart in the Azure web app documentation demonstrates using VS Code with the [Azure App Service extension](https://marketplace.visualstudio.com/items?itemName=ms-azuretools.vscode-azureappservice). diff --git a/translations/es-ES/content/actions/deployment/deploying-to-your-cloud-provider/deploying-to-azure/deploying-php-to-azure-app-service.md b/translations/es-ES/content/actions/deployment/deploying-to-your-cloud-provider/deploying-to-azure/deploying-php-to-azure-app-service.md new file mode 100644 index 0000000000..3931a1c6eb --- /dev/null +++ b/translations/es-ES/content/actions/deployment/deploying-to-your-cloud-provider/deploying-to-azure/deploying-php-to-azure-app-service.md @@ -0,0 +1,155 @@ +--- +title: Deploying PHP to Azure App Service +intro: You can deploy your PHP project to Azure App Service as part of your continuous deployment (CD) workflows. +versions: + fpt: '*' + ghes: '*' + ghae: '*' + ghec: '*' +type: tutorial +topics: + - CD + - Azure App Service +--- + +{% data reusables.actions.enterprise-beta %} +{% data reusables.actions.enterprise-github-hosted-runners %} + + +## Introduction + +This guide explains how to use {% data variables.product.prodname_actions %} to build and deploy a PHP project to [Azure App Service](https://azure.microsoft.com/services/app-service/). + +{% ifversion fpt or ghec or ghae-issue-4856 %} + +{% note %} + +**Note**: {% data reusables.actions.about-oidc-short-overview %} and "[Configuring OpenID Connect in Azure](/actions/deployment/security-hardening-your-deployments/configuring-openid-connect-in-azure)." + +{% endnote %} + +{% endif %} + +## Prerequisites + +Before creating your {% data variables.product.prodname_actions %} workflow, you will first need to complete the following setup steps: + +{% data reusables.actions.create-azure-app-plan %} + +2. Create a web app. + + For example, you can use the Azure CLI to create an Azure App Service web app with a PHP runtime: + + ```bash{:copy} + az webapp create \ + --name MY_WEBAPP_NAME \ + --plan MY_APP_SERVICE_PLAN \ + --resource-group MY_RESOURCE_GROUP \ + --runtime "php|7.4" + ``` + + In the command above, replace the parameters with your own values, where `MY_WEBAPP_NAME` is a new name for the web app. + +{% data reusables.actions.create-azure-publish-profile %} + +{% ifversion fpt or ghes > 3.0 or ghae or ghec %} +5. Optionally, configure a deployment environment. {% data reusables.actions.about-environments %} +{% endif %} + +## Creating the workflow + +Once you've completed the prerequisites, you can proceed with creating the workflow. + +The following example workflow demonstrates how to build and deploy a PHP project to Azure App Service when there is a push to the `main` branch. + +Ensure that you set `AZURE_WEBAPP_NAME` in the workflow `env` key to the name of the web app you created. If the path to your project is not the repository root, change `AZURE_WEBAPP_PACKAGE_PATH` to the path to your project. If you use a version of PHP other than `8.x`, change`PHP_VERSION` to the version that you use. + +{% data reusables.actions.delete-env-key %} + +```yaml{:copy} +{% data reusables.actions.actions-not-certified-by-github-comment %} + +name: Build and deploy PHP app to Azure Web App + +env: + AZURE_WEBAPP_NAME: MY_WEBAPP_NAME # set this to your application's name + AZURE_WEBAPP_PACKAGE_PATH: '.' # set this to the path to your web app project, defaults to the repository root + PHP_VERSION: '8.x' # set this to the PHP version to use + +on: + push: + branches: + - main + +jobs: + build: + runs-on: ubuntu-latest + + steps: + - uses: actions/checkout@v2 + + - name: Setup PHP + uses: shivammathur/setup-php@v2 + with: + php-version: {% raw %}${{ env.PHP_VERSION }}{% endraw %} + + - name: Check if composer.json exists + id: check_files + uses: andstor/file-existence-action@v1 + with: + files: 'composer.json' + + - name: Get Composer Cache Directory + id: composer-cache + if: steps.check_files.outputs.files_exists == 'true' + run: | + echo "::set-output name=dir::$(composer config cache-files-dir)" + + - name: Set up dependency caching for faster installs + uses: actions/cache@v2 + if: steps.check_files.outputs.files_exists == 'true' + with: + path: {% raw %}${{ steps.composer-cache.outputs.dir }}{% endraw %} + key: {% raw %}${{ runner.os }}-composer-${{ hashFiles('**/composer.lock') }}{% endraw %} + restore-keys: | + {% raw %}${{ runner.os }}-composer-{% endraw %} + + - name: Run composer install if composer.json exists + if: steps.check_files.outputs.files_exists == 'true' + run: composer validate --no-check-publish && composer install --prefer-dist --no-progress + + - name: Upload artifact for deployment job + uses: actions/upload-artifact@v2 + with: + name: php-app + path: . + + deploy: + runs-on: ubuntu-latest + needs: build + environment: + name: 'production' + url: {% raw %}${{ steps.deploy-to-webapp.outputs.webapp-url }}{% endraw %} + + steps: + - name: Download artifact from build job + uses: actions/download-artifact@v2 + with: + name: php-app + + - name: 'Deploy to Azure Web App' + id: deploy-to-webapp + uses: azure/webapps-deploy@0b651ed7546ecfc75024011f76944cb9b381ef1e + with: + app-name: {% raw %}${{ env.AZURE_WEBAPP_NAME }}{% endraw %} + publish-profile: {% raw %}${{ secrets.AZURE_WEBAPP_PUBLISH_PROFILE }}{% endraw %} + package: . +``` + +## Additional resources + +The following resources may also be useful: + +* For the original starter workflow, see [`azure-webapps-php.yml`](https://github.com/actions/starter-workflows/blob/main/deployments/azure-webapps-php.yml) in the {% data variables.product.prodname_actions %} `starter-workflows` repository. +* The action used to deploy the web app is the official Azure [`Azure/webapps-deploy`](https://github.com/Azure/webapps-deploy) action. +* For more examples of GitHub Action workflows that deploy to Azure, see the [actions-workflow-samples](https://github.com/Azure/actions-workflow-samples) repository. diff --git a/translations/es-ES/content/actions/deployment/deploying-to-your-cloud-provider/deploying-to-azure/deploying-python-to-azure-app-service.md b/translations/es-ES/content/actions/deployment/deploying-to-your-cloud-provider/deploying-to-azure/deploying-python-to-azure-app-service.md new file mode 100644 index 0000000000..f7001b459c --- /dev/null +++ b/translations/es-ES/content/actions/deployment/deploying-to-your-cloud-provider/deploying-to-azure/deploying-python-to-azure-app-service.md @@ -0,0 +1,151 @@ +--- +title: Deploying Python to Azure App Service +intro: You can deploy your Python project to Azure App Service as part of your continuous deployment (CD) workflows. +versions: + fpt: '*' + ghes: '*' + ghae: '*' + ghec: '*' +type: tutorial +topics: + - CD + - Python + - Azure App Service +--- + +{% data reusables.actions.enterprise-beta %} +{% data reusables.actions.enterprise-github-hosted-runners %} + + +## Introduction + +This guide explains how to use {% data variables.product.prodname_actions %} to build and deploy a Python project to [Azure App Service](https://azure.microsoft.com/services/app-service/). + +{% ifversion fpt or ghec or ghae-issue-4856 %} + +{% note %} + +**Note**: {% data reusables.actions.about-oidc-short-overview %} and "[Configuring OpenID Connect in Azure](/actions/deployment/security-hardening-your-deployments/configuring-openid-connect-in-azure)." + +{% endnote %} + +{% endif %} + +## Prerequisites + +Before creating your {% data variables.product.prodname_actions %} workflow, you will first need to complete the following setup steps: + +{% data reusables.actions.create-azure-app-plan %} + +1. Create a web app. + + For example, you can use the Azure CLI to create an Azure App Service web app with a Python runtime: + + ```bash{:copy} + az webapp create \ + --name MY_WEBAPP_NAME \ + --plan MY_APP_SERVICE_PLAN \ + --resource-group MY_RESOURCE_GROUP \ + --runtime "python|3.8" + ``` + + In the command above, replace the parameters with your own values, where `MY_WEBAPP_NAME` is a new name for the web app. + +{% data reusables.actions.create-azure-publish-profile %} + +1. Add an app setting called `SCM_DO_BUILD_DURING_DEPLOYMENT` and set the value to `1`. + +{% ifversion fpt or ghes > 3.0 or ghae or ghec %} +5. Optionally, configure a deployment environment. {% data reusables.actions.about-environments %} +{% endif %} + +## Creating the workflow + +Once you've completed the prerequisites, you can proceed with creating the workflow. + +The following example workflow demonstrates how to build and deploy a Python project to Azure App Service when there is a push to the `main` branch. + +Ensure that you set `AZURE_WEBAPP_NAME` in the workflow `env` key to the name of the web app you created. If you use a version of Python other than `3.8`, change `PYTHON_VERSION` to the version that you use. + +{% data reusables.actions.delete-env-key %} + +```yaml{:copy} +{% data reusables.actions.actions-not-certified-by-github-comment %} + +name: Build and deploy Python app to Azure Web App + +env: + AZURE_WEBAPP_NAME: MY_WEBAPP_NAME # set this to your application's name + PYTHON_VERSION: '3.8' # set this to the Python version to use + +on: + push: + branches: + - main + +jobs: + build: + runs-on: ubuntu-latest + + steps: + - uses: actions/checkout@v2 + + - name: Set up Python version + uses: actions/setup-python@v2.2.2 + with: + python-version: {% raw %}${{ env.PYTHON_VERSION }}{% endraw %} + + - name: Create and start virtual environment + run: | + python -m venv venv + source venv/bin/activate + + - name: Set up dependency caching for faster installs + uses: actions/cache@v2 + with: + path: ~/.cache/pip + key: {% raw %}${{ runner.os }}-pip-${{ hashFiles('**/requirements.txt') }}{% endraw %} + restore-keys: | + {% raw %}${{ runner.os }}-pip-{% endraw %} + + - name: Install dependencies + run: pip install -r requirements.txt + + # Optional: Add a step to run tests here (PyTest, Django test suites, etc.) + + - name: Upload artifact for deployment jobs + uses: actions/upload-artifact@v2 + with: + name: python-app + path: | + . + !venv/ + deploy: + runs-on: ubuntu-latest + needs: build + environment: + name: 'production' + url: {% raw %}${{ steps.deploy-to-webapp.outputs.webapp-url }}{% endraw %} + + steps: + - name: Download artifact from build job + uses: actions/download-artifact@v2 + with: + name: python-app + path: . + + - name: 'Deploy to Azure Web App' + id: deploy-to-webapp + uses: azure/webapps-deploy@0b651ed7546ecfc75024011f76944cb9b381ef1e + with: + app-name: {% raw %}${{ env.AZURE_WEBAPP_NAME }}{% endraw %} + publish-profile: {% raw %}${{ secrets.AZURE_WEBAPP_PUBLISH_PROFILE }}{% endraw %} +``` + +## Additional resources + +The following resources may also be useful: + +* For the original starter workflow, see [`azure-webapps-python.yml`](https://github.com/actions/starter-workflows/blob/main/deployments/azure-webapps-python.yml) in the {% data variables.product.prodname_actions %} `starter-workflows` repository. +* The action used to deploy the web app is the official Azure [`Azure/webapps-deploy`](https://github.com/Azure/webapps-deploy) action. +* For more examples of GitHub Action workflows that deploy to Azure, see the [actions-workflow-samples](https://github.com/Azure/actions-workflow-samples) repository. diff --git a/translations/es-ES/content/actions/deployment/deploying-to-your-cloud-provider/deploying-to-azure/deploying-to-azure-kubernetes-service.md b/translations/es-ES/content/actions/deployment/deploying-to-your-cloud-provider/deploying-to-azure/deploying-to-azure-kubernetes-service.md new file mode 100644 index 0000000000..f6ab7573d2 --- /dev/null +++ b/translations/es-ES/content/actions/deployment/deploying-to-your-cloud-provider/deploying-to-azure/deploying-to-azure-kubernetes-service.md @@ -0,0 +1,126 @@ +--- +title: Deploying to Azure Kubernetes Service +intro: You can deploy your project to Azure Kubernetes Service (AKS) as part of your continuous deployment (CD) workflows. +versions: + fpt: '*' + ghes: '*' + ghae: '*' + ghec: '*' +type: tutorial +topics: + - CD + - Azure Kubernetes Service +--- + +{% data reusables.actions.enterprise-beta %} +{% data reusables.actions.enterprise-github-hosted-runners %} + + +## Introduction + +This guide explains how to use {% data variables.product.prodname_actions %} to build and deploy a project to [Azure Kubernetes Service](https://azure.microsoft.com/services/kubernetes-service/). + +{% ifversion fpt or ghec or ghae-issue-4856 %} + +{% note %} + +**Note**: {% data reusables.actions.about-oidc-short-overview %} and "[Configuring OpenID Connect in Azure](/actions/deployment/security-hardening-your-deployments/configuring-openid-connect-in-azure)." + +{% endnote %} + +{% endif %} + +## Prerequisites + +Before creating your {% data variables.product.prodname_actions %} workflow, you will first need to complete the following setup steps: + +1. Create a target AKS cluster and an Azure Container Registry (ACR). For more information, see "[Quickstart: Deploy an AKS cluster by using the Azure portal - Azure Kubernetes Service](https://docs.microsoft.com/azure/aks/kubernetes-walkthrough-portal)" and "[Quickstart - Create registry in portal - Azure Container Registry](https://docs.microsoft.com/azure/container-registry/container-registry-get-started-portal)" in the Azure documentation. + +1. Create a secret called `AZURE_CREDENTIALS` to store your Azure credentials. For more information about how to find this information and structure the secret, see [the `Azure/login` action documentation](https://github.com/Azure/login#configure-a-service-principal-with-a-secret). + +## Creating the workflow + +Once you've completed the prerequisites, you can proceed with creating the workflow. + +The following example workflow demonstrates how to build and deploy a project to Azure Kubernetes Service when code is pushed to your repository. + +Under the workflow `env` key, change the the following values: +- `AZURE_CONTAINER_REGISTRY` to the name of your container registry +- `PROJECT_NAME` to the name of your project +- `RESOURCE_GROUP` to the resource group containing your AKS cluster +- `CLUSTER_NAME` to the name of your AKS cluster + +This workflow uses the `helm` render engine for the [`azure/k8s-bake` action](https://github.com/Azure/k8s-bake). If you will use the `helm` render engine, change the value of `CHART_PATH` to the path to your helm file. Change `CHART_OVERRIDE_PATH` to an array of override file paths. If you use a different render engine, update the input parameters sent to the `azure/k8s-bake` action. + +```yaml{:copy} +{% data reusables.actions.actions-not-certified-by-github-comment %} + +name: Build and deploy to Azure Kubernetes Service + +env: + AZURE_CONTAINER_REGISTRY: MY_REGISTRY_NAME # set this to the name of your container registry + PROJECT_NAME: MY_PROJECT_NAME # set this to your project's name + RESOURCE_GROUP: MY_RESOURCE_GROUP # set this to the resource group containing your AKS cluster + CLUSTER_NAME: MY_CLUSTER_NAME # set this to the name of your AKS cluster + REGISTRY_URL: MY_REGISTRY_URL # set this to the URL of your registry + # If you bake using helm: + CHART_PATH: MY_HELM_FILE # set this to the path to your helm file + CHART_OVERRIDE_PATH: MY_OVERRIDE_FILES # set this to an array of override file paths + +on: [push] + +jobs: + build: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@master + + - name: Azure Login + uses: azure/login@89d153571fe9a34ed70fcf9f1d95ab8debea7a73 + with: + creds: {% raw %}${{ secrets.AZURE_CREDENTIALS }}{% endraw %} + + - name: Build image on ACR + uses: azure/CLI@7378ce2ca3c38b4b063feb7a4cbe384fef978055 + with: + azcliversion: 2.29.1 + inlineScript: | + az configure --defaults acr={% raw %}${{ env.AZURE_CONTAINER_REGISTRY }}{% endraw %} + az acr build -t -t {% raw %}${{ env.REGISTRY_URL }}{% endraw %}/{% raw %}${{ env.PROJECT_NAME }}{% endraw %}:{% raw %}${{ github.sha }}{% endraw %} + + - name: Gets K8s context + uses: azure/aks-set-context@4e5aec273183a197b181314721843e047123d9fa + with: + creds: {% raw %}${{ secrets.AZURE_CREDENTIALS }}{% endraw %} + resource-group: {% raw %}${{ env.RESOURCE_GROUP }}{% endraw %} + cluster-name: {% raw %}${{ env.CLUSTER_NAME }}{% endraw %} + id: login + + - name: Configure deployment + uses: azure/k8s-bake@773b6144a3732e3bf4c78b146a0bb9617b2e016b + with: + renderEngine: 'helm' + helmChart: {% raw %}${{ env.CHART_PATH }}{% endraw %} + overrideFiles: {% raw %}${{ env.CHART_OVERRIDE_PATH }}{% endraw %} + overrides: | + replicas:2 + helm-version: 'latest' + id: bake + + - name: Deploys application + - uses: Azure/k8s-deploy@c8fbd76ededaad2799c054a9fd5d0fa5d4e9aee4 + with: + manifests: {% raw %}${{ steps.bake.outputs.manifestsBundle }}{% endraw %} + images: | + {% raw %}${{ env.AZURE_CONTAINER_REGISTRY }}{% endraw %}.azurecr.io/{% raw %}${{ env.PROJECT_NAME }}{% endraw %}:{% raw %}${{ github.sha }}{% endraw %} + imagepullsecrets: | + {% raw %}${{ env.PROJECT_NAME }}{% endraw %} +``` + +## Additional resources + +The following resources may also be useful: + +* For the original starter workflow, see [`azure-kubernetes-service.yml `](https://github.com/actions/starter-workflows/blob/main/deployments/azure-kubernetes-service.yml) in the {% data variables.product.prodname_actions %} `starter-workflows` repository. +* The actions used to in this workflow are the official Azure [`Azure/login`](https://github.com/Azure/login),[`Azure/aks-set-context`](https://github.com/Azure/aks-set-context), [`Azure/CLI`](https://github.com/Azure/CLI), [`Azure/k8s-bake`](https://github.com/Azure/k8s-bake), and [`Azure/k8s-deploy`](https://github.com/Azure/k8s-deploy)actions. +* For more examples of GitHub Action workflows that deploy to Azure, see the [actions-workflow-samples](https://github.com/Azure/actions-workflow-samples) repository. diff --git a/translations/es-ES/content/actions/deployment/deploying-to-your-cloud-provider/deploying-to-azure/deploying-to-azure-static-web-app.md b/translations/es-ES/content/actions/deployment/deploying-to-your-cloud-provider/deploying-to-azure/deploying-to-azure-static-web-app.md new file mode 100644 index 0000000000..cc6a363133 --- /dev/null +++ b/translations/es-ES/content/actions/deployment/deploying-to-your-cloud-provider/deploying-to-azure/deploying-to-azure-static-web-app.md @@ -0,0 +1,113 @@ +--- +title: Deploying to Azure Static Web App +intro: You can deploy your web app to Azure Static Web App as part of your continuous deployment (CD) workflows. +versions: + fpt: '*' + ghes: '*' + ghae: '*' + ghec: '*' +type: tutorial +topics: + - CD + - Azure Static Web Apps +--- + +{% data reusables.actions.enterprise-beta %} +{% data reusables.actions.enterprise-github-hosted-runners %} + + +## Introduction + +This guide explains how to use {% data variables.product.prodname_actions %} to build and deploy a web app to [Azure Static Web Apps](https://azure.microsoft.com/services/app-service/static/). + +{% ifversion fpt or ghec or ghae-issue-4856 %} + +{% note %} + +**Note**: {% data reusables.actions.about-oidc-short-overview %} and "[Configuring OpenID Connect in Azure](/actions/deployment/security-hardening-your-deployments/configuring-openid-connect-in-azure)." + +{% endnote %} + +{% endif %} + +## Prerequisites + +Before creating your {% data variables.product.prodname_actions %} workflow, you will first need to complete the following setup steps: + +1. Create an Azure Static Web App using the 'Other' option for deployment source. For more information, see "[Quickstart: Building your first static site in the Azure portal](https://docs.microsoft.com/azure/static-web-apps/get-started-portal)" in the Azure documentation. + +2. Create a secret called `AZURE_STATIC_WEB_APPS_API_TOKEN` with the value of your static web app deployment token. For more information about how to find your deployment token, see "[Reset deployment tokens in Azure Static Web Apps](https://docs.microsoft.com/azure/static-web-apps/deployment-token-management)" in the Azure documentation. + +## Creating the workflow + +Once you've completed the prerequisites, you can proceed with creating the workflow. + +The following example workflow demonstrates how to build and deploy an Azure static web app when there is a push to the `main` branch or when a pull request targeting `main` is opened, synchronized, or reopened. The workflow also tears down the corresponding pre-production deployment when a pull request targeting `main` is closed. + +Under the workflow `env` key, change the following values: +- `APP_LOCATION` to the location of your client code +- `API_LOCATION` to the location of your API source code. If `API_LOCATION` is not relevant, you can delete the variable and the lines where it is used. +- `APP_ARTIFACT_LOCATION` to the location of your client code build output + +For more information about these values, see "[Build configuration for Azure Static Web Apps](https://docs.microsoft.com/azure/static-web-apps/build-configuration?tabs=github-actions)" in the Azure documentation. + +```yaml{:copy} +{% data reusables.actions.actions-not-certified-by-github-comment %} + +name: Deploy web app to Azure Static Web Apps + +env: + APP_LOCATION: "/" # location of your client code + API_LOCATION: "api" # location of your api source code - optional + APP_ARTIFACT_LOCATION: "build" # location of client code build output + + on: + push: + branches: + - main + pull_request: + types: [opened, synchronize, reopened, closed] + branches: + - main + +permissions: + issues: write + +jobs: + build_and_deploy: + if: github.event_name == 'push' || (github.event_name == 'pull_request' && github.event.action != 'closed') + runs-on: ubuntu-latest + name: Build and Deploy + steps: + - uses: actions/checkout@v2 + with: + submodules: true + - name: Build And Deploy + uses: Azure/static-web-apps-deploy@1a947af9992250f3bc2e68ad0754c0b0c11566c9 + with: + azure_static_web_apps_api_token: {% raw %}${{ secrets.AZURE_STATIC_WEB_APPS_API_TOKEN }}{% endraw %} + repo_token: {% raw %}${{ secrets.GITHUB_TOKEN }}{% endraw %} + action: "upload" + app_location: {% raw %}${{ env.APP_LOCATION }}{% endraw %} + api_location: {% raw %}${{ env.API_LOCATION }}{% endraw %} + app_artifact_location: {% raw %}${{ env.APP_ARTIFACT_LOCATION }}{% endraw %} + + close: + if: github.event_name == 'pull_request' && github.event.action == 'closed' + runs-on: ubuntu-latest + name: Close + steps: + - name: Close + uses: Azure/static-web-apps-deploy@1a947af9992250f3bc2e68ad0754c0b0c11566c9 + with: + azure_static_web_apps_api_token: {% raw %}${{ secrets.AZURE_STATIC_WEB_APPS_API_TOKEN }}{% endraw %} + action: "close" +``` + +## Additional resources + +The following resources may also be useful: + +* For the original starter workflow, see [`azure-staticwebapp.yml`](https://github.com/actions/starter-workflows/blob/main/deployments/azure-staticwebapp.yml) in the {% data variables.product.prodname_actions %} `starter-workflows` repository. +* The action used to deploy the web app is the official Azure [`Azure/static-web-apps-deploy`](https://github.com/Azure/static-web-apps-deploy) action. +* For more examples of GitHub Action workflows that deploy to Azure, see the [actions-workflow-samples](https://github.com/Azure/actions-workflow-samples) repository. diff --git a/translations/es-ES/content/actions/deployment/deploying-to-your-cloud-provider/deploying-to-azure/index.md b/translations/es-ES/content/actions/deployment/deploying-to-your-cloud-provider/deploying-to-azure/index.md new file mode 100644 index 0000000000..293638875e --- /dev/null +++ b/translations/es-ES/content/actions/deployment/deploying-to-your-cloud-provider/deploying-to-azure/index.md @@ -0,0 +1,19 @@ +--- +title: Deploying to Azure +shortTitle: Deploy to Azure +intro: Learn how to deploy to Azure App Service, Azure Kubernetes, and Azure Static Web App as part of your continuous deployment (CD) workflows. +versions: + fpt: '*' + ghes: '*' + ghae: '*' + ghec: '*' +children: + - /deploying-nodejs-to-azure-app-service + - /deploying-python-to-azure-app-service + - /deploying-java-to-azure-app-service + - /deploying-net-to-azure-app-service + - /deploying-php-to-azure-app-service + - /deploying-docker-to-azure-app-service + - /deploying-to-azure-static-web-app + - /deploying-to-azure-kubernetes-service +--- diff --git a/translations/es-ES/content/actions/deployment/deploying-to-your-cloud-provider/index.md b/translations/es-ES/content/actions/deployment/deploying-to-your-cloud-provider/index.md index 463324f7b7..56c61d9b6d 100644 --- a/translations/es-ES/content/actions/deployment/deploying-to-your-cloud-provider/index.md +++ b/translations/es-ES/content/actions/deployment/deploying-to-your-cloud-provider/index.md @@ -4,10 +4,11 @@ shortTitle: Deploying to your cloud provider intro: 'You can deploy to various cloud providers, such as AWS, Azure, and GKE.' versions: fpt: '*' - ghae: 'issue-4856' + ghae: '*' ghec: '*' + ghes: '*' children: - /deploying-to-amazon-elastic-container-service - - /deploying-to-azure-app-service + - /deploying-to-azure - /deploying-to-google-kubernetes-engine --- diff --git a/translations/es-ES/content/actions/deployment/managing-your-deployments/viewing-deployment-history.md b/translations/es-ES/content/actions/deployment/managing-your-deployments/viewing-deployment-history.md index a940a03bc6..17ecdbe875 100644 --- a/translations/es-ES/content/actions/deployment/managing-your-deployments/viewing-deployment-history.md +++ b/translations/es-ES/content/actions/deployment/managing-your-deployments/viewing-deployment-history.md @@ -24,6 +24,6 @@ To view current and past deployments, click **Environments** on the home page of The deployments page displays the last active deployment of each environment for your repository. If the deployment includes an environment URL, a **View deployment** button that links to the URL is shown next to the deployment. -The activity log shows the deployment history for your environments. By default, only the most recent deployment for an environment has an `Active` status; all previously active deployments have an `Inactive` status. For more information on automatic inactivation of deployments, see "[Inactive deployments](/rest/reference/repos#inactive-deployments)." +The activity log shows the deployment history for your environments. By default, only the most recent deployment for an environment has an `Active` status; all previously active deployments have an `Inactive` status. For more information on automatic inactivation of deployments, see "[Inactive deployments](/rest/reference/deployments#inactive-deployments)." You can also use the REST API to get information about deployments. For more information, see "[Repositories](/rest/reference/repos#deployments)." diff --git a/translations/es-ES/content/actions/deployment/security-hardening-your-deployments/configuring-openid-connect-in-amazon-web-services.md b/translations/es-ES/content/actions/deployment/security-hardening-your-deployments/configuring-openid-connect-in-amazon-web-services.md index d7dcd59852..33a04c0e18 100644 --- a/translations/es-ES/content/actions/deployment/security-hardening-your-deployments/configuring-openid-connect-in-amazon-web-services.md +++ b/translations/es-ES/content/actions/deployment/security-hardening-your-deployments/configuring-openid-connect-in-amazon-web-services.md @@ -85,13 +85,13 @@ env: # permission can be added at job level or workflow level permissions: id-token: write - contents: read # This is required for actions/checkout@v1 + contents: read # This is required for actions/checkout@v2 jobs: S3PackageUpload: runs-on: ubuntu-latest steps: - name: Git clone the repository - uses: actions/checkout@v1 + uses: actions/checkout@v2 - name: configure aws credentials uses: aws-actions/configure-aws-credentials@master with: diff --git a/translations/es-ES/content/actions/deployment/security-hardening-your-deployments/configuring-openid-connect-in-cloud-providers.md b/translations/es-ES/content/actions/deployment/security-hardening-your-deployments/configuring-openid-connect-in-cloud-providers.md index 51bf7529cc..4d8d1b37fa 100644 --- a/translations/es-ES/content/actions/deployment/security-hardening-your-deployments/configuring-openid-connect-in-cloud-providers.md +++ b/translations/es-ES/content/actions/deployment/security-hardening-your-deployments/configuring-openid-connect-in-cloud-providers.md @@ -1,11 +1,11 @@ --- title: Configuring OpenID Connect in cloud providers shortTitle: Configuring OpenID Connect in cloud providers -intro: Use OpenID Connect within your workflows to authenticate with cloud providers. +intro: 'Use OpenID Connect within your workflows to authenticate with cloud providers.' miniTocMaxHeadingLevel: 3 versions: fpt: '*' - ghae: issue-4856 + ghae: 'issue-4856' ghec: '*' type: tutorial topics: @@ -15,19 +15,19 @@ topics: {% data reusables.actions.enterprise-beta %} {% data reusables.actions.enterprise-github-hosted-runners %} -## Resumen +## Overview -OpenID Connect (OIDC) allows your {% data variables.product.prodname_actions %} workflows to access resources in your cloud provider, without having to store any credentials as long-lived {% data variables.product.prodname_dotcom %} secrets. +OpenID Connect (OIDC) allows your {% data variables.product.prodname_actions %} workflows to access resources in your cloud provider, without having to store any credentials as long-lived {% data variables.product.prodname_dotcom %} secrets. To use OIDC, you will first need to configure your cloud provider to trust {% data variables.product.prodname_dotcom %}'s OIDC as a federated identity, and must then update your workflows to authenticate using tokens. -## Prerrequisitos +## Prerequisites {% data reusables.actions.oidc-link-to-intro %} {% data reusables.actions.oidc-security-notice %} -## Actualizar tu flujo de trabajo de {% data variables.product.prodname_actions %} +## Updating your {% data variables.product.prodname_actions %} workflow To update your workflows for OIDC, you will need to make two changes to your YAML: 1. Add permissions settings for the token. @@ -37,14 +37,14 @@ If your cloud provider doesn't yet offer an official action, you can update your ### Adding permissions settings -The workflow will require a `permissions` setting with a defined [`id-token`](/actions/security-guides/automatic-token-authentication#permissions-for-the-github_token) value. If you only need to fetch an OIDC token for a single job, then this permission can be set within that job. Por ejemplo: +The workflow will require a `permissions` setting with a defined [`id-token`](/actions/security-guides/automatic-token-authentication#permissions-for-the-github_token) value. If you only need to fetch an OIDC token for a single job, then this permission can be set within that job. For example: ```yaml{:copy} permissions: id-token: write ``` -You may need to specify additional permissions here, depending on your workflow's requirements. +You may need to specify additional permissions here, depending on your workflow's requirements. ### Using official actions @@ -52,7 +52,7 @@ If your cloud provider has created an official action for using OIDC with {% dat ## Using custom actions -If your cloud provider doesn't have an official action, or if you prefer to create custom scripts, you can manually request the JSON Web Token (JWT) from {% data variables.product.prodname_dotcom %}'s OIDC provider. +If your cloud provider doesn't have an official action, or if you prefer to create custom scripts, you can manually request the JSON Web Token (JWT) from {% data variables.product.prodname_dotcom %}'s OIDC provider. If you're not using an official action, then {% data variables.product.prodname_dotcom %} recommends that you use the Actions core toolkit. Alternatively, you can use the following environment variables to retrieve the token: `ACTIONS_RUNTIME_TOKEN`, `ACTIONS_ID_TOKEN_REQUEST_URL`. @@ -90,7 +90,7 @@ The following example demonstrates how to use enviroment variables to request a For your deployment job, you will need to define the token settings, using `actions/github-script` with the `core` toolkit. For more information, see "[Adding actions toolkit packages](/actions/creating-actions/creating-a-javascript-action#adding-actions-toolkit-packages)." -Por ejemplo: +For example: ```yaml jobs: @@ -109,7 +109,7 @@ jobs: core.setOutput('IDTOKENURL', runtimeUrl.trim()) ``` -You can then use `curl` to retrieve a JWT from the {% data variables.product.prodname_dotcom %} OIDC provider. Por ejemplo: +You can then use `curl` to retrieve a JWT from the {% data variables.product.prodname_dotcom %} OIDC provider. For example: ```yaml - run: | @@ -132,8 +132,9 @@ You will need to present the OIDC JSON web token to your cloud provider in order For each deployment, your workflows must use cloud login actions (or custom scripts) that fetch the OIDC token and present it to your cloud provider. The cloud provider then validates the claims in the token; if successful, it provides a cloud access token that is available only to that job run. The provided access token can then be used by subsequent actions in the job to connect to the cloud and deploy to its resources. -The steps for exchanging the OIDC token for an access token will vary for each cloud provider. - +The steps for exchanging the OIDC token for an access token will vary for each cloud provider. + ### Accessing resources in your cloud provider -Once you've obtained the access token, you can use specific cloud actions or scripts to authenticate to the cloud provider and deploy to its resources. These steps could differ for each cloud provider. In addition, the default expiration time of this access token could vary between each cloud and can be configurable at the cloud provider's side. +Once you've obtained the access token, you can use specific cloud actions or scripts to authenticate to the cloud provider and deploy to its resources. These steps could differ for each cloud provider. +In addition, the default expiration time of this access token could vary between each cloud and can be configurable at the cloud provider's side. diff --git a/translations/es-ES/content/actions/deployment/security-hardening-your-deployments/configuring-openid-connect-in-hashicorp-vault.md b/translations/es-ES/content/actions/deployment/security-hardening-your-deployments/configuring-openid-connect-in-hashicorp-vault.md index 84fa71bfb6..c7154482c1 100644 --- a/translations/es-ES/content/actions/deployment/security-hardening-your-deployments/configuring-openid-connect-in-hashicorp-vault.md +++ b/translations/es-ES/content/actions/deployment/security-hardening-your-deployments/configuring-openid-connect-in-hashicorp-vault.md @@ -1,11 +1,11 @@ --- title: Configuring OpenID Connect in HashiCorp Vault shortTitle: Configuring OpenID Connect in HashiCorp Vault -intro: Use OpenID Connect within your workflows to authenticate with HashiCorp Vault. +intro: 'Use OpenID Connect within your workflows to authenticate with HashiCorp Vault.' miniTocMaxHeadingLevel: 3 versions: fpt: '*' - ghae: issue-4856 + ghae: 'issue-4856' ghec: '*' type: tutorial topics: @@ -15,13 +15,13 @@ topics: {% data reusables.actions.enterprise-beta %} {% data reusables.actions.enterprise-github-hosted-runners %} -## Resumen +## Overview OpenID Connect (OIDC) allows your {% data variables.product.prodname_actions %} workflows to authenticate with a HashiCorp Vault to retrieve secrets. This guide gives an overview of how to configure HashiCorp Vault to trust {% data variables.product.prodname_dotcom %}'s OIDC as a federated identity, and demonstrates how to use this configuration in [`hashicorp/vault-action`](https://github.com/hashicorp/vault-action) to retrieve secrets from HashiCorp Vault. -## Prerrequisitos +## Prerequisites {% data reusables.actions.oidc-link-to-intro %} @@ -36,7 +36,7 @@ Configure the vault to accept JSON Web Tokens (JWT) for authentication: - For `bound_issuer`, use `https://token.actions.githubusercontent.com` - Ensure that `bound_subject` is correctly defined for your security requirements. For more information, see ["Configuring the OIDC trust with the cloud"](/actions/deployment/security-hardening-your-deployments/about-security-hardening-with-openid-connect#configuring-the-oidc-trust-with-the-cloud) and [`hashicorp/vault-action`](https://github.com/hashicorp/vault-action). -## Actualizar tu flujo de trabajo de {% data variables.product.prodname_actions %} +## Updating your {% data variables.product.prodname_actions %} workflow To update your workflows for OIDC, you will need to make two changes to your YAML: 1. Add permissions settings for the token. @@ -54,14 +54,14 @@ This example demonstrates how to use OIDC with the official action to request a ### Adding permissions settings -The workflow will require a `permissions` setting with a defined [`id-token`](/actions/security-guides/automatic-token-authentication#permissions-for-the-github_token) value. If you only need to fetch an OIDC token for a single job, then this permission can be set within that job. Por ejemplo: +The workflow will require a `permissions` setting with a defined [`id-token`](/actions/security-guides/automatic-token-authentication#permissions-for-the-github_token) value. If you only need to fetch an OIDC token for a single job, then this permission can be set within that job. For example: ```yaml{:copy} permissions: id-token: write ``` -You may need to specify additional permissions here, depending on your workflow's requirements. +You may need to specify additional permissions here, depending on your workflow's requirements. ### Requesting the access token @@ -86,7 +86,7 @@ jobs: method: jwt jwtGithubAudience: secrets: - + - name: Use secret from Vault run: | # This step has access to the secret retrieved above; see hashicorp/vault-action for more details. diff --git a/translations/es-ES/content/actions/guides.md b/translations/es-ES/content/actions/guides.md index 2c15577f19..f6cec21fcb 100644 --- a/translations/es-ES/content/actions/guides.md +++ b/translations/es-ES/content/actions/guides.md @@ -20,7 +20,7 @@ includeGuides: - /actions/quickstart - /actions/learn-github-actions/introduction-to-github-actions - /actions/creating-actions/creating-a-docker-container-action - - /actions/learn-github-actions/using-workflow-templates + - /actions/learn-github-actions/using-starter-workflows - /actions/automating-builds-and-tests/building-and-testing-python - /actions/automating-builds-and-tests/building-and-testing-nodejs - /actions/publishing-packages/about-packaging-with-github-actions @@ -43,7 +43,6 @@ includeGuides: - /actions/using-containerized-services/creating-redis-service-containers - /actions/using-containerized-services/creating-postgresql-service-containers - /actions/deployment/deploying-to-amazon-elastic-container-service - - /actions/deployment/deploying-to-azure-app-service - /actions/deployment/deploying-to-google-kubernetes-engine - /actions/learn-github-actions/essential-features-of-github-actions - /actions/security-guides/security-hardening-for-github-actions @@ -64,5 +63,13 @@ includeGuides: - /actions/managing-issues-and-pull-requests/removing-a-label-when-a-card-is-added-to-a-project-board-column - /code-security/supply-chain-security/keeping-your-dependencies-updated-automatically/automating-dependabot-with-github-actions - /code-security/supply-chain-security/keeping-your-dependencies-updated-automatically/keeping-your-actions-up-to-date-with-dependabot + - /actions/deployment/deploying-to-your-cloud-provider/deploying-to-azure/deploying-docker-to-azure-app-service + - /actions/deployment/deploying-to-your-cloud-provider/deploying-to-azure/deploying-java-to-azure-app-service + - /actions/deployment/deploying-to-your-cloud-provider/deploying-to-azure/deploying-net-to-azure-app-service + - /actions/deployment/deploying-to-your-cloud-provider/deploying-to-azure/deploying-nodejs-to-azure-app-service + - /actions/deployment/deploying-to-your-cloud-provider/deploying-to-azure/deploying-php-to-azure-app-service + - /actions/deployment/deploying-to-your-cloud-provider/deploying-to-azure/deploying-python-to-azure-app-service + - /actions/deployment/deploying-to-your-cloud-provider/deploying-to-azure/deploying-to-azure-static-web-app + - /actions/deployment/deploying-to-your-cloud-provider/deploying-to-azure/deploying-to-azure-kubernetes-service --- diff --git a/translations/es-ES/content/actions/hosting-your-own-runners/using-self-hosted-runners-in-a-workflow.md b/translations/es-ES/content/actions/hosting-your-own-runners/using-self-hosted-runners-in-a-workflow.md index 8b533bffd4..f744a1c36f 100644 --- a/translations/es-ES/content/actions/hosting-your-own-runners/using-self-hosted-runners-in-a-workflow.md +++ b/translations/es-ES/content/actions/hosting-your-own-runners/using-self-hosted-runners-in-a-workflow.md @@ -70,8 +70,13 @@ These labels operate cumulatively, so a self-hosted runner’s labels must match When routing a job to a self-hosted runner, {% data variables.product.prodname_dotcom %} looks for a runner that matches the job's `runs-on` labels: -{% ifversion fpt or ghes > 3.2 or ghae or ghec %} -- {% data variables.product.prodname_dotcom %} first searches for an online and idle runner at the repository level, then at the organization level, {% ifversion fpt or ghec %} and if the organization is part of an enterprise,{% endif %} then at the enterprise level. +{% ifversion fpt or ghes > 3.3 or ghae or ghec %} +- If {% data variables.product.prodname_dotcom %} finds an online and idle runner that matches the job's `runs-on` labels, the job is then assigned and sent to the runner. + - If the runner doesn't pick up the assigned job within 60 seconds, the job is re-queued so that a new runner can accept it. +- If {% data variables.product.prodname_dotcom %} doesn't find an online and idle runner that matches the job's `runs-on` labels, then the job will remain queued until a runner comes online. +- If the job remains queued for more than 24 hours, the job will fail. +{% elsif ghes = 3.3 %} +- {% data variables.product.prodname_dotcom %} first searches for a runner at the repository level, then at the organization level, then at the enterprise level. - If {% data variables.product.prodname_dotcom %} finds an online and idle runner at a certain level that matches the job's `runs-on` labels, the job is then assigned and sent to the runner. - If the runner doesn't pick up the assigned job within 60 seconds, the job is queued at all levels and waits for a matching runner from any level to come online and pick up the job. - If {% data variables.product.prodname_dotcom %} doesn't find an online and idle runner at any level, the job is queued to all levels and waits for a matching runner from any level to come online and pick up the job. diff --git a/translations/es-ES/content/actions/index.md b/translations/es-ES/content/actions/index.md index 5eff35a61d..8828a7a41c 100644 --- a/translations/es-ES/content/actions/index.md +++ b/translations/es-ES/content/actions/index.md @@ -13,7 +13,7 @@ featuredLinks: - /actions/guides/about-packaging-with-github-actions - /actions/monitoring-and-troubleshooting-workflows/about-monitoring-and-troubleshooting guideCards: - - /actions/guides/setting-up-continuous-integration-using-workflow-templates + - /actions/learn-github-actions/using-starter-workflows - /actions/guides/publishing-nodejs-packages - /actions/guides/building-and-testing-powershell popular: @@ -30,10 +30,10 @@ changelog: examples_source: data/product-examples/actions/code-examples.yml product_video: 'https://www.youtube-nocookie.com/embed/cP0I9w2coGU' redirect_from: - - /articles/automating-your-workflow-with-github-actions/ - - /articles/customizing-your-project-with-github-actions/ + - /articles/automating-your-workflow-with-github-actions + - /articles/customizing-your-project-with-github-actions - /github/automating-your-workflow-with-github-actions - - /actions/automating-your-workflow-with-github-actions/ + - /actions/automating-your-workflow-with-github-actions - /categories/automating-your-workflow-with-github-actions - /marketplace/actions - /actions/reference diff --git a/translations/es-ES/content/actions/learn-github-actions/contexts.md b/translations/es-ES/content/actions/learn-github-actions/contexts.md index 88c17692f1..6fd4f39039 100644 --- a/translations/es-ES/content/actions/learn-github-actions/contexts.md +++ b/translations/es-ES/content/actions/learn-github-actions/contexts.md @@ -221,7 +221,7 @@ The following table indicates where each context and special function can be use | Path | Context | Special functions | | ---- | ------- | ----------------- | -| concurrency | github | | +| concurrency | github, inputs | | | env | github, secrets, inputs | | | jobs.<job_id>.concurrency | github, needs, strategy, matrix, inputs | | | jobs.<job_id>.container | github, needs, strategy, matrix, inputs | | diff --git a/translations/es-ES/content/actions/learn-github-actions/creating-starter-workflows-for-your-organization.md b/translations/es-ES/content/actions/learn-github-actions/creating-starter-workflows-for-your-organization.md new file mode 100644 index 0000000000..69f1f8083d --- /dev/null +++ b/translations/es-ES/content/actions/learn-github-actions/creating-starter-workflows-for-your-organization.md @@ -0,0 +1,99 @@ +--- +title: Creating starter workflows for your organization +shortTitle: Creating starter workflows +intro: Learn how you can create starter workflows to help people in your team add new workflows more easily. +redirect_from: + - /actions/configuring-and-managing-workflows/sharing-workflow-templates-within-your-organization + - /actions/learn-github-actions/creating-workflow-templates +versions: + fpt: '*' + ghes: '*' + ghae: '*' + ghec: '*' +type: tutorial +topics: + - Workflows + - CI +--- + +{% data reusables.actions.enterprise-beta %} +{% data reusables.actions.enterprise-github-hosted-runners %} + +## Overview + +{% data reusables.actions.workflow-organization-templates %} + +## Creating a starter workflow + +Starter workflows can be created by users with write access to the organization's `.github` repository. These can then be used by organization members who have permission to create workflows. + +{% ifversion fpt %} +Starter workflows created by users can only be used to create workflows in public repositories. Organizations using {% data variables.product.prodname_ghe_cloud %} can also use starter workflows to create workflows in private repositories. For more information, see the [{% data variables.product.prodname_ghe_cloud %} documentation](/enterprise-cloud@latest/actions/learn-github-actions/creating-starter-workflows-for-your-organization). +{% endif %} + +{% ifversion fpt or ghes > 3.3 or ghae-issue-4757 or ghec %} +{% note %} + +**Note:** To avoid duplication among starter workflows you can call reusable workflows from within a workflow. This can help make your workflows easier to maintain. For more information, see "[Reusing workflows](/actions/learn-github-actions/reusing-workflows)." + +{% endnote %} +{% endif %} + +This procedure demonstrates how to create a starter workflow and metadata file. The metadata file describes how the starter workflows will be presented to users when they are creating a new workflow. + +1. If it doesn't already exist, create a new public repository named `.github` in your organization. +2. Create a directory named `workflow-templates`. +3. Create your new workflow file inside the `workflow-templates` directory. + + If you need to refer to a repository's default branch, you can use the `$default-branch` placeholder. When a workflow is created the placeholder will be automatically replaced with the name of the repository's default branch. + + For example, this file named `octo-organization-ci.yml` demonstrates a basic workflow. + + ```yaml + name: Octo Organization CI + + on: + push: + branches: [ $default-branch ] + pull_request: + branches: [ $default-branch ] + + jobs: + build: + runs-on: ubuntu-latest + + steps: + - uses: actions/checkout@v2 + + - name: Run a one-line script + run: echo Hello from Octo Organization + ``` +4. Create a metadata file inside the `workflow-templates` directory. The metadata file must have the same name as the workflow file, but instead of the `.yml` extension, it must be appended with `.properties.json`. For example, this file named `octo-organization-ci.properties.json` contains the metadata for a workflow file named `octo-organization-ci.yml`: + ```yaml + { + "name": "Octo Organization Workflow", + "description": "Octo Organization CI starter workflow.", + "iconName": "example-icon", + "categories": [ + "Go" + ], + "filePatterns": [ + "package.json$", + "^Dockerfile", + ".*\\.md$" + ] + } + ``` + * `name` - **Required.** The name of the workflow. This is displayed in the list of available workflows. + * `description` - **Required.** The description of the workflow. This is displayed in the list of available workflows. + * `iconName` - **Optional.** Specifies an icon for the workflow that's displayed in the list of workflows. The `iconName` must be the name of an SVG file, without the file name extension, stored in the `workflow-templates` directory. For example, an SVG file named `example-icon.svg` is referenced as `example-icon`. + * `categories` - **Optional.** Defines the language category of the workflow. When a user views the available starter workflows for a repository, the workflows that match the identified language for the project are featured more prominently. For information on the available language categories, see https://github.com/github/linguist/blob/master/lib/linguist/languages.yml. + * `filePatterns` - **Optional.** Allows the workflow to be used if the user's repository has a file in its root directory that matches a defined regular expression. + +To add another starter workflow, add your files to the same `workflow-templates` directory. For example: + +![Workflow files](/assets/images/help/images/workflow-template-files.png) + +## Next steps + +To continue learning about {% data variables.product.prodname_actions %}, see "[Using starter workflows](/actions/learn-github-actions/using-starter-workflows)." diff --git a/translations/es-ES/content/actions/learn-github-actions/events-that-trigger-workflows.md b/translations/es-ES/content/actions/learn-github-actions/events-that-trigger-workflows.md index d21e833b8c..56e92056f6 100644 --- a/translations/es-ES/content/actions/learn-github-actions/events-that-trigger-workflows.md +++ b/translations/es-ES/content/actions/learn-github-actions/events-that-trigger-workflows.md @@ -307,7 +307,7 @@ on: ### `deployment_status` -Runs your workflow anytime a third party provides a deployment status, which triggers the `deployment_status` event. Deployments created with a commit SHA may not have a Git ref. For information about the REST API, see "[Create a deployment status](/rest/reference/repos#create-a-deployment-status)." +Runs your workflow anytime a third party provides a deployment status, which triggers the `deployment_status` event. Deployments created with a commit SHA may not have a Git ref. For information about the REST API, see "[Create a deployment status](/rest/reference/deployments#create-a-deployment-status)." | Webhook event payload | Activity types | `GITHUB_SHA` | `GITHUB_REF` | | --------------------- | -------------- | ------------ | -------------| @@ -701,7 +701,7 @@ on: {% note %} -**Note:** The webhook payload available to GitHub Actions does not include the `added`, `removed`, and `modified` attributes in the `commit` object. You can retrieve the full commit object using the REST API. For more information, see "[Get a commit](/rest/reference/repos#get-a-commit)". +**Note:** The webhook payload available to GitHub Actions does not include the `added`, `removed`, and `modified` attributes in the `commit` object. You can retrieve the full commit object using the REST API. For more information, see "[Get a commit](/rest/reference/commits#get-a-commit)". {% endnote %} diff --git a/translations/es-ES/content/actions/learn-github-actions/expressions.md b/translations/es-ES/content/actions/learn-github-actions/expressions.md index 2c8cd63dc3..43a4e14853 100644 --- a/translations/es-ES/content/actions/learn-github-actions/expressions.md +++ b/translations/es-ES/content/actions/learn-github-actions/expressions.md @@ -266,9 +266,9 @@ Creates a hash for any `package-lock.json` and `Gemfile.lock` files in the repos `hashFiles('**/package-lock.json', '**/Gemfile.lock')` -## Job status check functions +## Status check functions -You can use the following status check functions as expressions in `if` conditionals. A default status check of `success()` is applied unless you include one of these functions. For more information about `if` conditionals, see "[Workflow syntax for GitHub Actions](/articles/workflow-syntax-for-github-actions/#jobsjob_idif)." +You can use the following status check functions as expressions in `if` conditionals. A default status check of `success()` is applied unless you include one of these functions. For more information about `if` conditionals, see "[Workflow syntax for GitHub Actions](/articles/workflow-syntax-for-github-actions/#jobsjob_idif)" and "[Metadata syntax for GitHub Composite Actions](/actions/creating-actions/metadata-syntax-for-github-actions/#runsstepsif)". ### success @@ -316,6 +316,32 @@ steps: if: {% raw %}${{ failure() }}{% endraw %} ``` +### Evaluate Status Explicitly + +Instead of using one of the methods above, you can evaluate the status of the job or composite action that is executing the step directly: + +#### Example for workflow step + +```yaml +steps: + ... + - name: The job has failed + if: {% raw %}${{ job.status == 'failure' }}{% endraw %} +``` + +This is the same as using `if: failure()` in a job step. + +#### Example for composite action step + +```yaml +steps: + ... + - name: The composite action has failed + if: {% raw %}${{ github.action_status == 'failure' }}{% endraw %} +``` + +This is the same as using `if: failure()` in a composite action step. + ## Object filters You can use the `*` syntax to apply a filter and select matching items in a collection. diff --git a/translations/es-ES/content/actions/learn-github-actions/index.md b/translations/es-ES/content/actions/learn-github-actions/index.md index f69e68338e..a6a2c06226 100644 --- a/translations/es-ES/content/actions/learn-github-actions/index.md +++ b/translations/es-ES/content/actions/learn-github-actions/index.md @@ -11,7 +11,7 @@ redirect_from: - /actions/getting-started-with-github-actions/overview - /actions/getting-started-with-github-actions/getting-started-with-github-actions - /actions/configuring-and-managing-workflows/configuring-a-workflow - - /articles/creating-a-workflow-with-github-actions/ + - /articles/creating-a-workflow-with-github-actions - /articles/configuring-a-workflow - /github/automating-your-workflow-with-github-actions/configuring-a-workflow - /actions/automating-your-workflow-with-github-actions/configuring-a-workflow @@ -34,8 +34,8 @@ children: - /essential-features-of-github-actions - /managing-complex-workflows - /sharing-workflows-secrets-and-runners-with-your-organization - - /creating-workflow-templates - - /using-workflow-templates + - /creating-starter-workflows-for-your-organization + - /using-starter-workflows - /reusing-workflows - /events-that-trigger-workflows - /expressions diff --git a/translations/es-ES/content/actions/learn-github-actions/managing-complex-workflows.md b/translations/es-ES/content/actions/learn-github-actions/managing-complex-workflows.md index e44a1d367c..ed8322bb5a 100644 --- a/translations/es-ES/content/actions/learn-github-actions/managing-complex-workflows.md +++ b/translations/es-ES/content/actions/learn-github-actions/managing-complex-workflows.md @@ -170,7 +170,7 @@ To learn more about {% data variables.product.prodname_dotcom %}-hosted runner l You can configure environments with protection rules and secrets. Each job in a workflow can reference a single environment. Any protection rules configured for the environment must pass before a job referencing the environment is sent to a runner. For more information, see "[Using environments for deployment](/actions/deployment/using-environments-for-deployment)." {% endif %} -## Using a workflow template +## Using starter workflows {% data reusables.actions.workflow-template-overview %} @@ -178,7 +178,7 @@ You can configure environments with protection rules and secrets. Each job in a {% data reusables.repositories.actions-tab %} 1. If your repository already has existing workflows: In the upper-left corner, click **New workflow**. ![Create a new workflow](/assets/images/help/repository/actions-new-workflow.png) -1. Under the name of the template you'd like to use, click **Set up this workflow**. +1. Under the name of the starter workflow you'd like to use, click **Set up this workflow**. ![Set up this workflow](/assets/images/help/settings/actions-create-starter-workflow.png) ## Next steps diff --git a/translations/es-ES/content/actions/learn-github-actions/reusing-workflows.md b/translations/es-ES/content/actions/learn-github-actions/reusing-workflows.md index 02d81d360f..33a4d0e6a9 100644 --- a/translations/es-ES/content/actions/learn-github-actions/reusing-workflows.md +++ b/translations/es-ES/content/actions/learn-github-actions/reusing-workflows.md @@ -18,9 +18,9 @@ topics: ## Overview -Rather than copying and pasting from one workflow to another, you can make workflows reusable. You and anyone with access to the reusable workflow can then call the reusable workflow from another workflow. +Rather than copying and pasting from one workflow to another, you can make workflows reusable. You and anyone with access to the reusable workflow can then call the reusable workflow from another workflow. -Reusing workflows avoids duplication. This makes workflows easier to maintain and allows you to create new workflows more quickly by building on the work of others, just as you do with actions. Workflow reuse also promotes best practice by helping you to use workflows that are well designed, have already been tested, and have been proved to be effective. Your organization can build up a library of reusable workflows that can be centrally maintained. +Reusing workflows avoids duplication. This makes workflows easier to maintain and allows you to create new workflows more quickly by building on the work of others, just as you do with actions. Workflow reuse also promotes best practice by helping you to use workflows that are well designed, have already been tested, and have been proved to be effective. Your organization can build up a library of reusable workflows that can be centrally maintained. The diagram below shows three build jobs on the left of the diagram. After each of these jobs completes successfully a dependent job called "Deploy" runs. This job calls a reusable workflow that contains three jobs: "Staging", "Review", and "Production." The "Production" deployment job only runs after the "Staging" job has completed successfully. Using a reusable workflow to run deployment jobs allows you to run those jobs for each build without duplicating code in workflows. @@ -32,11 +32,11 @@ If you reuse a workflow from a different repository, any actions in the called w When a reusable workflow is triggered by a caller workflow, the `github` context is always associated with the caller workflow. The called workflow is automatically granted access to `github.token` and `secrets.GITHUB_TOKEN`. For more information about the `github` context, see "[Context and expression syntax for GitHub Actions](/actions/reference/context-and-expression-syntax-for-github-actions#github-context)." -### Reusable workflows and workflow templates +### Reusable workflows and starter workflow -Workflow templates allow everyone in your organization who has permission to create workflows to do so more quickly and easily. When people create a new workflow, they can choose a template and some or all of the work of writing the workflow will be done for them. Inside workflow templates, you can also reference reusable workflows to make it easy for people to benefit from reusing centrally managed workflow code. If you use a tag or branch name when referencing the reusable workflow then you can ensure that everyone who reuses that workflow will always be using the same YAML code. However, if you reference a reusable workflow by a tag or branch, be sure that you can trust that version of the workflow. For more information, see "[Security hardening for {% data variables.product.prodname_actions %}](/actions/security-guides/security-hardening-for-github-actions#reusing-third-party-workflows)." +Starter workflow allow everyone in your organization who has permission to create workflows to do so more quickly and easily. When people create a new workflow, they can choose a starter workflow and some or all of the work of writing the workflow will be done for them. Inside starter workflow, you can also reference reusable workflows to make it easy for people to benefit from reusing centrally managed workflow code. If you use a tag or branch name when referencing the reusable workflow then you can ensure that everyone who reuses that workflow will always be using the same YAML code. However, if you reference a reusable workflow by a tag or branch, be sure that you can trust that version of the workflow. For more information, see "[Security hardening for {% data variables.product.prodname_actions %}](/actions/security-guides/security-hardening-for-github-actions#reusing-third-party-workflows)." -For more information, see "[Creating workflow templates](/actions/learn-github-actions/creating-workflow-templates)." +For more information, see "[Creating starter workflows for your organization](/actions/learn-github-actions/creating-starter-workflows-for-your-organization)." ## Access to reusable workflows @@ -67,7 +67,6 @@ Called workflows can access self-hosted runners from caller's context. This mean * Reusable workflows can't call other reusable workflows. * Reusable workflows stored within a private repository can only be used by workflows within the same repository. * Any environment variables set in an `env` context defined at the workflow level in the caller workflow are not propagated to the called workflow. For more information about the `env` context, see "[Context and expression syntax for GitHub Actions](/actions/reference/context-and-expression-syntax-for-github-actions#env-context)." -* You can't set the concurrency of a called workflow from the caller workflow. For more information about `jobs..concurrency`, see "[Workflow syntax for GitHub Actions](/actions/learn-github-actions/workflow-syntax-for-github-actions#jobsjob_idconcurrency)." * The `strategy` property is not supported in any job that calls a reusable workflow. ## Creating a reusable workflow @@ -77,13 +76,13 @@ Reusable workflows are YAML-formatted files, very similar to any other workflow For a workflow to be reusable, the values for `on` must include `workflow_call`: ```yaml -on: +on: workflow_call: ``` ### Using inputs and secrets in a reusable workflow -You can define inputs and secrets, which can be passed from the caller workflow and then used within the called workflow. There are three stages to using an input or a secret in a reusable workflow. +You can define inputs and secrets, which can be passed from the caller workflow and then used within the called workflow. There are three stages to using an input or a secret in a reusable workflow. 1. In the reusable workflow, use the `inputs` and `secrets` keywords to define inputs or secrets that will be passed from a caller workflow. {% raw %} @@ -112,10 +111,10 @@ You can define inputs and secrets, which can be passed from the caller workflow - uses: ./.github/actions/my-action@v1 with: username: ${{ inputs.username }} - token: ${{ secrets.envPAT }} + token: ${{ secrets.envPAT }} ``` {% endraw %} - In the example above, `envPAT` is an environment secret that's been added to the `production` environment. This environment is therefore referenced within the job. + In the example above, `envPAT` is an environment secret that's been added to the `production` environment. This environment is therefore referenced within the job. {% note %} @@ -153,7 +152,7 @@ jobs: - uses: ./.github/actions/my-action@v1 with: username: ${{ inputs.username }} - token: ${{ secrets.token }} + token: ${{ secrets.token }} ``` {% endraw %} @@ -163,7 +162,7 @@ You call a reusable workflow by using the `uses` keyword. Unlike when you are us [`jobs..uses`](/actions/reference/workflow-syntax-for-github-actions#jobsjob_iduses) -You reference reusable workflow files using the syntax: +You reference reusable workflow files using the syntax: `{owner}/{repo}/{path}/{filename}@{ref}` @@ -191,7 +190,7 @@ When you call a reusable workflow, you can only use the following keywords in th {% note %} - **Note:** + **Note:** * If `jobs..permissions` is not specified in the calling job, the called workflow will have the default permissions for the `GITHUB_TOKEN`. For more information, see "[Authentication in a workflow](/actions/reference/authentication-in-a-workflow#permissions-for-the-github_token)." * The `GITHUB_TOKEN` permissions passed from the caller workflow can be only downgraded (not elevated) by the called workflow. @@ -226,7 +225,7 @@ jobs: ## Using outputs from a reusable workflow -A reusable workflow may generate data that you want to use in the caller workflow. To use these outputs, you must specify them as the outputs of the reusable workflow. +A reusable workflow may generate data that you want to use in the caller workflow. To use these outputs, you must specify them as the outputs of the reusable workflow. The following reusable workflow has a single job containing two steps. In each of these steps we set a single word as the output: "hello" and "world." In the `outputs` section of the job, we map these step outputs to job outputs called: `output1` and `output2`. In the `on.workflow_call.outputs` section we then define two outputs for the workflow itself, one called `firstword` which we map to `output1`, and one called `secondword` which we map to `output2`. @@ -243,12 +242,12 @@ on: value: ${{ jobs.example_job.outputs.output1 }} secondword: description: "The second output string" - value: ${{ jobs.example_job.outputs.output2 }} - + value: ${{ jobs.example_job.outputs.output2 }} + jobs: example_job: name: Generate output - runs-on: ubuntu-latest + runs-on: ubuntu-latest # Map the job outputs to step outputs outputs: output1: ${{ steps.step1.outputs.firstword }} diff --git a/translations/es-ES/content/actions/learn-github-actions/sharing-workflows-secrets-and-runners-with-your-organization.md b/translations/es-ES/content/actions/learn-github-actions/sharing-workflows-secrets-and-runners-with-your-organization.md index f48ee6acd8..7ce98f5613 100644 --- a/translations/es-ES/content/actions/learn-github-actions/sharing-workflows-secrets-and-runners-with-your-organization.md +++ b/translations/es-ES/content/actions/learn-github-actions/sharing-workflows-secrets-and-runners-with-your-organization.md @@ -1,7 +1,7 @@ --- title: 'Sharing workflows, secrets, and runners with your organization' shortTitle: Sharing workflows with your organization -intro: 'Learn how you can use organization features to collaborate with your team, by sharing workflow templates, secrets, and self-hosted runners.' +intro: 'Learn how you can use organization features to collaborate with your team, by sharing starter workflow, secrets, and self-hosted runners.' redirect_from: - /actions/learn-github-actions/sharing-workflows-with-your-organization versions: @@ -17,11 +17,11 @@ type: how_to ## Overview -If you need to share workflows and other {% data variables.product.prodname_actions %} features with your team, then consider collaborating within a {% data variables.product.prodname_dotcom %} organization. An organization allows you to centrally store and manage secrets, artifacts, and self-hosted runners. You can also create workflow templates in the `.github` repository and share them with other users in your organization. +If you need to share workflows and other {% data variables.product.prodname_actions %} features with your team, then consider collaborating within a {% data variables.product.prodname_dotcom %} organization. An organization allows you to centrally store and manage secrets, artifacts, and self-hosted runners. You can also create starter workflow in the `.github` repository and share them with other users in your organization. -## Using workflow templates +## Using starter workflows -{% data reusables.actions.workflow-organization-templates %} For more information, see "[Creating workflow templates](/actions/learn-github-actions/creating-workflow-templates)." +{% data reusables.actions.workflow-organization-templates %} For more information, see "[Creating starter workflows for your organization](/actions/learn-github-actions/creating-starter-workflows-for-your-organization)." {% data reusables.actions.reusable-workflows %} @@ -51,4 +51,4 @@ For more information, see "[Managing access to self-hosted runners using groups] ## Next steps -To continue learning about {% data variables.product.prodname_actions %}, see "[Creating workflow templates](/actions/learn-github-actions/creating-workflow-templates)." +To continue learning about {% data variables.product.prodname_actions %}, see "[Creating starter workflows for your organization](/actions/learn-github-actions/creating-starter-workflows-for-your-organization)." diff --git a/translations/es-ES/content/actions/learn-github-actions/using-starter-workflows.md b/translations/es-ES/content/actions/learn-github-actions/using-starter-workflows.md new file mode 100644 index 0000000000..9af782bd97 --- /dev/null +++ b/translations/es-ES/content/actions/learn-github-actions/using-starter-workflows.md @@ -0,0 +1,54 @@ +--- +title: Using starter workflows +intro: '{% data variables.product.product_name %} provides starter workflows for a variety of languages and tooling.' +redirect_from: + - /articles/setting-up-continuous-integration-using-github-actions + - /github/automating-your-workflow-with-github-actions/setting-up-continuous-integration-using-github-actions + - /actions/automating-your-workflow-with-github-actions/setting-up-continuous-integration-using-github-actions + - /actions/building-and-testing-code-with-continuous-integration/setting-up-continuous-integration-using-github-actions + - /actions/guides/setting-up-continuous-integration-using-workflow-templates + - /actions/learn-github-actions/using-workflow-templates +versions: + fpt: '*' + ghes: '*' + ghae: '*' + ghec: '*' +type: tutorial +topics: + - Workflows + - CI + - CD +--- + +{% data reusables.actions.enterprise-beta %} +{% data reusables.actions.enterprise-github-hosted-runners %} + +## About starter workflows + +{% data variables.product.product_name %} offers starter workflows for a variety of languages and tooling. When you set up workflows in your repository, {% data variables.product.product_name %} analyzes the code in your repository and recommends workflows based on the language and framework in your repository. For example, if you use [Node.js](https://nodejs.org/en/), {% data variables.product.product_name %} will suggest a starter workflow file that installs your Node.js packages and runs your tests.{% if actions-starter-template-ui %} You can search and filter to find relevant starter workflows.{% endif %} + +You can also create your own starter workflow to share with your organization. These starter workflows will appear alongside the {% data variables.product.product_name %}-provided starter workflows. For more information, see "[Creating starter workflows for your organization](/actions/learn-github-actions/creating-starter-workflows-for-your-organization)." + +## Using starter workflows + +Anyone with write permission to a repository can set up {% data variables.product.prodname_actions %} starter workflows for CI/CD or other automation. + +{% data reusables.repositories.navigate-to-repo %} +{% data reusables.repositories.actions-tab %} +1. If you already have a workflow in your repository, click **New workflow**. +1. Find the starter workflow that you want to use, then click **Set up this workflow**.{% if actions-starter-template-ui %} To help you find the starter workflow that you want, you can search for keywords or filter by category.{% endif %} +1. If the starter workflow contains comments detailing additional setup steps, follow these steps. Many of the starter workflow have corresponding guides. For more information, see [the {% data variables.product.prodname_actions %} guides](/actions/guides)." +1. Some starter workflows use secrets. For example, {% raw %}`${{ secrets.npm_token }}`{% endraw %}. If the starter workflow uses a secret, store the value described in the secret name as a secret in your repository. For more information, see "[Encrypted secrets](/actions/reference/encrypted-secrets)." +1. Optionally, make additional changes. For example, you might want to change the value of `on` to change when the workflow runs. +1. Click **Start commit**. +1. Write a commit message and decide whether to commit directly to the default branch or to open a pull request. + +## Further reading + +- "[About continuous integration](/articles/about-continuous-integration)" +- "[Managing workflow runs](/actions/managing-workflow-runs)" +- "[About monitoring and troubleshooting](/actions/monitoring-and-troubleshooting-workflows/about-monitoring-and-troubleshooting)" +- "[Learn {% data variables.product.prodname_actions %}](/actions/learn-github-actions)" +{% ifversion fpt or ghec %} +- "[Managing billing for {% data variables.product.prodname_actions %}](/billing/managing-billing-for-github-actions)" +{% endif %} diff --git a/translations/es-ES/content/actions/learn-github-actions/workflow-syntax-for-github-actions.md b/translations/es-ES/content/actions/learn-github-actions/workflow-syntax-for-github-actions.md index c0d591e311..f3586ab251 100644 --- a/translations/es-ES/content/actions/learn-github-actions/workflow-syntax-for-github-actions.md +++ b/translations/es-ES/content/actions/learn-github-actions/workflow-syntax-for-github-actions.md @@ -475,7 +475,7 @@ In this example, `job3` uses the `always()` conditional expression so that it al ## `jobs..runs-on` -**Required**. The type of machine to run the job on. {% ifversion fpt or ghec %}The machine can be either a {% data variables.product.prodname_dotcom %}-hosted runner or a self-hosted runner.{% endif %} You can provide `runs-on` as a single string or as an array of strings. +**Required**. The type of machine to run the job on. {% ifversion fpt or ghec %}The machine can be either a {% data variables.product.prodname_dotcom %}-hosted runner or a self-hosted runner.{% endif %} You can provide `runs-on` as a single string or as an array of strings. If you specify an array of strings, your workflow will run on a self-hosted runner whose labels match all of the specified `runs-on` values, if available. If you would like to run your workflow on multiple machines, use [`jobs..strategy`](/actions/learn-github-actions/workflow-syntax-for-github-actions#jobsjob_idstrategy). {% ifversion fpt or ghec or ghes %} {% data reusables.actions.enterprise-github-hosted-runners %} diff --git a/translations/es-ES/content/actions/managing-issues-and-pull-requests/adding-labels-to-issues.md b/translations/es-ES/content/actions/managing-issues-and-pull-requests/adding-labels-to-issues.md index b3c1173329..20a2edd4b6 100644 --- a/translations/es-ES/content/actions/managing-issues-and-pull-requests/adding-labels-to-issues.md +++ b/translations/es-ES/content/actions/managing-issues-and-pull-requests/adding-labels-to-issues.md @@ -45,7 +45,7 @@ In the tutorial, you will first make a workflow file that uses the [`andymckay/l issues: write{% endif %} steps: - name: Label issues - uses: andymckay/labeler@5c59dabdfd4dd5bd9c6e6d255b01b9d764af4414 + uses: andymckay/labeler@e6c4322d0397f3240f0e7e30a33b5c5df2d39e90 with: add-labels: "triage" repo-token: {% raw %}${{ secrets.GITHUB_TOKEN }}{% endraw %} diff --git a/translations/es-ES/content/actions/migrating-to-github-actions/index.md b/translations/es-ES/content/actions/migrating-to-github-actions/index.md index b4dbec7116..54a6cff1d2 100644 --- a/translations/es-ES/content/actions/migrating-to-github-actions/index.md +++ b/translations/es-ES/content/actions/migrating-to-github-actions/index.md @@ -9,7 +9,7 @@ versions: ghec: '*' redirect_from: - /actions/migrating-to-github-actions - - /articles/migrating-github-actions-from-hcl-syntax-to-yaml-syntax/ + - /articles/migrating-github-actions-from-hcl-syntax-to-yaml-syntax children: - /migrating-from-azure-pipelines-to-github-actions - /migrating-from-circleci-to-github-actions diff --git a/translations/es-ES/content/actions/monitoring-and-troubleshooting-workflows/adding-a-workflow-status-badge.md b/translations/es-ES/content/actions/monitoring-and-troubleshooting-workflows/adding-a-workflow-status-badge.md index c55f5363fd..da7ac4443b 100644 --- a/translations/es-ES/content/actions/monitoring-and-troubleshooting-workflows/adding-a-workflow-status-badge.md +++ b/translations/es-ES/content/actions/monitoring-and-troubleshooting-workflows/adding-a-workflow-status-badge.md @@ -39,8 +39,8 @@ This Markdown example adds a status badge for a branch with the name `feature-1` ## Using the `event` parameter -This Markdown example adds a badge that displays the status of workflow runs triggered by the `pull_request` event. +This Markdown example adds a badge that displays the status of workflow runs triggered by the `push` event, which will show the status of the build for the current state of that branch. ```markdown -![example event parameter](https://github.com/github/docs/actions/workflows/main.yml/badge.svg?event=pull_request) +![example event parameter](https://github.com/github/docs/actions/workflows/main.yml/badge.svg?event=push) ``` diff --git a/translations/es-ES/content/actions/quickstart.md b/translations/es-ES/content/actions/quickstart.md index 38bf3fdf13..28d20b78f7 100644 --- a/translations/es-ES/content/actions/quickstart.md +++ b/translations/es-ES/content/actions/quickstart.md @@ -76,7 +76,7 @@ Committing the workflow file to a branch in your repository triggers the `push` For example, you can see the list of files in your repository: ![Example action detail](/assets/images/help/repository/actions-quickstart-log-detail.png) -## More workflow templates +## More starter workflows {% data reusables.actions.workflow-template-overview %} diff --git a/translations/es-ES/content/actions/using-github-hosted-runners/about-github-hosted-runners.md b/translations/es-ES/content/actions/using-github-hosted-runners/about-github-hosted-runners.md index 60e791ab95..662d33b84f 100644 --- a/translations/es-ES/content/actions/using-github-hosted-runners/about-github-hosted-runners.md +++ b/translations/es-ES/content/actions/using-github-hosted-runners/about-github-hosted-runners.md @@ -76,8 +76,8 @@ For more information, see "[Viewing workflow run history](/actions/managing-work For the overall list of included tools for each runner operating system, see the links below: -* [Ubuntu 20.04 LTS](https://github.com/actions/virtual-environments/blob/main/images/linux/Ubuntu2004-README.md) -* [Ubuntu 18.04 LTS](https://github.com/actions/virtual-environments/blob/main/images/linux/Ubuntu1804-README.md) +* [Ubuntu 20.04 LTS](https://github.com/actions/virtual-environments/blob/main/images/linux/Ubuntu2004-Readme.md) +* [Ubuntu 18.04 LTS](https://github.com/actions/virtual-environments/blob/main/images/linux/Ubuntu1804-Readme.md) * [Windows Server 2022](https://github.com/actions/virtual-environments/blob/main/images/win/Windows2022-Readme.md) * [Windows Server 2019](https://github.com/actions/virtual-environments/blob/main/images/win/Windows2019-Readme.md) * [Windows Server 2016](https://github.com/actions/virtual-environments/blob/main/images/win/Windows2016-Readme.md) diff --git a/translations/es-ES/content/admin/advanced-security/index.md b/translations/es-ES/content/admin/advanced-security/index.md index e5bccc0767..9bb979a9eb 100644 --- a/translations/es-ES/content/admin/advanced-security/index.md +++ b/translations/es-ES/content/admin/advanced-security/index.md @@ -1,7 +1,7 @@ --- -title: Administrar la Seguridad Avanzada de GitHub para tu empresa -shortTitle: Administrar la Seguridad Avanzada de GitHub -intro: 'Puedes configurar la {% data variables.product.prodname_advanced_security %} y administrar cómo la utiliza tu empresa de acuerdo con las necesidades de tu organización.' +title: Managing GitHub Advanced Security for your enterprise +shortTitle: Managing GitHub Advanced Security +intro: 'You can configure {% data variables.product.prodname_advanced_security %} and manage use by your enterprise to suit your organization''s needs.' product: '{% data reusables.gated-features.ghas %}' redirect_from: - /enterprise/admin/configuration/configuring-advanced-security-features @@ -15,8 +15,6 @@ children: - /enabling-github-advanced-security-for-your-enterprise - /configuring-code-scanning-for-your-appliance - /configuring-secret-scanning-for-your-appliance - - /viewing-your-github-advanced-security-usage - /overview-of-github-advanced-security-deployment - /deploying-github-advanced-security-in-your-enterprise --- - diff --git a/translations/es-ES/content/admin/authentication/authenticating-users-for-your-github-enterprise-server-instance/disabling-unauthenticated-sign-ups.md b/translations/es-ES/content/admin/authentication/authenticating-users-for-your-github-enterprise-server-instance/disabling-unauthenticated-sign-ups.md index 51ba1f24c7..3711fe5ef6 100644 --- a/translations/es-ES/content/admin/authentication/authenticating-users-for-your-github-enterprise-server-instance/disabling-unauthenticated-sign-ups.md +++ b/translations/es-ES/content/admin/authentication/authenticating-users-for-your-github-enterprise-server-instance/disabling-unauthenticated-sign-ups.md @@ -1,11 +1,11 @@ --- -title: Desactivar los registros no autenticados +title: Disabling unauthenticated sign-ups redirect_from: - - /enterprise/admin/articles/disabling-sign-ups/ + - /enterprise/admin/articles/disabling-sign-ups - /enterprise/admin/user-management/disabling-unauthenticated-sign-ups - /enterprise/admin/authentication/disabling-unauthenticated-sign-ups - /admin/authentication/disabling-unauthenticated-sign-ups -intro: 'Si usas la autenticación integrada, puedes impedir que las personas no autenticadas puedan crear una cuenta.' +intro: 'If you''re using built-in authentication, you can block unauthenticated people from being able to create an account.' versions: ghes: '*' type: how_to @@ -13,11 +13,11 @@ topics: - Accounts - Authentication - Enterprise -shortTitle: Bloquear la creación de cuentas +shortTitle: Block account creation --- - {% data reusables.enterprise_site_admin_settings.access-settings %} {% data reusables.enterprise_site_admin_settings.management-console %} {% data reusables.enterprise_management_console.privacy %} -3. Quita la marca de selección en **Activar registro**. ![Habilitar casilla de registro](/assets/images/enterprise/management-console/enable-sign-up.png) +3. Unselect **Enable sign-up**. +![Enable sign-up checkbox](/assets/images/enterprise/management-console/enable-sign-up.png) {% data reusables.enterprise_management_console.save-settings %} diff --git a/translations/es-ES/content/admin/authentication/authenticating-users-for-your-github-enterprise-server-instance/index.md b/translations/es-ES/content/admin/authentication/authenticating-users-for-your-github-enterprise-server-instance/index.md index 8bf26d1500..5d51187af0 100644 --- a/translations/es-ES/content/admin/authentication/authenticating-users-for-your-github-enterprise-server-instance/index.md +++ b/translations/es-ES/content/admin/authentication/authenticating-users-for-your-github-enterprise-server-instance/index.md @@ -1,11 +1,11 @@ --- -title: Autenticar usuarios para tu instancia de servidor de GitHub Enterprise -intro: 'Puedes usar la autenticación integrada de {% data variables.product.prodname_ghe_server %} o elegir entre CAS, LDAP o SAML para integrar tus cuentas existentes y administrar centralmente el acceso de usuarios para {% data variables.product.product_location %}.' +title: Authenticating users for your GitHub Enterprise Server instance +intro: 'You can use {% data variables.product.prodname_ghe_server %}''s built-in authentication, or choose between CAS, LDAP, or SAML to integrate your existing accounts and centrally manage user access to {% data variables.product.product_location %}.' redirect_from: - - /enterprise/admin/categories/authentication/ - - /enterprise/admin/guides/installation/user-authentication/ - - /enterprise/admin/articles/inviting-users/ - - /enterprise/admin/guides/migrations/authenticating-users-for-your-github-enterprise-instance/ + - /enterprise/admin/categories/authentication + - /enterprise/admin/guides/installation/user-authentication + - /enterprise/admin/articles/inviting-users + - /enterprise/admin/guides/migrations/authenticating-users-for-your-github-enterprise-instance - /enterprise/admin/user-management/authenticating-users-for-your-github-enterprise-server-instance - /enterprise/admin/authentication/authenticating-users-for-your-github-enterprise-server-instance versions: @@ -20,6 +20,6 @@ children: - /using-ldap - /allowing-built-in-authentication-for-users-outside-your-identity-provider - /changing-authentication-methods -shortTitle: Autenticar usuarios +shortTitle: Authenticate users --- diff --git a/translations/es-ES/content/admin/authentication/authenticating-users-for-your-github-enterprise-server-instance/using-cas.md b/translations/es-ES/content/admin/authentication/authenticating-users-for-your-github-enterprise-server-instance/using-cas.md index d16b3ad090..b1276f2de7 100644 --- a/translations/es-ES/content/admin/authentication/authenticating-users-for-your-github-enterprise-server-instance/using-cas.md +++ b/translations/es-ES/content/admin/authentication/authenticating-users-for-your-github-enterprise-server-instance/using-cas.md @@ -1,8 +1,8 @@ --- title: Using CAS redirect_from: - - /enterprise/admin/articles/configuring-cas-authentication/ - - /enterprise/admin/articles/about-cas-authentication/ + - /enterprise/admin/articles/configuring-cas-authentication + - /enterprise/admin/articles/about-cas-authentication - /enterprise/admin/user-management/using-cas - /enterprise/admin/authentication/using-cas - /admin/authentication/using-cas diff --git a/translations/es-ES/content/admin/authentication/authenticating-users-for-your-github-enterprise-server-instance/using-ldap.md b/translations/es-ES/content/admin/authentication/authenticating-users-for-your-github-enterprise-server-instance/using-ldap.md index a7d55a8a16..77d922b9e8 100644 --- a/translations/es-ES/content/admin/authentication/authenticating-users-for-your-github-enterprise-server-instance/using-ldap.md +++ b/translations/es-ES/content/admin/authentication/authenticating-users-for-your-github-enterprise-server-instance/using-ldap.md @@ -1,11 +1,11 @@ --- title: Using LDAP redirect_from: - - /enterprise/admin/articles/configuring-ldap-authentication/ - - /enterprise/admin/articles/about-ldap-authentication/ - - /enterprise/admin/articles/viewing-ldap-users/ - - /enterprise/admin/hidden/enabling-ldap-sync/ - - /enterprise/admin/hidden/ldap-sync/ + - /enterprise/admin/articles/configuring-ldap-authentication + - /enterprise/admin/articles/about-ldap-authentication + - /enterprise/admin/articles/viewing-ldap-users + - /enterprise/admin/hidden/enabling-ldap-sync + - /enterprise/admin/hidden/ldap-sync - /enterprise/admin/user-management/using-ldap - /enterprise/admin/authentication/using-ldap - /admin/authentication/using-ldap diff --git a/translations/es-ES/content/admin/authentication/authenticating-users-for-your-github-enterprise-server-instance/using-saml.md b/translations/es-ES/content/admin/authentication/authenticating-users-for-your-github-enterprise-server-instance/using-saml.md index b7f582ffcb..e3c6192362 100644 --- a/translations/es-ES/content/admin/authentication/authenticating-users-for-your-github-enterprise-server-instance/using-saml.md +++ b/translations/es-ES/content/admin/authentication/authenticating-users-for-your-github-enterprise-server-instance/using-saml.md @@ -1,8 +1,8 @@ --- title: Using SAML redirect_from: - - /enterprise/admin/articles/configuring-saml-authentication/ - - /enterprise/admin/articles/about-saml-authentication/ + - /enterprise/admin/articles/configuring-saml-authentication + - /enterprise/admin/articles/about-saml-authentication - /enterprise/admin/user-management/using-saml - /enterprise/admin/authentication/using-saml - /admin/authentication/using-saml @@ -71,6 +71,15 @@ These attributes are available. You can change the attribute names in the [manag | `public_keys` | Optional | The public SSH keys for the user. More than one can be specified. | | `gpg_keys` | Optional | The GPG keys for the user. More than one can be specified. | +To specify more than one value for an attribute, use multiple `` elements. + +``` + + ssh-rsa LONG KEY + ssh-rsa LONG KEY 2 + +``` + ## Configuring SAML settings {% data reusables.enterprise_site_admin_settings.access-settings %} diff --git a/translations/es-ES/content/admin/authentication/managing-your-enterprise-users-with-your-identity-provider/index.md b/translations/es-ES/content/admin/authentication/managing-your-enterprise-users-with-your-identity-provider/index.md index fad4b83075..c82069b7a4 100644 --- a/translations/es-ES/content/admin/authentication/managing-your-enterprise-users-with-your-identity-provider/index.md +++ b/translations/es-ES/content/admin/authentication/managing-your-enterprise-users-with-your-identity-provider/index.md @@ -1,10 +1,10 @@ --- -title: Administrar a tus usuarios empresariales con tu proveedor de identidad -shortTitle: Administrar usuarios con tu IdP +title: Managing your enterprise users with your identity provider +shortTitle: Manage users with your IdP product: '{% data reusables.gated-features.emus %}' -intro: Puedes administrar la identidad y el acceso con tu proveedor de identidad y aprovisionar cuentas que solo puedan contribuir con tu empresa. +intro: You can manage identity and access with your identity provider and provision accounts that can only contribute to your enterprise. redirect_from: - - /github/setting-up-and-managing-your-enterprise/managing-your-enterprise-users-with-your-identity-provider/ + - /github/setting-up-and-managing-your-enterprise/managing-your-enterprise-users-with-your-identity-provider versions: ghec: '*' topics: diff --git a/translations/es-ES/content/admin/configuration/configuring-network-settings/configuring-a-hostname.md b/translations/es-ES/content/admin/configuration/configuring-network-settings/configuring-a-hostname.md index 8c010e114b..2727ae6ddc 100644 --- a/translations/es-ES/content/admin/configuration/configuring-network-settings/configuring-a-hostname.md +++ b/translations/es-ES/content/admin/configuration/configuring-network-settings/configuring-a-hostname.md @@ -1,8 +1,8 @@ --- -title: Configurar un nombre del host -intro: Recomendamos establecer un nombre del host para tu aparato en lugar de utilizar una dirección IP codificada de forma rígida. +title: Configuring a hostname +intro: We recommend setting a hostname for your appliance instead of using a hard-coded IP address. redirect_from: - - /enterprise/admin/guides/installation/configuring-hostnames/ + - /enterprise/admin/guides/installation/configuring-hostnames - /enterprise/admin/installation/configuring-a-hostname - /enterprise/admin/configuration/configuring-a-hostname - /admin/configuration/configuring-a-hostname @@ -14,19 +14,20 @@ topics: - Fundamentals - Infrastructure --- +If you configure a hostname instead of a hard-coded IP address, you will be able to change the physical hardware that {% data variables.product.product_location %} runs on without affecting users or client software. -Si configuras un nombre del host en lugar de una dirección IP codificada de forma rígida, podrás cambiar el hardware físico que ejecuta {% data variables.product.product_location %} sin afectar a los usuarios o al software del cliente. - -La configuración del nombre de host en la {% data variables.enterprise.management_console %} debe ajustarse a un nombre de dominio adecuado y que cumpla con todos los requisitos (FQDN) el cual se pueda resolver en la internet o dentro de tu red interna. Por ejemplo, tu configuración de nombre del host podría ser `github.companyname.com.` También recomendamos habilitar el aislamiento de subdominio para el nombre del host elegido a fin de mitigar varias vulnerabilidades del estilo cross-site scripting. Para obtener más información, consulta [Sección 2.1 del HTTP RFC](https://tools.ietf.org/html/rfc1123#section-2). +The hostname setting in the {% data variables.enterprise.management_console %} should be set to an appropriate fully qualified domain name (FQDN) which is resolvable on the internet or within your internal network. For example, your hostname setting could be `github.companyname.com.` We also recommend enabling subdomain isolation for the chosen hostname to mitigate several cross-site scripting style vulnerabilities. For more information on hostname settings, see [Section 2.1 of the HTTP RFC](https://tools.ietf.org/html/rfc1123#section-2). {% data reusables.enterprise_installation.changing-hostname-not-supported %} {% data reusables.enterprise_site_admin_settings.access-settings %} {% data reusables.enterprise_site_admin_settings.management-console %} {% data reusables.enterprise_management_console.hostname-menu-item %} -4. Escribe el nombre del host que quieres establecer para {% data variables.product.product_location %}. ![Campo para establecer un nombre del host](/assets/images/enterprise/management-console/hostname-field.png) -5. Para probar las configuraciones de DNS y SSL para el nombre del host nuevo, haz clic en **Configuraciones del dominio de prueba**. ![Botón Test domain settings (Probar configuraciones del dominio)](/assets/images/enterprise/management-console/test-domain-settings.png) +4. Type the hostname you'd like to set for {% data variables.product.product_location %}. + ![Field for setting a hostname](/assets/images/enterprise/management-console/hostname-field.png) +5. To test the DNS and SSL settings for the new hostname, click **Test domain settings**. + ![Test domain settings button](/assets/images/enterprise/management-console/test-domain-settings.png) {% data reusables.enterprise_management_console.test-domain-settings-failure %} {% data reusables.enterprise_management_console.save-settings %} -Después de configurar un nombre del host, recomendamos que habilites el aislamiento de subdominio para {% data variables.product.product_location %}. Para obtener más información, consulta "[Habilitar el aislamiento de subdominio](/enterprise/{{ currentVersion }}/admin/guides/installation/enabling-subdomain-isolation/)." +After you configure a hostname, we recommend that you enable subdomain isolation for {% data variables.product.product_location %}. For more information, see "[Enabling subdomain isolation](/enterprise/{{ currentVersion }}/admin/guides/installation/enabling-subdomain-isolation/)." diff --git a/translations/es-ES/content/admin/configuration/configuring-network-settings/configuring-an-outbound-web-proxy-server.md b/translations/es-ES/content/admin/configuration/configuring-network-settings/configuring-an-outbound-web-proxy-server.md index dbebc7a071..efcd3a1f2d 100644 --- a/translations/es-ES/content/admin/configuration/configuring-network-settings/configuring-an-outbound-web-proxy-server.md +++ b/translations/es-ES/content/admin/configuration/configuring-network-settings/configuring-an-outbound-web-proxy-server.md @@ -1,8 +1,8 @@ --- -title: Configurar un servidor proxy web fuera de banda -intro: 'Un servidor proxy proporciona otro nivel de seguridad para {% data variables.product.product_location %}.' +title: Configuring an outbound web proxy server +intro: 'A proxy server provides an additional level of security for {% data variables.product.product_location %}.' redirect_from: - - /enterprise/admin/guides/installation/configuring-a-proxy-server/ + - /enterprise/admin/guides/installation/configuring-a-proxy-server - /enterprise/admin/installation/configuring-an-outbound-web-proxy-server - /enterprise/admin/configuration/configuring-an-outbound-web-proxy-server - /admin/configuration/configuring-an-outbound-web-proxy-server @@ -14,28 +14,30 @@ topics: - Fundamentals - Infrastructure - Networking -shortTitle: Configurar un proxy saliente +shortTitle: Configure an outbound proxy --- -## Acerca de los proxies con {% data variables.product.product_name %} +## About proxies with {% data variables.product.product_name %} -Cuando se habilita un servidor proxy para {% data variables.product.product_location %}, primero {% data variables.product.prodname_ghe_server %} envía mensajes fuera de banda a través del servidor proxy, a menos que el host de destino se agregue como una exclusión de servidor proxy HTTP. Los tipos de mensajes fuera de banda incluyen webhooks salientes, carga de paquetes y extracción de avatares heredados. La URL del servidor proxy es el protocolo, dominio o dirección IP más el número de puerto, por ejemplo `http://127.0.0.1:8123`. +When a proxy server is enabled for {% data variables.product.product_location %}, outbound messages sent by {% data variables.product.prodname_ghe_server %} are first sent through the proxy server, unless the destination host is added as an HTTP proxy exclusion. Types of outbound messages include outgoing webhooks, uploading bundles, and fetching legacy avatars. The proxy server's URL is the protocol, domain or IP address, plus the port number, for example `http://127.0.0.1:8123`. {% note %} -**Nota:** Para conectarte a {% data variables.product.product_location %} para {% data variables.product.prodname_dotcom_the_website %}, tu configuración proxy debe permitir la conectividad a `github.com` y a `api.github.com`. Para obtener más información, consulta la sección "[Conectar tu cuenta empresarial a {% data variables.product.prodname_dotcom_the_website %}](/admin/configuration/managing-connections-between-your-enterprise-accounts/connecting-your-enterprise-account-to-github-enterprise-cloud)". +**Note:** To connect {% data variables.product.product_location %} to {% data variables.product.prodname_dotcom_the_website %}, your proxy configuration must allow connectivity to `github.com` and `api.github.com`. For more information, see "[Connecting your enterprise account to {% data variables.product.prodname_dotcom_the_website %}](/admin/configuration/managing-connections-between-your-enterprise-accounts/connecting-your-enterprise-account-to-github-enterprise-cloud)." {% endnote %} -{% data reusables.actions.proxy-considerations %} Para obtener más información sobre cómo utilizar las {% data variables.product.prodname_actions %} con {% data variables.product.prodname_ghe_server %}, consulta la sección "[Iniciar con {% data variables.product.prodname_actions %} para {% data variables.product.prodname_ghe_server %}](/admin/github-actions/enabling-github-actions-for-github-enterprise-server/getting-started-with-github-actions-for-github-enterprise-server)". +{% data reusables.actions.proxy-considerations %} For more information about using {% data variables.product.prodname_actions %} with {% data variables.product.prodname_ghe_server %}, see "[Getting started with {% data variables.product.prodname_actions %} for {% data variables.product.prodname_ghe_server %}](/admin/github-actions/enabling-github-actions-for-github-enterprise-server/getting-started-with-github-actions-for-github-enterprise-server)." -## Configurar un servidor proxy web fuera de banda +## Configuring an outbound web proxy server {% data reusables.enterprise_site_admin_settings.access-settings %} {% data reusables.enterprise_site_admin_settings.management-console %} {% data reusables.enterprise_management_console.privacy %} -1. En **Servidor proxy HTTP**, escribe la URL de tu servidor proxy. ![Campo para escribir la URL del servidor proxy HTTP](/assets/images/enterprise/management-console/http-proxy-field.png) - -5. De manera opcional, en **Exclusión de servidor proxy HTTP**, escribe cualquier host que no exija acceso proxy, separando los hosts con comas. Para excluir a todos los hosts en un dominio de que requieran acceso por proxy, puedes utilizar `.` como un prefijo de comodín. Por ejemplo: `.octo-org.tentacle` ![Campo para escribir cualquier Exclusión de Proxy HTTP](/assets/images/enterprise/management-console/http-proxy-exclusion-field.png) +1. Under **HTTP Proxy Server**, type the URL of your proxy server. + ![Field to type the HTTP Proxy Server URL](/assets/images/enterprise/management-console/http-proxy-field.png) + +5. Optionally, under **HTTP Proxy Exclusion**, type any hosts that do not require proxy access, separating hosts with commas. To exclude all hosts in a domain from requiring proxy access, you can use `.` as a wildcard prefix. For example: `.octo-org.tentacle` + ![Field to type any HTTP Proxy Exclusions](/assets/images/enterprise/management-console/http-proxy-exclusion-field.png) {% data reusables.enterprise_management_console.save-settings %} diff --git a/translations/es-ES/content/admin/configuration/configuring-network-settings/configuring-built-in-firewall-rules.md b/translations/es-ES/content/admin/configuration/configuring-network-settings/configuring-built-in-firewall-rules.md index 63433314cd..b6f5cbfb9d 100644 --- a/translations/es-ES/content/admin/configuration/configuring-network-settings/configuring-built-in-firewall-rules.md +++ b/translations/es-ES/content/admin/configuration/configuring-network-settings/configuring-built-in-firewall-rules.md @@ -1,8 +1,8 @@ --- -title: Configurar las reglas de firewall incorporado -intro: 'Puedes ver las reglas de firewall predeterminadas y personalizar reglas para {% data variables.product.product_location %}.' +title: Configuring built-in firewall rules +intro: 'You can view default firewall rules and customize rules for {% data variables.product.product_location %}.' redirect_from: - - /enterprise/admin/guides/installation/configuring-firewall-settings/ + - /enterprise/admin/guides/installation/configuring-firewall-settings - /enterprise/admin/installation/configuring-built-in-firewall-rules - /enterprise/admin/configuration/configuring-built-in-firewall-rules - /admin/configuration/configuring-built-in-firewall-rules @@ -14,21 +14,20 @@ topics: - Fundamentals - Infrastructure - Networking -shortTitle: Configurar reglas de cortafuegos +shortTitle: Configure firewall rules --- +## About {% data variables.product.product_location %}'s firewall -## Acerca del firewell de {% data variables.product.product_location %} +{% data variables.product.prodname_ghe_server %} uses Ubuntu's Uncomplicated Firewall (UFW) on the virtual appliance. For more information see "[UFW](https://help.ubuntu.com/community/UFW)" in the Ubuntu documentation. {% data variables.product.prodname_ghe_server %} automatically updates the firewall allowlist of allowed services with each release. -{% data variables.product.prodname_ghe_server %} utiliza Ubuntu's Uncomplicated Firewall (UFW) en el aparato virtual. Para obtener más información, consulta "[UFW](https://help.ubuntu.com/community/UFW)" en la documentación de Ubuntu. Con cada lanzamiento, {% data variables.product.prodname_ghe_server %} actualiza automáticamente la lista blanca de los servicios permitidos del firewell. +After you install {% data variables.product.prodname_ghe_server %}, all required network ports are automatically opened to accept connections. Every non-required port is automatically configured as `deny`, and the default outgoing policy is configured as `allow`. Stateful tracking is enabled for any new connections; these are typically network packets with the `SYN` bit set. For more information, see "[Network ports](/enterprise/admin/guides/installation/network-ports)." -Después de que instales {% data variables.product.prodname_ghe_server %}, se abren automáticamente todos los puertos de red obligatorios para aceptar las conexiones. Cada puerto no obligatorio se configura automáticamente en `deny` (rechazar), y la directiva predeterminada resultante se configura en `allow` (permitir). Se habilita el rastreo con estado para todas las conexiones nuevas. Estas suelen ser paquetes de red con el conjunto de bits `SYN`. Para obtener más información, consulta "[Puertos de red](/enterprise/admin/guides/installation/network-ports)." +The UFW firewall also opens several other ports that are required for {% data variables.product.prodname_ghe_server %} to operate properly. For more information on the UFW rule set, see [the UFW README](https://bazaar.launchpad.net/~jdstrand/ufw/0.30-oneiric/view/head:/README#L213). -El firewall de UFW también abre varios puertos más que son obligatorios para que {% data variables.product.prodname_ghe_server %} funcione correctamente. Para obtener más información sobre el conjunto de reglas de UFW, consulta [el README de UFW](https://bazaar.launchpad.net/~jdstrand/ufw/0.30-oneiric/view/head:/README#L213). - -## Ver las reglas de firewell predeterminadas +## Viewing the default firewall rules {% data reusables.enterprise_installation.ssh-into-instance %} -2. Para ver las reglas de firewall predeterminadas, utiliza el comando `sudo ufw status`. Debes ver un resultado similar a este: +2. To view the default firewall rules, use the `sudo ufw status` command. You should see output similar to this: ```shell $ sudo ufw status > Status: active @@ -56,46 +55,46 @@ El firewall de UFW también abre varios puertos más que son obligatorios para q > ghe-9418 (v6) ALLOW Anywhere (v6) ``` -## Agregar reglas de firewell personalizadas +## Adding custom firewall rules {% warning %} -**Advertencia:** Antes de que agregues reglas de cortafuegos personalizadas, respalda tus reglas actuales en caso de que necesites restablecerlas a algún punto funcional. Si estás bloqueado de tu servidor, comunícate con {% data variables.contact.contact_ent_support %} para reconfigurar las reglas originales del firewall. Restaurar las reglas originales del firewall implica tiempo de inactividad para tu servidor. +**Warning:** Before you add custom firewall rules, back up your current rules in case you need to reset to a known working state. If you're locked out of your server, contact {% data variables.contact.contact_ent_support %} to reconfigure the original firewall rules. Restoring the original firewall rules involves downtime for your server. {% endwarning %} -1. Configura una regla de firewall personalizada. -2. Verifica el estado de cada nueva regla con el comando `estado numerado`. +1. Configure a custom firewall rule. +2. Check the status of each new rule with the `status numbered` command. ```shell $ sudo ufw status numbered ``` -3. Para hacer una copia de seguridad de tus reglas de firewall personalizadas, utiliza el comando `cp` para pasar las reglas a un archivo nuevo. +3. To back up your custom firewall rules, use the `cp`command to move the rules to a new file. ```shell $ sudo cp -r /etc/ufw ~/ufw.backup ``` -Después de actualizar {% data variables.product.product_location %}, debes volver a aplicar tus reglas de firewall personalizadas. Recomendamos que crees un script para volver a aplicar las reglas de firewall personalizadas. +After you upgrade {% data variables.product.product_location %}, you must reapply your custom firewall rules. We recommend that you create a script to reapply your firewall custom rules. -## Restaurar las reglas de firewell predeterminadas +## Restoring the default firewall rules -Si algo sale mal después de que cambies las reglas de firewell, puedes restablecer las reglas desde la copia de seguridad original. +If something goes wrong after you change the firewall rules, you can reset the rules from your original backup. {% warning %} -**Advertencia:** Si no respaldaste las reglas originales antes de hacer cambios al cortafuegos. contacta a {% data variables.contact.contact_ent_support %} para obtener más asistencia. +**Warning:** If you didn't back up the original rules before making changes to the firewall, contact {% data variables.contact.contact_ent_support %} for further assistance. {% endwarning %} {% data reusables.enterprise_installation.ssh-into-instance %} -2. Para restablecer las reglas de la copia de seguridad anterior, vuélvelas a copiar en el firewell con el comando `cp`. +2. To restore the previous backup rules, copy them back to the firewall with the `cp` command. ```shell $ sudo cp -f ~/ufw.backup/*rules /etc/ufw ``` -3. Vuelve a iniciar el firewell con el comando `systemctl`. +3. Restart the firewall with the `systemctl` command. ```shell $ sudo systemctl restart ufw ``` -4. Confirma que las reglas recuperaron su forma predeterminada con el comando `ufw status` (estado de ufw). +4. Confirm that the rules are back to their defaults with the `ufw status` command. ```shell $ sudo ufw status > Status: active diff --git a/translations/es-ES/content/admin/configuration/configuring-network-settings/configuring-dns-nameservers.md b/translations/es-ES/content/admin/configuration/configuring-network-settings/configuring-dns-nameservers.md index cd9b0dd0ca..0080d55693 100644 --- a/translations/es-ES/content/admin/configuration/configuring-network-settings/configuring-dns-nameservers.md +++ b/translations/es-ES/content/admin/configuration/configuring-network-settings/configuring-dns-nameservers.md @@ -1,8 +1,8 @@ --- -title: Configurar servidores de nombres DNS -intro: '{% data variables.product.prodname_ghe_server %} utiliza el protocolo de configuración dinámica de host (DHCP) para los ajustes DNS cuando las concesiones de DHCP ofrecen servidores de nombres. Si una concesión del protocolo de configuración dinámica de host (DHCP) no proporciona los servidores de nombres o si debes utilizar ajustes DNS particulares, puedes especificar los servidores de nombres de manera manual.' +title: Configuring DNS nameservers +intro: '{% data variables.product.prodname_ghe_server %} uses the dynamic host configuration protocol (DHCP) for DNS settings when DHCP leases provide nameservers. If nameservers are not provided by a dynamic host configuration protocol (DHCP) lease, or if you need to use specific DNS settings, you can specify the nameservers manually.' redirect_from: - - /enterprise/admin/guides/installation/about-dns-nameservers/ + - /enterprise/admin/guides/installation/about-dns-nameservers - /enterprise/admin/installation/configuring-dns-nameservers - /enterprise/admin/configuration/configuring-dns-nameservers - /admin/configuration/configuring-dns-nameservers @@ -14,29 +14,28 @@ topics: - Fundamentals - Infrastructure - Networking -shortTitle: Configurar los servidores DNS +shortTitle: Configure DNS servers --- - -Los servidores de nombres que especifiques deben resolver el nombre del host de {% data variables.product.product_location %}. +The nameservers you specify must resolve {% data variables.product.product_location %}'s hostname. {% data reusables.enterprise_installation.changing-hostname-not-supported %} -## Configurar servidores de nombres utilizando la consola de la máquina virtual +## Configuring nameservers using the virtual machine console {% data reusables.enterprise_installation.open-vm-console-start %} -2. Configurar servidores de nombres para tu instancia. +2. Configure nameservers for your instance. {% data reusables.enterprise_installation.vm-console-done %} -## Configurar servidores de nombres utilizando el shell administrativo +## Configuring nameservers using the administrative shell {% data reusables.enterprise_installation.ssh-into-instance %} -2. Para editar tus servidores de nombres, ingresa lo siguiente: +2. To edit your nameservers, enter: ```shell $ sudo vim /etc/resolvconf/resolv.conf.d/head ``` -3. Agrega cualquier entrada de `nameserver` (servidor de nombres) y luego guarda el archivo. -4. Después de verificar tus cambios, guarda el archivo. -5. Para agregar tus entradas nuevas de servidores de nombres en {% data variables.product.product_location %}, ejecuta lo siguiente: +3. Append any `nameserver` entries, then save the file. +4. After verifying your changes, save the file. +5. To add your new nameserver entries to {% data variables.product.product_location %}, run the following: ```shell $ sudo service resolvconf restart $ sudo service dnsmasq restart diff --git a/translations/es-ES/content/admin/configuration/configuring-network-settings/configuring-tls.md b/translations/es-ES/content/admin/configuration/configuring-network-settings/configuring-tls.md index 9fcec6ca70..e3a251095c 100644 --- a/translations/es-ES/content/admin/configuration/configuring-network-settings/configuring-tls.md +++ b/translations/es-ES/content/admin/configuration/configuring-network-settings/configuring-tls.md @@ -2,8 +2,8 @@ title: Configuring TLS intro: 'You can configure Transport Layer Security (TLS) on {% data variables.product.product_location %} so that you can use a certificate that is signed by a trusted certificate authority.' redirect_from: - - /enterprise/admin/articles/ssl-configuration/ - - /enterprise/admin/guides/installation/about-tls/ + - /enterprise/admin/articles/ssl-configuration + - /enterprise/admin/guides/installation/about-tls - /enterprise/admin/installation/configuring-tls - /enterprise/admin/configuration/configuring-tls - /admin/configuration/configuring-tls diff --git a/translations/es-ES/content/admin/configuration/configuring-network-settings/enabling-subdomain-isolation.md b/translations/es-ES/content/admin/configuration/configuring-network-settings/enabling-subdomain-isolation.md index 2cc7c60a4e..24d09e4f83 100644 --- a/translations/es-ES/content/admin/configuration/configuring-network-settings/enabling-subdomain-isolation.md +++ b/translations/es-ES/content/admin/configuration/configuring-network-settings/enabling-subdomain-isolation.md @@ -1,8 +1,8 @@ --- -title: Habilitar el aislamiento de subdominio -intro: 'Puedes configurar el aislamiento de subdominio para separar en forma segura el contenido suministrado por el usuario de las demás partes de tu aparato {% data variables.product.prodname_ghe_server %}.' +title: Enabling subdomain isolation +intro: 'You can set up subdomain isolation to securely separate user-supplied content from other portions of your {% data variables.product.prodname_ghe_server %} appliance.' redirect_from: - - /enterprise/admin/guides/installation/about-subdomain-isolation/ + - /enterprise/admin/guides/installation/about-subdomain-isolation - /enterprise/admin/installation/enabling-subdomain-isolation - /enterprise/admin/configuration/enabling-subdomain-isolation - /admin/configuration/enabling-subdomain-isolation @@ -15,51 +15,51 @@ topics: - Infrastructure - Networking - Security -shortTitle: Habilitar el aislamiento de subdominio +shortTitle: Enable subdomain isolation --- +## About subdomain isolation -## Acerca del aislamiento de subdominio +Subdomain isolation mitigates cross-site scripting and other related vulnerabilities. For more information, see "[Cross-site scripting](http://en.wikipedia.org/wiki/Cross-site_scripting)" on Wikipedia. We highly recommend that you enable subdomain isolation on {% data variables.product.product_location %}. -El aislamiento de subdominio mitiga las vulnerabilidades del estilo cross-site scripting y otras vulnerabilidades relacionadas. Para obtener más información, consulta "[Cross-site scripting](http://en.wikipedia.org/wiki/Cross-site_scripting)" en Wikipedia. Es altamente recomendable que habilites el aislamiento de subdominio en {% data variables.product.product_location %}. +When subdomain isolation is enabled, {% data variables.product.prodname_ghe_server %} replaces several paths with subdomains. After enabling subdomain isolation, attempts to access the previous paths for some user-supplied content, such as `http(s)://HOSTNAME/raw/`, may return `404` errors. -Cuando el aislamiento de subdominio está habilitado, {% data variables.product.prodname_ghe_server %} reemplaza varias rutas con subdominios. Después de haber habilitado el aislamiento de subdominios, los intentos para acceder a las rutas anteriores para encontrar algo del contenido que proporcionaron los usuarios, tal como `http(s)://HOSTNAME/raw/`, podría devolver errores de tipo `404`. +| Path without subdomain isolation | Path with subdomain isolation | +| --- | --- | +| `http(s)://HOSTNAME/assets/` | `http(s)://assets.HOSTNAME/` | +| `http(s)://HOSTNAME/avatars/` | `http(s)://avatars.HOSTNAME/` | +| `http(s)://HOSTNAME/codeload/` | `http(s)://codeload.HOSTNAME/` | +| `http(s)://HOSTNAME/gist/` | `http(s)://gist.HOSTNAME/` | +| `http(s)://HOSTNAME/media/` | `http(s)://media.HOSTNAME/` | +| `http(s)://HOSTNAME/pages/` | `http(s)://pages.HOSTNAME/` | +| `http(s)://HOSTNAME/raw/` | `http(s)://raw.HOSTNAME/` | +| `http(s)://HOSTNAME/render/` | `http(s)://render.HOSTNAME/` | +| `http(s)://HOSTNAME/reply/` | `http(s)://reply.HOSTNAME/` | +| `http(s)://HOSTNAME/uploads/` | `http(s)://uploads.HOSTNAME/` | {% ifversion ghes %} +| `https://HOSTNAME/_registry/docker/` | `http(s)://docker.HOSTNAME/`{% endif %}{% ifversion ghes %} +| `https://HOSTNAME/_registry/npm/` | `https://npm.HOSTNAME/` +| `https://HOSTNAME/_registry/rubygems/` | `https://rubygems.HOSTNAME/` +| `https://HOSTNAME/_registry/maven/` | `https://maven.HOSTNAME/` +| `https://HOSTNAME/_registry/nuget/` | `https://nuget.HOSTNAME/`{% endif %} -| Ruta sin aislamiento de subdominio | Ruta con aislamiento de subdominio | -| -------------------------------------- | ----------------------------------------------------------- | -| `http(s)://HOSTNAME/assets/` | `http(s)://assets.HOSTNAME/` | -| `http(s)://HOSTNAME/avatars/` | `http(s)://avatars.HOSTNAME/` | -| `http(s)://HOSTNAME/codeload/` | `http(s)://codeload.HOSTNAME/` | -| `http(s)://HOSTNAME/gist/` | `http(s)://gist.HOSTNAME/` | -| `http(s)://HOSTNAME/media/` | `http(s)://media.HOSTNAME/` | -| `http(s)://HOSTNAME/pages/` | `http(s)://pages.HOSTNAME/` | -| `http(s)://HOSTNAME/raw/` | `http(s)://raw.HOSTNAME/` | -| `http(s)://HOSTNAME/render/` | `http(s)://render.HOSTNAME/` | -| `http(s)://HOSTNAME/reply/` | `http(s)://reply.HOSTNAME/` | -| `http(s)://HOSTNAME/uploads/` | `http(s)://uploads.HOSTNAME/` |{% ifversion ghes %} -| `https://HOSTNAME/_registry/docker/` | `http(s)://docker.HOSTNAME/`{% endif %}{% ifversion ghes %} -| `https://HOSTNAME/_registry/npm/` | `https://npm.HOSTNAME/` | -| `https://HOSTNAME/_registry/rubygems/` | `https://rubygems.HOSTNAME/` | -| `https://HOSTNAME/_registry/maven/` | `https://maven.HOSTNAME/` | -| `https://HOSTNAME/_registry/nuget/` | `https://nuget.HOSTNAME/`{% endif %} - -## Prerrequisitos +## Prerequisites {% data reusables.enterprise_installation.disable-github-pages-warning %} -Antes de que habilites el aislamiento de subdominio, debes configurar tus ajustes de red para el nuevo dominio. +Before you enable subdomain isolation, you must configure your network settings for your new domain. -- Especifica un nombre de dominio válido como tu nombre del host, en lugar de una dirección IP. Para obtener más información, consulta "[Configurar un nombre del host](/enterprise/{{ currentVersion }}/admin/guides/installation/configuring-a-hostname)." +- Specify a valid domain name as your hostname, instead of an IP address. For more information, see "[Configuring a hostname](/enterprise/{{ currentVersion }}/admin/guides/installation/configuring-a-hostname)." {% data reusables.enterprise_installation.changing-hostname-not-supported %} -- Configura un registro de Sistema de nombres de dominio (DNS) de carácter comodín o registros DNS individuales para los subdominios detallados más arriba. Recomendamos crear un registro A para `*.HOSTNAME` que apunte a la dirección IP de tu servidor así no tienes que crear múltiples registros para cada subdominio. -- Obtén un certificado de Seguridad de la capa de transporte (TLS) de carácter comodín para `*.HOSTNAME` con un Nombre alternativo del firmante (SAN) para el `HOSTNAME` y para el `*.HOSTNAME` de dominio de carácter comodín. Por ejemplo, si tu nombre del host es `*.github.octoinc.com` obtén un certificado con el valor del nombre común configurado en `*.github.octoinc.com` y un valor SAN configurado en `github.octoinc.com` y `*.github.octoinc.com`. -- Habilita TLS en tu aparato. Para obtener más información, consulta "[Configurar TLS](/enterprise/{{ currentVersion }}/admin/guides/installation/configuring-tls/)." +- Set up a wildcard Domain Name System (DNS) record or individual DNS records for the subdomains listed above. We recommend creating an A record for `*.HOSTNAME` that points to your server's IP address so you don't have to create multiple records for each subdomain. +- Get a wildcard Transport Layer Security (TLS) certificate for `*.HOSTNAME` with a Subject Alternative Name (SAN) for both `HOSTNAME` and the wildcard domain `*.HOSTNAME`. For example, if your hostname is `github.octoinc.com`, get a certificate with the Common Name value set to `*.github.octoinc.com` and a SAN value set to both `github.octoinc.com` and `*.github.octoinc.com`. +- Enable TLS on your appliance. For more information, see "[Configuring TLS](/enterprise/{{ currentVersion }}/admin/guides/installation/configuring-tls/)." -## Habilitar el aislamiento de subdominio +## Enabling subdomain isolation {% data reusables.enterprise_site_admin_settings.access-settings %} {% data reusables.enterprise_site_admin_settings.management-console %} {% data reusables.enterprise_management_console.hostname-menu-item %} -4. Selecciona **Subdomain isolation (recommended)** (Aislamiento de subdominio [recomendado]). ![Casilla de verificación para habilitar el aislamiento de subdominio](/assets/images/enterprise/management-console/subdomain-isolation.png) +4. Select **Subdomain isolation (recommended)**. + ![Checkbox to enable subdomain isolation](/assets/images/enterprise/management-console/subdomain-isolation.png) {% data reusables.enterprise_management_console.save-settings %} diff --git a/translations/es-ES/content/admin/configuration/configuring-network-settings/index.md b/translations/es-ES/content/admin/configuration/configuring-network-settings/index.md index d28a383f9d..e3a5d06573 100644 --- a/translations/es-ES/content/admin/configuration/configuring-network-settings/index.md +++ b/translations/es-ES/content/admin/configuration/configuring-network-settings/index.md @@ -1,13 +1,13 @@ --- -title: Configurar los ajustes de red +title: Configuring network settings redirect_from: - - /enterprise/admin/guides/installation/dns-hostname-subdomain-isolation-and-ssl/ - - /enterprise/admin/articles/about-dns-ssl-and-subdomain-settings/ - - /enterprise/admin/articles/configuring-dns-ssl-and-subdomain-settings/ - - /enterprise/admin/guides/installation/configuring-your-github-enterprise-network-settings/ + - /enterprise/admin/guides/installation/dns-hostname-subdomain-isolation-and-ssl + - /enterprise/admin/articles/about-dns-ssl-and-subdomain-settings + - /enterprise/admin/articles/configuring-dns-ssl-and-subdomain-settings + - /enterprise/admin/guides/installation/configuring-your-github-enterprise-network-settings - /enterprise/admin/installation/configuring-your-github-enterprise-server-network-settings - /enterprise/admin/configuration/configuring-network-settings -intro: 'Configura {% data variables.product.prodname_ghe_server %} con los servidores de nombres y el nombre del host DNS necesarios para tu red. También puedes configurar un servidor proxy o reglas de firewall. Debes permitir el acceso a determinados puertos con fines administrativos y relacionados con el usuario.' +intro: 'Configure {% data variables.product.prodname_ghe_server %} with the DNS nameservers and hostname required in your network. You can also configure a proxy server or firewall rules. You must allow access to certain ports for administrative and user purposes.' versions: ghes: '*' topics: @@ -23,6 +23,6 @@ children: - /configuring-built-in-firewall-rules - /network-ports - /using-github-enterprise-server-with-a-load-balancer -shortTitle: Configurar los ajustes de red +shortTitle: Configure network settings --- diff --git a/translations/es-ES/content/admin/configuration/configuring-network-settings/network-ports.md b/translations/es-ES/content/admin/configuration/configuring-network-settings/network-ports.md index 4fcd17c1a7..80cfbb860b 100644 --- a/translations/es-ES/content/admin/configuration/configuring-network-settings/network-ports.md +++ b/translations/es-ES/content/admin/configuration/configuring-network-settings/network-ports.md @@ -1,10 +1,10 @@ --- title: Network ports redirect_from: - - /enterprise/admin/articles/configuring-firewalls/ - - /enterprise/admin/articles/firewall/ - - /enterprise/admin/guides/installation/network-configuration/ - - /enterprise/admin/guides/installation/network-ports-to-open/ + - /enterprise/admin/articles/configuring-firewalls + - /enterprise/admin/articles/firewall + - /enterprise/admin/guides/installation/network-configuration + - /enterprise/admin/guides/installation/network-ports-to-open - /enterprise/admin/installation/network-ports - /enterprise/admin/configuration/network-ports - /admin/configuration/network-ports diff --git a/translations/es-ES/content/admin/configuration/configuring-network-settings/using-github-enterprise-server-with-a-load-balancer.md b/translations/es-ES/content/admin/configuration/configuring-network-settings/using-github-enterprise-server-with-a-load-balancer.md index 8f8fdadc5a..35573b2ad4 100644 --- a/translations/es-ES/content/admin/configuration/configuring-network-settings/using-github-enterprise-server-with-a-load-balancer.md +++ b/translations/es-ES/content/admin/configuration/configuring-network-settings/using-github-enterprise-server-with-a-load-balancer.md @@ -2,7 +2,7 @@ title: Using GitHub Enterprise Server with a load balancer intro: 'Use a load balancer in front of a single {% data variables.product.prodname_ghe_server %} appliance or a pair of appliances in a High Availability configuration.' redirect_from: - - /enterprise/admin/guides/installation/using-github-enterprise-with-a-load-balancer/ + - /enterprise/admin/guides/installation/using-github-enterprise-with-a-load-balancer - /enterprise/admin/installation/using-github-enterprise-server-with-a-load-balancer - /enterprise/admin/configuration/using-github-enterprise-server-with-a-load-balancer - /admin/configuration/using-github-enterprise-server-with-a-load-balancer @@ -31,6 +31,8 @@ Because client connections to {% data variables.product.prodname_ghe_server %} c {% data reusables.enterprise_clustering.proxy_xff_firewall_warning %} +{% data reusables.enterprise_installation.terminating-tls %} + ### Enabling PROXY protocol support on {% data variables.product.product_location %} We strongly recommend enabling PROXY protocol support for both your appliance and the load balancer. Use the instructions provided by your vendor to enable the PROXY protocol on your load balancer. For more information, see [the PROXY protocol documentation](http://www.haproxy.org/download/1.8/doc/proxy-protocol.txt). @@ -50,8 +52,6 @@ We strongly recommend enabling PROXY protocol support for both your appliance an {% data reusables.enterprise_clustering.x-forwarded-for %} -{% data reusables.enterprise_installation.terminating-tls %} - {% data reusables.enterprise_site_admin_settings.access-settings %} {% data reusables.enterprise_site_admin_settings.management-console %} {% data reusables.enterprise_management_console.privacy %} diff --git a/translations/es-ES/content/admin/configuration/configuring-your-enterprise/command-line-utilities.md b/translations/es-ES/content/admin/configuration/configuring-your-enterprise/command-line-utilities.md index 2e8a16c345..2c3a6f3bb8 100644 --- a/translations/es-ES/content/admin/configuration/configuring-your-enterprise/command-line-utilities.md +++ b/translations/es-ES/content/admin/configuration/configuring-your-enterprise/command-line-utilities.md @@ -2,8 +2,8 @@ title: Command-line utilities intro: '{% data variables.product.prodname_ghe_server %} includes a variety of utilities to help resolve particular problems or perform specific tasks.' redirect_from: - - /enterprise/admin/articles/viewing-all-services/ - - /enterprise/admin/articles/command-line-utilities/ + - /enterprise/admin/articles/viewing-all-services + - /enterprise/admin/articles/command-line-utilities - /enterprise/admin/installation/command-line-utilities - /enterprise/admin/configuration/command-line-utilities - /admin/configuration/command-line-utilities diff --git a/translations/es-ES/content/admin/configuration/configuring-your-enterprise/configuring-email-for-notifications.md b/translations/es-ES/content/admin/configuration/configuring-your-enterprise/configuring-email-for-notifications.md index 04026804b1..e0987ad337 100644 --- a/translations/es-ES/content/admin/configuration/configuring-your-enterprise/configuring-email-for-notifications.md +++ b/translations/es-ES/content/admin/configuration/configuring-your-enterprise/configuring-email-for-notifications.md @@ -1,11 +1,11 @@ --- -title: Configurar el correo electrónico para notificaciones -intro: 'Para que sea más fácil para los usuarios el responder rápidamente a la actividad de {% data variables.product.product_name %}, puedes configurar a {% data variables.product.product_location %} para que envíe notificaciones por correo electrónico para las propuestas, solicitudes de cambio y comentarios de las confirmaciones.' +title: Configuring email for notifications +intro: 'To make it easy for users to respond quickly to activity on {% data variables.product.product_name %}, you can configure {% data variables.product.product_location %} to send email notifications for issue, pull request, and commit comments.' redirect_from: - - /enterprise/admin/guides/installation/email-configuration/ - - /enterprise/admin/articles/configuring-email/ - - /enterprise/admin/articles/troubleshooting-email/ - - /enterprise/admin/articles/email-configuration-and-troubleshooting/ + - /enterprise/admin/guides/installation/email-configuration + - /enterprise/admin/articles/configuring-email + - /enterprise/admin/articles/troubleshooting-email + - /enterprise/admin/articles/email-configuration-and-troubleshooting - /enterprise/admin/user-management/configuring-email-for-notifications - /admin/configuration/configuring-email-for-notifications versions: @@ -17,81 +17,96 @@ topics: - Fundamentals - Infrastructure - Notifications -shortTitle: Configurar las notificaciones por correo electrónico +shortTitle: Configure email notifications --- - {% ifversion ghae %} -Los propietarios de las empresas pueden configurar los correos electrónicos para las notificaciones. +Enterprise owners can configure email for notifications. {% endif %} -## Configurar el SMTP para tu empresa +## Configuring SMTP for your enterprise {% ifversion ghes %} {% data reusables.enterprise_site_admin_settings.access-settings %} {% data reusables.enterprise_site_admin_settings.management-console %} -2. En la parte superior de la página, haz clic en **Parámetros**. ![Pestaña Parámetros](/assets/images/enterprise/management-console/settings-tab.png) -3. En la barra lateral de la izquierda, haz clic en **Correo electrónico**. ![Pestaña Correo electrónico](/assets/images/enterprise/management-console/email-sidebar.png) -4. Selecciona **Activar correo electrónico**. Esto activará tanto el correo electrónico de salida como el de entrada, sin embargo para trabajar con el correo electrónico entrante también necesitarás configurar los parámetros de tu DNS como se describe a continuación en ["Configurar DNS y parámetros de firewall para permitir correos electrónicos entrantes](#configuring-dns-and-firewall-settings-to-allow-incoming-emails)". ![Activar correo electrónico de salida](/assets/images/enterprise/management-console/enable-outbound-email.png) -5. Teclea la configuración para tu servidor de SMTP. - - En el campo **Dirección del servidor**, escribe la dirección de tu servidor SMTP. - - En el campo **Puerto**, escribe el puerto que usa tu servidor SMTP para enviar correo electrónico. - - En el campo **Dominio**, escribe el nombre de dominio que enviará tu servidor SMTP con una respuesta HELO, de ser el caso. - - Selecciona el menú desplegable de **Autenticación** y elige el tipo de cifrado que utiliza tu servidor SMTP. - - En el campo **Dirección de correo electrónico sin respuesta**, escribe la dirección de correo electrónico para usar en los campos De y Para para todos los correos electrónicos para notificaciones. -6. Si quieres descartar todos los correos electrónicos entrantes que estén dirigidos al correo electrónico sin respuesta, selecciona **Descartar correo electrónico dirigido a la dirección de correo electrónico sin respuesta**. ![Casilla de verificación para descartar los correos electrónicos dirigidos a la dirección de correo electrónico sin respuesta](/assets/images/enterprise/management-console/discard-noreply-emails.png) -7. En **Soporte**, elige un tipo de enlace para ofrecer un soporte adicional a tus usuarios. - - **Correo electrónico:** Una dirección de correo electrónico interna. - - **URL:** Un enlace a un sitio de soporte interno. Debes incluir tanto `http://` como `https://`. ![Correo de soporte técnico o URL](/assets/images/enterprise/management-console/support-email-url.png) -8. [Prueba de entrega del correo electrónico](#testing-email-delivery). +2. At the top of the page, click **Settings**. +![Settings tab](/assets/images/enterprise/management-console/settings-tab.png) +3. In the left sidebar, click **Email**. +![Email tab](/assets/images/enterprise/management-console/email-sidebar.png) +4. Select **Enable email**. This will enable both outbound and inbound email, however for inbound email to work you will also need to configure your DNS settings as described below in "[Configuring DNS and firewall +settings to allow incoming emails](#configuring-dns-and-firewall-settings-to-allow-incoming-emails)." +![Enable outbound email](/assets/images/enterprise/management-console/enable-outbound-email.png) +5. Type the settings for your SMTP server. + - In the **Server address** field, type the address of your SMTP server. + - In the **Port** field, type the port that your SMTP server uses to send email. + - In the **Domain** field, type the domain name that your SMTP server will send with a HELO response, if any. + - Select the **Authentication** dropdown, and choose the type of encryption used by your SMTP server. + - In the **No-reply email address** field, type the email address to use in the From and To fields for all notification emails. +6. If you want to discard all incoming emails that are addressed to the no-reply email address, select **Discard email addressed to the no-reply email address**. +![Checkbox to discard emails addressed to the no-reply email address](/assets/images/enterprise/management-console/discard-noreply-emails.png) +7. Under **Support**, choose a type of link to offer additional support to your users. + - **Email:** An internal email address. + - **URL:** A link to an internal support site. You must include either `http://` or `https://`. + ![Support email or URL](/assets/images/enterprise/management-console/support-email-url.png) +8. [Test email delivery](#testing-email-delivery). {% elsif ghae %} {% data reusables.enterprise-accounts.access-enterprise %} {% data reusables.enterprise-accounts.settings-tab %} {% data reusables.enterprise-accounts.email-tab %} -2. Selecciona **Activar correo electrónico**. ![Casilla de "Habilitar" para la configuración de ajustes de correo electrónico](/assets/images/enterprise/configuration/ae-enable-email-configure.png) -3. Teclea la configuración para tu servidor de correo electrónico. - - En el campo **Dirección del servidor**, escribe la dirección de tu servidor SMTP. - - En el campo **Puerto**, escribe el puerto que usa tu servidor SMTP para enviar correo electrónico. - - En el campo **Dominio**, escribe el nombre de dominio que enviará tu servidor SMTP con una respuesta HELO, de ser el caso. - - Selecciona el menú desplegable de **Autenticación** y elige el tipo de cifrado que utiliza tu servidor SMTP. - - En el campo **Dirección de correo electrónico sin respuesta**, escribe la dirección de correo electrónico para usar en los campos De y Para para todos los correos electrónicos para notificaciones. -4. Si quieres descartar todos los correos electrónicos entrantes que estén dirigidos al correo electrónico sin respuesta, selecciona **Descartar correo electrónico dirigido a la dirección de correo electrónico sin respuesta**. ![Casilla de "Descartar" para la configuración de ajustes de correo electrónico](/assets/images/enterprise/configuration/ae-discard-email.png) -5. Haz clic en **Probar la configuración de correo electrónico**. ![Botón de "Probar la configuración de correo electrónico" para la configuración de ajustes de correo electrónico](/assets/images/enterprise/configuration/ae-test-email.png) -6. Debajo de "Enviar correo electrónico de pruebas a," teclea la dirección de correo electrónico a donde quieras enviar un mensaje de prueba y haz clic en **Enviar correo electrónico de pruebas**. ![Botón de "Enviar correo electrónico de pruebas" para la configuración de ajustes de correo electrónico](/assets/images/enterprise/configuration/ae-send-test-email.png) -7. Haz clic en **Save ** (guardar). ![Botón de "Guardar" para la configuración del contacto de soporte empresarial](/assets/images/enterprise/configuration/ae-save.png) +2. Select **Enable email**. + !["Enable" checkbox for email settings configuration](/assets/images/enterprise/configuration/ae-enable-email-configure.png) +3. Type the settings for your email server. + - In the **Server address** field, type the address of your SMTP server. + - In the **Port** field, type the port that your SMTP server uses to send email. + - In the **Domain** field, type the domain name that your SMTP server will send with a HELO response, if any. + - Select the **Authentication** dropdown, and choose the type of encryption used by your SMTP server. + - In the **No-reply email address** field, type the email address to use in the From and To fields for all notification emails. +4. If you want to discard all incoming emails that are addressed to the no-reply email address, select **Discard email addressed to the no-reply email address**. + !["Discard" checkbox for email settings configuration](/assets/images/enterprise/configuration/ae-discard-email.png) +5. Click **Test email settings**. + !["Test email settings" button for email settings configuration](/assets/images/enterprise/configuration/ae-test-email.png) +6. Under "Send test email to," type the email address where you want to send a test email, then click **Send test email**. + !["Send test email" button for email settings configuration](/assets/images/enterprise/configuration/ae-send-test-email.png) +7. Click **Save**. + !["Save" button for enterprise support contact configuration](/assets/images/enterprise/configuration/ae-save.png) {% endif %} {% ifversion ghes %} -## Probar entrega del correo electrónico +## Testing email delivery -1. En la parte superior de la sección **Correo electrónico**, haz clic en **Probar parámetros del correo electrónico**. ![Probar parámetros del correo electrónico](/assets/images/enterprise/management-console/test-email.png) -2. En el campo **Enviar correo electrónico de prueba**, escribe una dirección donde enviar el correo electrónico de prueba. ![Probar dirección de correo electrónico](/assets/images/enterprise/management-console/test-email-address.png) -3. Haz clic en **Enviar correo electrónico de prueba**. ![Enviar correo electrónico de prueba](/assets/images/enterprise/management-console/test-email-address-send.png) +1. At the top of the **Email** section, click **Test email settings**. +![Test email settings](/assets/images/enterprise/management-console/test-email.png) +2. In the **Send test email to** field, type an address to send the test email to. +![Test email address](/assets/images/enterprise/management-console/test-email-address.png) +3. Click **Send test email**. +![Send test email](/assets/images/enterprise/management-console/test-email-address-send.png) {% tip %} - **Sugerencia:** Si ocurren errores SMTP mientras se envía un correo electrónico de prueba, como un error de entrega inmediato o un error de configuración del correo saliente, los verás en el cuadro de diálogo de los parámetros del Correo electrónico de prueba. + **Tip:** If SMTP errors occur while sending a test email—such as an immediate delivery failure or an outgoing mail configuration error—you will see them in the Test email settings dialog box. {% endtip %} -4. Si el correo electrónico de prueba falla, [soluciona los problemas de los parámetros de tu correo electrónico](#troubleshooting-email-delivery). -5. Cuando el correo electrónico de prueba es exitoso, en la parte inferior de la página, haz clic en **Guardar parámetros**. ![Botón Guardar parámetros](/assets/images/enterprise/management-console/save-settings.png) -6. Espera que se complete la fase de configuración. ![Configurar tu instancia](/assets/images/enterprise/management-console/configuration-run.png) +4. If the test email fails, [troubleshoot your email settings](#troubleshooting-email-delivery). +5. When the test email succeeds, at the bottom of the page, click **Save settings**. +![Save settings button](/assets/images/enterprise/management-console/save-settings.png) +6. Wait for the configuration run to complete. +![Configuring your instance](/assets/images/enterprise/management-console/configuration-run.png) -## Configurar DNS y parámetros de firewall para permitir correos electrónicos entrantes +## Configuring DNS and firewall settings to allow incoming emails -Si quieres permitir respuestas de correo electrónico para las notificaciones, debes configurar los parámetros de tu DNS. +If you want to allow email replies to notifications, you must configure your DNS settings. -1. Asegúrate de que el puerto 25 en la instancia esté accesible para tu servidor SMTP. -2. Crea un registro A que apunte a `reply.[hostname]`. Dependiendo de tu proveedor DNS y de la configuración del host de instancia, es posible que puedas crear un registro A único que apunte a `*.[hostname]`. -3. Crea un registro MX que apunte a `reply.[hostname]` para que los correos electrónicos para ese dominio sean enrutados a la instancia. -4. Crea un registro MX que apunte a `noreply.[hostname]` para `[hostname]` para que las respuestas a la dirección `cc` en los correos electrónicos para notificación sean enrutados a la instancia. Para obtener más información, consulta la sección {% ifversion ghes %}"[Configurar notificaciones](/github/managing-subscriptions-and-notifications-on-github/configuring-notifications){% else %}"[Acerca de las notificaciones por correo electrónico](/github/receiving-notifications-about-activity-on-github/about-email-notifications){% endif %}". +1. Ensure that port 25 on the instance is accessible to your SMTP server. +2. Create an A record that points to `reply.[hostname]`. Depending on your DNS provider and instance host configuration, you may be able to instead create a single A record that points to `*.[hostname]`. +3. Create an MX record that points to `reply.[hostname]` so that emails to that domain are routed to the instance. +4. Create an MX record that points `noreply.[hostname]` to `[hostname]` so that replies to the `cc` address in notification emails are routed to the instance. For more information, see {% ifversion ghes %}"[Configuring notifications](/github/managing-subscriptions-and-notifications-on-github/configuring-notifications){% else %}"[About email notifications](/github/receiving-notifications-about-activity-on-github/about-email-notifications){% endif %}." -## Solución de problemas de entrega de correo electrónico +## Troubleshooting email delivery -### Crea un Paquete de soporte +### Create a Support Bundle -Si no puedes determinar qué está mal desde el mensaje de error mostrado, puedes descargar un [paquete de soporte](/enterprise/{{ currentVersion }}/admin/guides/enterprise-support/providing-data-to-github-support) que contiene toda la conversación SMTP entre tu servidor de correo y {% data variables.product.prodname_ghe_server %}. Una vez que hayas descargado el paquete, verifica las entradas en *enterprise-manage-logs/unicorn.log* de todo el registro de conversación SMTP y cualquier error relacionado. +If you cannot determine what is wrong from the displayed error message, you can download a [support bundle](/enterprise/{{ currentVersion }}/admin/guides/enterprise-support/providing-data-to-github-support) containing the entire SMTP conversation between your mail server and {% data variables.product.prodname_ghe_server %}. Once you've downloaded and extracted the bundle, check the entries in *enterprise-manage-logs/unicorn.log* for the entire SMTP conversation log and any related errors. -El registro unicornio debería mostrar una transacción similar a la siguiente: +The unicorn log should show a transaction similar to the following: ```shell This is a test email generated from https://10.0.0.68/setup/settings @@ -123,18 +138,18 @@ TLS connection started -> "535 5.7.1 http://support.yourdomain.com/smtp/auth-not-accepted nt3sm2942435pbc.14\r\n" ``` -Este registro muestra que el aparato: +This log shows that the appliance: -* Abrió una conexión con el servidor SMTP (`Connection opened: smtp.yourdomain.com:587`). -* Realizó una conexión exitosa y eligió usar TLS (`TLS connection started`). -* Fue realizado el tipo de autenticación `login` (`<- "AUTH LOGIN\r\n"`). -* El servidor SMTP rechazó la autenticación como inválida (`-> "535-5.7.1 Username and Password not accepted.`). +* Opened a connection with the SMTP server (`Connection opened: smtp.yourdomain.com:587`). +* Successfully made a connection and chose to use TLS (`TLS connection started`). +* The `login` authentication type was performed (`<- "AUTH LOGIN\r\n"`). +* The SMTP Server rejected the authentication as invalid (`-> "535-5.7.1 Username and Password not accepted.`). -### Consultar los registros {% data variables.product.product_location %} +### Check {% data variables.product.product_location %} logs -Si necesitas verificar que tu correo electrónico entrante está funcionando, hay dos archivos de registro que puedes examinar en tu instancia: para verificar */var/log/mail.log* y */var/log/mail-replies/metroplex.log*. +If you need to verify that your inbound email is functioning, there are two log files that you can examine on your instance: To verify that */var/log/mail.log* and */var/log/mail-replies/metroplex.log*. -*/var/log/mail.log* verifica que los mensajes estén alcanzando tu servidor. Este es un ejemplo de una respuesta de correo electrónico exitosa: +*/var/log/mail.log* verifies that messages are reaching your server. Here's an example of a successful email reply: ``` Oct 30 00:47:18 54-171-144-1 postfix/smtpd[13210]: connect from st11p06mm-asmtp002.mac.com[17.172.124.250] @@ -146,9 +161,9 @@ Oct 30 00:47:19 54-171-144-1 postfix/qmgr[17250]: 51DC9163323: removed Oct 30 00:47:19 54-171-144-1 postfix/smtpd[13210]: disconnect from st11p06mm-asmtp002.mac.com[17.172.124.250] ``` -Ten en cuenta que el cliente primero se conecta; luego, la cola se vuelve activa. Entonces, el mensaje es entregado, el cliente es retirado de la cola y la sesión se desconecta. +Note that the client first connects; then, the queue becomes active. Then, the message is delivered, the client is removed from the queue, and the session disconnects. -*/var/log/mail-replies/metroplex.log* muestra si los correos electrónicos entrantes están siendo procesados para agregarse a las propuestas y a las solicitudes de extracción como respuestas. Este es un ejemplo de un mensaje exitoso: +*/var/log/mail-replies/metroplex.log* shows whether inbound emails are being processed to add to issues and pull requests as replies. Here's an example of a successful message: ``` [2014-10-30T00:47:23.306 INFO (5284) #] metroplex: processing @@ -156,19 +171,19 @@ Ten en cuenta que el cliente primero se conecta; luego, la cola se vuelve activa [2014-10-30T00:47:23.334 DEBUG (5284) #] Moving /data/user/mail/reply/new/1414630039.Vfc00I12000eM445784.ghe-tjl2-co-ie => /data/user/incoming-mail/success ``` -Notarás que `metroplex` captura el mensaje de entrada, lo procesa y luego mueve el archivo a `/data/user/incoming-mail/success`.{% endif %} +You'll notice that `metroplex` catches the inbound message, processes it, then moves the file over to `/data/user/incoming-mail/success`.{% endif %} -### Verificar los parámetros de tu DNS +### Verify your DNS settings -Para procesar los correos electrónicos entrantes de manera adecuada, debes configurar un Registro A válido (o CNAME), así como un Registro MX. Para obtener más información, consulta "[Configurar DNS y parámetros de firewall para permitir correos electrónicos entrantes](#configuring-dns-and-firewall-settings-to-allow-incoming-emails)". +In order to properly process inbound emails, you must configure a valid A Record (or CNAME), as well as an MX Record. For more information, see "[Configuring DNS and firewall settings to allow incoming emails](#configuring-dns-and-firewall-settings-to-allow-incoming-emails)." -### Controlar los parámetros de AWS Security Group o firewall +### Check firewall or AWS Security Group settings -Si {% data variables.product.product_location %} está detrás de un firewall o está siendo servido a través de un AWS Security Group, asegúrate de que el puerto 25 esté abierto a todos los servidores de correo que envíen correos electrónicos a `reply@reply.[hostname]`. +If {% data variables.product.product_location %} is behind a firewall or is being served through an AWS Security Group, make sure port 25 is open to all mail servers that send emails to `reply@reply.[hostname]`. -### Contactar con soporte técnico +### Contact support {% ifversion ghes %} -Si aún no puedes resolver el problema, comunícate con {% data variables.contact.contact_ent_support %}. Adjunta el archivo de salida desde `http(s)://[hostname]/setup/diagnostics` en tu correo electrónico para ayudarnos a resolver tu problema. +If you're still unable to resolve the problem, contact {% data variables.contact.contact_ent_support %}. Please attach the output file from `http(s)://[hostname]/setup/diagnostics` to your email to help us troubleshoot your problem. {% elsif ghae %} -Puedes contactar a {% data variables.contact.github_support %} para obtener ayuda en la configuración del correo electrónico para que se envíen las notificaciones a través de tu servidor de SMTP. Para obtener más información, consulta la sección "[Recibir ayuda de {% data variables.contact.github_support %}](/admin/enterprise-support/receiving-help-from-github-support)". +You can contact {% data variables.contact.github_support %} for help configuring email for notifications to be sent through your SMTP server. For more information, see "[Receiving help from {% data variables.contact.github_support %}](/admin/enterprise-support/receiving-help-from-github-support)." {% endif %} diff --git a/translations/es-ES/content/admin/configuration/configuring-your-enterprise/configuring-github-pages-for-your-enterprise.md b/translations/es-ES/content/admin/configuration/configuring-your-enterprise/configuring-github-pages-for-your-enterprise.md index d5d41ee13a..d341653ffe 100644 --- a/translations/es-ES/content/admin/configuration/configuring-your-enterprise/configuring-github-pages-for-your-enterprise.md +++ b/translations/es-ES/content/admin/configuration/configuring-your-enterprise/configuring-github-pages-for-your-enterprise.md @@ -2,12 +2,12 @@ title: Configuring GitHub Pages for your enterprise intro: 'You can enable or disable {% data variables.product.prodname_pages %} for your enterprise{% ifversion ghes %} and choose whether to make sites publicly accessible{% endif %}.' redirect_from: - - /enterprise/admin/guides/installation/disabling-github-enterprise-pages/ - - /enterprise/admin/guides/installation/configuring-github-enterprise-pages/ + - /enterprise/admin/guides/installation/disabling-github-enterprise-pages + - /enterprise/admin/guides/installation/configuring-github-enterprise-pages - /enterprise/admin/installation/configuring-github-pages-on-your-appliance - /enterprise/admin/configuration/configuring-github-pages-on-your-appliance - /admin/configuration/configuring-github-pages-on-your-appliance - - /enterprise/admin/guides/installation/configuring-github-pages-for-your-enterprise/ + - /enterprise/admin/guides/installation/configuring-github-pages-for-your-enterprise - /admin/configuration/configuring-github-pages-for-your-enterprise versions: ghes: '*' diff --git a/translations/es-ES/content/admin/configuration/configuring-your-enterprise/configuring-time-synchronization.md b/translations/es-ES/content/admin/configuration/configuring-your-enterprise/configuring-time-synchronization.md index 313f3fdb9d..0d0af44dc0 100644 --- a/translations/es-ES/content/admin/configuration/configuring-your-enterprise/configuring-time-synchronization.md +++ b/translations/es-ES/content/admin/configuration/configuring-your-enterprise/configuring-time-synchronization.md @@ -1,11 +1,11 @@ --- -title: Configurar la sincronización de hora -intro: '{% data variables.product.prodname_ghe_server %} sincroniza automáticamente el reloj conectándose con los servidores NTP. Puedes establecer los servidores NTP que se utilicen para sincronizar el reloj o puedes usar los servidores NTP predeterminados.' +title: Configuring time synchronization +intro: '{% data variables.product.prodname_ghe_server %} automatically synchronizes its clock by connecting to NTP servers. You can set the NTP servers that are used to synchronize the clock, or you can use the default NTP servers.' redirect_from: - - /enterprise/admin/articles/adjusting-the-clock/ - - /enterprise/admin/articles/configuring-time-zone-and-ntp-settings/ - - /enterprise/admin/articles/setting-ntp-servers/ - - /enterprise/admin/categories/time/ + - /enterprise/admin/articles/adjusting-the-clock + - /enterprise/admin/articles/configuring-time-zone-and-ntp-settings + - /enterprise/admin/articles/setting-ntp-servers + - /enterprise/admin/categories/time - /enterprise/admin/installation/configuring-time-synchronization - /enterprise/admin/configuration/configuring-time-synchronization - /admin/configuration/configuring-time-synchronization @@ -17,31 +17,33 @@ topics: - Fundamentals - Infrastructure - Networking -shortTitle: Configurar los ajustes de hora +shortTitle: Configure time settings --- - -## Cambiar los servidores NTP predeterminados +## Changing the default NTP servers {% data reusables.enterprise_site_admin_settings.access-settings %} {% data reusables.enterprise_site_admin_settings.management-console %} -2. En la barra lateral izquierda, haz clic en **Time** (Hora). ![El botón de la hora en la barra lateral {% data variables.enterprise.management_console %}](/assets/images/enterprise/management-console/sidebar-time.png) -3. En "Servidor NTP principal", escribe el nombre del host del servidor NTP principal. En "Servidor NTP secundario", escribe el nombre del host del servidor NTP secundario. ![Los campos para los servidores NTP principal y secundario en la {% data variables.enterprise.management_console %}](/assets/images/enterprise/management-console/ntp-servers.png) -4. Al final de la página, haz clic en **Save settings** (Guardar configuraciones). ![El botón de guardar en la {% data variables.enterprise.management_console %}](/assets/images/enterprise/management-console/save-settings.png) -5. Espera a que la configuración se ejecute por completo. +2. In the left sidebar, click **Time**. + ![The Time button in the {% data variables.enterprise.management_console %} sidebar](/assets/images/enterprise/management-console/sidebar-time.png) +3. Under "Primary NTP server," type the hostname of the primary NTP server. Under "Secondary NTP server," type the hostname of the secondary NTP server. + ![The fields for primary and secondary NTP servers in the {% data variables.enterprise.management_console %}](/assets/images/enterprise/management-console/ntp-servers.png) +4. At the bottom of the page, click **Save settings**. + ![The Save settings button in the {% data variables.enterprise.management_console %}](/assets/images/enterprise/management-console/save-settings.png) +5. Wait for the configuration run to complete. -## Corregir un desface de tiempo prolongado +## Correcting a large time drift -El protocolo NTP corrige permanentemente las pequeñas discrepancias de sincronización de hora. Puedes usar el shell administrativo para sincronizar la hora de inmediato. +The NTP protocol continuously corrects small time synchronization discrepancies. You can use the administrative shell to synchronize time immediately. {% note %} -**Notas:** - - No puedes modificar la zona horaria universal coordinada (UTC). - - Debes evitar que tu hipervisor trate de configurar el reloj de la máquina virtual. Para obtener más información, consulta la documentación proporcionada por el proveedor de virtualización. +**Notes:** + - You can't modify the Coordinated Universal Time (UTC) zone. + - You should prevent your hypervisor from trying to set the virtual machine's clock. For more information, see the documentation provided by the virtualization provider. {% endnote %} -- Utiliza el comando `chronyc` para sincronizar el servidor con el servidor NTP configurado. Por ejemplo: +- Use the `chronyc` command to synchronize the server with the configured NTP server. For example: ```shell $ sudo chronyc -a makestep diff --git a/translations/es-ES/content/admin/configuration/configuring-your-enterprise/enabling-private-mode.md b/translations/es-ES/content/admin/configuration/configuring-your-enterprise/enabling-private-mode.md index 227aa870ba..a4343fa9a8 100644 --- a/translations/es-ES/content/admin/configuration/configuring-your-enterprise/enabling-private-mode.md +++ b/translations/es-ES/content/admin/configuration/configuring-your-enterprise/enabling-private-mode.md @@ -1,10 +1,10 @@ --- -title: Habilitar el modo privado -intro: 'En el modo privado, {% data variables.product.prodname_ghe_server %} exige que todos los usuarios inicien sesión para acceder a la instalación.' +title: Enabling private mode +intro: 'In private mode, {% data variables.product.prodname_ghe_server %} requires every user to sign in to access the installation.' redirect_from: - - /enterprise/admin/articles/private-mode/ - - /enterprise/admin/guides/installation/security/ - - /enterprise/admin/guides/installation/securing-your-instance/ + - /enterprise/admin/articles/private-mode + - /enterprise/admin/guides/installation/security + - /enterprise/admin/guides/installation/securing-your-instance - /enterprise/admin/installation/enabling-private-mode - /enterprise/admin/configuration/enabling-private-mode - /admin/configuration/enabling-private-mode @@ -21,15 +21,15 @@ topics: - Privacy - Security --- - -Debes habilitar el modo privado si {% data variables.product.product_location %} es de acceso público por internet. En el modo privado, los usuarios no pueden clonar repositorios en forma anónima por `git://`. Si también está habilitada la autenticación incorporada, un administrador debe invitar a los nuevos usuarios para que creen una cuenta en la instancia. Para obtener más información, consulta "[Usar la autenticación incorporada](/enterprise/{{ currentVersion }}/admin/guides/user-management/using-built-in-authentication)." +You must enable private mode if {% data variables.product.product_location %} is publicly accessible over the Internet. In private mode, users cannot anonymously clone repositories over `git://`. If built-in authentication is also enabled, an administrator must invite new users to create an account on the instance. For more information, see "[Using built-in authentication](/enterprise/{{ currentVersion }}/admin/guides/user-management/using-built-in-authentication)." {% data reusables.enterprise_installation.image-urls-viewable-warning %} -Con el modo privado habilitado, puedes permitir que operaciones de Git sin autenticación (y cualquiera con acceso de red a {% data variables.product.product_location %}) lean un código de repositorio público de tu instancia con acceso de lectura anónimo de Git habilitado. Para obtener más información, consulta "[Permitir que los administradores habiliten el acceso de lectura anónimo de Git para los repositorios públicos](/enterprise/{{ currentVersion }}/admin/guides/user-management/allowing-admins-to-enable-anonymous-git-read-access-to-public-repositories)." +With private mode enabled, you can allow unauthenticated Git operations (and anyone with network access to {% data variables.product.product_location %}) to read a public repository's code on your instance with anonymous Git read access enabled. For more information, see "[Allowing admins to enable anonymous Git read access to public repositories](/enterprise/{{ currentVersion }}/admin/guides/user-management/allowing-admins-to-enable-anonymous-git-read-access-to-public-repositories)." {% data reusables.enterprise_site_admin_settings.access-settings %} {% data reusables.enterprise_site_admin_settings.management-console %} {% data reusables.enterprise_management_console.privacy %} -4. Selecciona **Private mode** (Modo privado). ![Casilla de verificación para habilitar el modo privado](/assets/images/enterprise/management-console/private-mode-checkbox.png) +4. Select **Private mode**. + ![Checkbox for enabling private mode](/assets/images/enterprise/management-console/private-mode-checkbox.png) {% data reusables.enterprise_management_console.save-settings %} diff --git a/translations/es-ES/content/admin/configuration/configuring-your-enterprise/site-admin-dashboard.md b/translations/es-ES/content/admin/configuration/configuring-your-enterprise/site-admin-dashboard.md index 610a1878cc..9cb3ba1b65 100644 --- a/translations/es-ES/content/admin/configuration/configuring-your-enterprise/site-admin-dashboard.md +++ b/translations/es-ES/content/admin/configuration/configuring-your-enterprise/site-admin-dashboard.md @@ -2,7 +2,7 @@ title: Site admin dashboard intro: '{% data reusables.enterprise_site_admin_settings.about-the-site-admin-dashboard %}' redirect_from: - - /enterprise/admin/articles/site-admin-dashboard/ + - /enterprise/admin/articles/site-admin-dashboard - /enterprise/admin/installation/site-admin-dashboard - /enterprise/admin/configuration/site-admin-dashboard - /admin/configuration/site-admin-dashboard @@ -56,8 +56,8 @@ If you need to get information on the users, organizations, and repositories in Specifically, you can download CSV reports that list - all users -- all users who have been active within the last month -- all users who have been inactive for one month or more +- all active users +- all [dormant users](/admin/user-management/managing-dormant-users) - all users who have been suspended - all organizations - all repositories diff --git a/translations/es-ES/content/admin/configuration/configuring-your-enterprise/troubleshooting-ssl-errors.md b/translations/es-ES/content/admin/configuration/configuring-your-enterprise/troubleshooting-ssl-errors.md index b417e5899b..40a22785f7 100644 --- a/translations/es-ES/content/admin/configuration/configuring-your-enterprise/troubleshooting-ssl-errors.md +++ b/translations/es-ES/content/admin/configuration/configuring-your-enterprise/troubleshooting-ssl-errors.md @@ -1,9 +1,9 @@ --- -title: Errores de solución de problemas de SSL -intro: 'Si te encuentras con problemas de SSL en tu aparato, puedes tomar medidas para resolverlos.' +title: Troubleshooting SSL errors +intro: 'If you run into SSL issues with your appliance, you can take actions to resolve them.' redirect_from: - - /enterprise/admin/articles/troubleshooting-ssl-errors/ - - /enterprise/admin/categories/dns-ssl-and-subdomain-configuration/ + - /enterprise/admin/articles/troubleshooting-ssl-errors + - /enterprise/admin/categories/dns-ssl-and-subdomain-configuration - /enterprise/admin/installation/troubleshooting-ssl-errors - /enterprise/admin/configuration/troubleshooting-ssl-errors - /admin/configuration/troubleshooting-ssl-errors @@ -17,66 +17,65 @@ topics: - Networking - Security - Troubleshooting -shortTitle: Solucionar los errores de SSL +shortTitle: Troubleshoot SSL errors --- +## Removing the passphrase from your key file -## Eliminar la contraseña de un archivo clave +If you have a Linux machine with OpenSSL installed, you can remove your passphrase. -Si tienes una máquina linux con OpenSSL instalado, puedes eliminar tu contraseña. - -1. Renombrar tu archivo clave original. +1. Rename your original key file. ```shell $ mv yourdomain.key yourdomain.key.orig ``` -2. Generar una nueva clave sin una contraseña. +2. Generate a new key without a passphrase. ```shell $ openssl rsa -in yourdomain.key.orig -out yourdomain.key ``` -Se te pedirá la contraseña de la clave cuando ejecutes este comando. +You'll be prompted for the key's passphrase when you run this command. -Para más información sobre OpenSSL, consulta la documentación de OpenSSL [](https://www.openssl.org/docs/). +For more information about OpenSSL, see [OpenSSL's documentation](https://www.openssl.org/docs/). -## Convertir tu certificado SSL o tu clave a un formato PEM +## Converting your SSL certificate or key into PEM format -Si tienes instalado OpenSSL, puedes convertir tu clave en formato PEM usando el comando `openssl`. Por ejemplo, puedes convertir una clave de formato DER a formato PEM. +If you have OpenSSL installed, you can convert your key into PEM format by using the `openssl` command. For example, you can convert a key from DER format into PEM format. ```shell $ openssl rsa -in yourdomain.der -inform DER -out yourdomain.key -outform PEM ``` -De lo contrario, puedes utilizar la herramienta SSL Converter para convertir tu certificado a formato PEM. Para obtener más información, consulta la [Documentación de la herramienta SSL Converter](https://www.sslshopper.com/ssl-converter.html). +Otherwise, you can use the SSL Converter tool to convert your certificate into the PEM format. For more information, see the [SSL Converter tool's documentation](https://www.sslshopper.com/ssl-converter.html). -## Instalación sin respuesta después de cargar una clave +## Unresponsive installation after uploading a key -Si {% data variables.product.product_location %} no tiene respuesta después de cargar una clave SSL, contacta [al {% data variables.product.prodname_enterprise %} Soporte](https://enterprise.github.com/support) con detalles específicos, incluida una copia de tu certificado SSL. +If {% data variables.product.product_location %} is unresponsive after uploading an SSL key, please [contact {% data variables.product.prodname_enterprise %} Support](https://enterprise.github.com/support) with specific details, including a copy of your SSL certificate. -## Errores de validez de certificado +## Certificate validity errors -Los clientes como navegadores web y líneas de comando Git mostrarán un mensaje de error si no pueden verificar la validez de un certificado SSL. Esto sucede con frecuencia con los certificados autofirmados y los certificados de "raíz encadenada" emitidos por un certificado raíz intermedio que no es reconocido por el cliente. +Clients such as web browsers and command-line Git will display an error message if they cannot verify the validity of an SSL certificate. This often occurs with self-signed certificates as well as "chained root" certificates issued from an intermediate root certificate that is not recognized by the client. -Si estás usando un certificado firmado por una autoridad de certificación (CA), el archivo del certificado que cargaste a {% data variables.product.prodname_ghe_server %} debe incluir una cadena de certificado con ese certificado raíz de CA. Para crear dicho archivo, concatena tu cadena de certificado entera (o "paquete de certificado") al final de tu certificado, garantizando que el certificado principal con tu nombre del host aparezca primero. En la mayoría de los sistemas puedes hacer esto con un comando similar a: +If you are using a certificate signed by a certificate authority (CA), the certificate file that you upload to {% data variables.product.prodname_ghe_server %} must include a certificate chain with that CA's root certificate. To create such a file, concatenate your entire certificate chain (or "certificate bundle") onto the end of your certificate, ensuring that the principal certificate with your hostname comes first. On most systems you can do this with a command similar to: ```shell $ cat yourdomain.com.crt bundle-certificates.crt > yourdomain.combined.crt ``` -Deberías poder descargar un paquete de certificado (por ejemplo, `bundle-certificates.crt`) desde tu proveedor de SSL o de la autoridad de certificación. +You should be able to download a certificate bundle (for example, `bundle-certificates.crt`) from your certificate authority or SSL vendor. -## Instalar certificados raíz de autoridad de certificación (CA) autofirmados o que no son de confianza +## Installing self-signed or untrusted certificate authority (CA) root certificates -Si tu aparato {% data variables.product.prodname_ghe_server %} interactúa con otras máquinas en tu red que utilizan un certificado autofirmado o que no es de confianza, deberás importar el certificado raíz de la CA firmante en el almacenamiento de certificado de todo el sistema para poder acceder a estos sistemas por HTTPS. +If your {% data variables.product.prodname_ghe_server %} appliance interacts with other machines on your network that use a self-signed or untrusted certificate, you will need to import the signing CA's root certificate into the system-wide certificate store in order to access those systems over HTTPS. -1. Obtén el certificado raíz de la CA de tu autoridad de certificación local y asegúrate que esté en formato PEM. -2. Copia el archivo a tu aparato {% data variables.product.prodname_ghe_server %} por SSH como el usuario "administrador" en el puerto 122. +1. Obtain the CA's root certificate from your local certificate authority and ensure it is in PEM format. +2. Copy the file to your {% data variables.product.prodname_ghe_server %} appliance over SSH as the "admin" user on port 122. ```shell $ scp -P 122 rootCA.crt admin@HOSTNAME:/home/admin ``` -3. Conecta a la shell administrativa {% data variables.product.prodname_ghe_server %} por SSH como el usuario "administrador" en el puerto 122. +3. Connect to the {% data variables.product.prodname_ghe_server %} administrative shell over SSH as the "admin" user on port 122. ```shell $ ssh -p 122 admin@HOSTNAME ``` -4. Importa el certificado al almacenamiento de certificado de todo el sistema. +4. Import the certificate into the system-wide certificate store. ```shell $ ghe-ssl-ca-certificate-install -c rootCA.crt ``` diff --git a/translations/es-ES/content/admin/configuration/managing-connections-between-your-enterprise-accounts/connecting-your-enterprise-account-to-github-enterprise-cloud.md b/translations/es-ES/content/admin/configuration/managing-connections-between-your-enterprise-accounts/connecting-your-enterprise-account-to-github-enterprise-cloud.md index 5a1202b892..19a5c2f5bb 100644 --- a/translations/es-ES/content/admin/configuration/managing-connections-between-your-enterprise-accounts/connecting-your-enterprise-account-to-github-enterprise-cloud.md +++ b/translations/es-ES/content/admin/configuration/managing-connections-between-your-enterprise-accounts/connecting-your-enterprise-account-to-github-enterprise-cloud.md @@ -3,14 +3,13 @@ title: Connecting your enterprise account to GitHub Enterprise Cloud shortTitle: Connect enterprise accounts intro: 'After you enable {% data variables.product.prodname_github_connect %}, you can share specific features and workflows between {% data variables.product.product_location %} and {% data variables.product.prodname_ghe_cloud %}.' redirect_from: - - /enterprise/admin/guides/developer-workflow/connecting-github-enterprise-to-github-com/ + - /enterprise/admin/guides/developer-workflow/connecting-github-enterprise-to-github-com - /enterprise/admin/guides/developer-workflow/connecting-github-enterprise-server-to-github-com - - /enterprise/admin/developer-workflow/connecting-github-enterprise-server-to-githubcom/ + - /enterprise/admin/developer-workflow/connecting-github-enterprise-server-to-githubcom - /enterprise/admin/installation/connecting-github-enterprise-server-to-github-enterprise-cloud - /enterprise/admin/configuration/connecting-github-enterprise-server-to-github-enterprise-cloud - /admin/configuration/connecting-github-enterprise-server-to-github-enterprise-cloud - /admin/configuration/managing-connections-between-github-enterprise-server-and-github-enterprise-cloud/connecting-github-enterprise-server-to-github-enterprise-cloud -permissions: 'Enterprise owners who are also owners of a {% data variables.product.prodname_ghe_cloud %} organization or enterprise account can enable {% data variables.product.prodname_github_connect %}.' versions: ghes: '*' ghae: '*' @@ -34,15 +33,19 @@ To configure a connection, your proxy configuration must allow connectivity to ` After enabling {% data variables.product.prodname_github_connect %}, you will be able to enable features such as unified search and unified contributions. For more information about all of the features available, see "[Managing connections between your enterprise accounts](/admin/configuration/managing-connections-between-your-enterprise-accounts)." -When you connect {% data variables.product.product_location %} to {% data variables.product.prodname_ghe_cloud %}, a record on {% data variables.product.prodname_dotcom_the_website %} stores information about the connection: +When you connect {% data variables.product.product_location %} to {% data variables.product.prodname_ghe_cloud %}, or enable {% data variables.product.prodname_github_connect %} features, a record on {% data variables.product.prodname_dotcom_the_website %} stores information about the connection: {% ifversion ghes %} - The public key portion of your {% data variables.product.prodname_ghe_server %} license - A hash of your {% data variables.product.prodname_ghe_server %} license - The customer name on your {% data variables.product.prodname_ghe_server %} license - The version of {% data variables.product.product_location_enterprise %}{% endif %} -- The hostname of your {% data variables.product.product_name %} instance +- The hostname of {% data variables.product.product_location %} - The organization or enterprise account on {% data variables.product.prodname_dotcom_the_website %} that's connected to {% data variables.product.product_location %} - The authentication token that's used by {% data variables.product.product_location %} to make requests to {% data variables.product.prodname_dotcom_the_website %} +- If Transport Layer Security (TLS) is enabled and configured on {% data variables.product.product_location %}{% ifversion ghes %} +- The {% data variables.product.prodname_github_connect %} features that are enabled on {% data variables.product.product_location %}, and the date and time of enablement{% endif %} + +{% data variables.product.prodname_github_connect %} syncs the above connection data between {% data variables.product.product_location %} and {% data variables.product.prodname_ghe_cloud %} weekly, from the day and approximate time that {% data variables.product.prodname_github_connect %} was enabled. Enabling {% data variables.product.prodname_github_connect %} also creates a {% data variables.product.prodname_github_app %} owned by your {% data variables.product.prodname_ghe_cloud %} organization or enterprise account. {% data variables.product.product_name %} uses the {% data variables.product.prodname_github_app %}'s credentials to make requests to {% data variables.product.prodname_dotcom_the_website %}. {% ifversion ghes %} @@ -56,6 +59,12 @@ Enabling {% data variables.product.prodname_github_connect %} will not allow {% For more information about managing enterprise accounts using the GraphQL API, see "[Enterprise accounts](/graphql/guides/managing-enterprise-accounts)." ## Enabling {% data variables.product.prodname_github_connect %} +Enterprise owners who are also owners of an organization or enterprise account that uses {% data variables.product.prodname_ghe_cloud %} can enable {% data variables.product.prodname_github_connect %}. + +If you're connecting {% data variables.product.product_location %} to an organization on {% data variables.product.prodname_dotcom_the_website %} that is not owned by an enterprise account, you must enable {% data variables.product.prodname_github_connect %} with a personal account on {% data variables.product.prodname_dotcom_the_website %} that is an owner of the organization. + +If you're connecting {% data variables.product.product_location %} to an organization on {% data variables.product.prodname_dotcom_the_website %} that is owned by an enterprise account or to an enterprise account itself, you must enable {% data variables.product.prodname_github_connect %} with a personal account on {% data variables.product.prodname_dotcom_the_website %} that is an owner of the enterprise account. + {% ifversion ghes %} 1. Sign in to {% data variables.product.product_location %} and {% data variables.product.prodname_dotcom_the_website %}. {% data reusables.enterprise-accounts.access-enterprise %}{% ifversion ghes < 3.1 %}{% data reusables.enterprise-accounts.settings-tab %}{% endif %}{% data reusables.enterprise-accounts.github-connect-tab %}{% else %} @@ -69,7 +78,9 @@ For more information about managing enterprise accounts using the GraphQL API, s 1. Next to the enterprise account or organization you'd like to connect, click **Connect**. ![Connect button next to an enterprise account or business](/assets/images/enterprise/business-accounts/choose-enterprise-or-org-connect.png) -## Disconnecting a {% data variables.product.prodname_ghe_cloud %} organization or enterprise account from your enterprise account +## Disabling {% data variables.product.prodname_github_connect %} + +Enterprise owners can disable {% data variables.product.prodname_github_connect %}. When you disconnect from {% data variables.product.prodname_ghe_cloud %}, the {% data variables.product.prodname_github_connect %} {% data variables.product.prodname_github_app %} is deleted from your enterprise account or organization and credentials stored on {% data variables.product.product_location %} are deleted. diff --git a/translations/es-ES/content/admin/configuration/managing-connections-between-your-enterprise-accounts/enabling-the-dependency-graph-and-dependabot-alerts-on-your-enterprise-account.md b/translations/es-ES/content/admin/configuration/managing-connections-between-your-enterprise-accounts/enabling-the-dependency-graph-and-dependabot-alerts-on-your-enterprise-account.md index 2691561e8b..27ad1a6dcc 100644 --- a/translations/es-ES/content/admin/configuration/managing-connections-between-your-enterprise-accounts/enabling-the-dependency-graph-and-dependabot-alerts-on-your-enterprise-account.md +++ b/translations/es-ES/content/admin/configuration/managing-connections-between-your-enterprise-accounts/enabling-the-dependency-graph-and-dependabot-alerts-on-your-enterprise-account.md @@ -37,6 +37,8 @@ For more information about these features, see "[About the dependency graph](/gi You can connect {% data variables.product.product_location %} to {% data variables.product.prodname_dotcom_the_website %} with {% data variables.product.prodname_github_connect %}. Once connected, vulnerability data is synced from the {% data variables.product.prodname_advisory_database %} to your instance once every hour. You can also choose to manually sync vulnerability data at any time. No code or information about code from {% data variables.product.product_location %} is uploaded to {% data variables.product.prodname_dotcom_the_website %}. +Only {% data variables.product.company_short %}-reviewed advisories are synchronized. {% data reusables.security-advisory.link-browsing-advisory-db %} + ### About generation of {% data variables.product.prodname_dependabot_alerts %} If you enable vulnerability detection, when {% data variables.product.product_location %} receives information about a vulnerability, it identifies repositories in your instance that use the affected version of the dependency and generates {% data variables.product.prodname_dependabot_alerts %}. You can choose whether or not to notify users automatically about new {% data variables.product.prodname_dependabot_alerts %}. @@ -70,19 +72,23 @@ You can enable the dependency graph via the {% data variables.enterprise.managem {% endif %} {% data reusables.enterprise_site_admin_settings.sign-in %} 1. In the administrative shell, enable the dependency graph on {% data variables.product.product_location %}: - ``` shell - $ {% ifversion ghes > 3.1 %}ghe-config app.dependency-graph.enabled true{% else %}ghe-config app.github.dependency-graph-enabled true{% endif %} + {% ifversion ghes > 3.1 %}```shell + ghe-config app.dependency-graph.enabled true ``` + {% else %}```shell + ghe-config app.github.dependency-graph-enabled true + ghe-config app.github.vulnerability-alerting-and-settings-enabled true + ```{% endif %} {% note %} **Note**: For more information about enabling access to the administrative shell via SSH, see "[Accessing the administrative shell (SSH)](/enterprise/{{ currentVersion }}/admin/configuration/accessing-the-administrative-shell-ssh)." {% endnote %} -1. Apply the configuration. +2. Apply the configuration. ```shell $ ghe-config-apply ``` -1. Return to {% data variables.product.prodname_ghe_server %}. +3. Return to {% data variables.product.prodname_ghe_server %}. {% endif %} ### Enabling {% data variables.product.prodname_dependabot_alerts %} diff --git a/translations/es-ES/content/admin/configuration/managing-connections-between-your-enterprise-accounts/enabling-unified-contributions-between-your-enterprise-account-and-githubcom.md b/translations/es-ES/content/admin/configuration/managing-connections-between-your-enterprise-accounts/enabling-unified-contributions-between-your-enterprise-account-and-githubcom.md index 22ccd67d2e..dd4e7113c3 100644 --- a/translations/es-ES/content/admin/configuration/managing-connections-between-your-enterprise-accounts/enabling-unified-contributions-between-your-enterprise-account-and-githubcom.md +++ b/translations/es-ES/content/admin/configuration/managing-connections-between-your-enterprise-accounts/enabling-unified-contributions-between-your-enterprise-account-and-githubcom.md @@ -3,9 +3,9 @@ title: Enabling unified contributions between your enterprise account and GitHub shortTitle: Enable unified contributions intro: 'After enabling {% data variables.product.prodname_github_connect %}, you can allow {% data variables.product.prodname_ghe_cloud %} members to highlight their work on {% data variables.product.product_name %} by sending the contribution counts to their {% data variables.product.prodname_dotcom_the_website %} profiles.' redirect_from: - - /enterprise/admin/guides/developer-workflow/enabling-unified-contributions-between-github-enterprise-and-github-com/ - - /enterprise/admin/guides/developer-workflow/enabling-unified-contributions-between-github-enterprise-server-and-github-com/ - - /enterprise/admin/developer-workflow/enabling-unified-contributions-between-github-enterprise-server-and-githubcom/ + - /enterprise/admin/guides/developer-workflow/enabling-unified-contributions-between-github-enterprise-and-github-com + - /enterprise/admin/guides/developer-workflow/enabling-unified-contributions-between-github-enterprise-server-and-github-com + - /enterprise/admin/developer-workflow/enabling-unified-contributions-between-github-enterprise-server-and-githubcom - /enterprise/admin/installation/enabling-unified-contributions-between-github-enterprise-server-and-githubcom - /enterprise/admin/configuration/enabling-unified-contributions-between-github-enterprise-server-and-githubcom - /admin/configuration/enabling-unified-contributions-between-github-enterprise-server-and-githubcom diff --git a/translations/es-ES/content/admin/configuration/managing-connections-between-your-enterprise-accounts/enabling-unified-search-between-your-enterprise-account-and-githubcom.md b/translations/es-ES/content/admin/configuration/managing-connections-between-your-enterprise-accounts/enabling-unified-search-between-your-enterprise-account-and-githubcom.md index e857470482..0235337178 100644 --- a/translations/es-ES/content/admin/configuration/managing-connections-between-your-enterprise-accounts/enabling-unified-search-between-your-enterprise-account-and-githubcom.md +++ b/translations/es-ES/content/admin/configuration/managing-connections-between-your-enterprise-accounts/enabling-unified-search-between-your-enterprise-account-and-githubcom.md @@ -3,9 +3,9 @@ title: Enabling unified search between your enterprise account and GitHub.com shortTitle: Enable unified search intro: 'After enabling {% data variables.product.prodname_github_connect %}, you can allow search of {% data variables.product.prodname_dotcom_the_website %} for members of your enterprise on {% data variables.product.product_name %}.' redirect_from: - - /enterprise/admin/guides/developer-workflow/enabling-unified-search-between-github-enterprise-and-github-com/ - - /enterprise/admin/guides/developer-workflow/enabling-unified-search-between-github-enterprise-server-and-github-com/ - - /enterprise/admin/developer-workflow/enabling-unified-search-between-github-enterprise-server-and-githubcom/ + - /enterprise/admin/guides/developer-workflow/enabling-unified-search-between-github-enterprise-and-github-com + - /enterprise/admin/guides/developer-workflow/enabling-unified-search-between-github-enterprise-server-and-github-com + - /enterprise/admin/developer-workflow/enabling-unified-search-between-github-enterprise-server-and-githubcom - /enterprise/admin/installation/enabling-unified-search-between-github-enterprise-server-and-githubcom - /enterprise/admin/configuration/enabling-unified-search-between-github-enterprise-server-and-githubcom - /admin/configuration/enabling-unified-search-between-github-enterprise-server-and-githubcom diff --git a/translations/es-ES/content/admin/configuration/managing-connections-between-your-enterprise-accounts/index.md b/translations/es-ES/content/admin/configuration/managing-connections-between-your-enterprise-accounts/index.md index c5a822c47a..f46553f059 100644 --- a/translations/es-ES/content/admin/configuration/managing-connections-between-your-enterprise-accounts/index.md +++ b/translations/es-ES/content/admin/configuration/managing-connections-between-your-enterprise-accounts/index.md @@ -3,9 +3,9 @@ title: Managing connections between your enterprise accounts intro: 'With {% data variables.product.prodname_github_connect %}, you can share certain features and data between {% data variables.product.product_location %} and your {% data variables.product.prodname_ghe_cloud %} organization or enterprise account on {% data variables.product.prodname_dotcom_the_website %}.' redirect_from: - /enterprise/admin/developer-workflow/connecting-github-enterprise-to-github-com - - /enterprise/admin/guides/developer-workflow/connecting-github-enterprise-and-github-com/ - - /enterprise/admin/guides/developer-workflow/connecting-github-enterprise-server-and-github-com/ - - /enterprise/admin/developer-workflow/connecting-github-enterprise-server-and-githubcom/ + - /enterprise/admin/guides/developer-workflow/connecting-github-enterprise-and-github-com + - /enterprise/admin/guides/developer-workflow/connecting-github-enterprise-server-and-github-com + - /enterprise/admin/developer-workflow/connecting-github-enterprise-server-and-githubcom - /enterprise/admin/installation/managing-connections-between-github-enterprise-server-and-github-enterprise-cloud - /enterprise/admin/configuration/managing-connections-between-github-enterprise-server-and-github-enterprise-cloud - /admin/configuration/managing-connections-between-github-enterprise-server-and-github-enterprise-cloud diff --git a/translations/es-ES/content/admin/enterprise-management/configuring-clustering/about-clustering.md b/translations/es-ES/content/admin/enterprise-management/configuring-clustering/about-clustering.md index 83cd8182ba..77aa3f9b25 100644 --- a/translations/es-ES/content/admin/enterprise-management/configuring-clustering/about-clustering.md +++ b/translations/es-ES/content/admin/enterprise-management/configuring-clustering/about-clustering.md @@ -1,10 +1,10 @@ --- -title: Acerca de las agrupaciones -intro: 'La agrupación {% data variables.product.prodname_ghe_server %} permite que los servicios que la componen {% data variables.product.prodname_ghe_server %} sean escalados a múltiples nodos.' +title: About clustering +intro: '{% data variables.product.prodname_ghe_server %} clustering allows services that make up {% data variables.product.prodname_ghe_server %} to be scaled out across multiple nodes.' redirect_from: - /enterprise/admin/clustering/overview - /enterprise/admin/clustering/about-clustering - - /enterprise/admin/clustering/clustering-overview/ + - /enterprise/admin/clustering/clustering-overview - /enterprise/admin/enterprise-management/about-clustering - /admin/enterprise-management/about-clustering versions: @@ -14,23 +14,22 @@ topics: - Clustering - Enterprise --- +## Clustering architecture -## Arquitectura de agrupación +{% data variables.product.prodname_ghe_server %} is comprised of a set of services. In a cluster, these services run across multiple nodes and requests are load balanced between them. Changes are automatically stored with redundant copies on separate nodes. Most of the services are equal peers with other instances of the same service. The exceptions to this are the `mysql-server` and `redis-server` services. These operate with a single _primary_ node with one or more _replica_ nodes. -{% data variables.product.prodname_ghe_server %} está compuesto por un conjunto de servicios. En una agrupación, estos servicios se ejecutan en múltiples nodos y las solicitudes son un balanceador de carga entre ellos. Los cambios se almacenan automáticamente con copias redundantes en nodos separados. La mayoría de los servicios son pares iguales con otras instancias del mismo servicio. Las excepciones a esto son los servicios `mysql-server` and `redis-server`. Estos operan con un solo nodo _principal_ o más nodos _réplica_. +Learn more about [services required for clustering](/enterprise/{{ currentVersion }}/admin/enterprise-management/about-cluster-nodes#services-required-for-clustering). -Aprende más sobre los [servicios requeridos para los agrupamientos](/enterprise/{{ currentVersion }}/admin/enterprise-management/about-cluster-nodes#services-required-for-clustering). +## Is clustering right for my organization? -## ¿Es adecuada la agrupación para mi organización? +{% data reusables.enterprise_clustering.clustering-scalability %} However, setting up a redundant and scalable cluster can be complex and requires careful planning. This additional complexity will need to be planned for during installation, disaster recovery scenarios, and upgrades. -{% data reusables.enterprise_clustering.clustering-scalability %} Sin embargo, la configuración de un agrupación redundante y escalable puede ser compleja y requiere de una planificación cuidadosa. Se deberá planificar esta complejidad adicional para situaciones durante la instalación, situaciones de recuperación ante desastre y actualizaciones. +{% data variables.product.prodname_ghe_server %} requires low latency between nodes and is not intended for redundancy across geographic locations. -{% data variables.product.prodname_ghe_server %} requiere una baja latencia entre los nodos y no está hecho para redundancia en todas las ubicaciones geográficas. - -La agrupación brinda redundancia, pero no pretende reemplazar una configuración de Alta disponibilidad. Para obtener más información, consulta [Configuración de alta disponibilidad](/enterprise/{{ currentVersion }}/admin/guides/installation/configuring-github-enterprise-server-for-high-availability). Una configuración de conmutación primaria/secundaria es mucho más simple que la agrupación y permitirá satisfacer las necesidades de muchas organizaciones. Para obtener más información, consulta [Diferencias entre agrupación y alta disponibilidad](/enterprise/{{ currentVersion }}/admin/guides/clustering/differences-between-clustering-and-high-availability-ha/). +Clustering provides redundancy, but it is not intended to replace a High Availability configuration. For more information, see [High Availability configuration](/enterprise/{{ currentVersion }}/admin/guides/installation/configuring-github-enterprise-server-for-high-availability). A primary/secondary failover configuration is far simpler than clustering and will serve the needs of many organizations. For more information, see [Differences between Clustering and High Availability](/enterprise/{{ currentVersion }}/admin/guides/clustering/differences-between-clustering-and-high-availability-ha/). {% data reusables.package_registry.packages-cluster-support %} -## ¿Cómo obtengo acceso a la agrupación? +## How do I get access to clustering? -La agrupación está diseñada para situaciones de escalada específica y no pretende ser usada para cada organización. Si te gustaría considerar la agrupación, por favor contacta a tu representante dedicado o a {% data variables.contact.contact_enterprise_sales %}. +Clustering is designed for specific scaling situations and is not intended for every organization. If clustering is something you'd like to consider, please contact your dedicated representative or {% data variables.contact.contact_enterprise_sales %}. diff --git a/translations/es-ES/content/admin/enterprise-management/configuring-clustering/index.md b/translations/es-ES/content/admin/enterprise-management/configuring-clustering/index.md index 0e4f5f8d2a..3738fe80e6 100644 --- a/translations/es-ES/content/admin/enterprise-management/configuring-clustering/index.md +++ b/translations/es-ES/content/admin/enterprise-management/configuring-clustering/index.md @@ -1,10 +1,10 @@ --- -title: Configurar el agrupamiento -intro: Aprende sobre agrupaciones y diferencias con alta disponibilidad. +title: Configuring clustering +intro: Learn about clustering and differences with high availability. redirect_from: - /enterprise/admin/clustering/setting-up-the-cluster-instances - /enterprise/admin/clustering/managing-a-github-enterprise-server-cluster - - /enterprise/admin/guides/clustering/managing-a-github-enterprise-cluster/ + - /enterprise/admin/guides/clustering/managing-a-github-enterprise-cluster - /enterprise/admin/enterprise-management/configuring-clustering versions: ghes: '*' diff --git a/translations/es-ES/content/admin/enterprise-management/configuring-high-availability/index.md b/translations/es-ES/content/admin/enterprise-management/configuring-high-availability/index.md index c4b1c258ee..f2287f14df 100644 --- a/translations/es-ES/content/admin/enterprise-management/configuring-high-availability/index.md +++ b/translations/es-ES/content/admin/enterprise-management/configuring-high-availability/index.md @@ -1,12 +1,12 @@ --- -title: Configurar la disponibilidad alta +title: Configuring high availability redirect_from: - /enterprise/admin/installation/configuring-github-enterprise-server-for-high-availability - - /enterprise/admin/guides/installation/high-availability-cluster-configuration/ - - /enterprise/admin/guides/installation/high-availability-configuration/ - - /enterprise/admin/guides/installation/configuring-github-enterprise-for-high-availability/ + - /enterprise/admin/guides/installation/high-availability-cluster-configuration + - /enterprise/admin/guides/installation/high-availability-configuration + - /enterprise/admin/guides/installation/configuring-github-enterprise-for-high-availability - /enterprise/admin/enterprise-management/configuring-high-availability -intro: '{% data variables.product.prodname_ghe_server %} admite un modo de alta disponibilidad de funcionamiento diseñado para minimizar la interrupción del servicio en caso que ocurra una falla de hardware o una interrupción de red importante que afecte al aparato principal.' +intro: '{% data variables.product.prodname_ghe_server %} supports a high availability mode of operation designed to minimize service disruption in the event of hardware failure or major network outage affecting the primary appliance.' versions: ghes: '*' topics: @@ -18,6 +18,6 @@ children: - /recovering-a-high-availability-configuration - /removing-a-high-availability-replica - /about-geo-replication -shortTitle: Configurar la disponibilidad alta +shortTitle: Configure high availability --- diff --git a/translations/es-ES/content/admin/enterprise-management/monitoring-your-appliance/configuring-collectd.md b/translations/es-ES/content/admin/enterprise-management/monitoring-your-appliance/configuring-collectd.md index 4aeedc0689..8d39fdb11a 100644 --- a/translations/es-ES/content/admin/enterprise-management/monitoring-your-appliance/configuring-collectd.md +++ b/translations/es-ES/content/admin/enterprise-management/monitoring-your-appliance/configuring-collectd.md @@ -1,9 +1,9 @@ --- -title: Configurar collectd -intro: '{% data variables.product.prodname_enterprise %} puede reunir datos con `collectd` y enviarlos a un servidor `collectd` externo. Entre otras métricas, reunimos un conjunto estándar de datos, como la utilización de la CPU, el consumo de memoria y de disco, el tráfico y los errores de la interfaz de red y la carga general de la VM.' +title: Configuring collectd +intro: '{% data variables.product.prodname_enterprise %} can gather data with `collectd` and send it to an external `collectd` server. Among other metrics, we gather a standard set of data such as CPU utilization, memory and disk consumption, network interface traffic and errors, and the VM''s overall load.' redirect_from: - /enterprise/admin/installation/configuring-collectd - - /enterprise/admin/articles/configuring-collectd/ + - /enterprise/admin/articles/configuring-collectd - /enterprise/admin/enterprise-management/configuring-collectd - /admin/enterprise-management/configuring-collectd versions: @@ -16,51 +16,50 @@ topics: - Monitoring - Performance --- +## Set up an external `collectd` server -## Configura un servidor `collectd` externo +If you haven't already set up an external `collectd` server, you will need to do so before enabling `collectd` forwarding on {% data variables.product.product_location %}. Your `collectd` server must be running `collectd` version 5.x or higher. -Si aún no has configurado un servidor `collectd` externo, tendrás que hacerlo antes de habilitar el redireccionamiento `collectd` en {% data variables.product.product_location %}. Tu servidor `collectd` debe ejecutar la versión 5.x o superior de `collectd`. +1. Log into your `collectd` server. +2. Create or edit the `collectd` configuration file to load the network plugin and populate the server and port directives with the proper values. On most distributions, this is located at `/etc/collectd/collectd.conf` -1. Inicia sesión en tu servidor `collectd`. -2. Crea o edita el archivo de configuración `collectd` para cargar el plugin de red y completar las directivas del servidor y del puerto con los valores adecuados. En la mayoría de las distribuciones, este se ubica en `/etc/collectd/collectd.conf` +An example *collectd.conf* to run a `collectd` server: -Un ejemplo *collectd.conf* para ejecutar un servidor `collectd`: - - Red LoadPlugin + LoadPlugin network ... ... - - Escucha "0.0.0.0" "25826" + + Listen "0.0.0.0" "25826" -## Habilita el redireccionamiento collectd en {% data variables.product.prodname_enterprise %} +## Enable collectd forwarding on {% data variables.product.prodname_enterprise %} -Por defecto, el redireccionamiento `collectd` está inhabilitado en {% data variables.product.prodname_enterprise %}. Sigue los pasos que aparecen a continuación para habilitar y configurar el redireccionamiento `collectd`: +By default, `collectd` forwarding is disabled on {% data variables.product.prodname_enterprise %}. Follow the steps below to enable and configure `collectd` forwarding: {% data reusables.enterprise_site_admin_settings.access-settings %} {% data reusables.enterprise_site_admin_settings.management-console %} -1. A continuación aparecen los ajustes de redireccionamiento, selecciona **Enable collectd forwarding** (Habilitar el redireccionamiento collectd). -1. En el campo **Server addres** (Dirección del servidor), escribe la dirección del servidor `collectd` al cual quisieras redirreccionar las estadísticas del aparato {% data variables.product.prodname_enterprise %}. -1. En el campo **Port** (Puerto), escribe el puerto utilizado para canectarse al servidor `collectd`. (Predeterminados en 25826) -1. En el menú desplegable **Cryptographic setup** (Configuración criptográfica), selecciona el nivel de seguridad de las comunicaciones con el servidor `collectd`. (Ninguno, paquetes firmados o paquetes encriptados). +1. Below the log forwarding settings, select **Enable collectd forwarding**. +1. In the **Server address** field, type the address of the `collectd` server to which you'd like to forward {% data variables.product.prodname_enterprise %} appliance statistics. +1. In the **Port** field, type the port used to connect to the `collectd` server. (Defaults to 25826) +1. In the **Cryptographic setup** dropdown menu, select the security level of communications with the `collectd` server. (None, signed packets, or encrypted packets.) {% data reusables.enterprise_management_console.save-settings %} -## Exportar los datos collectd con `ghe-export-graphs` +## Exporting collectd data with `ghe-export-graphs` -La herramienta de la línea de comando `ghe-export-graphs` exportará los datos que `collectd` almacene en las bases de datos RRD. Este comando convierte los datos a XML y los exporta a un tarball único (.tgz). +The command-line tool `ghe-export-graphs` will export the data that `collectd` stores in RRD databases. This command turns the data into XML and exports it into a single tarball (.tgz). -Su uso principal es proporcionarle al equipo de {% data variables.contact.contact_ent_support %} los datos sobre el desempeño de una VM, sin la necesidad de descargar un paquete de soporte completo. No se debe incluir en tus exportaciones de copias de seguridad regulares y no existe una contraparte de importación. Si te contactas con {% data variables.contact.contact_ent_support %}, puede que te solicitemos estos datos para ayudarte a solucionar los problemas. +Its primary use is to provide the {% data variables.contact.contact_ent_support %} team with data about a VM's performance, without the need for downloading a full Support Bundle. It shouldn't be included in your regular backup exports and there is no import counterpart. If you contact {% data variables.contact.contact_ent_support %}, we may ask for this data to assist with troubleshooting. -### Uso +### Usage ```shell ssh -p 122 admin@[hostname] -- 'ghe-export-graphs' && scp -P 122 admin@[hostname]:~/graphs.tar.gz . ``` -## Solución de problemas +## Troubleshooting -### El servidor collectd central no recibe datos +### Central collectd server receives no data -{% data variables.product.prodname_enterprise %} viene con la versión 5.x de `collectd`. `collectd` 5.x no es retrocompatible con la serie de lanzamientos 4.x. Tu servidor `collectd` central debe tener al menos la versión 5.x para aceptar los datos que se envían desde {% data variables.product.product_location %}. +{% data variables.product.prodname_enterprise %} ships with `collectd` version 5.x. `collectd` 5.x is not backwards compatible with the 4.x release series. Your central `collectd` server needs to be at least version 5.x to accept data sent from {% data variables.product.product_location %}. -Para obtener ayuda con más preguntas o problemas, contacta a {% data variables.contact.contact_ent_support %}. +For help with further questions or issues, contact {% data variables.contact.contact_ent_support %}. diff --git a/translations/es-ES/content/admin/enterprise-management/monitoring-your-appliance/index.md b/translations/es-ES/content/admin/enterprise-management/monitoring-your-appliance/index.md index d48e143568..bb04a0812b 100644 --- a/translations/es-ES/content/admin/enterprise-management/monitoring-your-appliance/index.md +++ b/translations/es-ES/content/admin/enterprise-management/monitoring-your-appliance/index.md @@ -1,9 +1,9 @@ --- -title: Monitorear tu aplicativo -intro: 'Debido a que el uso {% data variables.product.product_location %} aumenta con el tiempo, se incrementará la utilización de recursos del sistema, como el CPU, la memoria, y el almacenamiento. Puedes configurar una revisión y alertas para que estar al tanto de problemas potenciales antes de que se vuelvan lo suficientemente críticos para impactar de forma negativa en el desempeño de la aplicación o su disponibilidad.' +title: Monitoring your appliance +intro: 'As use of {% data variables.product.product_location %} increases over time, the utilization of system resources, like CPU, memory, and storage will also increase. You can configure monitoring and alerting so that you''re aware of potential issues before they become critical enough to negatively impact application performance or availability.' redirect_from: - - /enterprise/admin/guides/installation/system-resource-monitoring-and-alerting/ - - /enterprise/admin/guides/installation/monitoring-your-github-enterprise-appliance/ + - /enterprise/admin/guides/installation/system-resource-monitoring-and-alerting + - /enterprise/admin/guides/installation/monitoring-your-github-enterprise-appliance - /enterprise/admin/installation/monitoring-your-github-enterprise-server-appliance - /enterprise/admin/enterprise-management/monitoring-your-appliance versions: diff --git a/translations/es-ES/content/admin/enterprise-management/monitoring-your-appliance/monitoring-using-snmp.md b/translations/es-ES/content/admin/enterprise-management/monitoring-your-appliance/monitoring-using-snmp.md index d8bb04f93b..83d8dda6b5 100644 --- a/translations/es-ES/content/admin/enterprise-management/monitoring-your-appliance/monitoring-using-snmp.md +++ b/translations/es-ES/content/admin/enterprise-management/monitoring-your-appliance/monitoring-using-snmp.md @@ -1,9 +1,9 @@ --- -title: Supervisar por medio de SNMP -intro: '{% data variables.product.prodname_enterprise %} proporciona datos sobre el uso del disco, la utilización del CPU, el uso de la memoria y más sobre SNMP.' +title: Monitoring using SNMP +intro: '{% data variables.product.prodname_enterprise %} provides data on disk usage, CPU utilization, memory usage, and more over SNMP.' redirect_from: - /enterprise/admin/installation/monitoring-using-snmp - - /enterprise/admin/articles/monitoring-using-snmp/ + - /enterprise/admin/articles/monitoring-using-snmp - /enterprise/admin/enterprise-management/monitoring-using-snmp - /admin/enterprise-management/monitoring-using-snmp versions: @@ -15,101 +15,107 @@ topics: - Monitoring - Performance --- +SNMP is a common standard for monitoring devices over a network. We strongly recommend enabling SNMP so you can monitor the health of {% data variables.product.product_location %} and know when to add more memory, storage, or processor power to the host machine. -SNMP es una norma común para controlar dispositivos en una red. Recomendamos firmemente habilitar SNMP para que puedas controlar la salud de {% data variables.product.product_location %} y saber cuándo agregar más memoria, almacenamiento, o rendimiento del procesador a la máquina del servidor. +{% data variables.product.prodname_enterprise %} has a standard SNMP installation, so you can take advantage of the [many plugins](http://www.monitoring-plugins.org/doc/man/check_snmp.html) available for Nagios or for any other monitoring system. -{% data variables.product.prodname_enterprise %} tiene una instalación SNMP estándar, para poder aprovechar los [diversos plugins](http://www.monitoring-plugins.org/doc/man/check_snmp.html) disponibles para Nagios o para cualquier otro sistema de control. - -## Configurar SNMP v2c +## Configuring SNMP v2c {% data reusables.enterprise_site_admin_settings.access-settings %} {% data reusables.enterprise_site_admin_settings.management-console %} {% data reusables.enterprise_management_console.access-monitoring %} {% data reusables.enterprise_management_console.enable-snmp %} -4. En el campo **Community string (Cadena de la comunidad)**, ingresa una nueva cadena de comunidad. Si se deja en blanco, queda predeterminado como `públicp`. ![Campo para añadir la cadena de comunidad](/assets/images/enterprise/management-console/community-string.png) +4. In the **Community string** field, enter a new community string. If left blank, this defaults to `public`. +![Field to add the community string](/assets/images/enterprise/management-console/community-string.png) {% data reusables.enterprise_management_console.save-settings %} -5. Prueba tu configuración SNMP al ejecutar el siguiente comando en una estación de trabajo por separado con soporte de SNMP en tu red: +5. Test your SNMP configuration by running the following command on a separate workstation with SNMP support in your network: ```shell # community-string is your community string # hostname is the IP or domain of your Enterprise instance $ snmpget -v 2c -c community-string -O e hostname hrSystemDate.0 ``` -Debería devolver la hora del sistema en el host {% data variables.product.product_location %}. +This should return the system time on {% data variables.product.product_location %} host. -## Seguridad basada en el usuario +## User-based security -Si habilitas el SNMP v3, puedes aprovechar la seguridad en base al usuario aumentada a través de User Security Model (USM). Para cada usuario único, puedes especificar un nivel de seguridad: -- `noAuthNoPriv`: este nivel de seguridad no brinda autenticación ni privacidad. -- `authNoPriv`: este nivel de seguridad brinda autenticación pero no privacidad. Para consultar al aparato deberás usar un nombre de usuario y una contraseña (que debe tener como mínimo ocho caracteres). La información se envía sin encriptación, similar a SNMPv2. El protocolo de autenticación puede ser MD5 o SHA o SHA como predeterminado. -- `authPriv`: este nivel de seguridad brinda autenticación con privacidad. Se requiere autenticación, incluida una contraseña de autenticación de ocho caracteres como mínimo, y las respuestas están encriptadas. No se requiere una contraseña de privacidad, pero si se proporciona debe tener como mínimo ocho caracteres. Si no se proporciona una contraseña de privacidad, se usa la contraseña de autenticación. El protocolo de privacidad puede ser DES o AES y queda AES como predeterminado. +If you enable SNMP v3, you can take advantage of increased user based security through the User Security Model (USM). For each unique user, you can specify a security level: +- `noAuthNoPriv`: This security level provides no authentication and no privacy. +- `authNoPriv`: This security level provides authentication but no privacy. To query the appliance you'll need a username and password (that must be at least eight characters long). Information is sent without encryption, similar to SNMPv2. The authentication protocol can be either MD5 or SHA and defaults to SHA. +- `authPriv`: This security level provides authentication with privacy. Authentication, including a minimum eight-character authentication password, is required and responses are encrypted. A privacy password is not required, but if provided it must be at least eight characters long. If a privacy password isn't provided, the authentication password is used. The privacy protocol can be either DES or AES and defaults to AES. -## Configurando usuarios para SNMP v3 +## Configuring users for SNMP v3 {% data reusables.enterprise_site_admin_settings.access-settings %} {% data reusables.enterprise_site_admin_settings.management-console %} {% data reusables.enterprise_management_console.access-monitoring %} {% data reusables.enterprise_management_console.enable-snmp %} -4. Selecciona **SNMP v3**. ![Botón para habilitar SNMP v3](/assets/images/enterprise/management-console/enable-snmpv3.png) -5. En "Username (Nombre de usuario)", escribe el nombre de usuario único de tu usuario SNMP v3.![Campo para escribir el nombre de usuario SNMP v3](/assets/images/enterprise/management-console/snmpv3-username.png) -6. En el menú desplegable **Security Level (Nivel de seguridad)**, haz clic en el nivel de seguridad para tu usuario SNMP v3. ![Menú desplegable para el nivel de seguridad del usuario SNMP v3](/assets/images/enterprise/management-console/snmpv3-securitylevel.png) -7. Para usuarios SNMP v3 con el nivel de seguridad `authnopriv`: ![Configuración para el nivel de seguridad authnopriv](/assets/images/enterprise/management-console/snmpv3-authnopriv.png) +4. Select **SNMP v3**. +![Button to enable SNMP v3](/assets/images/enterprise/management-console/enable-snmpv3.png) +5. In "Username", type the unique username of your SNMP v3 user. +![Field to type the SNMP v3 username](/assets/images/enterprise/management-console/snmpv3-username.png) +6. In the **Security Level** dropdown menu, click the security level for your SNMP v3 user. +![Dropdown menu for the SNMP v3 user's security level](/assets/images/enterprise/management-console/snmpv3-securitylevel.png) +7. For SNMP v3 users with the `authnopriv` security level: + ![Settings for the authnopriv security level](/assets/images/enterprise/management-console/snmpv3-authnopriv.png) - {% data reusables.enterprise_management_console.authentication-password %} - {% data reusables.enterprise_management_console.authentication-protocol %} -8. Para usuarios SNMP v3 con el nivel de seguridad `authpriv`: ![Configuración para el nivel de seguridad authpriv](/assets/images/enterprise/management-console/snmpv3-authpriv.png) +8. For SNMP v3 users with the `authpriv` security level: + ![Settings for the authpriv security level](/assets/images/enterprise/management-console/snmpv3-authpriv.png) - {% data reusables.enterprise_management_console.authentication-password %} - {% data reusables.enterprise_management_console.authentication-protocol %} - - De forma opcional, en "Privacy password" (Contraseña de privacidad), escribe la contraseña de privacidad. - - Hacia la derecha de "Privacy password" (Contraseña de privacidad), en el menú desplegable **Protocol (Protocolo)**, haz clic en el método de protocolo de privacidad que deseas usar. -9. Haz clic en **Add secret (Agregar secreto)**. ![Botón para añadir usuario SNMP v3](/assets/images/enterprise/management-console/snmpv3-adduser.png) + - Optionally, in "Privacy password", type the privacy password. + - On the right side of "Privacy password", in the **Protocol** dropdown menu, click the privacy protocol method you want to use. +9. Click **Add user**. +![Button to add SNMP v3 user](/assets/images/enterprise/management-console/snmpv3-adduser.png) {% data reusables.enterprise_management_console.save-settings %} -#### Consultar datos de SNMP +#### Querying SNMP data -Tanto la información del nivel de software como de hardware sobre tu aparato está disponible con SNMP v3. Debido a la falta de cifrado y privacidad para los niveles de seguridad `noAuthNoPriv` y `authNoPriv`, excluimos la tabla de `hrSWRun` (1.3.6.1.2.1.25.4) de los reportes de SNMP resultantes. Incluimos esta tabla si estás usando el nivel de seguridad `authPriv`. Para obtener más información, consulta la "[Documentación de referencia de OID](http://oidref.com/1.3.6.1.2.1.25.4)". +Both hardware and software-level information about your appliance is available with SNMP v3. Due to the lack of encryption and privacy for the `noAuthNoPriv` and `authNoPriv` security levels, we exclude the `hrSWRun` table (1.3.6.1.2.1.25.4) from the resulting SNMP reports. We include this table if you're using the `authPriv` security level. For more information, see the "[OID reference documentation](http://oidref.com/1.3.6.1.2.1.25.4)." -Con SNMP v2c, solo está disponible la información del nivel de hardware de tu aparato. Estas aplicaciones y servicios dentro de {% data variables.product.prodname_enterprise %} no tienen configurado OID para informar métricas. Hay varios MIB disponibles, que puedes ver ejecutando `snmpwalk` en una estación de trabajo separada con soporte SNMP en tu red: +With SNMP v2c, only hardware-level information about your appliance is available. The applications and services within {% data variables.product.prodname_enterprise %} do not have OIDs configured to report metrics. Several MIBs are available, which you can see by running `snmpwalk` on a separate workstation with SNMP support in your network: ```shell -# community-string es tu cadena de comunidad -# hostname es la IP o dominio de tu instancia de empresa +# community-string is your community string +# hostname is the IP or domain of your Enterprise instance $ snmpwalk -v 2c -c community-string -O e hostname ``` -De entre los MIB disponibles para SNMP, el más útil es `HOST-RESOURCES-MIB` (1.3.6.1.2.1.25). Consulta la tabla de abajo para ver algunos objetos importantes en este MIB: +Of the available MIBs for SNMP, the most useful is `HOST-RESOURCES-MIB` (1.3.6.1.2.1.25). See the table below for some important objects in this MIB: -| Nombre | OID | Descripción | -| -------------------------- | ------------------------ | ----------------------------------------------------------------------------------------------- | -| hrSystemDate.2 | 1.3.6.1.2.1.25.1.2 | La noción de servidores de los datos locales y de la hora del día. | -| hrSystemUptime.0 | 1.3.6.1.2.1.25.1.1.0 | Cuánto tiempo ha pasado desde que el servidor se inició por última vez. | -| hrMemorySize.0 | 1.3.6.1.2.1.25.2.2.0 | La cantidad de RAM en el servidor. | -| hrSystemProcesses.0 | 1.3.6.1.2.1.25.1.6.0 | La cantidad de contextos de proceso actualmente cargados o ejecutándose en el servidor. | -| hrStorageUsed.1 | 1.3.6.1.2.1.25.2.3.1.6.1 | La cantidad de espacio de almacenamiento consumido en el servidor, en hrStorageAllocationUnits. | -| hrStorageAllocationUnits.1 | 1.3.6.1.2.1.25.2.3.1.4.1 | El tamaño, en bytes, de una hrStorageAllocationUnit | +| Name | OID | Description | +| ---- | --- | ----------- | +| hrSystemDate.2 | 1.3.6.1.2.1.25.1.2 | The hosts notion of the local date and time of day. | +| hrSystemUptime.0 | 1.3.6.1.2.1.25.1.1.0 | How long it's been since the host was last initialized. | +| hrMemorySize.0 | 1.3.6.1.2.1.25.2.2.0 | The amount of RAM on the host. | +| hrSystemProcesses.0 | 1.3.6.1.2.1.25.1.6.0 | The number of process contexts currently loaded or running on the host. | +| hrStorageUsed.1 | 1.3.6.1.2.1.25.2.3.1.6.1 | The amount of storage space consumed on the host, in hrStorageAllocationUnits. | +| hrStorageAllocationUnits.1 | 1.3.6.1.2.1.25.2.3.1.4.1 | The size, in bytes, of an hrStorageAllocationUnit | -Por ejemplo, para consultar `hrMemorySize` con SNMP v3, ejecuta el siguiente comando en una estación de trabajo separada con apoyo de SNMP en tu red: +For example, to query for `hrMemorySize` with SNMP v3, run the following command on a separate workstation with SNMP support in your network: ```shell -# username es el nombre de usuario único de tu usuario SNMP v3 -# auth password es la contraseña de autenticación -# privacy password es la contraseña de privacidad -# hostname es la IP o el dominio de tu instancia de empresa +# username is the unique username of your SNMP v3 user +# auth password is the authentication password +# privacy password is the privacy password +# hostname is the IP or domain of your Enterprise instance $ snmpget -v 3 -u username -l authPriv \ -A "auth password" -a SHA \ -X "privacy password" -x AES \ -O e hostname HOST-RESOURCES-MIB::hrMemorySize.0 ``` -Con SNMP v2c, para consultar `hrMemorySize`, ejecuta el siguiente comando en una estación de trabajo separada con apoyo de SNMP en tu red: +With SNMP v2c, to query for `hrMemorySize`, run the following command on a separate workstation with SNMP support in your network: ```shell -# community-string es tu cadena de comunidad -# hostname es la IP o el dominio de tu instancia de empresa +# community-string is your community string +# hostname is the IP or domain of your Enterprise instance snmpget -v 2c -c community-string hostname HOST-RESOURCES-MIB::hrMemorySize.0 ``` {% tip %} -**Nota:** para evitar que se filtre información sobre los servicios que se están ejecutando en tu aplicativo, excluimos la tabla `hrSWRun` (1.3.6.1.2.1.25.4.) de los reportes resultantes de SNMP a menos de que estés utilizando el nivel de seguridad `authPriv` con SNMP v3. Si estás utilizando el nivel de seguridad `authPriv`, incluimos la tabla `hrSWRun`. +**Note:** To prevent leaking information about services running on your appliance, we exclude the `hrSWRun` table (1.3.6.1.2.1.25.4) from the resulting SNMP reports unless you're using the `authPriv` security level with SNMP v3. If you're using the `authPriv` security level, we include the `hrSWRun` table. {% endtip %} -Para obtener más información sobre los mapeos OID para los atributos de sistema comunes en SNMP, consulta "[OID SNMP de Linux para CPU, memoria y estadísticas de disco](http://www.linux-admins.net/2012/02/linux-snmp-oids-for-cpumemory-and-disk.html)". +For more information on OID mappings for common system attributes in SNMP, see "[Linux SNMP OID’s for CPU, Memory and Disk Statistics](http://www.linux-admins.net/2012/02/linux-snmp-oids-for-cpumemory-and-disk.html)". diff --git a/translations/es-ES/content/admin/enterprise-management/monitoring-your-appliance/recommended-alert-thresholds.md b/translations/es-ES/content/admin/enterprise-management/monitoring-your-appliance/recommended-alert-thresholds.md index ebda40a5e1..fff12c9155 100644 --- a/translations/es-ES/content/admin/enterprise-management/monitoring-your-appliance/recommended-alert-thresholds.md +++ b/translations/es-ES/content/admin/enterprise-management/monitoring-your-appliance/recommended-alert-thresholds.md @@ -1,8 +1,8 @@ --- -title: Límites de alerta recomendados -intro: 'Puedes configurar una alerta para notificar los problemas de tus recursos de sistema antes de que afecten el desempeño de tu aparato {% data variables.product.prodname_ghe_server %}.' +title: Recommended alert thresholds +intro: 'You can configure an alert to notify you of system resource issues before they affect your {% data variables.product.prodname_ghe_server %} appliance''s performance.' redirect_from: - - /enterprise/admin/guides/installation/about-recommended-alert-thresholds/ + - /enterprise/admin/guides/installation/about-recommended-alert-thresholds - /enterprise/admin/installation/about-recommended-alert-thresholds - /enterprise/admin/installation/recommended-alert-thresholds - /enterprise/admin/enterprise-management/recommended-alert-thresholds @@ -16,38 +16,37 @@ topics: - Monitoring - Performance - Storage -shortTitle: Límites de alerta recomendados +shortTitle: Recommended alert thresholds --- +## Monitoring storage -## Controlar el almacenamiento +We recommend that you monitor both the root and user storage devices and configure an alert with values that allow for ample response time when available disk space is low. -Recomendamos que controles los dispositivos de almacenamiento de usuario y raíz y configures una alerta con valores que permitan un gran tiempo de respuesta cuando el espacio de disco disponible sea bajo. +| Severity | Threshold | +| -------- | --------- | +| **Warning** | Disk use exceeds 70% of total available | +| **Critical** | Disk use exceeds 85% of total available | -| Gravedad | Límite | -| --------------- | ---------------------------------------------------- | -| **Advertencia** | El disco excede el 70 % del total disponible | -| **Crítico** | El uso del disco excede el 85 % del total disponible | +You can adjust these values based on the total amount of storage allocated, historical growth patterns, and expected time to respond. We recommend over-allocating storage resources to allow for growth and prevent the downtime required to allocate additional storage. -Puedes ajustar estos valores en base a la cantidad total de almacenamiento asignado, los patrones de crecimiento histórico y el tiempo esperado de respuesta. Recomendamos asignar en exceso recursos de almacenamiento para permitir el crecimiento y evitar el tiempo de inactividad requerido para asignar almacenamiento adicional. +## Monitoring CPU and load average usage -## Controlar el uso del CPU y de la carga promedio +Although it is normal for CPU usage to fluctuate based on resource-intense Git operations, we recommend configuring an alert for abnormally high CPU utilization, as prolonged spikes can mean your instance is under-provisioned. We recommend monitoring the fifteen-minute system load average for values nearing or exceeding the number of CPU cores allocated to the virtual machine. -A pesar de que es normal que el uso de CPU fluctúe en base a las operaciones Git que utilizan muchos recursos, recomendamos configurar una alerta para la utilización del CPU anormalmente alta, ya que spikes prolongados puede significar que tu instancia tiene un aprovisionamiento insuficiente. Recomendamos controlar la carga promedio del sistema de quince minutos para los valores que se acerquen o excedan la cantidad de núcleos de CPU asignados en la máquina virtual. +| Severity | Threshold | +| -------- | --------- | +| **Warning** | Fifteen minute load average exceeds 1x CPU cores | +| **Critical** | Fifteen minute load average exceeds 2x CPU cores | -| Gravedad | Límite | -| --------------- | --------------------------------------------------------------- | -| **Advertencia** | La carga promedio de quince minutos excede 1x de núcleos de CPU | -| **Crítico** | La carga promedio de quince minutos excede 2x de núcleos de CPU | +We also recommend that you monitor virtualization "steal" time to ensure that other virtual machines running on the same host system are not using all of the instance's resources. -También recomendamos que controles el tiempo de "robo" de virtualización para asegurar que otras máquinas virtuales ejecutándose en el mismo sistema de servidor no estén usando todos los recursos de la instancia. +## Monitoring memory usage -## Controla el uso de la memoria +The amount of physical memory allocated to {% data variables.product.product_location %} can have a large impact on overall performance and application responsiveness. The system is designed to make heavy use of the kernel disk cache to speed up Git operations. We recommend that the normal RSS working set fit within 50% of total available RAM at peak usage. -La cantidad de memoria física asignada a {% data variables.product.product_location %} puede tener un gran impacto sobre el desempeño general y la capacidad de respuesta de la aplicación. El sistema está designado para realizar un uso intenso del caché del disco kernel para acelerar las operaciones Git. Recomendamos que el conjunto en funcionamiento de RSS normal se acomode dentro del 50 % del total de RAM disponible para un uso máximo. +| Severity | Threshold | +| -------- | --------- | +| **Warning** | Sustained RSS usage exceeds 50% of total available memory | +| **Critical** | Sustained RSS usage exceeds 70% of total available memory | -| Gravedad | Límite | -| --------------- | ---------------------------------------------------------------------- | -| **Advertencia** | El uso sostenido de RSS excede el 50 % del total de memoria disponible | -| **Crítico** | El uso sostenido de RSS excede el 70 % del total de memoria disponible | - -Si se acaba la memoria, el killer de OOM kernel intentará liberar recursos de memoria al sacrificar de manera forzosa procesos de aplicación con mucho uso de RAM, lo que puede dar como resultado una interrupción del servicio. Recomendamos asignar más memoria a la máquina virtual de la requerida en el curso normal de las operaciones. +If memory is exhausted, the kernel OOM killer will attempt to free memory resources by forcibly killing RAM heavy application processes, which could result in a disruption of service. We recommend allocating more memory to the virtual machine than is required in the normal course of operations. diff --git a/translations/es-ES/content/admin/enterprise-management/updating-the-virtual-machine-and-physical-resources/index.md b/translations/es-ES/content/admin/enterprise-management/updating-the-virtual-machine-and-physical-resources/index.md index 4d743ca602..126dce06e2 100644 --- a/translations/es-ES/content/admin/enterprise-management/updating-the-virtual-machine-and-physical-resources/index.md +++ b/translations/es-ES/content/admin/enterprise-management/updating-the-virtual-machine-and-physical-resources/index.md @@ -1,9 +1,9 @@ --- -title: Actualizar la máquina virtual y los recursos físicos -intro: 'La actualización del software virtual y del hardware virtual requiere algo de tiempo de inactividad para tu instancia, por ello asegúrate de planear tu actualización de antemano.' +title: Updating the virtual machine and physical resources +intro: 'Upgrading the virtual software and virtual hardware requires some downtime for your instance, so be sure to plan your upgrade in advance.' redirect_from: - - '/enterprise/{{ currentVersion }}/admin/guides/installation/upgrading-the-vm/' - - '/enterprise/{{ currentVersion }}/admin/guides/installation/upgrading-physical-resources/' + - '/enterprise/{{ currentVersion }}/admin/guides/installation/upgrading-the-vm' + - '/enterprise/{{ currentVersion }}/admin/guides/installation/upgrading-physical-resources' - /enterprise/admin/installation/updating-the-virtual-machine-and-physical-resources - /enterprise/admin/enterprise-management/updating-the-virtual-machine-and-physical-resources versions: @@ -17,6 +17,6 @@ children: - /increasing-storage-capacity - /increasing-cpu-or-memory-resources - /migrating-from-github-enterprise-1110x-to-2123 -shortTitle: Actualizar los recursos & las MV +shortTitle: Update VM & resources --- diff --git a/translations/es-ES/content/admin/enterprise-management/updating-the-virtual-machine-and-physical-resources/migrating-from-github-enterprise-1110x-to-2123.md b/translations/es-ES/content/admin/enterprise-management/updating-the-virtual-machine-and-physical-resources/migrating-from-github-enterprise-1110x-to-2123.md index 40551ed5bf..912f655881 100644 --- a/translations/es-ES/content/admin/enterprise-management/updating-the-virtual-machine-and-physical-resources/migrating-from-github-enterprise-1110x-to-2123.md +++ b/translations/es-ES/content/admin/enterprise-management/updating-the-virtual-machine-and-physical-resources/migrating-from-github-enterprise-1110x-to-2123.md @@ -1,16 +1,16 @@ --- -title: Migrar desde GitHub Enterprise 11.10.x a 2.1.23 +title: Migrating from GitHub Enterprise 11.10.x to 2.1.23 redirect_from: - /enterprise/admin/installation/migrating-from-github-enterprise-1110x-to-2123 - - /enterprise/admin-guide/migrating/ - - /enterprise/admin/articles/migrating-github-enterprise/ - - /enterprise/admin/guides/installation/migrating-from-github-enterprise-v11-10-34x/ - - /enterprise/admin/articles/upgrading-to-a-newer-release/ - - /enterprise/admin/guides/installation/migrating-to-a-different-platform-or-from-github-enterprise-11-10-34x/ + - /enterprise/admin-guide/migrating + - /enterprise/admin/articles/migrating-github-enterprise + - /enterprise/admin/guides/installation/migrating-from-github-enterprise-v11-10-34x + - /enterprise/admin/articles/upgrading-to-a-newer-release + - /enterprise/admin/guides/installation/migrating-to-a-different-platform-or-from-github-enterprise-11-10-34x - /enterprise/admin/guides/installation/migrating-from-github-enterprise-11-10-x-to-2-1-23 - /enterprise/admin/enterprise-management/migrating-from-github-enterprise-1110x-to-2123 - /admin/enterprise-management/migrating-from-github-enterprise-1110x-to-2123 -intro: 'Para migrar desde {% data variables.product.prodname_enterprise %} 11.10.x a 2.1.23, deberás configurar una nueva instancia de aparato y migrar los datos de la instancia anterior.' +intro: 'To migrate from {% data variables.product.prodname_enterprise %} 11.10.x to 2.1.23, you''ll need to set up a new appliance instance and migrate data from the previous instance.' versions: ghes: '*' type: how_to @@ -18,81 +18,85 @@ topics: - Enterprise - Migration - Upgrades -shortTitle: Migrarse de 11.10.x a 2.1.23 +shortTitle: Migrate from 11.10.x to 2.1.23 --- +Migrations from {% data variables.product.prodname_enterprise %} 11.10.348 and later are supported. Migrating from {% data variables.product.prodname_enterprise %} 11.10.348 and earlier is not supported. You must first upgrade to 11.10.348 in several upgrades. For more information, see the 11.10.348 upgrading procedure, "[Upgrading to the latest release](/enterprise/11.10.340/admin/articles/upgrading-to-the-latest-release/)." -Se admiten migraciones desde {% data variables.product.prodname_enterprise %} 11.10.348 y superior. No se admiten migraciones desde {% data variables.product.prodname_enterprise %} 11.10.348 o inferior. Primero debes actualizar a 11.10.348 en varias actualizaciones. Para obtener más información, consulta el procedimiento de actualización 11.10.348, "[Actualizar al lanzamiento más reciente](/enterprise/11.10.340/admin/articles/upgrading-to-the-latest-release/)." +To upgrade to the latest version of {% data variables.product.prodname_enterprise %}, you must first migrate to {% data variables.product.prodname_ghe_server %} 2.1, then you can follow the normal upgrade process. For more information, see "[Upgrading {% data variables.product.prodname_enterprise %}](/enterprise/admin/guides/installation/upgrading-github-enterprise-server/)". -Para actualizar a la versión más reciente {% data variables.product.prodname_enterprise %}, primero debes migrar a {% data variables.product.prodname_ghe_server %} 2.1, entonces puedes aplicar el proceso normal de actualización. Para obtener más información, consulta "[Actualizar {% data variables.product.prodname_enterprise %}](/enterprise/admin/guides/installation/upgrading-github-enterprise-server/)". +## Prepare for the migration -## Prepárate para la migración - -1. Revisa la guía de Abastecimiento e instalación y controla que se cumplan todos los requisitos previos necesarios para abastecer y configurar {% data variables.product.prodname_enterprise %} 2.1.23 en tu entorno. Para obtener más información, consulta "[Abastecimiento e instalación](/enterprise/2.1/admin/guides/installation/provisioning-and-installation/)." -2. Verifica que la instancia actual esté ejecutando una versión actualizada compatible. -3. Configura la versión más reciente de {% data variables.product.prodname_enterprise_backup_utilities %}. Para obtener más información, consulta [{% data variables.product.prodname_enterprise_backup_utilities %}](https://github.com/github/backup-utils). - - Si ya has configurado copias de seguridad programadas utilizando {% data variables.product.prodname_enterprise_backup_utilities %}, asegúrate de que hayas actualizado a la versión más reciente. - - Si no estás ejecutando actualmente copias de seguridad programadas, configura {% data variables.product.prodname_enterprise_backup_utilities %}. -4. Toma una instantánea de copia de respaldo completa inicial de la instancia actual utilizando el comando `ghe-backup`. Si ya configuraste copias de seguridad programadas para tu instancia actual, no debes tomar una instantánea de tu instancia. +1. Review the Provisioning and Installation guide and check that all prerequisites needed to provision and configure {% data variables.product.prodname_enterprise %} 2.1.23 in your environment are met. For more information, see "[Provisioning and Installation](/enterprise/2.1/admin/guides/installation/provisioning-and-installation/)." +2. Verify that the current instance is running a supported upgrade version. +3. Set up the latest version of the {% data variables.product.prodname_enterprise_backup_utilities %}. For more information, see [{% data variables.product.prodname_enterprise_backup_utilities %}](https://github.com/github/backup-utils). + - If you have already configured scheduled backups using {% data variables.product.prodname_enterprise_backup_utilities %}, make sure you have updated to the latest version. + - If you are not currently running scheduled backups, set up {% data variables.product.prodname_enterprise_backup_utilities %}. +4. Take an initial full backup snapshot of the current instance using the `ghe-backup` command. If you have already configured scheduled backups for your current instance, you don't need to take a snapshot of your instance. {% tip %} - **Sugerencia:** puedes dejar la instancia en línea y en uso activo durante la instantánea. Tomarás otras instantánea durante la parte de mantenimiento de la migración. Ya que las copias de seguridad son incrementales, esta instantánea inicial reduce la cantidad de datos transferidos en la instantánea final, que pueden acortar la ventana de mantenimiento. + **Tip:** You can leave the instance online and in active use during the snapshot. You'll take another snapshot during the maintenance portion of the migration. Since backups are incremental, this initial snapshot reduces the amount of data transferred in the final snapshot, which may shorten the maintenance window. {% endtip %} -5. Determina el método para cambiar el tráfico de red de usuario a la nueva instancia. Después de la migración, todo el tráfico de red de HTTP y Git se dirige a la nueva instancia. - - **DNS** - Recomendamos este método para todos los entornos, ya que es simple y funciona bien incluso cuando se migra desde una base de datos a otra. Antes de comenzar la migración, reduce los TTL de los registros DNS existentes a cinco minutos o menos y permite el cambio a propagar. Una vez que la migración se completa, actualiza los registros DNS para que apunten a la dirección IP de la nueva instancia. - - **Asignación de dirección IP** - Este método está únicamente disponible en VMware para la migración VMware y no se recomienda excepto que el método DNS no esté disponible. Antes de comenzar la migración, deberás cerrar la instancia anterior y asignar tu dirección IP a la nueva instancia. -6. Programa una ventana de mantenimiento. La ventana de mantenimiento debe incluir tiempo suficiente para transferir datos desde el servidor de seguridad a la nueva instancia y variará en base al tamaño de la instantánea de respaldo y el ancho de banda de la red disponible. Durante este tiempo tu instancia actual no estará disponible y estará en modo mantenimiento mientras migras a la nueva instancia. +5. Determine the method for switching user network traffic to the new instance. After you've migrated, all HTTP and Git network traffic directs to the new instance. + - **DNS** - We recommend this method for all environments, as it's simple and works well even when migrating from one datacenter to another. Before starting migration, reduce the existing DNS record's TTL to five minutes or less and allow the change to propagate. Once the migration is complete, update the DNS record(s) to point to the IP address of the new instance. + - **IP address assignment** - This method is only available on VMware to VMware migration and is not recommended unless the DNS method is unavailable. Before starting the migration, you'll need to shut down the old instance and assign its IP address to the new instance. +6. Schedule a maintenance window. The maintenance window should include enough time to transfer data from the backup host to the new instance and will vary based on the size of the backup snapshot and available network bandwidth. During this time your current instance will be unavailable and in maintenance mode while you migrate to the new instance. -## Realiza la migración +## Perform the migration -1. Aprovisiona una nueva instancia {% data variables.product.prodname_enterprise %} 2.1. Para obtener más información, consulta la "[Guía de aprovisionamiento e instalación](/enterprise/2.1/admin/guides/installation/provisioning-and-installation/)" para tu plataforma destino. -2. Desde un navegador, dirígete a la nueva dirección IP del aparato réplica y carga tu licencia de {% data variables.product.prodname_enterprise %}. -3. Configura una contraseña de administrador. -5. Haz clic en **Migrate (Migrar)**. ![Elegir el tipo de instalación](/assets/images/enterprise/migration/migration-choose-install-type.png) -6. Pega tu clave SSH de acceso al servidor de respaldo en "Add new SSH key (Agregar nueva clave SSH)". ![Autorizar la copia de seguridad](/assets/images/enterprise/migration/migration-authorize-backup-host.png) -7. Da clic en **Agregar llave** y luego en **Continuar**. -8. Copia el comando `ghe-restore` que ejecutarás en el servidor de respaldo para migrar datos a la nueva instancia. ![Iniciar la migración](/assets/images/enterprise/migration/migration-restore-start.png) -9. Habilita el modo mantenimiento en la instancia anterior y espera a que se completen todos los procesos activos. Para obtener más información, consulta "[Habilitar y programar el modo mantenimiento](/enterprise/{{ currentVersion }}/admin/guides/installation/enabling-and-scheduling-maintenance-mode)." +1. Provision a new {% data variables.product.prodname_enterprise %} 2.1 instance. For more information, see the "[Provisioning and Installation](/enterprise/2.1/admin/guides/installation/provisioning-and-installation/)" guide for your target platform. +2. In a browser, navigate to the new replica appliance's IP address and upload your {% data variables.product.prodname_enterprise %} license. +3. Set an admin password. +5. Click **Migrate**. +![Choosing install type](/assets/images/enterprise/migration/migration-choose-install-type.png) +6. Paste your backup host access SSH key into "Add new SSH key". +![Authorizing backup](/assets/images/enterprise/migration/migration-authorize-backup-host.png) +7. Click **Add key** and then click **Continue**. +8. Copy the `ghe-restore` command that you'll run on the backup host to migrate data to the new instance. +![Starting a migration](/assets/images/enterprise/migration/migration-restore-start.png) +9. Enable maintenance mode on the old instance and wait for all active processes to complete. For more information, see "[Enabling and scheduling maintenance mode](/enterprise/{{ currentVersion }}/admin/guides/installation/enabling-and-scheduling-maintenance-mode)." {% note %} - **Nota:** la instancia no estará disponible para el uso normal desde este punto en adelante. + **Note:** The instance will be unavailable for normal use from this point forward. {% endnote %} -10. En el servidor de respaldo, ejecuta el comando `ghe-backup` para tomar una instantánea de respaldo final. Esto asegura que se capturen todos los datos de la instancia anterior. -11. En el servidor de respaldo, ejecuta el comando `ghe-restore` que copiaste en la pantalla de estado de restauración de la nueva instancia para restaurar la instantánea más reciente. +10. On the backup host, run the `ghe-backup` command to take a final backup snapshot. This ensures that all data from the old instance is captured. +11. On the backup host, run the `ghe-restore` command you copied on the new instance's restore status screen to restore the latest snapshot. ```shell $ ghe-restore 169.254.1.1 The authenticity of host '169.254.1.1:122' can't be established. - La clave de huella digital RSA es fe:96:9e:ac:d0:22:7c:cf:22:68:f2:c3:c9:81:53:d1. - ¿Estás seguro que deseas continuar conectado (sí/no)? yes + RSA key fingerprint is fe:96:9e:ac:d0:22:7c:cf:22:68:f2:c3:c9:81:53:d1. + Are you sure you want to continue connecting (yes/no)? yes Connect 169.254.1.1:122 OK (v2.0.0) Starting restore of 169.254.1.1:122 from snapshot 20141014T141425 Restoring Git repositories ... - Restaurando las páginas GitHub ... - Restaurando los adjuntos de activo ... - Restaurando las entregas de enlace ... - Restaurando la base de datos MySQL ... - Restaurando la base de datos Redis ... - Restaurando las claves autorizadas de SSH ... - Restaurando los índice de ElasticSearch... - Restaurando las claves del servidor SSH ... + Restoring GitHub Pages ... + Restoring asset attachments ... + Restoring hook deliveries ... + Restoring MySQL database ... + Restoring Redis database ... + Restoring SSH authorized keys ... + Restoring Elasticsearch indices ... + Restoring SSH host keys ... Completed restore of 169.254.1.1:122 from snapshot 20141014T141425 Visit https://169.254.1.1/setup/settings to review appliance configuration. ``` -12. Regresa a la pantalla de estado de restauración de la nueva instancia para ver que la restauración está completa. ![Restaurar la pantalla completa](/assets/images/enterprise/migration/migration-status-complete.png) -13. Haz clic en **Continue to settings (Continuar a configuraciones)** para revisar y ajustar la información de configuración y los parámetros que se importaron de la instancia anterior. ![Revisar los parámetros importados](/assets/images/enterprise/migration/migration-status-complete.png) -14. Haz clic en **Guardar parámetros**. +12. Return to the new instance's restore status screen to see that the restore completed. +![Restore complete screen](/assets/images/enterprise/migration/migration-status-complete.png) +13. Click **Continue to settings** to review and adjust the configuration information and settings that were imported from the previous instance. +![Review imported settings](/assets/images/enterprise/migration/migration-status-complete.png) +14. Click **Save settings**. {% note %} - **Nota:** puedes usar la nueva instancia después de haber aplicado los parámetros de configuración y restaurar el servidor. + **Note:** You can use the new instance after you've applied configuration settings and restarted the server. {% endnote %} -15. Cambia el tráfico de red de usuario desde la instancia anterior a la nueva instancia utilizando la asignación de DNS o la dirección IP. -16. Actualiza a la versión más reciente del lanzamiento del patch de {{ currentVersion }}. Para obtener más información, consulta "[Actualizar {% data variables.product.prodname_ghe_server %}](/enterprise/admin/guides/installation/upgrading-github-enterprise-server/)." +15. Switch user network traffic from the old instance to the new instance using either DNS or IP address assignment. +16. Upgrade to the latest patch release of {{ currentVersion }}. For more information, see "[Upgrading {% data variables.product.prodname_ghe_server %}](/enterprise/admin/guides/installation/upgrading-github-enterprise-server/)." diff --git a/translations/es-ES/content/admin/enterprise-management/updating-the-virtual-machine-and-physical-resources/upgrade-requirements.md b/translations/es-ES/content/admin/enterprise-management/updating-the-virtual-machine-and-physical-resources/upgrade-requirements.md index 2111abfe4f..67ec886148 100644 --- a/translations/es-ES/content/admin/enterprise-management/updating-the-virtual-machine-and-physical-resources/upgrade-requirements.md +++ b/translations/es-ES/content/admin/enterprise-management/updating-the-virtual-machine-and-physical-resources/upgrade-requirements.md @@ -3,7 +3,7 @@ title: Upgrade requirements intro: 'Before upgrading {% data variables.product.prodname_ghe_server %}, review these recommendations and requirements to plan your upgrade strategy.' redirect_from: - /enterprise/admin/installation/upgrade-requirements - - /enterprise/admin/guides/installation/finding-the-current-github-enterprise-release/ + - /enterprise/admin/guides/installation/finding-the-current-github-enterprise-release - /enterprise/admin/enterprise-management/upgrade-requirements - /admin/enterprise-management/upgrade-requirements versions: diff --git a/translations/es-ES/content/admin/enterprise-management/updating-the-virtual-machine-and-physical-resources/upgrading-github-enterprise-server.md b/translations/es-ES/content/admin/enterprise-management/updating-the-virtual-machine-and-physical-resources/upgrading-github-enterprise-server.md index 4f60cb3784..d1fe3ba6fd 100644 --- a/translations/es-ES/content/admin/enterprise-management/updating-the-virtual-machine-and-physical-resources/upgrading-github-enterprise-server.md +++ b/translations/es-ES/content/admin/enterprise-management/updating-the-virtual-machine-and-physical-resources/upgrading-github-enterprise-server.md @@ -3,15 +3,15 @@ title: Upgrading GitHub Enterprise Server intro: 'Upgrade {% data variables.product.prodname_ghe_server %} to get the latest features and security updates.' redirect_from: - /enterprise/admin/installation/upgrading-github-enterprise-server - - /enterprise/admin/articles/upgrading-to-the-latest-release/ - - /enterprise/admin/articles/migrations-and-upgrades/ - - /enterprise/admin/guides/installation/upgrading-the-github-enterprise-virtual-machine/ - - /enterprise/admin/guides/installation/upgrade-packages-for-older-releases/ - - /enterprise/admin/articles/upgrading-older-installations/ - - /enterprise/admin/hidden/upgrading-older-installations/ - - /enterprise/admin/hidden/upgrading-github-enterprise-using-a-hotpatch-early-access-program/ - - /enterprise/admin/hidden/upgrading-github-enterprise-using-a-hotpatch/ - - /enterprise/admin/guides/installation/upgrading-github-enterprise/ + - /enterprise/admin/articles/upgrading-to-the-latest-release + - /enterprise/admin/articles/migrations-and-upgrades + - /enterprise/admin/guides/installation/upgrading-the-github-enterprise-virtual-machine + - /enterprise/admin/guides/installation/upgrade-packages-for-older-releases + - /enterprise/admin/articles/upgrading-older-installations + - /enterprise/admin/hidden/upgrading-older-installations + - /enterprise/admin/hidden/upgrading-github-enterprise-using-a-hotpatch-early-access-program + - /enterprise/admin/hidden/upgrading-github-enterprise-using-a-hotpatch + - /enterprise/admin/guides/installation/upgrading-github-enterprise - /enterprise/admin/enterprise-management/upgrading-github-enterprise-server - /admin/enterprise-management/upgrading-github-enterprise-server versions: @@ -225,7 +225,9 @@ If an upgrade fails or is interrupted, you should revert your instance back to i ### Rolling back a patch release -To roll back a patch release, use the `ghe-upgrade` command with the `--allow-patch-rollback` switch. {% data reusables.enterprise_installation.command-line-utilities-ghe-upgrade-rollback %} +To roll back a patch release, use the `ghe-upgrade` command with the `--allow-patch-rollback` switch. Before rolling back, replication must be temporarily stopped by running `ghe-repl-stop` on all replica instances. {% data reusables.enterprise_installation.command-line-utilities-ghe-upgrade-rollback %} + +Once the rollback is complete, restart replication by running `ghe-repl-start` on all replicas. For more information, see "[Command-line utilities](/enterprise/{{ currentVersion }}/admin/guides/installation/command-line-utilities/#ghe-upgrade)." diff --git a/translations/es-ES/content/admin/enterprise-support/overview/about-github-premium-support-for-github-enterprise-server.md b/translations/es-ES/content/admin/enterprise-support/overview/about-github-premium-support-for-github-enterprise-server.md index f817b45727..19b17f289b 100644 --- a/translations/es-ES/content/admin/enterprise-support/overview/about-github-premium-support-for-github-enterprise-server.md +++ b/translations/es-ES/content/admin/enterprise-support/overview/about-github-premium-support-for-github-enterprise-server.md @@ -1,9 +1,9 @@ --- -title: Acerca del Soporte prémium de GitHub para GitHub Enterprise Server -intro: '{% data variables.contact.premium_support %} es una oferta de soporte remunerado, adicional para clientes de {% data variables.product.prodname_enterprise %}.' +title: About GitHub Premium Support for GitHub Enterprise Server +intro: '{% data variables.contact.premium_support %} is a paid, supplemental support offering for {% data variables.product.prodname_enterprise %} customers.' redirect_from: - - /enterprise/admin/guides/enterprise-support/about-premium-support-for-github-enterprise/ - - /enterprise/admin/guides/enterprise-support/about-premium-support/ + - /enterprise/admin/guides/enterprise-support/about-premium-support-for-github-enterprise + - /enterprise/admin/guides/enterprise-support/about-premium-support - /enterprise/admin/enterprise-support/about-github-premium-support-for-github-enterprise-server - /admin/enterprise-support/about-github-premium-support-for-github-enterprise-server versions: @@ -12,30 +12,29 @@ type: overview topics: - Enterprise - Support -shortTitle: Soporte premium para GHES +shortTitle: Premium Support for GHES --- - {% note %} -**Notas:** +**Notes:** -- Los términos del {% data variables.contact.premium_support %} están sujetos a cambios sin aviso y entraron en vigencia a partir de septiembre de 2018. Si compraste {% data variables.contact.premium_support %} antes del 17 de septiembre de 2018, tu plan puede ser diferente. Comunícate con {% data variables.contact.premium_support %} para conocer más detalles. +- The terms of {% data variables.contact.premium_support %} are subject to change without notice and are effective as of September 2018. If you purchased {% data variables.contact.premium_support %} prior to September 17, 2018, your plan might be different. Contact {% data variables.contact.premium_support %} for more details. - {% data reusables.support.data-protection-and-privacy %} -- Este artículo contiene los términos del {% data variables.contact.premium_support %} para clientes del {% data variables.product.prodname_ghe_server %}. Es posible que los términos sean diferentes para los clientes de {% data variables.product.prodname_ghe_cloud %} o los clientes de {% data variables.product.prodname_enterprise %} que compran {% data variables.product.prodname_ghe_server %} y {% data variables.product.prodname_ghe_cloud %} de manera conjunta. Para más información, vea "Acerca de {% data variables.contact.premium_support %} para {% data variables.product.prodname_ghe_cloud %}" y "[Acerca de {% data variables.contact.premium_support %} para {% data variables.product.prodname_enterprise %}](/enterprise/{{ currentVersion }}/admin/guides/enterprise-support/about-github-premium-support-for-github-enterprise)." +- This article contains the terms of {% data variables.contact.premium_support %} for {% data variables.product.prodname_ghe_server %} customers. The terms may be different for customers of {% data variables.product.prodname_ghe_cloud %} or {% data variables.product.prodname_enterprise %} customers who purchase {% data variables.product.prodname_ghe_server %} and {% data variables.product.prodname_ghe_cloud %} together. For more information, see "About {% data variables.contact.premium_support %} for {% data variables.product.prodname_ghe_cloud %}" and "[About {% data variables.contact.premium_support %} for {% data variables.product.prodname_enterprise %}](/enterprise/{{ currentVersion }}/admin/guides/enterprise-support/about-github-premium-support-for-github-enterprise)." {% endnote %} -## Acerca de {% data variables.contact.premium_support %} +## About {% data variables.contact.premium_support %} -Además de todos los beneficios de {% data variables.contact.enterprise_support %}, {% data variables.contact.premium_support %} ofrece: - - Soporte técnico por escrito, en inglés, a través del portal de soporte de 24 horas al día, 7 días a la semana. - - Soporte técnico telefónico, en inglés, 24 horas al día, 7 días a la semana. - - Un Acuerdo de nivel de servicio (SLA) con tiempos de respuesta iniciales garantizados. - - Acceso a contenido prémium. - - Revisiones de estado programadas. - - Servicios administrados. +In addition to all of the benefits of {% data variables.contact.enterprise_support %}, {% data variables.contact.premium_support %} offers: + - Written support, in English, through our support portal 24 hours per day, 7 days per week + - Phone support, in English, 24 hours per day, 7 days per week + - A Service Level Agreement (SLA) with guaranteed initial response times + - Access to premium content + - Scheduled health checks + - Managed services {% data reusables.support.about-premium-plans %} @@ -45,25 +44,25 @@ Además de todos los beneficios de {% data variables.contact.enterprise_support {% data reusables.support.contacting-premium-support %} -## Horas de operación +## Hours of operation -{% data variables.contact.premium_support %} está disponible 24 horas al día, 7 días a la semana. Si compraste {% data variables.contact.premium_support %} antes del 17 de septiembre de 2018, el soporte está limitado durante las vacaciones. Para más información sobre los días festivos que respeta el {% data variables.contact.premium_support %}, consulta la lista de feriados en "[Acerca del {% data variables.contact.github_support %}](/enterprise/admin/guides/enterprise-support/about-github-enterprise-support)". +{% data variables.contact.premium_support %} is available 24 hours a day, 7 days per week. If you purchased {% data variables.contact.premium_support %} prior to September 17, 2018, support is limited during holidays. For more information on holidays {% data variables.contact.premium_support %} observes, see the holiday schedule at "[About {% data variables.contact.github_support %}](/enterprise/admin/guides/enterprise-support/about-github-enterprise-support)." {% data reusables.support.service-level-agreement-response-times %} {% data reusables.enterprise_enterprise_support.installing-releases %} -Debes instalar la versión mínima compatible del {% data variables.product.prodname_ghe_server %}, conforme a la sección Versiones compatibles del acuerdo de licencia aplicable, dentro de los 90 días posteriores a realizar el pedido del {% data variables.contact.premium_support %}. +You must install the minimum supported version of {% data variables.product.prodname_ghe_server %} pursuant to the Supported Releases section of your applicable license agreement within 90 days of placing an order for {% data variables.contact.premium_support %}. -## Asignar una prioridad a un ticket de soporte +## Assigning a priority to a support ticket -Cuando contactas a {% data variables.contact.premium_support %}, puedes escoger una de cuatro prioridades para el ticket: {% data variables.product.support_ticket_priority_urgent %}, {% data variables.product.support_ticket_priority_high %}, {% data variables.product.support_ticket_priority_normal %}, o{% data variables.product.support_ticket_priority_low %}. +When you contact {% data variables.contact.premium_support %}, you can choose one of four priorities for the ticket: {% data variables.product.support_ticket_priority_urgent %}, {% data variables.product.support_ticket_priority_high %}, {% data variables.product.support_ticket_priority_normal %}, or {% data variables.product.support_ticket_priority_low %}. {% data reusables.support.github-can-modify-ticket-priority %} {% data reusables.support.ghes-priorities %} -## Resolver y cerrar tickets de soporte +## Resolving and closing support tickets {% data reusables.support.premium-resolving-and-closing-tickets %} diff --git a/translations/es-ES/content/admin/enterprise-support/receiving-help-from-github-support/index.md b/translations/es-ES/content/admin/enterprise-support/receiving-help-from-github-support/index.md index 21d92cea79..68f0cb423b 100644 --- a/translations/es-ES/content/admin/enterprise-support/receiving-help-from-github-support/index.md +++ b/translations/es-ES/content/admin/enterprise-support/receiving-help-from-github-support/index.md @@ -1,8 +1,8 @@ --- -title: Recibir ayuda desde Soporte de GitHub -intro: 'Puedes contactar a {% data variables.contact.enterprise_support %} para reportar varios problemas de tu empresa.' +title: Receiving help from GitHub Support +intro: 'You can contact {% data variables.contact.enterprise_support %} to report a range of issues for your enterprise.' redirect_from: - - /enterprise/admin/guides/enterprise-support/receiving-help-from-github-enterprise-support/ + - /enterprise/admin/guides/enterprise-support/receiving-help-from-github-enterprise-support - /enterprise/admin/enterprise-support/receiving-help-from-github-support versions: ghes: '*' @@ -14,6 +14,6 @@ children: - /preparing-to-submit-a-ticket - /submitting-a-ticket - /providing-data-to-github-support -shortTitle: Recibir ayuda de soporte +shortTitle: Receive help from Support --- diff --git a/translations/es-ES/content/admin/enterprise-support/receiving-help-from-github-support/providing-data-to-github-support.md b/translations/es-ES/content/admin/enterprise-support/receiving-help-from-github-support/providing-data-to-github-support.md index c26a61c6da..66c4f8ca9d 100644 --- a/translations/es-ES/content/admin/enterprise-support/receiving-help-from-github-support/providing-data-to-github-support.md +++ b/translations/es-ES/content/admin/enterprise-support/receiving-help-from-github-support/providing-data-to-github-support.md @@ -1,10 +1,10 @@ --- -title: Proporcionar datos al soporte de GitHub -intro: 'Dado que {% data variables.contact.github_support %} no tiene acceso a tu entorno, te solicitaremos información adicional.' +title: Providing data to GitHub Support +intro: 'Since {% data variables.contact.github_support %} doesn''t have access to your environment, we require some additional information from you.' redirect_from: - - /enterprise/admin/guides/installation/troubleshooting/ - - /enterprise/admin/articles/support-bundles/ - - /enterprise/admin/guides/enterprise-support/providing-data-to-github-enterprise-support/ + - /enterprise/admin/guides/installation/troubleshooting + - /enterprise/admin/articles/support-bundles + - /enterprise/admin/guides/enterprise-support/providing-data-to-github-enterprise-support - /enterprise/admin/enterprise-support/providing-data-to-github-support - /admin/enterprise-support/providing-data-to-github-support versions: @@ -13,145 +13,148 @@ type: how_to topics: - Enterprise - Support -shortTitle: Proporcionar datos a soporte +shortTitle: Provide data to Support --- +## Creating and sharing diagnostic files -## Crear y compartir archivos de diagnóstico +Diagnostics are an overview of a {% data variables.product.prodname_ghe_server %} instance's settings and environment that contains: -Los diagnósticos son una descripción general de los parámetros de una instancia de {% data variables.product.prodname_ghe_server %} y del entorno que contiene: +- Client license information, including company name, expiration date, and number of user licenses +- Version numbers and SHAs +- VM architecture +- Host name, private mode, SSL settings +- Load and process listings +- Network settings +- Authentication method and details +- Number of repositories, users, and other installation data -- Información de licencia de cliente, incluido el nombre de la empresa, fecha de validez y cantidad de licencias de usuario -- Números de versión y SHAs -- Arquitectura VM -- Nombre de host, modo privado, entorno de SSL -- Cargar y procesar listas -- Parámetros de red -- Método y detalles de autenticación -- Número de repositorios, usuarios y otros datos de instalación +You can download the diagnostics for your instance from the {% data variables.enterprise.management_console %} or by running the `ghe-diagnostics` command-line utility. -Puedes descargar el diagnóstico para tu instancia desde la {% data variables.enterprise.management_console %} o al ejecutar la utilidad de la línea de comando `ghe-diagnostics`. +### Creating a diagnostic file from the {% data variables.enterprise.management_console %} -### Crear un archivo de diagnóstico desde {% data variables.enterprise.management_console %} - -Puedes usar este método si no tienes tu clave SSH fácilmente disponible. +You can use this method if you don't have your SSH key readily available. {% data reusables.enterprise_site_admin_settings.access-settings %} {% data reusables.enterprise_site_admin_settings.management-console %} {% data reusables.enterprise_management_console.type-management-console-password %} {% data reusables.enterprise_management_console.support-link %} -5. Haz clic en **Download diagnostics info** (Descargar información de diagnóstico). +5. Click **Download diagnostics info**. -### Crear un archivo de diagnóstico mediante SSH +### Creating a diagnostic file using SSH -Puedes usar este método sin iniciar sesión en {% data variables.enterprise.management_console %}. +You can use this method without signing into the {% data variables.enterprise.management_console %}. -Usa la utilidad de la línea de comando [ghe-diagnostics](/enterprise/{{ currentVersion }}/admin/guides/installation/command-line-utilities#ghe-diagnostics) para recuperar el diagnóstico para tu instancia. +Use the [ghe-diagnostics](/enterprise/{{ currentVersion }}/admin/guides/installation/command-line-utilities#ghe-diagnostics) command-line utility to retrieve the diagnostics for your instance. ```shell $ ssh -p122 admin@hostname -- 'ghe-diagnostics' > diagnostics.txt ``` -## Crear y compartir paquetes de soporte +## Creating and sharing support bundles -Después de que emites tu solicitud de soporte, podríamos pedirte que compartas un paquete de soporte con nuestro equipo. El paquete de soporte es un archivo tar comprimido en gzip que incluye diagnósticos y registros importantes desde tu instancia, como: +After you submit your support request, we may ask you to share a support bundle with our team. The support bundle is a gzip-compressed tar archive that includes diagnostics and important logs from your instance, such as: -- Registros relacionados con la autenticación que pueden resultar útiles al solucionar problemas de errores de autenticación, o configurar LDAP, CAS o SAML -- Registro {% data variables.enterprise.management_console %} -- `github-logs/exceptions.log`: Información sobre 500 errores encontrados en el sitio -- `github-logs/audit.log`: registros de auditoría {% data variables.product.prodname_ghe_server %} -- `babeld-logs/babeld.log`: registros proxy Git -- `system-logs/haproxy.log`: registros HAProxy -- `elasticsearch-logs/github-enterprise.log`: registros Elasticsearch -- `configuration-logs/ghe-config.log`: registros de configuración {% data variables.product.prodname_ghe_server %} -- `collectd/logs/collectd.log`: registros Collectd -- `mail-logs/mail.log`: registros de entrega por correo electrónico SMTP +- Authentication-related logs that may be helpful when troubleshooting authentication errors, or configuring LDAP, CAS, or SAML +- {% data variables.enterprise.management_console %} log +- `github-logs/exceptions.log`: Information about 500 errors encountered on the site +- `github-logs/audit.log`: {% data variables.product.prodname_ghe_server %} audit logs +- `babeld-logs/babeld.log`: Git proxy logs +- `system-logs/haproxy.log`: HAProxy logs +- `elasticsearch-logs/github-enterprise.log`: Elasticsearch logs +- `configuration-logs/ghe-config.log`: {% data variables.product.prodname_ghe_server %} configuration logs +- `collectd/logs/collectd.log`: Collectd logs +- `mail-logs/mail.log`: SMTP email delivery logs -Para obtener más información, consulta "[Audit logging](/enterprise/{{ currentVersion }}/admin/guides/installation/audit-logging) (Registro de auditoría". +For more information, see "[Audit logging](/enterprise/{{ currentVersion }}/admin/guides/installation/audit-logging)." -Los paquetes de soporte incluyen registros de los dos últimos días. Para obtener registros de los últimos siete días, puedes descargar un paquete de soporte extendido. Para obtener más información, consulta "[Crear y compartir paquete de soporte extendido](#creating-and-sharing-extended-support-bundles)". +Support bundles include logs from the past two days. To get logs from the past seven days, you can download an extended support bundle. For more information, see "[Creating and sharing extended support bundles](#creating-and-sharing-extended-support-bundles)." {% tip %} -**Sugerencias:** Cuando te comuniques con {% data variables.contact.github_support %}, recibirás un correo electrónico de confirmación con un enlace de referencia del ticket. Si {% data variables.contact.github_support %} te pide que cargues un paquete de soporte, puedes usar el enlace de referencia del ticket para cargar el paquete de soporte. +**Tip:** When you contact {% data variables.contact.github_support %}, you'll be sent a confirmation email that will contain a ticket reference link. If {% data variables.contact.github_support %} asks you to upload a support bundle, you can use the ticket reference link to upload the support bundle. {% endtip %} -### Crear un paquete de soporte desde la {% data variables.enterprise.management_console %} +### Creating a support bundle from the {% data variables.enterprise.management_console %} -Puedes usar estos pasos para crear y compartir un paquete de soporte si puedes acceder a la {% data variables.enterprise.management_console %} basada en la web y tienes acceso a internet de salida. +You can use these steps to create and share a support bundle if you can access the web-based {% data variables.enterprise.management_console %} and have outbound internet access. {% data reusables.enterprise_site_admin_settings.access-settings %} {% data reusables.enterprise_site_admin_settings.management-console %} {% data reusables.enterprise_management_console.type-management-console-password %} {% data reusables.enterprise_management_console.support-link %} -5. Haz clic en **Download support bundle** (Descargar paquete de soporte). +5. Click **Download support bundle**. {% data reusables.enterprise_enterprise_support.sign-in-to-support %} {% data reusables.enterprise_enterprise_support.upload-support-bundle %} -### Crear un paquete de soporte mediante SSH +### Creating a support bundle using SSH -Puedes utilizar estos pasos para crear y compartir un paquete de soporte si tienes acceso por SSH a {% data variables.product.product_location %} y cuentas con acceso externo a internet. +You can use these steps to create and share a support bundle if you have SSH access to {% data variables.product.product_location %} and have outbound internet access. {% data reusables.enterprise_enterprise_support.use_ghe_cluster_support_bundle %} -1. Descargar el paquete de soporte mediante SSH: +1. Download the support bundle via SSH: ```shell $ ssh -p 122 admin@hostname -- 'ghe-support-bundle -o' > support-bundle.tgz ``` - Para obtener más información acerca del comando `ghe-support-bundle`, consulta "[Utilidades de la línea de comandos](/enterprise/admin/guides/installation/command-line-utilities#ghe-support-bundle)". + For more information about the `ghe-support-bundle` command, see "[Command-line utilities](/enterprise/admin/guides/installation/command-line-utilities#ghe-support-bundle)". {% data reusables.enterprise_enterprise_support.sign-in-to-support %} {% data reusables.enterprise_enterprise_support.upload-support-bundle %} -### Cargar un paquete de soporte utilizando tu cuenta empresarial +### Uploading a support bundle using your enterprise account {% data reusables.enterprise-accounts.access-enterprise-on-dotcom %} {% data reusables.enterprise-accounts.settings-tab %} -3. En la barra lateral izquierda, da clic en **Licenciamiento empresarial**. ![Pestaña de "Licencias empresariales" en la barra lateral de configuración para la cuenta empresarial](/assets/images/help/enterprises/enterprise-licensing-tab.png) -4. Debajo de "Ayuda de {% data variables.product.prodname_enterprise %}", da clic en **Cargar un paquete de soporte**. ![Carga un enlace al paquete de soporte](/assets/images/enterprise/support/upload-support-bundle.png) -5. Debajo de "Selecciona una cuenta empresarial", selecciona la cuenta asociada al paquete de soporte del menú desplegable. ![Elige la cuenta empresarial del paquete de soporte](/assets/images/enterprise/support/support-bundle-account.png) -6. Debajo de "Cargar un paquete de soporte para {% data variables.contact.enterprise_support %}", para seleccionar tu paquete de soporte, da clic en **Elegir archivo**, o arrastra tu archivo de paquete de soporte hacia **Escoger archivo**. ![Cargar archivo de paquete de soporte](/assets/images/enterprise/support/choose-support-bundle-file.png) -7. Da clic en **Cargar**. +3. In the left sidebar, click **Enterprise licensing**. + !["Enterprise licensing" tab in the enterprise account settings sidebar](/assets/images/help/enterprises/enterprise-licensing-tab.png) +4. Under "{% data variables.product.prodname_enterprise %} Help", click **Upload a support bundle**. + ![Upload a support bundle link](/assets/images/enterprise/support/upload-support-bundle.png) +5. Under "Select an enterprise account", select the support bundle's associated account from the drop-down menu. + ![Choose the support bundle's enterprise account](/assets/images/enterprise/support/support-bundle-account.png) +6. Under "Upload a support bundle for {% data variables.contact.enterprise_support %}", to select your support bundle, click **Choose file**, or drag your support bundle file onto **Choose file**. + ![Upload support bundle file](/assets/images/enterprise/support/choose-support-bundle-file.png) +7. Click **Upload**. -### Cargar paquete de soporte mediante SSH +### Uploading a support bundle directly using SSH -Puedes cargar directamente un paquete de soporte a nuestro servidor si: -- Tienes acceso de SSH a {% data variables.product.product_location %}. -- Se permiten las conexiones HTTPS salientes por el puerto 443 TCP desde {% data variables.product.product_location %} hacia _enterprise-bundles.github.com_ y _esbtoolsproduction.blob.core.windows.net_. +You can directly upload a support bundle to our server if: +- You have SSH access to {% data variables.product.product_location %}. +- Outbound HTTPS connections over TCP port 443 are allowed from {% data variables.product.product_location %} to _enterprise-bundles.github.com_ and _esbtoolsproduction.blob.core.windows.net_. -1. Cargar el paquete a nuestro servidor de paquete de soporte: +1. Upload the bundle to our support bundle server: ```shell $ ssh -p122 admin@hostname -- 'ghe-support-bundle -u' ``` -## Crear y compartir paquetes de soporte extendido +## Creating and sharing extended support bundles -Los paquetes de soporte incluyen registros de los últimos dos días, mientras que los paquetes de soporte _extendidos_ incluyen registros de los últimos siete días. Si los eventos que {% data variables.contact.github_support %} está investigando se produjeron hace más de dos días, es posible que te pidamos que compartas un paquete de soporte extendido. Deberás tener acceso a SSH para descargar un paquete extendido, no puedes descargar un paquete extendido desde {% data variables.enterprise.management_console %}. +Support bundles include logs from the past two days, while _extended_ support bundles include logs from the past seven days. If the events that {% data variables.contact.github_support %} is investigating occurred more than two days ago, we may ask you to share an extended support bundle. You will need SSH access to download an extended bundle - you cannot download an extended bundle from the {% data variables.enterprise.management_console %}. -Para evitar que los paquetes sean demasiado grandes, solo pueden contener registros que no hayan sido rotados y comprimidos. La rotación de los registros en {% data variables.product.prodname_ghe_server %} se produce en diferentes frecuencias (diarias o semanales) para los diferentes archivos de registro, según el tamaño que pretendamos que tengan los registros. +To prevent bundles from becoming too large, bundles only contain logs that haven't been rotated and compressed. Log rotation on {% data variables.product.prodname_ghe_server %} happens at various frequencies (daily or weekly) for different log files, depending on how large we expect the logs to be. -### Crear un paquete de soporte extendido mediante SSH +### Creating an extended support bundle using SSH -Puedes utilizar estos pasos para crear y compartir un paquete de soporte extendido si tienes acceso de SSH a {% data variables.product.product_location %} y si tienes acceso externo a internet. +You can use these steps to create and share an extended support bundle if you have SSH access to {% data variables.product.product_location %} and you have outbound internet access. -1. Descarga el paquete de soporte extendido mediante SSH al agregar el marcador `-x` al comando `ghe-support-bundle`: +1. Download the extended support bundle via SSH by adding the `-x` flag to the `ghe-support-bundle` command: ```shell $ ssh -p 122 admin@hostname -- 'ghe-support-bundle -o -x' > support-bundle.tgz ``` {% data reusables.enterprise_enterprise_support.sign-in-to-support %} {% data reusables.enterprise_enterprise_support.upload-support-bundle %} -### Cargar un paquete de soporte extendido directamente usando SSH +### Uploading an extended support bundle directly using SSH -Puedes cargar directamente un paquete de soporte a nuestro servidor si: -- Tienes acceso de SSH a {% data variables.product.product_location %}. -- Se permiten las conexiones HTTPS salientes por el puerto 443 TCP desde {% data variables.product.product_location %} hacia _enterprise-bundles.github.com_ y _esbtoolsproduction.blob.core.windows.net_. +You can directly upload a support bundle to our server if: +- You have SSH access to {% data variables.product.product_location %}. +- Outbound HTTPS connections over TCP port 443 are allowed from {% data variables.product.product_location %} to _enterprise-bundles.github.com_ and _esbtoolsproduction.blob.core.windows.net_. -1. Cargar el paquete a nuestro servidor de paquete de soporte: +1. Upload the bundle to our support bundle server: ```shell $ ssh -p122 admin@hostname -- 'ghe-support-bundle -u -x' ``` -## Leer más +## Further reading -- "[Acerca de {% data variables.contact.enterprise_support %}](/enterprise/admin/guides/enterprise-support/about-github-enterprise-support)" -- "[Acerca de {% data variables.contact.premium_support %} para {% data variables.product.prodname_ghe_server %}](/enterprise/admin/guides/enterprise-support/about-github-premium-support-for-github-enterprise-server)". +- "[About {% data variables.contact.enterprise_support %}](/enterprise/admin/guides/enterprise-support/about-github-enterprise-support)" +- "[About {% data variables.contact.premium_support %} for {% data variables.product.prodname_ghe_server %}](/enterprise/admin/guides/enterprise-support/about-github-premium-support-for-github-enterprise-server)." diff --git a/translations/es-ES/content/admin/enterprise-support/receiving-help-from-github-support/reaching-github-support.md b/translations/es-ES/content/admin/enterprise-support/receiving-help-from-github-support/reaching-github-support.md index 70b1836838..9e60d8c73a 100644 --- a/translations/es-ES/content/admin/enterprise-support/receiving-help-from-github-support/reaching-github-support.md +++ b/translations/es-ES/content/admin/enterprise-support/receiving-help-from-github-support/reaching-github-support.md @@ -2,7 +2,7 @@ title: Reaching GitHub Support intro: 'Contact {% data variables.contact.enterprise_support %} using the {% ifversion ghes %}{% data variables.product.prodname_ghe_server %} {% data variables.enterprise.management_console %} or{% endif %} the support portal.' redirect_from: - - /enterprise/admin/guides/enterprise-support/reaching-github-enterprise-support/ + - /enterprise/admin/guides/enterprise-support/reaching-github-enterprise-support - /enterprise/admin/enterprise-support/reaching-github-support - /admin/enterprise-support/reaching-github-support versions: diff --git a/translations/es-ES/content/admin/github-actions/advanced-configuration-and-troubleshooting/backing-up-and-restoring-github-enterprise-server-with-github-actions-enabled.md b/translations/es-ES/content/admin/github-actions/advanced-configuration-and-troubleshooting/backing-up-and-restoring-github-enterprise-server-with-github-actions-enabled.md index 9b8f49062d..203f3fa1fb 100644 --- a/translations/es-ES/content/admin/github-actions/advanced-configuration-and-troubleshooting/backing-up-and-restoring-github-enterprise-server-with-github-actions-enabled.md +++ b/translations/es-ES/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: Respaldar y restablecer GitHub Enterprise Server con GitHub Actions habilitadas -shortTitle: Respaldar y restablecer -intro: 'Los datos de {% data variables.product.prodname_actions %} en tu proveedor de almacenamiento externo no se incluyen en los respaldos normales de {% data variables.product.prodname_ghe_server %} y deben respaldarse por separado.' +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.' versions: ghes: '*' type: how_to @@ -13,18 +13,43 @@ topics: redirect_from: - /admin/github-actions/backing-up-and-restoring-github-enterprise-server-with-github-actions-enabled --- - {% data reusables.actions.enterprise-storage-ha-backups %} -Si utilizas {% data variables.product.prodname_enterprise_backup_utilities %} para respaldar {% data variables.product.product_location %}, es importante que tomes en cuenta que los datos de las {% data variables.product.prodname_actions %} que se almacenan en tu proveedor de almacenamiento externo no se incluyen en el respaldo. +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. -Esta es una vista general de los pasos que se requieren para restablecer {% data variables.product.product_location %} con {% data variables.product.prodname_actions %} para un aplicativo nuevo: +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: -1. Confirmar que el aplicativo original esté fuera de línea. -1. Configurar manualmente los ajustes de red en el aplicativo de reemplazo de {% data variables.product.prodname_ghe_server %}. La configuración de red se excluye de la captura del respaldo y no los sobrescribe el `ghe-restore`. -1. Configura el aplicativo de reemplazo para utilizar la misma configuración de almacenamiento externo de {% data variables.product.prodname_actions %} que el aplicativo original. -1. Habilita {% data variables.product.prodname_actions %} en el aplicativo de reemplazo. Esto conectará el aplicativo de reemplazo al mismo almacenamiento externo de {% data variables.product.prodname_actions %}. -1. Después de que se configure {% data variables.product.prodname_actions %} con el proveedor de almacenamiento externo, utiliza el comando `ghe-restore` para restablecer el resto de los datos del respaldo. Para obtener más información, consulta la sección "[Restablecer un respaldo](/admin/configuration/configuring-backups-on-your-appliance#restoring-a-backup)". -1. Vuelve a registrar tus ejecutores auto-hospedados en el aplicativo de reemplazo. Para obtener más información, consulta la sección de [Agregar ejecutores autoalojados](/actions/hosting-your-own-runners/adding-self-hosted-runners). +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 + ``` + -Para obtener más información sobre respaldar y restablecer {% data variables.product.prodname_ghe_server %}, consulta la sección "[Configurar los respaldos en tu aplicativo](/admin/configuration/configuring-backups-on-your-appliance)". +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 %}. + + ```shell + ghe-config app.actions.enabled true + ghe-config-apply + ``` + +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). + +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)." diff --git a/translations/es-ES/content/admin/github-actions/getting-started-with-github-actions-for-your-enterprise/introducing-github-actions-to-your-enterprise.md b/translations/es-ES/content/admin/github-actions/getting-started-with-github-actions-for-your-enterprise/introducing-github-actions-to-your-enterprise.md index 6114f313f6..126b397d3a 100644 --- a/translations/es-ES/content/admin/github-actions/getting-started-with-github-actions-for-your-enterprise/introducing-github-actions-to-your-enterprise.md +++ b/translations/es-ES/content/admin/github-actions/getting-started-with-github-actions-for-your-enterprise/introducing-github-actions-to-your-enterprise.md @@ -24,7 +24,7 @@ Before you introduce {% data variables.product.prodname_actions %} to a large en ## Governance and compliance -Your should create a plan to govern your enterprise's use of {% data variables.product.prodname_actions %} and meet your compliance obligations. +You should create a plan to govern your enterprise's use of {% data variables.product.prodname_actions %} and meet your compliance obligations. Determine which actions your developers will be allowed to use. {% ifversion ghes %}First, decide whether you'll enable access to actions from outside your instance. {% data reusables.actions.access-actions-on-dotcom %} For more information, see "[About using actions in your enterprise](/admin/github-actions/managing-access-to-actions-from-githubcom/about-using-actions-in-your-enterprise)." @@ -62,7 +62,7 @@ You should consider adding manual approval protection for sensitive environments ### Security considerations for third-party actions -There is significant risk in sourcing actions from third-party repositories on {% data variables.product.prodname_dotcom %}. If you do allow any third-party actions, you should create internal guidelines that enourage your team to follow best practices, such as pinning actions to the full commit SHA. For more information, see "[Using third-party actions](/actions/security-guides/security-hardening-for-github-actions#using-third-party-actions)." +There is significant risk in sourcing actions from third-party repositories on {% data variables.product.prodname_dotcom %}. If you do allow any third-party actions, you should create internal guidelines that encourage your team to follow best practices, such as pinning actions to the full commit SHA. For more information, see "[Using third-party actions](/actions/security-guides/security-hardening-for-github-actions#using-third-party-actions)." ## Innersourcing @@ -72,7 +72,7 @@ Think about how your enterprise can use features of {% data variables.product.pr With reusable workflows, your team can call one workflow from another workflow, avoiding exact duplication. Reusable workflows promote best practice by helping your team use workflows that are well designed and have already been tested. For more information, see "[Reusing workflows](/actions/learn-github-actions/reusing-workflows)." {% endif %} -To provide a starting place for developers building new workflows, you can use workflow templates. This not only saves time for your developers, but promotes consistency and best practice across your enterprise. For more information, see "[Creating workflow templates](/actions/learn-github-actions/creating-workflow-templates)." +To provide a starting place for developers building new workflows, you can use starter workflows. This not only saves time for your developers, but promotes consistency and best practice across your enterprise. For more information, see "[Creating starter workflows for your organization](/actions/learn-github-actions/creating-starter-workflows-for-your-organization)." Whenever your workflow developers want to use an action that's stored in a private repository, they must configure the workflow to clone the repository first. To reduce the number of repositories that must be cloned, consider grouping commonly used actions in a single repository. For more information, see "[About custom actions](/actions/creating-actions/about-custom-actions#choosing-a-location-for-your-action)." diff --git a/translations/es-ES/content/admin/installation/setting-up-a-github-enterprise-server-instance/installing-github-enterprise-server-on-azure.md b/translations/es-ES/content/admin/installation/setting-up-a-github-enterprise-server-instance/installing-github-enterprise-server-on-azure.md index 514b440f73..748685a4e0 100644 --- a/translations/es-ES/content/admin/installation/setting-up-a-github-enterprise-server-instance/installing-github-enterprise-server-on-azure.md +++ b/translations/es-ES/content/admin/installation/setting-up-a-github-enterprise-server-instance/installing-github-enterprise-server-on-azure.md @@ -62,7 +62,7 @@ Before launching {% data variables.product.product_location %} on Azure, you'll {% data reusables.enterprise_installation.necessary_ports %} -4. Create and attach a new unencrypted data disk to the VM, and configure the size based on your user license count. For more information, see "[az vm disk attach](https://docs.microsoft.com/cli/azure/vm/disk?view=azure-cli-latest#az_vm_disk_attach)" in the Microsoft documentation. +4. Create and attach a new managed data disk to the VM, and configure the size based on your license count. All Azure managed disks created since June 10, 2017 are encrypted at rest by default with Storage Service Encryption (SSE). For more information about the `az vm disk attach` command, see "[az vm disk attach](https://docs.microsoft.com/cli/azure/vm/disk?view=azure-cli-latest#az_vm_disk_attach)" in the Microsoft documentation. Pass in options for the name of your VM (for example, `ghe-acme-corp`), the resource group, the premium storage SKU, the size of the disk (for example, `100`), and a name for the resulting VHD. diff --git a/translations/es-ES/content/admin/overview/about-github-ae.md b/translations/es-ES/content/admin/overview/about-github-ae.md index f48a97fdf7..62d5fcf17b 100644 --- a/translations/es-ES/content/admin/overview/about-github-ae.md +++ b/translations/es-ES/content/admin/overview/about-github-ae.md @@ -1,6 +1,6 @@ --- -title: Acerca de GitHub AE -intro: '{% data variables.product.prodname_ghe_managed %} es una forma de tener cumplimiento y seguridad ampliada para utilizar {% data variables.product.prodname_dotcom %} en la nube.' +title: About GitHub AE +intro: '{% data variables.product.prodname_ghe_managed %} is a security-enhanced and compliant way to use {% data variables.product.prodname_dotcom %} in the cloud.' versions: ghae: '*' type: overview @@ -9,32 +9,33 @@ topics: - Fundamentals --- -## Acerca de {% data variables.product.prodname_ghe_managed %} +## About {% data variables.product.prodname_ghe_managed %} -{% data reusables.github-ae.github-ae-enables-you %}{% data variables.product.prodname_ghe_managed %} es completamente administrador, confiable y escalable, lo cual te permite acelerar la entrega sin sacrificar la administración de riesgos. +{% data reusables.github-ae.github-ae-enables-you %} {% data variables.product.prodname_ghe_managed %} is fully managed, reliable, and scalable, allowing you to accelerate delivery without sacrificing risk management. -{% data variables.product.prodname_ghe_managed %} ofrece una plataforma de desarrollo que va desde la idea hasta la producción. Puedes incrementar la velocidad de desarrollo con las herramientas que los equipos conocen y adoran mientras mantienes el cumplimiento regulatorio y de la industria con controles de acceso y seguridad, automatización de flujos de trabajo y requerimiento de políticas únicos. +{% data variables.product.prodname_ghe_managed %} offers one developer platform from idea to production. You can increase development velocity with the tools that teams know and love, while you maintain industry and regulatory compliance with unique security and access controls, workflow automation, and policy enforcement. -## Una nube de disponibilidad alta y escala planetaria +## A highly available and planet-scale cloud -{% data variables.product.prodname_ghe_managed %} es un servicio totalmente administrado, el cual se hospeda en una arquitectura de disponibilidad alta. {% data variables.product.prodname_ghe_managed %} se hospeda globalmente en una nube que puede escalarse para ser compatible con el ciclo de vida integral de tu desarrollo, sin límites. {% data variables.product.prodname_dotcom %} administra integralmente los respaldos, recuperaciones de fallos y de desastres para que jamás tengas que preocuparte por tus datos o tu servicio. +{% data variables.product.prodname_ghe_managed %} is a fully managed service, hosted in a high availability architecture. {% data variables.product.prodname_ghe_managed %} is hosted globally in a cloud that can scale to support your full development lifecycle without limits. {% data variables.product.prodname_dotcom %} fully manages backups, failover, and disaster recovery, so you never need to worry about your service or data. -## Residencia de los datos +## Data residency -Todos tus datos se almacenan dentro de la región geográfica de tu elección. Puedes apegarte a la GDPR y a los estándares de protección de datos globales manteniendo todos tus datos dentro de tu región de elección. +All of your data is stored within the geographic region of your choosing. You can comply with GDPR and global data protection standards by keeping all of your data within your chosen region. -## Cuentas aisladas +## Isolated accounts -Todas las cuentas de desarrollador se aislan por completo en {% data variables.product.prodname_ghe_managed %}. Puedes controlar las cuentas integralmente a través de tu proveedor de identidad, haciendo obligatorio el inicio de sesión único de SAML. El SCIM te permite garantizar que los empleados solo tengan acceso a los recursos que necesitan, de acuerdo como se define en tu sistema central de administración de identidades. Para obtener más información, consulta la sección "[Administrar el acceso y la identidad en tu empresa](/admin/authentication/managing-identity-and-access-for-your-enterprise)". +All developer accounts are fully isolated in {% data variables.product.prodname_ghe_managed %}. You can fully control the accounts through your identity provider, with SAML single sign on as mandatory. SCIM enables you to ensure that employees only have access to the resources they should, as defined in your central identity management system. For more information, see "[Managing identity and access for your enterprise](/admin/authentication/managing-identity-and-access-for-your-enterprise)." -## Acceso restringido a las redes +## Restricted network access -Asegura el acceso a tu empresa en {% data variables.product.prodname_ghe_managed %} con políticas de acceso restrictivo para que solo se pueda llegar a tus datos desde dentro de tu red. Para obtener más información, consulta la sección "[Restringir el tráfico de red para tu empresa](/admin/configuration/restricting-network-traffic-to-your-enterprise)". +Secure access to your enterprise on {% data variables.product.prodname_ghe_managed %} with restricted network access, so that your data can only be accessed from within your network. For more information, see "[Restricting network traffic to your enterprise](/admin/configuration/restricting-network-traffic-to-your-enterprise)." -## Ambientes comerciales y gubernamentales +## Commercial and government environments -{% data variables.product.prodname_ghe_managed %} se encuentra disponible en la nube de Azure Government, la nube de confianza de las agencias gubernamentales de los EE.UU. y de sus socios. {% data variables.product.prodname_ghe_managed %} también se encuentra disponible en la nube comercial, para que puedas elegir el ambiente de hospedaje que se adecua a tu organización. +{% data variables.product.prodname_ghe_managed %} is available in the Azure Government cloud, the trusted cloud for US government agencies and their partners. {% data variables.product.prodname_ghe_managed %} is also available in the commercial cloud, so you can choose the hosting environment that is right for your organization. -## Leer más +## Further reading -- "[Recibir ayuda del soporte de {% data variables.product.company_short %}](/admin/enterprise-support/receiving-help-from-github-support)" +- "[About versions of {% data variables.product.prodname_docs %}](/get-started/learning-about-github/about-versions-of-github-docs)" +- "[Receiving help from {% data variables.product.company_short %} Support](/admin/enterprise-support/receiving-help-from-github-support)" diff --git a/translations/es-ES/content/admin/packages/configuring-package-ecosystem-support-for-your-enterprise.md b/translations/es-ES/content/admin/packages/configuring-package-ecosystem-support-for-your-enterprise.md index e7fe0a9f22..7ee3e6fde6 100644 --- a/translations/es-ES/content/admin/packages/configuring-package-ecosystem-support-for-your-enterprise.md +++ b/translations/es-ES/content/admin/packages/configuring-package-ecosystem-support-for-your-enterprise.md @@ -1,6 +1,6 @@ --- -title: Configurar la compatibilidad del ecosistema de paquetes para tu empresa -intro: 'Puedes configurar el {% data variables.product.prodname_registry %} para tu empresa si habilitas o inhabilitas globalmente los ecosistemas de paquetes individuales en tu empresa, incluyendo Docker, RubyGems, npm, Apache Maven, Gradle o NuGet. Aprende sobre otros requisitos de configuración para hacer compatibles algunos ecosistemas de paquetes específicos.' +title: Configuring package ecosystem support for your enterprise +intro: 'You can configure {% data variables.product.prodname_registry %} for your enterprise by globally enabling or disabling individual package ecosystems on your enterprise, including Docker, RubyGems, npm, Apache Maven, Gradle, or NuGet. Learn about other configuration requirements to support specific package ecosystems.' redirect_from: - /enterprise/admin/packages/configuring-packages-support-for-your-enterprise - /admin/packages/configuring-packages-support-for-your-enterprise @@ -10,39 +10,43 @@ type: how_to topics: - Enterprise - Packages -shortTitle: Configurar los ecosistemas de paquetes +shortTitle: Configure package ecosystems --- {% data reusables.package_registry.packages-ghes-release-stage %} -## Habilitar o inhabilitar los ecosistemas de paquetes individuales +## Enabling or disabling individual package ecosystems -Para prevenir que los paquetes nuevos se carguen, puedes configurar un ecosistema que hayas habilitado previamente como **Solo lectura**, mientras aún permites que los paquetes existentes se descarguen. +To prevent new packages from being uploaded, you can set an ecosystem you previously enabled to **Read-Only**, while still allowing existing packages to be downloaded. {% data reusables.enterprise_site_admin_settings.access-settings %} {% data reusables.enterprise_site_admin_settings.management-console %} {% data reusables.enterprise_site_admin_settings.packages-tab %} -1. Debajo de "Alternación de ecosistema", para cada tipo de paquete, selecciona **Enabled**, **Read-Only**, o **Disabled**. ![Alternación de ecosistemas](/assets/images/enterprise/site-admin-settings/ecosystem-toggles.png) +1. Under "Ecosystem Toggles", for each package type, select **Enabled**, **Read-Only**, or **Disabled**.{% ifversion ghes > 3.1 %} + ![Ecosystem toggles](/assets/images/enterprise/site-admin-settings/ecosystem-toggles.png){% else %} + ![Ecosystem toggles](/assets/images/enterprise/3.1/site-admin-settings/ecosystem-toggles.png){% endif %} {% data reusables.enterprise_management_console.save-settings %} {% ifversion ghes = 3.0 or ghes > 3.0 %} -## Conectarse al registro oficial de npm +## Connecting to the official npm registry -Si habilitaste los paquetes de npm en tu empresa y quieres permitir el acceso tanto al registro oficial de npm como al registro de npm del {% data variables.product.prodname_registry %}, entonces debes realizar algunas configuraciones adicionales. +If you've enabled npm packages on your enterprise and want to allow access to the official npm registry as well as the {% data variables.product.prodname_registry %} npm registry, then you must perform some additional configuration. -El {% data variables.product.prodname_registry %} utiliza un proxy transparente para el tráfico de red que se conecta al registro oficial de npm en `registry.npmjs.com`. El proxy se habilita predeterminadamente y no puede inhabilitarse. +{% data variables.product.prodname_registry %} uses a transparent proxy for network traffic that connects to the official npm registry at `registry.npmjs.com`. The proxy is enabled by default and cannot be disabled. -Para permitir las conexiones al registro de npm, deberás configurar las ACLs de red que permitan que {% data variables.product.prodname_ghe_server %} envíe tráfico HTTPS a `registry.npmjs.com` por el puerto 443: +To allow network connections to the npm registry, you will need to configure network ACLs that allow {% data variables.product.prodname_ghe_server %} to send HTTPS traffic to `registry.npmjs.com` over port 443: -| Origen | Destino | Port (Puerto) | Tipo | -| -------------------------------------------------- | -------------------- | ------------- | ----- | -| {% data variables.product.prodname_ghe_server %} | `registry.npmjs.com` | TCP/443 | HTTPS | +| Source | Destination | Port | Type | +|---|---|---|---| +| {% data variables.product.prodname_ghe_server %} | `registry.npmjs.com` | TCP/443 | HTTPS | -Nota que las conexiones a `registry.npmjs.com` atraviesan por la red de Cloudflare y, subsecuentemente, no se conectan a una IP estática única; en vez de esto, se hace una conexión a una dirección IP dentro de los rangos CIDR que se listan aquí: https://www.cloudflare.com/ips/. +Note that connections to `registry.npmjs.com` traverse through the Cloudflare network, and subsequently do not connect to a single static IP address; instead, a connection is made to an IP address within the CIDR ranges listed here: https://www.cloudflare.com/ips/. + +If you wish to enable npm upstream sources, select `Enabled` for `npm upstreaming`. {% endif %} -## Pasos siguientes +## Next steps -Como paso siguiente, te recomendamos verificar si necesitas actualizar o cargar un certificado TLS para tu URL de hospedaje de paquetes. Para obtener más información, consulta la sección "[Iniciar con GitHub Packages para tu empresa](/admin/packages/getting-started-with-github-packages-for-your-enterprise)". +As a next step, we recommend you check if you need to update or upload a TLS certificate for your packages host URL. For more information, see "[Getting started with GitHub Packages for your enterprise](/admin/packages/getting-started-with-github-packages-for-your-enterprise)." diff --git a/translations/es-ES/content/admin/policies/enforcing-policies-for-your-enterprise/enforcing-policies-for-dependency-insights-in-your-enterprise.md b/translations/es-ES/content/admin/policies/enforcing-policies-for-your-enterprise/enforcing-policies-for-dependency-insights-in-your-enterprise.md index 68366b25d9..3756eb9670 100644 --- a/translations/es-ES/content/admin/policies/enforcing-policies-for-your-enterprise/enforcing-policies-for-dependency-insights-in-your-enterprise.md +++ b/translations/es-ES/content/admin/policies/enforcing-policies-for-your-enterprise/enforcing-policies-for-dependency-insights-in-your-enterprise.md @@ -4,7 +4,7 @@ intro: 'You can enforce policies for dependency insights within your enterprise' permissions: Enterprise owners can enforce policies for dependency insights in an enterprise. product: '{% data reusables.gated-features.enterprise-accounts %}' redirect_from: - - /articles/enforcing-a-policy-on-dependency-insights/ + - /articles/enforcing-a-policy-on-dependency-insights - /articles/enforcing-a-policy-on-dependency-insights-in-your-enterprise-account - /github/setting-up-and-managing-your-enterprise-account/enforcing-a-policy-on-dependency-insights-in-your-enterprise-account - /github/setting-up-and-managing-your-enterprise/enforcing-a-policy-on-dependency-insights-in-your-enterprise-account @@ -22,14 +22,16 @@ shortTitle: Policies for dependency insights ## About policies for dependency insights in your enterprise -Dependency insights show all packages that repositories within your enterprise's organizations depend on. Dependency insights include aggregated information about security advisories and licenses. Para obtener más información, consulta "[Ver información de tu organización](/organizations/collaborating-with-groups-in-organizations/viewing-insights-for-your-organization)". +Dependency insights show all packages that repositories within your enterprise's organizations depend on. Dependency insights include aggregated information about security advisories and licenses. For more information, see "[Viewing insights for your organization](/organizations/collaborating-with-groups-in-organizations/viewing-insights-for-your-organization)." ## Enforcing a policy for visibility of dependency insights -Across all organizations owned by your enterprise, you can control whether organization members can view dependency insights. You can also allow owners to administer the setting on the organization level. Para obtener más información, consulta "[Cambiar la visibilidad de la información de dependencias de la organización](/organizations/managing-organization-settings/changing-the-visibility-of-your-organizations-dependency-insights)". +Across all organizations owned by your enterprise, you can control whether organization members can view dependency insights. You can also allow owners to administer the setting on the organization level. For more information, see "[Changing the visibility of your organization's dependency insights](/organizations/managing-organization-settings/changing-the-visibility-of-your-organizations-dependency-insights)." {% data reusables.enterprise-accounts.access-enterprise %} {% data reusables.enterprise-accounts.policies-tab %} -3. In the left sidebar, click **Organizations**. ![Organizations tab in the enterprise sidebar](/assets/images/help/business-accounts/settings-policies-org-tab.png) -4. En "Políticas de la organización", revisa la información sobre cómo modificar los parámetros. {% data reusables.enterprise-accounts.view-current-policy-config-orgs %} -5. En "Políticas de la organización", usa el menú desplegable y elige una política. ![Menú desplegable con opciones de políticas de la organización](/assets/images/help/business-accounts/organization-policy-drop-down.png) +3. In the left sidebar, click **Organizations**. + ![Organizations tab in the enterprise sidebar](/assets/images/help/business-accounts/settings-policies-org-tab.png) +4. Under "Organization policies", review the information about changing the setting. {% data reusables.enterprise-accounts.view-current-policy-config-orgs %} +5. Under "Organization policies", use the drop-down menu and choose a policy. + ![Drop-down menu with organization policies options](/assets/images/help/business-accounts/organization-policy-drop-down.png) diff --git a/translations/es-ES/content/admin/policies/enforcing-policies-for-your-enterprise/enforcing-policies-for-security-settings-in-your-enterprise.md b/translations/es-ES/content/admin/policies/enforcing-policies-for-your-enterprise/enforcing-policies-for-security-settings-in-your-enterprise.md index 737721032e..580c1dcf78 100644 --- a/translations/es-ES/content/admin/policies/enforcing-policies-for-your-enterprise/enforcing-policies-for-security-settings-in-your-enterprise.md +++ b/translations/es-ES/content/admin/policies/enforcing-policies-for-your-enterprise/enforcing-policies-for-security-settings-in-your-enterprise.md @@ -5,8 +5,8 @@ permissions: Enterprise owners can enforce policies for security settings in an product: '{% data reusables.gated-features.enterprise-accounts %}' miniTocMaxHeadingLevel: 3 redirect_from: - - /articles/enforcing-security-settings-for-organizations-in-your-business-account/ - - /articles/enforcing-security-settings-for-organizations-in-your-enterprise-account/ + - /articles/enforcing-security-settings-for-organizations-in-your-business-account + - /articles/enforcing-security-settings-for-organizations-in-your-enterprise-account - /articles/enforcing-security-settings-in-your-enterprise-account - /github/articles/managing-allowed-ip-addresses-for-organizations-in-your-enterprise-account - /github/setting-up-and-managing-your-enterprise-account/enforcing-security-settings-in-your-enterprise-account diff --git a/translations/es-ES/content/admin/policies/enforcing-policies-for-your-enterprise/enforcing-project-board-policies-in-your-enterprise.md b/translations/es-ES/content/admin/policies/enforcing-policies-for-your-enterprise/enforcing-project-board-policies-in-your-enterprise.md index ab35104241..251c60ac98 100644 --- a/translations/es-ES/content/admin/policies/enforcing-policies-for-your-enterprise/enforcing-project-board-policies-in-your-enterprise.md +++ b/translations/es-ES/content/admin/policies/enforcing-policies-for-your-enterprise/enforcing-project-board-policies-in-your-enterprise.md @@ -4,8 +4,8 @@ intro: 'You can enforce policies for projects within your enterprise''s organiza permissions: Enterprise owners can enforce policies for project boards in an enterprise. product: '{% data reusables.gated-features.enterprise-accounts %}' redirect_from: - - /articles/enforcing-project-board-settings-for-organizations-in-your-business-account/ - - /articles/enforcing-project-board-policies-for-organizations-in-your-enterprise-account/ + - /articles/enforcing-project-board-settings-for-organizations-in-your-business-account + - /articles/enforcing-project-board-policies-for-organizations-in-your-enterprise-account - /articles/enforcing-project-board-policies-in-your-enterprise-account - /github/setting-up-and-managing-your-enterprise-account/enforcing-project-board-policies-in-your-enterprise-account - /github/setting-up-and-managing-your-enterprise/enforcing-project-board-policies-in-your-enterprise-account diff --git a/translations/es-ES/content/admin/policies/enforcing-policies-for-your-enterprise/enforcing-repository-management-policies-in-your-enterprise.md b/translations/es-ES/content/admin/policies/enforcing-policies-for-your-enterprise/enforcing-repository-management-policies-in-your-enterprise.md index 68e7fb8975..be790e0250 100644 --- a/translations/es-ES/content/admin/policies/enforcing-policies-for-your-enterprise/enforcing-repository-management-policies-in-your-enterprise.md +++ b/translations/es-ES/content/admin/policies/enforcing-policies-for-your-enterprise/enforcing-repository-management-policies-in-your-enterprise.md @@ -10,26 +10,26 @@ redirect_from: - /enterprise/admin/user-management/restricting-repository-creation-in-your-instance - /enterprise/admin/user-management/preventing-users-from-deleting-organization-repositories - /enterprise/admin/installation/setting-git-push-limits - - /enterprise/admin/guides/installation/git-server-settings/ - - /enterprise/admin/articles/setting-git-push-limits/ + - /enterprise/admin/guides/installation/git-server-settings + - /enterprise/admin/articles/setting-git-push-limits - /enterprise/admin/user-management/allowing-admins-to-enable-anonymous-git-read-access-to-public-repositories - /enterprise/admin/installation/disabling-the-merge-conflict-editor-for-pull-requests-between-repositories - /enterprise/admin/developer-workflow/blocking-force-pushes-on-your-appliance - /enterprise/admin/developer-workflow/blocking-force-pushes-to-repositories-owned-by-a-user-account-or-organization - /enterprise/admin/developer-workflow/blocking-force-pushes-to-a-repository - - /enterprise/admin/articles/blocking-force-pushes-on-your-appliance/ - - /enterprise/admin/guides/user-management/preventing-users-from-changing-anonymous-git-read-access-to-a-repository/ + - /enterprise/admin/articles/blocking-force-pushes-on-your-appliance + - /enterprise/admin/guides/user-management/preventing-users-from-changing-anonymous-git-read-access-to-a-repository - /enterprise/admin/user-management/preventing-users-from-changing-anonymous-git-read-access - - /enterprise/admin/articles/blocking-force-pushes-to-a-repository/ - - /enterprise/admin/articles/block-force-pushes/ - - /enterprise/admin/articles/blocking-force-pushes-for-a-user-account/ - - /enterprise/admin/articles/blocking-force-pushes-for-an-organization/ - - /enterprise/admin/articles/blocking-force-pushes-to-repositories-owned-by-a-user-account-or-organization/ + - /enterprise/admin/articles/blocking-force-pushes-to-a-repository + - /enterprise/admin/articles/block-force-pushes + - /enterprise/admin/articles/blocking-force-pushes-for-a-user-account + - /enterprise/admin/articles/blocking-force-pushes-for-an-organization + - /enterprise/admin/articles/blocking-force-pushes-to-repositories-owned-by-a-user-account-or-organization - /enterprise/admin/developer-workflow/blocking-force-pushes - /enterprise/admin/policies/enforcing-repository-management-policies-in-your-enterprise - /admin/policies/enforcing-repository-management-policies-in-your-enterprise - - /articles/enforcing-repository-management-settings-for-organizations-in-your-business-account/ - - /articles/enforcing-repository-management-policies-for-organizations-in-your-enterprise-account/ + - /articles/enforcing-repository-management-settings-for-organizations-in-your-business-account + - /articles/enforcing-repository-management-policies-for-organizations-in-your-enterprise-account - /articles/enforcing-repository-management-policies-in-your-enterprise-account - /github/setting-up-and-managing-your-enterprise-account/enforcing-repository-management-policies-in-your-enterprise-account - /github/setting-up-and-managing-your-enterprise/enforcing-repository-management-policies-in-your-enterprise-account diff --git a/translations/es-ES/content/admin/policies/enforcing-policies-for-your-enterprise/enforcing-team-policies-in-your-enterprise.md b/translations/es-ES/content/admin/policies/enforcing-policies-for-your-enterprise/enforcing-team-policies-in-your-enterprise.md index 179e203f6b..14860a36f6 100644 --- a/translations/es-ES/content/admin/policies/enforcing-policies-for-your-enterprise/enforcing-team-policies-in-your-enterprise.md +++ b/translations/es-ES/content/admin/policies/enforcing-policies-for-your-enterprise/enforcing-team-policies-in-your-enterprise.md @@ -4,8 +4,8 @@ intro: 'You can enforce policies for teams in your enterprise''s organizations, permissions: Enterprise owners can enforce policies for teams in an enterprise. product: '{% data reusables.gated-features.enterprise-accounts %}' redirect_from: - - /articles/enforcing-team-settings-for-organizations-in-your-business-account/ - - /articles/enforcing-team-policies-for-organizations-in-your-enterprise-account/ + - /articles/enforcing-team-settings-for-organizations-in-your-business-account + - /articles/enforcing-team-policies-for-organizations-in-your-enterprise-account - /articles/enforcing-team-policies-in-your-enterprise-account - /github/setting-up-and-managing-your-enterprise-account/enforcing-team-policies-in-your-enterprise-account - /github/setting-up-and-managing-your-enterprise/enforcing-team-policies-in-your-enterprise-account @@ -24,14 +24,16 @@ shortTitle: Team policies ## About policies for teams in your enterprise -You can enforce policies to control how members of your enterprise on {% data variables.product.product_name %} manage teams. You can also allow organization owners to manage policies for teams. Para obtener más información, consulta la sección "[Acerca de los equipos](/organizations/organizing-members-into-teams/about-teams)". +You can enforce policies to control how members of your enterprise on {% data variables.product.product_name %} manage teams. You can also allow organization owners to manage policies for teams. For more information, see "[About teams](/organizations/organizing-members-into-teams/about-teams)." -## Hacer cumplir una política para los debates de equipo +## Enforcing a policy for team discussions -Across all organizations owned by your enterprise, you can enable or disable team discussions, or allow owners to administer the setting on the organization level. Para obtener más información, consulta [Acerca de los debates del equipo](/organizations/collaborating-with-your-team/about-team-discussions/)". +Across all organizations owned by your enterprise, you can enable or disable team discussions, or allow owners to administer the setting on the organization level. For more information, see "[About team discussions](/organizations/collaborating-with-your-team/about-team-discussions/)." {% data reusables.enterprise-accounts.access-enterprise %} {% data reusables.enterprise-accounts.policies-tab %} -3. En la barra lateral izquierda, haz clic en **Teams (Equipos)**. ![Teams tab in the enterprise sidebar](/assets/images/help/business-accounts/settings-teams-tab.png) -4. En "Debates de equipo", revisa la información sobre cómo modificar los parámetros. {% data reusables.enterprise-accounts.view-current-policy-config-orgs %} -5. En "Debates de equipo", usa el menú desplegable y elige una política. ![Menú desplegable con opciones de políticas de debate de equipo](/assets/images/help/business-accounts/team-discussion-policy-drop-down.png) +3. In the left sidebar, click **Teams**. + ![Teams tab in the enterprise sidebar](/assets/images/help/business-accounts/settings-teams-tab.png) +4. Under "Team discussions", review the information about changing the setting. {% data reusables.enterprise-accounts.view-current-policy-config-orgs %} +5. Under "Team discussions", use the drop-down menu and choose a policy. + ![Drop-down menu with team discussion policy options](/assets/images/help/business-accounts/team-discussion-policy-drop-down.png) diff --git a/translations/es-ES/content/admin/policies/enforcing-policy-with-pre-receive-hooks/creating-a-pre-receive-hook-script.md b/translations/es-ES/content/admin/policies/enforcing-policy-with-pre-receive-hooks/creating-a-pre-receive-hook-script.md index c790608cdb..48b09b3704 100644 --- a/translations/es-ES/content/admin/policies/enforcing-policy-with-pre-receive-hooks/creating-a-pre-receive-hook-script.md +++ b/translations/es-ES/content/admin/policies/enforcing-policy-with-pre-receive-hooks/creating-a-pre-receive-hook-script.md @@ -1,6 +1,6 @@ --- -title: Crear un script de ganchos de pre-recepción -intro: Usa los scripts de los ganchos de pre-recepción para crear requisitos para aceptar o rechazar una subida en función de los contenidos. +title: Creating a pre-receive hook script +intro: Use pre-receive hook scripts to create requirements for accepting or rejecting a push based on the contents. miniTocMaxHeadingLevel: 3 redirect_from: - /enterprise/admin/developer-workflow/creating-a-pre-receive-hook-script @@ -13,144 +13,143 @@ topics: - Enterprise - Policies - Pre-receive hooks -shortTitle: Scripts de ganchos de pre-recepción +shortTitle: Pre-receive hook scripts --- +You can see examples of pre-receive hooks for {% data variables.product.prodname_ghe_server %} in the [`github/platform-samples` repository](https://github.com/github/platform-samples/tree/master/pre-receive-hooks). -Puedes ver los ejemplos de los ganchos de pre-recepción para {% data variables.product.prodname_ghe_server %} en el repositorio [`github/platform-samples`](https://github.com/github/platform-samples/tree/master/pre-receive-hooks). - -## Escribir un script de ganchos de pre-recepción -Un script de gancho de pre-recepción se ejecuta en un ambiente de gancho de pre-recepción en {% data variables.product.product_location %}. Cuando creas un script de gancho de pre-recepción, considera las entradas, resultados, estado de salida y variables de ambiente. +## Writing a pre-receive hook script +A pre-receive hook script executes in a pre-receive hook environment on {% data variables.product.product_location %}. When you create a pre-receive hook script, consider the available input, output, exit status, and environment variables. ### Input (`stdin`) -Después de que ocurre una subida y antes de que se actualice cualquier referencia para el repositorio remoto, el proceso de `git-receive-pack` en {% data variables.product.product_location %} invoca el script de gancho de pre-recepción. La entrada estándar para el script, `stdin`, es una secuencia que contiene una línea que cada referencia actualizará. Cada línea contiene el nombre anterior del objeto para la referencia, el nombre nuevo del objeto para la referencia, y el nombre completo de la referencia. +After a push occurs and before any refs are updated for the remote repository, the `git-receive-pack` process on {% data variables.product.product_location %} invokes the pre-receive hook script. Standard input for the script, `stdin`, is a string containing a line for each ref to update. Each line contains the old object name for the ref, the new object name for the ref, and the full name of the ref. ``` SP SP LF ``` -Esta secuencia representa los siguientes argumentos. +This string represents the following arguments. -| Argumento | Descripción | -|:------------------- |:--------------------------------------------------------------------------------------------------------------------------------- | -| `` | El nombre anterior del objeto se almacena en la referencia.
Cuando creas una referencia nueva, el valor es de 40 ceros. | -| `` | Nombre del objeto nuevo que se almacenará en la referencia.
Cuando borras una referencia, el valor es de 40 ceros. | -| `` | El nombre completo de la referencia. | +| Argument | Description | +| :------------- | :------------- | +| `` | Old object name stored in the ref.
When you create a new ref, the value is 40 zeroes. | +| `` | New object name to be stored in the ref.
When you delete a ref, the value is 40 zeroes. | +| `` | The full name of the ref. | -Para obtener más información sobre `git-receive-pack`, consulta "[git-receive-pack](https://git-scm.com/docs/git-receive-pack)" en la documentación de Git. Para obtener más información sobre las referencias, consulta la sección "[Referencias de Git](https://git-scm.com/book/en/v2/Git-Internals-Git-References)" en *Pro Git*. +For more information about `git-receive-pack`, see "[git-receive-pack](https://git-scm.com/docs/git-receive-pack)" in the Git documentation. For more information about refs, see "[Git References](https://git-scm.com/book/en/v2/Git-Internals-Git-References)" in *Pro Git*. ### Output (`stdout`) -La salida estándar para el script, `stdout`, se pasa de vuelta al cliente. El usuario en la línea de comando o en la interface de usuario podrá ver cualquier declaración de tipo `echo`. +The standard output for the script, `stdout`, is passed back to the client. Any `echo` statements will be visible to the user on the command line or in the user interface. -### Estado de salida +### Exit status -El estado de salida de un script de pre-recepción determina si la subida se aceptará. +The exit status of a pre-receive script determines if the push will be accepted. -| Valor del estado de salida | Acción | -|:-------------------------- |:------------------------- | -| 0 | La subida será aceptada. | -| no cero | La subida será rechazada. | +| Exit-status value | Action | +| :- | :- | +| 0 | The push will be accepted. | +| non-zero | The push will be rejected. | -### Variables del entorno +### Environment variables -Adicionalmente a la entrada estándar de tu script de gancho de pre-recepción, `stdin`, {% data variables.product.prodname_ghe_server %} pone a disposición las siguientes variables en el ambiente Bash para la ejecución de tu script. Para obtener más información sobre `stdin` para tu script de gancho de pre-recepción, consulta la sección "[Input(`stdin`)](#input-stdin)". +In addition to the standard input for your pre-receive hook script, `stdin`, {% data variables.product.prodname_ghe_server %} makes the following variables available in the Bash environment for your script's execution. For more information about `stdin` for your pre-receive hook script, see "[Input (`stdin`)](#input-stdin)." -Hay diversas variables de ambiente disponibles para tu script de gancho de pre-recepción dependiendo de lo que active a dicho script para su ejecución. +Different environment variables are available to your pre-receive hook script depending on what triggers the script to run. -- [Siempre disponible](#always-available) -- [Disponible para subidas desde la interface web o API](#available-for-pushes-from-the-web-interface-or-api) -- [Disponible para las fusiones de solicitudes de cambio](#available-for-pull-request-merges) -- [Disponible para las subidas utilizando autenticación por SSH](#available-for-pushes-using-ssh-authentication) +- [Always available](#always-available) +- [Available for pushes from the web interface or API](#available-for-pushes-from-the-web-interface-or-api) +- [Available for pull request merges](#available-for-pull-request-merges) +- [Available for pushes using SSH authentication](#available-for-pushes-using-ssh-authentication) -#### Siempre disponible +#### Always available -Las siguientes variables siempre están disponibles en el ambiente de gancho de pre-recepción. +The following variables are always available in the pre-receive hook environment. -| Variable | Descripción | Valor de ejemplo | -|:------------------------- |:------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |:------------------------------------------------------------------ | -|