From 7498cdabb7878554b4cd33d9978bbe03c0c26254 Mon Sep 17 00:00:00 2001 From: docubot <67483024+docubot@users.noreply.github.com> Date: Thu, 3 Mar 2022 04:38:23 -0800 Subject: [PATCH 1/6] New translation batch for cn (#25764) * Add crowdin translations * Run script/i18n/homogenize-frontmatter.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=cn * run script/i18n/reset-known-broken-translation-files.js * Check in cn CSV report --- translations/log/cn-resets.csv | 1 + ...ess-to-self-hosted-runners-using-groups.md | 2 +- .../using-workflows/reusing-workflows.md | 4 +- .../using-workflows/triggering-a-workflow.md | 35 +++++++++++- .../overview/about-enterprise-accounts.md | 4 +- .../index.md | 1 + ...n-organization-owned-by-your-enterprise.md | 54 +++++++++++++++++++ .../index.md | 1 + .../removing-a-member-from-your-enterprise.md | 39 ++++++++++++++ .../roles-in-an-enterprise.md | 11 +++- ...updating-your-github-access-credentials.md | 6 +++ .../error-permission-denied-publickey.md | 4 +- .../about-billing-for-codespaces.md | 2 +- ...managing-spending-limits-for-codespaces.md | 16 +++--- .../setting-your-billing-email.md | 28 +++++----- ...ding-your-license-for-github-enterprise.md | 8 +-- .../github-security-features.md | 7 ++- .../about-the-security-overview.md | 27 ++++++++-- .../viewing-the-security-overview.md | 7 +++ .../codespaces/getting-started/quickstart.md | 46 ++++++++-------- .../creating-a-branch-for-an-issue.md | 34 ++++++++++++ .../tracking-your-work-with-issues/index.md | 1 + .../linking-a-pull-request-to-an-issue.md | 4 ++ .../about-ssh-certificate-authorities.md | 10 ++-- ...emoving-a-member-from-your-organization.md | 6 +-- .../deleting-an-organization-account.md | 6 +-- ...ership-continuity-for-your-organization.md | 4 ++ .../roles-in-an-organization.md | 4 ++ .../about-scim.md | 5 +- ...shooting-identity-and-access-management.md | 8 ++- .../working-with-forks/syncing-a-fork.md | 16 +++++- .../managing-a-branch-protection-rule.md | 12 ++--- .../duplicating-a-repository.md | 10 ++-- ...-objects-in-archives-of-your-repository.md | 2 +- .../repositories/working-with-files/index.md | 6 +-- .../moving-a-file-to-a-new-location.md | 4 +- .../features/enterprise-owner-join-org.yml | 5 ++ .../features/remove-enterprise-members.yml | 5 ++ .../actions/runner-group-assign-policy-org.md | 2 +- .../runner-group-assign-policy-repo.md | 2 +- .../reusables/billing/email-notifications.md | 2 +- .../scim/changes-should-come-from-idp.md | 1 + translations/zh-CN/data/ui.yml | 6 +++ 43 files changed, 353 insertions(+), 105 deletions(-) create mode 100644 translations/zh-CN/content/admin/user-management/managing-organizations-in-your-enterprise/managing-your-role-in-an-organization-owned-by-your-enterprise.md create mode 100644 translations/zh-CN/content/admin/user-management/managing-users-in-your-enterprise/removing-a-member-from-your-enterprise.md create mode 100644 translations/zh-CN/content/issues/tracking-your-work-with-issues/creating-a-branch-for-an-issue.md create mode 100644 translations/zh-CN/data/features/enterprise-owner-join-org.yml create mode 100644 translations/zh-CN/data/features/remove-enterprise-members.yml create mode 100644 translations/zh-CN/data/reusables/scim/changes-should-come-from-idp.md diff --git a/translations/log/cn-resets.csv b/translations/log/cn-resets.csv index 98bc6a43cf80..257ebdeeb73d 100644 --- a/translations/log/cn-resets.csv +++ b/translations/log/cn-resets.csv @@ -84,6 +84,7 @@ translations/zh-CN/content/billing/managing-billing-for-your-github-account/inde translations/zh-CN/content/billing/managing-billing-for-your-github-account/upgrading-your-github-subscription.md,parsing error translations/zh-CN/content/billing/managing-licenses-for-visual-studio-subscriptions-with-github-enterprise/about-visual-studio-subscriptions-with-github-enterprise.md,broken liquid tags translations/zh-CN/content/billing/managing-your-license-for-github-enterprise/about-licenses-for-github-enterprise.md,broken liquid tags +translations/zh-CN/content/billing/managing-your-license-for-github-enterprise/downloading-your-license-for-github-enterprise.md,parsing error translations/zh-CN/content/billing/managing-your-license-for-github-enterprise/syncing-license-usage-between-github-enterprise-server-and-github-enterprise-cloud.md,parsing error translations/zh-CN/content/billing/managing-your-license-for-github-enterprise/uploading-a-new-license-to-github-enterprise-server.md,broken liquid tags translations/zh-CN/content/billing/managing-your-license-for-github-enterprise/viewing-license-usage-for-github-enterprise.md,broken liquid tags diff --git a/translations/zh-CN/content/actions/hosting-your-own-runners/managing-access-to-self-hosted-runners-using-groups.md b/translations/zh-CN/content/actions/hosting-your-own-runners/managing-access-to-self-hosted-runners-using-groups.md index c4295d60de9a..619aedbef9dd 100644 --- a/translations/zh-CN/content/actions/hosting-your-own-runners/managing-access-to-self-hosted-runners-using-groups.md +++ b/translations/zh-CN/content/actions/hosting-your-own-runners/managing-access-to-self-hosted-runners-using-groups.md @@ -122,7 +122,7 @@ shortTitle: 管理运行器组 ![添加运行器组](/assets/images/help/settings/actions-enterprise-account-add-runner-group.png) 1. 输入运行程序组的名称,并分配组织访问策略。 - 您可以配置运行器组供特定的组织列表或企业中所有组织访问。 默认情况下,只有私有仓库可以访问运行器组中的运行器,但您可以覆盖此设置。 This setting can't be overridden if configuring an organization's runner group that was shared by an enterprise. + 您可以配置运行器组供特定的组织列表或企业中所有组织访问。 默认情况下,只有私有仓库可以访问运行器组中的运行器,但您可以覆盖此设置。 如果配置企业共享的组织的运行组,则不能覆盖此设置。 {% warning %} diff --git a/translations/zh-CN/content/actions/using-workflows/reusing-workflows.md b/translations/zh-CN/content/actions/using-workflows/reusing-workflows.md index fe4f9070a8b3..97ca0ddd5e40 100644 --- a/translations/zh-CN/content/actions/using-workflows/reusing-workflows.md +++ b/translations/zh-CN/content/actions/using-workflows/reusing-workflows.md @@ -113,7 +113,7 @@ You can define inputs and secrets, which can be passed from the caller workflow runs-on: ubuntu-latest environment: production steps: - - uses: ./.github/actions/my-action + - uses: ./.github/workflows/my-action with: username: ${{ inputs.username }} token: ${{ secrets.envPAT }} @@ -154,7 +154,7 @@ jobs: name: Pass input and secrets to my-action runs-on: ubuntu-latest steps: - - uses: ./.github/actions/my-action + - uses: ./.github/workflows/my-action with: username: ${{ inputs.username }} token: ${{ secrets.token }} diff --git a/translations/zh-CN/content/actions/using-workflows/triggering-a-workflow.md b/translations/zh-CN/content/actions/using-workflows/triggering-a-workflow.md index ddfea0675bbb..f43002d57cfa 100644 --- a/translations/zh-CN/content/actions/using-workflows/triggering-a-workflow.md +++ b/translations/zh-CN/content/actions/using-workflows/triggering-a-workflow.md @@ -195,7 +195,11 @@ If you want more granular control than events, event activity types, or event fi ### Using conditionals -You can use conditionals to further control whether jobs or steps in your workflow will run. For example, if you want the workflow to run when a specific label is added to an issue, you can trigger on the `issues labeled` event activity type and use a conditional to check what label triggered the workflow. The following workflow will run when any label is added to an issue in the workflow's repository, but the `run_if_label_matches` job will only execute if the label is named `bug`. +You can use conditionals to further control whether jobs or steps in your workflow will run. + +#### Example using a value in the event payload + +For example, if you want the workflow to run when a specific label is added to an issue, you can trigger on the `issues labeled` event activity type and use a conditional to check what label triggered the workflow. The following workflow will run when any label is added to an issue in the workflow's repository, but the `run_if_label_matches` job will only execute if the label is named `bug`. ```yaml on: @@ -211,7 +215,34 @@ jobs: - run: echo 'The label was bug' ``` -For more information, see "[Expressions](/actions/learn-github-actions/expressions)." +#### Example using event type + +For example, if you want to run different jobs or steps depending on what event triggered the workflow, you can use a conditional to check whether a specific event type exists in the event context. The following workflow will run whenever an issue or pull request is closed. If the workflow ran because an issue was closed, the `github.event` context will contain a value for `issue` but not for `pull_request`. Therefore, the `if_issue` step will run but the `if_pr` step will not run. Conversely, if the workflow ran because a pull request was closed, the `if_pr` step will run but the `if_issue` step will not run. + +```yaml +on: + issues: + types: + - closed + pull_request: + types: + - closed + +jobs: + state_event_type: + runs-on: ubuntu-latest + steps: + - name: if_issue + if: github.event.issue + run: | + echo An issue was closed + - name: if_pr + if: github.event.pull_request + run: | + echo A pull request was closed +``` + +For more information about what information is available in the event context, see "[Using event information](#using-event-information)." For more information about how to use conditionals, see "[Expressions](/actions/learn-github-actions/expressions)." {% ifversion fpt or ghae or ghes > 3.1 or ghec %} diff --git a/translations/zh-CN/content/admin/overview/about-enterprise-accounts.md b/translations/zh-CN/content/admin/overview/about-enterprise-accounts.md index 8b277fe2080b..e217e7bb58d8 100644 --- a/translations/zh-CN/content/admin/overview/about-enterprise-accounts.md +++ b/translations/zh-CN/content/admin/overview/about-enterprise-accounts.md @@ -50,7 +50,7 @@ For more information about the management of policies for your enterprise accoun {% ifversion ghes or ghae %} -From your enterprise account on {% ifversion ghae %}{% data variables.product.product_name %}{% elsif ghes %}a {% data variables.product.prodname_ghe_server %} instance{% endif %}, administrators can view enterprise membership and manage the following for the {% ifversion ghes %}{% data variables.product.prodname_ghe_server %} instance{% elsif ghae %}enterprise on {% data variables.product.prodname_ghe_managed %}{% endif %}. +From your enterprise account on {% ifversion ghae %}{% data variables.product.product_name %}{% elsif ghes %}a {% data variables.product.prodname_ghe_server %} instance{% endif %}, administrators can view{% if remove-enterprise-members %} and manage{% endif %} enterprise membership{% if enterprise-owner-join-org %}, manage their own membership in organizations owned by the enterprise,{% endif %} and manage the following for the {% ifversion ghes %}{% data variables.product.prodname_ghe_server %} instance{% elsif ghae %}enterprise on {% data variables.product.prodname_ghe_managed %}{% endif %}. {% ifversion ghes %} - License usage{% endif %} @@ -65,7 +65,7 @@ From your enterprise account on {% ifversion ghae %}{% data variables.product.pr {% endif %} -{% ifversion ghec or ghes %}When you try or purchase {% data variables.product.prodname_enterprise %}, you can{% ifversion ghes %} also{% endif %} create an enterprise account for {% data variables.product.prodname_ghe_cloud %} on {% data variables.product.prodname_dotcom_the_website %}. Administrators for the enterprise account on {% data variables.product.prodname_dotcom_the_website %} can view membership and manage the following for the enterprise account{% ifversion ghes %} on {% data variables.product.prodname_dotcom_the_website %}{% endif %}. +{% ifversion ghec or ghes %}When you try or purchase {% data variables.product.prodname_enterprise %}, you can{% ifversion ghes %} also{% endif %} create an enterprise account for {% data variables.product.prodname_ghe_cloud %} on {% data variables.product.prodname_dotcom_the_website %}. Administrators for the enterprise account on {% data variables.product.prodname_dotcom_the_website %} can view {% if remove-enterprise-members %} and manage{% endif %} enterprise membership{% if enterprise-owner-join-org %}, manage their own membership in organizations owned by the enterprise,{% endif %} and manage the following for the enterprise account{% ifversion ghes %} on {% data variables.product.prodname_dotcom_the_website %}{% endif %}. - Billing and usage (services on {% data variables.product.prodname_dotcom_the_website %}, {% data variables.product.prodname_GH_advanced_security %}, user licenses) - Security (single sign-on, IP allow lists, SSH certificate authorities, two-factor authentication) diff --git a/translations/zh-CN/content/admin/user-management/managing-organizations-in-your-enterprise/index.md b/translations/zh-CN/content/admin/user-management/managing-organizations-in-your-enterprise/index.md index 8ed3ae12ece7..8cd63f322544 100644 --- a/translations/zh-CN/content/admin/user-management/managing-organizations-in-your-enterprise/index.md +++ b/translations/zh-CN/content/admin/user-management/managing-organizations-in-your-enterprise/index.md @@ -25,6 +25,7 @@ children: - /adding-people-to-teams - /viewing-the-audit-logs-for-organizations-in-your-enterprise - /streaming-the-audit-logs-for-organizations-in-your-enterprise-account + - /managing-your-role-in-an-organization-owned-by-your-enterprise - /removing-users-from-teams-and-organizations - /removing-organizations-from-your-enterprise - /restoring-a-deleted-organization diff --git a/translations/zh-CN/content/admin/user-management/managing-organizations-in-your-enterprise/managing-your-role-in-an-organization-owned-by-your-enterprise.md b/translations/zh-CN/content/admin/user-management/managing-organizations-in-your-enterprise/managing-your-role-in-an-organization-owned-by-your-enterprise.md new file mode 100644 index 000000000000..5333eb7d1d0f --- /dev/null +++ b/translations/zh-CN/content/admin/user-management/managing-organizations-in-your-enterprise/managing-your-role-in-an-organization-owned-by-your-enterprise.md @@ -0,0 +1,54 @@ +--- +title: Managing your role in an organization owned by your enterprise +intro: You can manage your membership in any organization owned by your enterprise and change your role within the organization. +permissions: Enterprise owners can manage their role in an organization owned by the enterprise. +versions: + feature: enterprise-owner-join-org +type: how_to +topics: + - Administrator + - Enterprise + - Organizations +shortTitle: Manage your organization roles +--- + +{% note %} + +**Note:** The ability for enterprise owners to manage their role in an organization owned by the enterprise is in beta and subject to change. + +{% endnote %} + +## About role management + +You can choose to join an organization owned by your enterprise as a member or as an organization owner, change your role within the organization, or leave the organization. + +{% warning %} + +**Warning**: If an organization uses SCIM to provision users, joining the organization this way could have unintended consequences. 更多信息请参阅“[关于 SCIM](/organizations/managing-saml-single-sign-on-for-your-organization/about-scim)”。 + +{% endwarning %} + +## Managing your role with the enterprise settings + +You can join an organization owned by your enterprise and manage your role within the organization, directly from the settings for your enterprise account. + +If an organization enforces SAML single sign-on (SSO), you cannot use the enterprise settings to join the organization. Instead, you must join the organization using that organization's identity provider (IdP). Then, you can manage your role in your enterprise settings. For more information, see "[Joining an organization that enforces SAML SSO](#joining-an-organization-that-enforces-saml-sso)." + +{% data reusables.enterprise-accounts.access-enterprise %} +1. On the **Organizations** tab, to the right of the organization you want to manage your role in, select the {% octicon "gear" aria-label="The gear icon" %} dropdown menu and click the action you want to take. + + ![Screenshot of the dropdown menu for the gear icon for an organization](/assets/images/help/business-accounts/change-role-in-org.png) + +## Joining an organization that enforces SAML SSO + +If an organization enforces SAML SSO, you cannot use the enterprise settings to join the organization. Instead, you must join the organization using that organization's identity provider (IdP). + +1. You must be assigned access in your IdP to the application for {% data variables.product.prodname_ghe_cloud %} that is used by the organization. If you're unable to configure your IdP yourself, contact your IdP administrator. +1. Authenticate to the organization using SAML SSO. + + - If the organization uses SCIM, accept the organization invitation that will be generated by the SCIM integration. + - If the organization does not use SCIM, visit the following URL, replacing ORGANIZATION with the name of the organization, then follow the prompts to authenticate. + + `https://github.com/orgs/ORGANIZATION/sso` + +After you've joined the organization, you can use the enterprise settings to manage your role in the organization, such as becoming an organization owner. For more information, see "[Managing your role with the enterprise settings](#managing-your-role-with-the-enterprise-settings)." diff --git a/translations/zh-CN/content/admin/user-management/managing-users-in-your-enterprise/index.md b/translations/zh-CN/content/admin/user-management/managing-users-in-your-enterprise/index.md index bcf8b3dfd242..63a55f0977bd 100644 --- a/translations/zh-CN/content/admin/user-management/managing-users-in-your-enterprise/index.md +++ b/translations/zh-CN/content/admin/user-management/managing-users-in-your-enterprise/index.md @@ -27,6 +27,7 @@ children: - /viewing-and-managing-a-users-saml-access-to-your-enterprise - /auditing-users-across-your-enterprise - /impersonating-a-user + - /removing-a-member-from-your-enterprise - /managing-dormant-users - /suspending-and-unsuspending-users - /placing-a-legal-hold-on-a-user-or-organization diff --git a/translations/zh-CN/content/admin/user-management/managing-users-in-your-enterprise/removing-a-member-from-your-enterprise.md b/translations/zh-CN/content/admin/user-management/managing-users-in-your-enterprise/removing-a-member-from-your-enterprise.md new file mode 100644 index 000000000000..baac07f7a48c --- /dev/null +++ b/translations/zh-CN/content/admin/user-management/managing-users-in-your-enterprise/removing-a-member-from-your-enterprise.md @@ -0,0 +1,39 @@ +--- +title: Removing a member from your enterprise +intro: You can remove a member from all organizations owned by your enterprise. +permissions: Enterprise owners can remove an enterprise member from the enterprise. +versions: + feature: remove-enterprise-members +type: how_to +topics: + - Enterprise +shortTitle: Remove member +--- + +{% note %} + +**Note:** The ability to remove enterprise members is in beta and subject to change. + +{% endnote %} + +## About removal of enterprise members + +When you remove an enterprise member from your enterprise, the member is removed from all organizations owned by your enterprise. + +If the enterprise member you're removing is the last owner of an organization owned by your enterprise, you will become an owner of that organization. + +If your enterprise or any of the organizations owned by your enterprise uses an identity provider (IdP) to manage organization membership, the member may be added back to the organization by the IdP. Make sure to also make any necessary changes in your IdP. + +## Removing a member from your enterprise + +{% note %} + +**Note:** If an enterprise member uses only {% data variables.product.prodname_ghe_server %}, and not {% data variables.product.prodname_ghe_cloud %}, you cannot remove the enterprise member this way. + +{% endnote %} + +{% data reusables.enterprise-accounts.access-enterprise %} +{% data reusables.enterprise-accounts.people-tab %} +1. To the right of the person you want to remove, select the {% octicon "gear" aria-label="The gear icon" %} dropdown menu and click **Remove from enterprise**. + + ![Screenshot of the "Remove from enterprise" option for an enterprise member](/assets/images/help/business-accounts/remove-member.png) diff --git a/translations/zh-CN/content/admin/user-management/managing-users-in-your-enterprise/roles-in-an-enterprise.md b/translations/zh-CN/content/admin/user-management/managing-users-in-your-enterprise/roles-in-an-enterprise.md index af46aa649c9c..4c7c1d687297 100644 --- a/translations/zh-CN/content/admin/user-management/managing-users-in-your-enterprise/roles-in-an-enterprise.md +++ b/translations/zh-CN/content/admin/user-management/managing-users-in-your-enterprise/roles-in-an-enterprise.md @@ -30,16 +30,23 @@ topics: {% endif %} -## 企业所有者 +## Enterprise owners 企业所有者可以完全控制企业,并可以采取所有操作,包括: - 管理管理员 -- {% ifversion ghec %}Adding and removing {% elsif ghae or ghes %}Managing{% endif %} organizations {% ifversion ghec %}to and from {% elsif ghae or ghes %} in{% endif %} the enterprise +- {% ifversion ghec %}Adding and removing {% elsif ghae or ghes %}Managing{% endif %} organizations {% ifversion ghec %}to and from {% elsif ghae or ghes %} in{% endif %} the enterprise{% if remove-enterprise-members %} +- Removing enterprise members from all organizations owned by the enterprise{% endif %} - 管理企业设置 - 在组织范围内强制实施政策 {% ifversion ghec %}- 管理帐单设置{% endif %} +{% if enterprise-owner-join-org %} +Enterprise owners do not have access to organization settings or content by default. To gain access, enterprise owners can join any organization owned by their enterprise. For more information, see "[Managing your role in an organization owned by your enterprise](/admin/user-management/managing-organizations-in-your-enterprise/managing-your-role-in-an-organization-owned-by-your-enterprise)." + +Owners of organizations in your enterprise do not have access to the enterprise itself unless you make them enterprise owners. +{% else %} 企业所有者无法访问组织设置或内容,除非将其设为组织所有者或授予直接访问组织所拥有仓库的权限。 同样,除非您将其设为企业所有者,否则企业中的组织所有者无权访问企业。 +{% endif %} 企业所有者仅在他们是企业中至少一个组织的所有者或成员时才可使用许可证。 Even if an enterprise owner has a role in multiple organizations, they will consume a single license. {% ifversion ghec %}企业所有者必须在 {% data variables.product.prodname_dotcom %} 上拥有个人帐户。{% endif %} 作为最佳实践,我们建议只将少数人设为公司的企业所有者,以降低业务风险。 diff --git a/translations/zh-CN/content/authentication/keeping-your-account-and-data-secure/updating-your-github-access-credentials.md b/translations/zh-CN/content/authentication/keeping-your-account-and-data-secure/updating-your-github-access-credentials.md index 30a6a2364383..c7d46d23c6b1 100644 --- a/translations/zh-CN/content/authentication/keeping-your-account-and-data-secure/updating-your-github-access-credentials.md +++ b/translations/zh-CN/content/authentication/keeping-your-account-and-data-secure/updating-your-github-access-credentials.md @@ -55,6 +55,12 @@ shortTitle: 更新访问凭据 有关审查和删除访问令牌的说明,请参阅“[审查授权的集成](/articles/reviewing-your-authorized-integrations)”。 要生成新的访问令牌,请参阅“[创建个人访问令牌](/github/authenticating-to-github/creating-a-personal-access-token)”。 +{% ifversion not ghae %} + +If you have reset your account password and would also like to trigger a sign-out from the GitHub Mobile app, you can revoke your authorization of the "GitHub iOS" or "GitHub Android" OAuth App. For additional information, see "[Reviewing your authorized integrations](/authentication/keeping-your-account-and-data-secure/reviewing-your-authorized-integrations)." + +{% endif %} + ## 更新 SSH 密钥 有关审查和删除 SSH 密钥的说明,请参阅“[审查 SSH 密钥](/articles/reviewing-your-ssh-keys)”。 要生成和添加新的 SSH 密钥,请参阅“[生成 SSH 密钥](/articles/generating-an-ssh-key)”。 diff --git a/translations/zh-CN/content/authentication/troubleshooting-ssh/error-permission-denied-publickey.md b/translations/zh-CN/content/authentication/troubleshooting-ssh/error-permission-denied-publickey.md index 667eee42e0d9..bb216e8d9551 100644 --- a/translations/zh-CN/content/authentication/troubleshooting-ssh/error-permission-denied-publickey.md +++ b/translations/zh-CN/content/authentication/troubleshooting-ssh/error-permission-denied-publickey.md @@ -15,9 +15,9 @@ topics: shortTitle: Permission denied (publickey) --- -## 对 Git 是否应该使用 `sudo` 命令? +## Should the `sudo` command or elevated privileges be used with Git? -不应对 Git 使用 `sudo` 命令。 如果有*很好的原因*必须使用 `sudo`,请确保对每个命令使用它(可能使用 `su` 获取 shell 作为该点的根更好)。 如果[生成 SSH 密钥](/articles/generating-an-ssh-key)而不使用 `sudo`,则尝试使用 `sudo git push` 而不使用生成的相同密钥。 +You should not be using the `sudo` command or elevated privileges, such as administrator permissions, with Git. 如果有*很好的原因*必须使用 `sudo`,请确保对每个命令使用它(可能使用 `su` 获取 shell 作为该点的根更好)。 如果[生成 SSH 密钥](/articles/generating-an-ssh-key)而不使用 `sudo`,则尝试使用 `sudo git push` 而不使用生成的相同密钥。 ## 检查是否连接到正确的服务器 diff --git a/translations/zh-CN/content/billing/managing-billing-for-github-codespaces/about-billing-for-codespaces.md b/translations/zh-CN/content/billing/managing-billing-for-github-codespaces/about-billing-for-codespaces.md index 25a675cdee3c..0804b4a76f25 100644 --- a/translations/zh-CN/content/billing/managing-billing-for-github-codespaces/about-billing-for-codespaces.md +++ b/translations/zh-CN/content/billing/managing-billing-for-github-codespaces/about-billing-for-codespaces.md @@ -35,7 +35,7 @@ topics: 您的 {% data variables.product.prodname_codespaces %} 使用将共用帐户的现有计费日期、付款方式和收据。 {% data reusables.dotcom_billing.view-all-subscriptions %} {% ifversion ghec %} -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. 更多信息请参阅“[将 Azure 订阅连接到您的企业](/billing/managing-billing-for-your-github-account/connecting-an-azure-subscription-to-your-enterprise)”。 +如果您通过微软企业协议购买 {% data variables.product.prodname_enterprise %} , 您可以将您的 Azure 订阅ID 连接到您的企业账户,以启用并支付您的 {% data variables.product.prodname_codespaces %} 使用费用。 更多信息请参阅“[将 Azure 订阅连接到您的企业](/billing/managing-billing-for-your-github-account/connecting-an-azure-subscription-to-your-enterprise)”。 {% endif %} {% data reusables.dotcom_billing.pricing_cal %} diff --git a/translations/zh-CN/content/billing/managing-billing-for-github-codespaces/managing-spending-limits-for-codespaces.md b/translations/zh-CN/content/billing/managing-billing-for-github-codespaces/managing-spending-limits-for-codespaces.md index 2da1a3e51f8a..dd6f324afc9c 100644 --- a/translations/zh-CN/content/billing/managing-billing-for-github-codespaces/managing-spending-limits-for-codespaces.md +++ b/translations/zh-CN/content/billing/managing-billing-for-github-codespaces/managing-spending-limits-for-codespaces.md @@ -1,5 +1,5 @@ --- -title: Managing spending limits for Codespaces +title: 管理 Codespace 的支出限制 intro: '您可以为 {% data variables.product.prodname_codespaces %} 的使用设置支出限额。' versions: fpt: '*' @@ -20,13 +20,13 @@ shortTitle: 支出限额 {% data reusables.codespaces.codespaces-spending-limit-requirement %} -Once you've reached your spending limit, your organization or repository will no longer be able to create new codespaces, and won't be able to start existing codespaces. Any existing codespaces that are still running will not be shutdown; if you don't change the spending limit, you will not be charged for the amount that exceeds the limit. +达到支出限制后,您的组织或存储库将不再能够创建新的代码空间,也无法启动现有代码空间。 任何仍在运行的现有代码空间都不会关闭。如果不更改支出限制,则不会为超出限制的金额向您收费。 有关 {% data variables.product.prodname_codespaces %} 使用价格的更多信息,请参阅“[关于 {% data variables.product.prodname_codespaces %} 的计费](/billing/managing-billing-for-github-codespaces/about-billing-for-codespaces)”。 {% ifversion ghec %} -## Using your Azure Subscription -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. 更多信息请参阅“[将 Azure 订阅连接到您的企业](/billing/managing-billing-for-your-github-account/connecting-an-azure-subscription-to-your-enterprise)”。 +## 使用 Azure 订阅 +如果您通过微软企业协议购买 {% data variables.product.prodname_enterprise %} , 您可以将您的 Azure 订阅ID 连接到您的企业账户,以启用并支付您的 {% data variables.product.prodname_codespaces %} 使用费用。 更多信息请参阅“[将 Azure 订阅连接到您的企业](/billing/managing-billing-for-your-github-account/connecting-an-azure-subscription-to-your-enterprise)”。 {% endif %} ## 管理组织的 {% data variables.product.prodname_codespaces %} 支出限额 @@ -45,7 +45,7 @@ If you purchased {% data variables.product.prodname_enterprise %} through a Micr {% data reusables.enterprise-accounts.access-enterprise %} {% data reusables.enterprise-accounts.settings-tab %} {% data reusables.enterprise-accounts.billing-tab %} -1. Above "{% data variables.product.prodname_codespaces %} monthly usage", click **Spending Limit**. ![支出限制选项卡](/assets/images/help/settings/spending-limit-tab-enterprise.png) +1. 在“{% data variables.product.prodname_codespaces %} 每月使用”上方,单击 **Spending Limit(支出限制)**。 ![支出限制选项卡](/assets/images/help/settings/spending-limit-tab-enterprise.png) {% data reusables.dotcom_billing.monthly-spending-limit %} {% data reusables.dotcom_billing.update-spending-limit %} @@ -54,13 +54,13 @@ If you purchased {% data variables.product.prodname_enterprise %} through a Micr {% data reusables.codespaces.exporting-changes %} ## 管理使用和支出限制电子邮件通知 -Email notifications are sent to account owners and billing managers when spending reaches 50%, 75%, 90%, and 100% of your account's spending limit. +当支出达到帐户支出限制的 50%、75%、90% 和 100% 时,系统会向帐户所有者和帐单管理员发送电子邮件通知。 You can disable these notifications anytime by navigating to the bottom of the **Spending Limit** page. -![Screenshot of the billing email notification settings](/assets/images/help/billing/codespaces-spending-limit-notifications.png) +![帐单邮箱通知设置的屏幕截图](/assets/images/help/billing/codespaces-spending-limit-notifications.png) ## 延伸阅读 -- "[Restricting access to machine types](/codespaces/managing-codespaces-for-your-organization/restricting-access-to-machine-types)" +- "[限制对机器类型的访问](/codespaces/managing-codespaces-for-your-organization/restricting-access-to-machine-types)" - "[管理组织中代码空间的计费](/codespaces/managing-codespaces-for-your-organization/managing-billing-for-codespaces-in-your-organization)" diff --git a/translations/zh-CN/content/billing/managing-your-github-billing-settings/setting-your-billing-email.md b/translations/zh-CN/content/billing/managing-your-github-billing-settings/setting-your-billing-email.md index 2f64dee4031d..57323c1ebd9e 100644 --- a/translations/zh-CN/content/billing/managing-your-github-billing-settings/setting-your-billing-email.md +++ b/translations/zh-CN/content/billing/managing-your-github-billing-settings/setting-your-billing-email.md @@ -66,42 +66,42 @@ shortTitle: 帐单邮箱 1. 查看确认提示,然后单击 **Remove(删除)**。 {% ifversion ghec %} -## Setting your enterprise's billing email +## 设置企业的帐单电子邮件 -Your enterprise'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 enterprise account. +您企业的帐单邮箱是 {% data variables.product.product_name %} 发送收据及其他计费相关通信的地方。 该电子邮件地址不需要是企业帐户唯一的。 -Only enterprise members with the owner or billing manager role can access or change billing settings for your enterprise. For more information, see "[Managing users in your enterprise](/admin/user-management/managing-users-in-your-enterprise/roles-in-an-enterprise)." +只有具有所有者或帐单管理员角色的企业成员才能访问或更改企业的帐单设置。 更多信息请参阅“[管理企业中的用户](/admin/user-management/managing-users-in-your-enterprise/roles-in-an-enterprise)”。 {% data reusables.enterprise-accounts.access-enterprise %} {% data reusables.enterprise-accounts.settings-tab %} {% data reusables.enterprise-accounts.billing-tab %} -1. Click **Billing emails**. -2. Under "Email recipients", to the right of the billing email address, click **Edit**. ![Screenshot of the current billing email with the edit button emphasized](/assets/images/help/billing/billing-change-email.png) -2. 输入一个有效的电子邮件地址,然后点击 **Update(更新)**。 ![Screenshot of the edit billing email address modal window with a sample email address entered](/assets/images/help/billing/billing-change-email-modal.png) +1. 单击 **Billing emails(帐单电子邮件)**。 +2. 在帐单电子邮件地址右侧的“Email recipients(电子邮件收件人)”下,单击 **Edit(编辑)**。 ![突出显示了编辑按钮的当前帐单电子邮件的屏幕截图](/assets/images/help/billing/billing-change-email.png) +2. 输入一个有效的电子邮件地址,然后点击 **Update(更新)**。 ![输入了示例电子邮件地址的编辑帐单电子邮件地址模式窗口的屏幕截图](/assets/images/help/billing/billing-change-email-modal.png) -## Managing additional recipients for your enterprise's billing email +## 管理企业帐单邮箱的其他收件人 如果您有用户希望接收帐单报告,您可以将他们的电子邮件地址添加为帐单邮箱收件人。 -Only enterprise members with the owner or billing manager role can access or change billing settings for your enterprise. For more information, see "[Managing users in your enterprise](/admin/user-management/managing-users-in-your-enterprise/roles-in-an-enterprise)." +只有具有所有者或帐单管理员角色的企业成员才能访问或更改企业的帐单设置。 更多信息请参阅“[管理企业中的用户](/admin/user-management/managing-users-in-your-enterprise/roles-in-an-enterprise)”。 ### 添加帐单通知的收件人 {% data reusables.enterprise-accounts.access-enterprise %} {% data reusables.enterprise-accounts.settings-tab %} {% data reusables.enterprise-accounts.billing-tab %} -1. Click **Billing emails**. -2. Under "Email recipients", to the right of the billing email address, click **Add**. ![Screenshot of the current billing email with the add button emphasized](/assets/images/help/billing/billing-add-email-recipient.png) -3. 输入收件人的电子邮件地址,然后单击 **Add(添加)**。 ![Screenshot of the add billing email address modal window without a sample email address entered](/assets/images/help/billing/billing-add-email-recipient-modal.png) +1. 单击 **Billing emails(帐单电子邮件)**。 +2. 在帐单电子邮件地址右侧的“Email recipients(电子邮件收件人)”下,单击 **Add(添加)**。 ![突出显示了添加按钮的当前帐单电子邮件的屏幕截图](/assets/images/help/billing/billing-add-email-recipient.png) +3. 输入收件人的电子邮件地址,然后单击 **Add(添加)**。 ![未输入示例电子邮件地址的添加帐单电子邮件地址模式窗口的屏幕截图](/assets/images/help/billing/billing-add-email-recipient-modal.png) ### 从帐单通知中删除收件人 {% data reusables.enterprise-accounts.access-enterprise %} {% data reusables.enterprise-accounts.settings-tab %} {% data reusables.enterprise-accounts.billing-tab %} -1. Click **Billing emails**. +1. 单击 **Billing emails(帐单电子邮件)**。 2. 在“Email recipients(电子邮件收件人)”下,找到要删除的电子邮件地址。 -3. 针对列表中的用户条目,单击 **Edit(编辑)**。 ![Screenshot of the recipient's email with the edit button emphasized](/assets/images/help/billing/billing-edit-email-recipient.png) -4. 在电子邮件地址的右侧,使用“Edit(编辑)”下拉菜单,然后单击 **Remove(删除)**。 ![Screenshot of the recipient's email with the remove button emphasized](/assets/images/help/billing/billing-remove-email-recipient.png) +3. 针对列表中的用户条目,单击 **Edit(编辑)**。 ![突出显示了编辑按钮的收件人电子邮件的屏幕截图](/assets/images/help/billing/billing-edit-email-recipient.png) +4. 在电子邮件地址的右侧,使用“Edit(编辑)”下拉菜单,然后单击 **Remove(删除)**。 ![突出显示了删除按钮的收件人电子邮件的屏幕截图](/assets/images/help/billing/billing-remove-email-recipient.png) 5. 查看确认提示,然后单击 **Remove(删除)**。 {% endif %} diff --git a/translations/zh-CN/content/billing/managing-your-license-for-github-enterprise/downloading-your-license-for-github-enterprise.md b/translations/zh-CN/content/billing/managing-your-license-for-github-enterprise/downloading-your-license-for-github-enterprise.md index 906515c0a6f5..1f40813d656e 100644 --- a/translations/zh-CN/content/billing/managing-your-license-for-github-enterprise/downloading-your-license-for-github-enterprise.md +++ b/translations/zh-CN/content/billing/managing-your-license-for-github-enterprise/downloading-your-license-for-github-enterprise.md @@ -12,7 +12,7 @@ topics: shortTitle: Download your license --- -## 关于 {% data variables.product.prodname_enterprise %} 的许可证文件 +## About license files for {% data variables.product.prodname_enterprise %} After you purchase or upgrade a license for {% data variables.product.prodname_enterprise %} from {% data variables.contact.contact_enterprise_sales %}, you must download your new license file. For more information about licenses for {% data variables.product.prodname_enterprise %}, see "[About licenses for {% data variables.product.prodname_enterprise %}](/billing/managing-your-license-for-github-enterprise/about-licenses-for-github-enterprise)." @@ -24,8 +24,10 @@ You must have an enterprise account on {% data variables.product.prodname_dotcom {% data reusables.enterprise-accounts.access-enterprise-on-dotcom %} {% data reusables.enterprise-accounts.settings-tab %} -1. 在左侧边栏中,单击 **Enterprise licensing(企业许可)**。 ![企业帐户设置侧边栏中的"Enterprise licensing(企业许可)"选项卡](/assets/images/help/enterprises/enterprise-licensing-tab.png) -1. 在“Enterprise Server Instances(企业服务器实例)”下,单击 {% octicon "download" aria-label="The download icon" %} 下载您的许可文件。 ![下载 GitHub Enterprise Server 许可](/assets/images/help/business-accounts/download-ghes-license.png) +1. In the left sidebar, click **Enterprise licensing**. + !["Enterprise licensing" tab in the enterprise account settings sidebar](/assets/images/help/enterprises/enterprise-licensing-tab.png) +1. Under "Enterprise Server Instances", click {% octicon "download" aria-label="The download icon" %} to download your license file. + ![Download GitHub Enterprise Server license](/assets/images/help/business-accounts/download-ghes-license.png) After you download your license file, you can upload the file to {% data variables.product.product_location_enterprise %} to validate your application. For more information, see {% ifversion ghec %}"[Uploading a new license to {% data variables.product.prodname_ghe_server %}](/enterprise-server/billing/managing-your-license-for-github-enterprise/uploading-a-new-license-to-github-enterprise-server)" in the {% data variables.product.prodname_ghe_server %} documentation.{% elsif ghes %}"[Uploading a new license to {% data variables.product.prodname_ghe_server %}](/enterprise-server/billing/managing-your-license-for-github-enterprise/uploading-a-new-license-to-github-enterprise-server)."{% endif %} diff --git a/translations/zh-CN/content/code-security/getting-started/github-security-features.md b/translations/zh-CN/content/code-security/getting-started/github-security-features.md index e997984b3299..5d9787d18cda 100644 --- a/translations/zh-CN/content/code-security/getting-started/github-security-features.md +++ b/translations/zh-CN/content/code-security/getting-started/github-security-features.md @@ -63,6 +63,9 @@ topics: 您可以在仓库的 **Insights(洞察)**选项卡上找到依赖项图。 更多信息请参阅“[关于依赖关系图](/github/visualizing-repository-data-with-graphs/about-the-dependency-graph)”。 {% endif %} +### Security overview for repositories +For all public repositories, the security overview shows which security features are enabled for the repository, and offers the option to configure any available security features that are not currently enabled. + ## 通过 {% data variables.product.prodname_GH_advanced_security %} 可用 {% data reusables.advanced-security.ghas-availability %} @@ -83,8 +86,8 @@ topics: 在合并拉取请求之前显示依赖项更改的全部影响以及任何有漏洞版本的详情。 更多信息请参阅“[关于依赖项审查](/code-security/supply-chain-security/about-dependency-review)”。 {% endif %} -{% ifversion ghec or ghes > 3.1 %} -### 安全概述 +{% ifversion ghec or ghes > 3.1 or ghae-issue-4554 %} +### Security overview for organizations{% ifversion ghec or ghes > 3.4 or ghae-issue-6199 %}, enterprises,{% endif %} and teams 检查组织的安全配置和警报,并确定风险最大的存储库。 更多信息请参阅“[关于安全概述](/code-security/security-overview/about-the-security-overview)”。 {% endif %} diff --git a/translations/zh-CN/content/code-security/security-overview/about-the-security-overview.md b/translations/zh-CN/content/code-security/security-overview/about-the-security-overview.md index ac7626eb54f7..8b51d66da72c 100644 --- a/translations/zh-CN/content/code-security/security-overview/about-the-security-overview.md +++ b/translations/zh-CN/content/code-security/security-overview/about-the-security-overview.md @@ -26,11 +26,7 @@ shortTitle: About security overview ## 关于安全概述 -您可以使用安全概述来简要了解组织的安全状态,或识别需要干预的问题仓库。 - -- 在组织级别,安全概述显示组织拥有的仓库的聚合和仓库特定安全信息。 You can also filter information per security feature. -- 在团队级别,安全概述显示团队拥有管理权限的仓库特定安全信息。 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)." -- At the repository-level, the security overview shows which security features are enabled for the repository, and offers the option to configure any available security features not currently in use. +您可以使用安全概述来简要了解组织的安全状态,或识别需要干预的问题仓库。 You can view aggregate or repository-specific security information in the security overview. You can also use the security overview to see which which security features are enabled for your repositories and to configure any available security features that are not currently in use. The security overview indicates whether {% ifversion fpt or ghes > 3.1 or ghec %}security{% endif %}{% ifversion ghae %}{% data variables.product.prodname_GH_advanced_security %}{% endif %} features are enabled for repositories owned by your organization and consolidates alerts for each feature.{% ifversion fpt or ghes > 3.1 or ghec %} Security features include {% data variables.product.prodname_GH_advanced_security %} features, such as {% data variables.product.prodname_code_scanning %} and {% data variables.product.prodname_secret_scanning %}, as well as {% data variables.product.prodname_dependabot_alerts %}.{% endif %} For more information about {% data variables.product.prodname_GH_advanced_security %} features, see "[About {% data variables.product.prodname_GH_advanced_security %}](/get-started/learning-about-github/about-github-advanced-security)."{% ifversion fpt or ghes > 3.1 or ghec %} For more information about {% data variables.product.prodname_dependabot_alerts %}, see "[About alerts for vulnerable dependencies](/code-security/supply-chain-security/managing-vulnerabilities-in-your-projects-dependencies/about-alerts-for-vulnerable-dependencies#dependabot-alerts-for-vulnerable-dependencies)."{% endif %} @@ -63,3 +59,24 @@ For each repository in the security overview, you will see icons for each type o | {% octicon "x" aria-label="x" %} | The security feature is not supported in this repository. | The security overview displays active alerts raised by security features. 如果仓库的安全概述中没有警报,则可能仍然存在未检测到的安全漏洞或代码错误。 + +### About the organization-level security overview + +在组织级别,安全概述显示组织拥有的仓库的聚合和仓库特定安全信息。 You can filter information by security features at the organization-level. + +{% ifversion ghec or ghes > 3.4 or ghae-issue-6199 %} +### About the enterprise-level security overview +At the enterprise-level, the security overview displays aggregate and repository-specific security information for your enterprise. You can view repositories owned by your enterprise that have security alerts or view all {% data variables.product.prodname_secret_scanning %} alerts from across your enterprise. + +Organization owners and security managers for organizations in your enterprise also have limited access to the enterprise-level security overview. They can only view repositories and alerts for the organizations that they have full access to. + +{% elsif fpt %} +### About the enterprise-level security overview +At the enterprise-level, the security overview displays aggregate and repository-specific information for an enterprise. For more information, see "[About the enterprise-level security overview](/enterprise-cloud@latest/code-security/security-overview/about-the-security-overview#about-the-enterprise-level-security-overview)" in the {% data variables.product.prodname_ghe_cloud %} documentation. +{% endif %} + +### About the team-level security overview +在团队级别,安全概述显示团队拥有管理权限的仓库特定安全信息。 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)." + +### About the repository-level security overview +At the repository-level, the security overview shows which security features are enabled for the repository, and offers the option to configure any available security features that are not currently enabled. diff --git a/translations/zh-CN/content/code-security/security-overview/viewing-the-security-overview.md b/translations/zh-CN/content/code-security/security-overview/viewing-the-security-overview.md index 4f2809cf01b0..3daf3bba9770 100644 --- a/translations/zh-CN/content/code-security/security-overview/viewing-the-security-overview.md +++ b/translations/zh-CN/content/code-security/security-overview/viewing-the-security-overview.md @@ -36,6 +36,13 @@ shortTitle: View the security overview 1. In the security sidebar, select the subset of alerts you want to view. ![View alert subset](/assets/images/help/organizations/view-alert-subset.png) 2. (可选)过滤警报列表。 Each view has its own selection of available filters. 您可以单击下拉过滤菜单中的多个过滤器以缩小搜索范围。 You can also type search qualifiers in the search field. For more information about the available qualifiers, see "[Filtering alerts in the security overview](/code-security/security-overview/filtering-alerts-in-the-security-overview)." ![The drop-down filter menus and Search repositories field in the secret scanning view](/assets/images/help/organizations/secret-scanning-filter-alerts.png) +{% ifversion ghec or ghes > 3.4 or ghae-issue-6199 %} +## Viewing the security overview for an enterprise + +{% data reusables.enterprise-accounts.access-enterprise-on-dotcom %} +1. In the left sidebar, click {% octicon "shield" aria-label="The shield icon" %} **Security**. +{% endif %} + ## Viewing alerts for a repository {% data reusables.repositories.navigate-to-repo %} diff --git a/translations/zh-CN/content/codespaces/getting-started/quickstart.md b/translations/zh-CN/content/codespaces/getting-started/quickstart.md index e74ccf11c485..99cc5ede2fc1 100644 --- a/translations/zh-CN/content/codespaces/getting-started/quickstart.md +++ b/translations/zh-CN/content/codespaces/getting-started/quickstart.md @@ -1,6 +1,6 @@ --- -title: Quickstart for Codespaces -intro: 'Try out {% data variables.product.prodname_codespaces %} in 5 minutes.' +title: Codespaces 快速入门 +intro: '在 5 分钟内尝试 {% data variables.product.prodname_codespaces %}。' allowTitleToDifferFromFilename: true product: '{% data reusables.gated-features.codespaces %}' versions: @@ -15,31 +15,31 @@ redirect_from: ## 简介 -In this guide, you'll create a codespace from a [template repository](https://github.com/2percentsilk/haikus-for-codespaces) and explore some of the essential features available to you within the codespace. +在本指南中,您将从[模板存储库](https://github.com/2percentsilk/haikus-for-codespaces)创建代码空间,并探索代码空间中可用的一些基本功能。 -From this quickstart, you will learn how to create a codespace, connect to a forwarded port to view your running application, use version control in a codespace, and personalize your setup with extensions. +在本快速入门中,您将了解如何创建代码空间、连接到转发的端口以查看正在运行的应用程序、在代码空间中使用版本控制以及使用扩展个性化设置。 -For more information on exactly how {% data variables.product.prodname_codespaces %} works, see the companion guide "[Deep dive into {% data variables.product.prodname_codespaces %}](/codespaces/getting-started/deep-dive)." +有关 {% data variables.product.prodname_codespaces %} 如何工作的更多信息,请参阅配套指南“[深入了解 {% data variables.product.prodname_codespaces %}](/codespaces/getting-started/deep-dive)”。 ## 创建代码空间 -1. Navigate to the [template repository](https://github.com/2percentsilk/haikus-for-codespaces) and select **Use this template**. +1. 导航到 [template repository(模板存储库)](https://github.com/2percentsilk/haikus-for-codespaces) 并选择 **Use this template(使用此模板)**。 -2. Name your repository, select your preferred privacy setting, and click **Create repository from this template**. +2. 命名存储库,选择首选隐私设置,然后单击 **Create repository from this template(从此模板创建存储库)**。 -3. Navigate to the main page of the newly created repository. 在存储库名称下,使用 **{% octicon "code" aria-label="The code icon" %} 代码**下拉菜单,然后在**Codespaces(代码空间)**选项卡中,单击 {% octicon "plus" aria-label="The plus icon" %} **New codespace(新建代码空间)**。 +3. 导航到新创建的存储库的主页。 在存储库名称下,使用 **{% octicon "code" aria-label="The code icon" %} 代码**下拉菜单,然后在**Codespaces(代码空间)**选项卡中,单击 {% octicon "plus" aria-label="The plus icon" %} **New codespace(新建代码空间)**。 ![新建代码空间按钮](/assets/images/help/codespaces/new-codespace-button.png) -## Running the application +## 运行应用程序 -Once your codespace is created, your repository will be automatically cloned into it. Now you can run the application and launch it in a browser. +创建代码空间后,您的存储库将自动克隆到其中。 现在,您可以运行该应用程序并在浏览器中启动它。 -1. Since this example uses a Node.js project, start the application by entering `npm run dev` in the terminal. 此命令执行 package.json 文件中的 `dev` 脚本,并启动样本仓库中定义的 web 应用程序。 +1. 由于此示例使用 Node.js 项目,因此通过在终端中输入 `npm run dev` 来启动应用程序。 此命令执行 package.json 文件中的 `dev` 脚本,并启动样本仓库中定义的 web 应用程序。 ![终端中的 npm run dev](/assets/images/help/codespaces/codespaces-npm-run-dev.png) - If you're following along with a different application type, enter the corresponding start command for that project. + 如果按照其他应用程序类型进行操作,请为该项目输入相应的启动命令。 2. When your application starts, the codespace recognizes the port the application is running on and displays a prompt to forward that port so you can connect to it. @@ -53,26 +53,26 @@ Once your codespace is created, your repository will be automatically cloned int 2. Edit the `text` field of the first haiku to personalize the application with your own haiku. -3. Go back to the running application tab in your browser and refresh to see your changes. +3. 返回到浏览器中正在运行的应用程序选项卡,然后刷新以查看所做的更改。 - {% octicon "light-bulb" aria-label="The lightbulb icon" %} If you've closed the tab, open the Ports panel and click the **Open in browser** icon for the running port. - ![Port Forwarding Panel](/assets/images/help/codespaces/quickstart-forward-port.png) + {% octicon "light-bulb" aria-label="The lightbulb icon" %} 如果已关闭选项卡,请打开“Ports(端口)”面板,然后对运行的端口单击 **Open in browser(在浏览器中打开)**图标。 + ![端口转发面板](/assets/images/help/codespaces/quickstart-forward-port.png) ## 提交和推送更改 -Now that you've made a few changes, you can use the integrated terminal or the source view to commit and push the changes back to the remote. +现在,您已经进行了一些更改,可以使用集成终端或源视图提交更改并将其推送回远程数据库。 {% data reusables.codespaces.source-control-display-dark %} 1. 要暂存更改,请单击已更改文件旁边的 **+**;如果您更改了多个文件并且要全部暂存,请单击 **Changes(更改)**旁边的该按钮。 ![高亮显示暂存按钮的源控制侧边栏](/assets/images/help/codespaces/codespaces-commit-stage.png) 1. 输入提交消息,描述您所做的更改。 ![带有提交消息的源控制侧栏](/assets/images/help/codespaces/codespaces-commit-commit-message.png) 1. 要提交暂存的更改,请单击源控制侧栏顶部的复选标记。 ![Click the check mark icon](/assets/images/help/codespaces/codespaces-commit-checkmark-icon.png) - You can push the changes you've made. 这将应用这些更改到远程仓库上的上游分支。 如果您尚未准备好创建拉取请求,或者希望在 {% data variables.product.prodname_dotcom %} 上创建拉取请求,则可能需要这样做。 + 您可以推送所做的更改。 这将应用这些更改到远程仓库上的上游分支。 如果您尚未准备好创建拉取请求,或者希望在 {% data variables.product.prodname_dotcom %} 上创建拉取请求,则可能需要这样做。 1. 在侧边栏的顶部,单击省略号 (**...**)。 ![查看和更多操作的省略号按钮](/assets/images/help/codespaces/source-control-ellipsis-button-nochanges.png) 1. 在下拉菜单中,单击 **Push(推送)**。 -## Personalizing with an extension +## 使用扩展进行个性化设置 -在代码空间内,您可以访问 Visual Studio Code Marketplace。 For this example, you'll install an extension that alters the theme, but you can install any extension that is useful for your workflow. +在代码空间内,您可以访问 Visual Studio Code Marketplace。 在本示例中,您将安装可更改主题的扩展,但您可以安装对工作流程有用的任何扩展。 1. 在左侧栏中,单击扩展图标。 @@ -84,14 +84,14 @@ Now that you've made a few changes, you can use the integrated terminal or the s ![选择 fairyfloss 主题](/assets/images/help/codespaces/fairyfloss.png) -4. Changes you make to your editor setup in the current codespace, such as theme and keyboard bindings, are synced automatically via [Settings Sync](https://code.visualstudio.com/docs/editor/settings-sync) to any other codespaces you open and any instances of Visual Studio Code that are signed into your GitHub account. +4. 在当前代码空间中对编辑器设置所做的更改,如主题和键盘绑定,将通过 [Settings Sync(设置同步)](https://code.visualstudio.com/docs/editor/settings-sync)自动同步到您打开的任何其他代码空间以及登录到您 GitHub 帐户的任何 Visual Studio Code 实例。 ## 后续步骤 您已经成功创建、个性化并在代码空间中运行了第一个应用程序,但还有很多需要探索的地方! 以下是一些帮助您对 {% data variables.product.prodname_codespaces %} 执行后续操作的有用资源: - - [Deep dive](/codespaces/getting-started/deep-dive): This quickstart presented some of the features of {% data variables.product.prodname_codespaces %}. The deep dive looks at these areas from a technical standpoint. - - [Setting up your project for {% data variables.product.prodname_codespaces %}](/codespaces/getting-started-with-codespaces): These guides provide information on setting up your project to use {% data variables.product.prodname_codespaces %} with specific languages. - - [Configuring {% data variables.product.prodname_codespaces %} for your project](/codespaces/setting-up-your-codespace/configuring-codespaces-for-your-project): This guide provides details on creating a custom configuration for {% data variables.product.prodname_codespaces %} for your project. + - [深入探讨](/codespaces/getting-started/deep-dive):本快速入门介绍了 {% data variables.product.prodname_codespaces %} 的一些功能。 从技术角度深入探讨这些领域。 + - [设置 {% data variables.product.prodname_codespaces %}](/codespaces/getting-started-with-codespaces) 的项目:这些指南提供了有关设置项目使用特定语言的 {% data variables.product.prodname_codespaces %} 的信息。 + - [为项目配置 {% data variables.product.prodname_codespaces %} ](/codespaces/setting-up-your-codespace/configuring-codespaces-for-your-project):本指南提供有关为项目 {% data variables.product.prodname_codespaces %} 创建自定义配置的详细信息。 ## 延伸阅读 diff --git a/translations/zh-CN/content/issues/tracking-your-work-with-issues/creating-a-branch-for-an-issue.md b/translations/zh-CN/content/issues/tracking-your-work-with-issues/creating-a-branch-for-an-issue.md new file mode 100644 index 000000000000..d62acd4e3836 --- /dev/null +++ b/translations/zh-CN/content/issues/tracking-your-work-with-issues/creating-a-branch-for-an-issue.md @@ -0,0 +1,34 @@ +--- +title: Creating a branch to work on an issue +intro: You can create a branch to work on an issue directly from the issue page and get started right away. +versions: + fpt: '*' + ghes: '>=3.5' + ghae: issue-6234 + ghec: '*' +allowTitleToDifferFromFilename: true +topics: + - Issues +shortTitle: Create branch for issue +--- + +{% note %} + +**Note:** The ability to create a branch for an issue is currently in public beta and subject to change. + +{% endnote %} + +## About branches connected to an issue +Branches connected to an issue are shown under the "Development" section in the sidebar of an issue. When you create a pull request for one of these branches, it is automatically linked to the issue. The connection with that branch is removed and only the pull request is shown in the "Development" section. 更多信息请参阅“[将拉取请求链接到议题](/issues/tracking-your-work-with-issues/linking-a-pull-request-to-an-issue)”。 + +## Creating a branch for an issue + +Anyone with write permission to a repository can create a branch for an issue. You can link multiple branches for an issue. + +{% data reusables.repositories.navigate-to-repo %} +{% data reusables.repositories.sidebar-issues %} +3. In the list of issues, click the issue that you would like to create a branch for. +4. In the right sidebar under "Development", click **Create a branch**. If the issue already has a linked branch or pull request, click {% octicon "gear" aria-label="The Gear icon" %} and at the bottom of the drop-down menu click **Create a branch**. ![Screenshot showing Create a branch option highlighted in sidebar](/assets/images/help/issues/create-a-branch.png) +5. By default, the new branch is created in the current repository from the default branch. Edit the branch name and details as required in the "Create a branch for this issue" dialog. ![Screenshot showing Create a branch dialog options](/assets/images/help/issues/create-a-branch-options.png) +6. Choose whether to work on the branch locally or to open it in GitHub Desktop. +7. When you are ready to create the branch, click **Create branch**. diff --git a/translations/zh-CN/content/issues/tracking-your-work-with-issues/index.md b/translations/zh-CN/content/issues/tracking-your-work-with-issues/index.md index 19cebb01642c..fd651e710b48 100644 --- a/translations/zh-CN/content/issues/tracking-your-work-with-issues/index.md +++ b/translations/zh-CN/content/issues/tracking-your-work-with-issues/index.md @@ -15,6 +15,7 @@ children: - /creating-an-issue - /about-task-lists - /linking-a-pull-request-to-an-issue + - /creating-a-branch-for-an-issue - /assigning-issues-and-pull-requests-to-other-github-users - /viewing-all-of-your-issues-and-pull-requests - /filtering-and-searching-issues-and-pull-requests diff --git a/translations/zh-CN/content/issues/tracking-your-work-with-issues/linking-a-pull-request-to-an-issue.md b/translations/zh-CN/content/issues/tracking-your-work-with-issues/linking-a-pull-request-to-an-issue.md index a4ae30170c54..79b8352d0d62 100644 --- a/translations/zh-CN/content/issues/tracking-your-work-with-issues/linking-a-pull-request-to-an-issue.md +++ b/translations/zh-CN/content/issues/tracking-your-work-with-issues/linking-a-pull-request-to-an-issue.md @@ -72,7 +72,11 @@ shortTitle: 将 PR 链接到议题 {% data reusables.repositories.navigate-to-repo %} {% data reusables.repositories.sidebar-pr %} 3. 在拉取请求列表中,单击要链接到议题的拉取请求。 +{% ifversion fpt or ghec or ghes > 3.4 or ghae-issue-6234 %} +4. In the right sidebar, in the "Development" section click {% octicon "gear" aria-label="The Gear icon" %}. +{% else %} 4. 在右侧边栏中,单击 **Linked issues(链接的议题)**。 ![右侧边栏中链接的议题](/assets/images/help/pull_requests/linked-issues.png) +{% endif %} 5. 单击要链接到拉取请求的议题。 ![下拉以链接议题](/assets/images/help/pull_requests/link-issue-drop-down.png) {% endif %} diff --git a/translations/zh-CN/content/organizations/managing-git-access-to-your-organizations-repositories/about-ssh-certificate-authorities.md b/translations/zh-CN/content/organizations/managing-git-access-to-your-organizations-repositories/about-ssh-certificate-authorities.md index 5f5d90e93124..2e8472ae581d 100644 --- a/translations/zh-CN/content/organizations/managing-git-access-to-your-organizations-repositories/about-ssh-certificate-authorities.md +++ b/translations/zh-CN/content/organizations/managing-git-access-to-your-organizations-repositories/about-ssh-certificate-authorities.md @@ -28,15 +28,15 @@ SSH 证书是一种机制:一个 SSH 密钥对另一个 SSH 密钥签名。 即使您实施了 SAML 单点登录,组织成员也可使用其签名的证书进行身份验证。 除非您将 SSH 证书设为要求,组织成员可继续使用其他验证方式通过 Git 访问组织的资源,包括他们的用户名和密码、个人访问令牌及其自己的 SSH 密钥。 {% endif %} -Members will not be able to use their certificates to access forks of your repositories that are owned by their personal accounts. +成员将无法使用其证书访问其个人帐户拥有的仓库的复刻。 -## About SSH URLs with SSH certificates +## 关于使用 SSH 证书的 SSH URL -If your organization requires SSH certificates, to prevent authentication errors, organization members should use a special URL that includes the organization ID when performing Git operations over SSH. This special URL allows the client and server to more easily negotiate which key on the member's computer should be used for authentication. If a member uses the normal URL, which starts with `git@github.com`, the SSH client might offer the wrong key, causing the operation to fail. +如果您的组织需要 SSH 证书,为了防止身份验证错误,组织成员在通过 SSH 执行 Git 操作时应使用包含组织 ID 的特殊 URL。 此特殊 URL 允许客户端和服务器更轻松地协商应使用成员计算机上的哪个密钥进行身份验证。 如果成员使用以 `git@github.com`开头的正常 URL,则 SSH 客户端可能会提供错误的密钥,从而导致操作失败。 -Anyone with read access to the repository can find this URL by selecting the **Code** dropdown menu on the main page of the repository, then clicking **Use SSH**. +对存储库具有读取访问权限的任何人都可以通过以下方式找到此 URL:选择存储库主页上的 **Code(代码)**下拉菜单,然后单击 **Use SSH(使用 SSH)**。 -If your organization doesn't require SSH certificates, members can continue to use their own SSH keys, or other means of authentication. In that case, either the special URL or the normal URL, which starts with `git@github.com`, will work. +如果您的组织不需要 SSH 证书,则成员可以继续使用自己的 SSH 密钥或其他身份验证方式。 在这种情况下,特殊 URL 或以 `git@github.com`开头的正常 URL 将起作用。 ## 颁发证书 diff --git a/translations/zh-CN/content/organizations/managing-membership-in-your-organization/removing-a-member-from-your-organization.md b/translations/zh-CN/content/organizations/managing-membership-in-your-organization/removing-a-member-from-your-organization.md index b4ec0b6ed6ff..c1a8309f7de7 100644 --- a/translations/zh-CN/content/organizations/managing-membership-in-your-organization/removing-a-member-from-your-organization.md +++ b/translations/zh-CN/content/organizations/managing-membership-in-your-organization/removing-a-member-from-your-organization.md @@ -13,10 +13,9 @@ topics: - Organizations - Teams shortTitle: 删除成员 +permissions: Organization owners can remove members from an organization. --- -只有组织所有者才能从组织中删除成员。 - {% ifversion fpt or ghec %} {% warning %} @@ -63,4 +62,5 @@ shortTitle: 删除成员 ## 延伸阅读 -- “[从团队中删除组织成员](/articles/removing-organization-members-from-a-team)” +- "[Removing organization members from a team](/articles/removing-organization-members-from-a-team)"{% if remove-enterprise-members %} +- "[Removing a member from your enterprise](/admin/user-management/managing-users-in-your-enterprise/removing-a-member-from-your-enterprise)"{% endif %} diff --git a/translations/zh-CN/content/organizations/managing-organization-settings/deleting-an-organization-account.md b/translations/zh-CN/content/organizations/managing-organization-settings/deleting-an-organization-account.md index bde6389e87bc..f1fcca6dab7f 100644 --- a/translations/zh-CN/content/organizations/managing-organization-settings/deleting-an-organization-account.md +++ b/translations/zh-CN/content/organizations/managing-organization-settings/deleting-an-organization-account.md @@ -12,7 +12,7 @@ versions: topics: - Organizations - Teams -shortTitle: Delete organization +shortTitle: 删除组织 --- {% ifversion fpt or ghec %} @@ -26,12 +26,12 @@ shortTitle: Delete organization ## 1. 备份组织内容 -{% ifversion not ghes %} After you delete an organization, {% data variables.product.company_short %} **cannot restore your content**. Therefore, before{% else %}Before{% endif %} you delete your organization, make sure you have a copy of all repositories, wikis, issues, and project boards from the account. +{% ifversion not ghes %} 删除组织后, {% data variables.product.company_short %} **无法恢复内容**。 因此,在删除组织{% else %}之前{% endif %},请确保您拥有该帐户中所有仓库、wiki、议题和项目板的副本。 {% ifversion ghes %} {% note %} -**Note:** If necessary, a site administrator for {% data variables.product.product_location %} may be able to partially restore a deleted organization. For more information, see "[Restoring a deleted organization](/admin/user-management/managing-organizations-in-your-enterprise/restoring-a-deleted-organization)." +**注意:** 如有必要,{% data variables.product.product_location %} 的站点管理员或能部分恢复已删除的组织。 更多信息请参阅“[恢复删除的组织](/admin/user-management/managing-organizations-in-your-enterprise/restoring-a-deleted-organization)”。 {% endnote %} {% endif %} diff --git a/translations/zh-CN/content/organizations/managing-peoples-access-to-your-organization-with-roles/maintaining-ownership-continuity-for-your-organization.md b/translations/zh-CN/content/organizations/managing-peoples-access-to-your-organization-with-roles/maintaining-ownership-continuity-for-your-organization.md index d71dd5c6d69a..b5ce71e6a97e 100644 --- a/translations/zh-CN/content/organizations/managing-peoples-access-to-your-organization-with-roles/maintaining-ownership-continuity-for-your-organization.md +++ b/translations/zh-CN/content/organizations/managing-peoples-access-to-your-organization-with-roles/maintaining-ownership-continuity-for-your-organization.md @@ -31,6 +31,10 @@ shortTitle: 保持所有权连续性 {% endnote %} +{% if enterprise-owner-join-org %} +If your organization is owned by an enterprise account, any enterprise owner can make themself an owner of your organization. For more information, see "[Managing your role in an organization owned by your enterprise](/admin/user-management/managing-organizations-in-your-enterprise/managing-your-role-in-an-organization-owned-by-your-enterprise)." +{% endif %} + ## 任命组织所有者 {% data reusables.profile.access_org %} diff --git a/translations/zh-CN/content/organizations/managing-peoples-access-to-your-organization-with-roles/roles-in-an-organization.md b/translations/zh-CN/content/organizations/managing-peoples-access-to-your-organization-with-roles/roles-in-an-organization.md index 2585d99f49f9..2702276a40cb 100644 --- a/translations/zh-CN/content/organizations/managing-peoples-access-to-your-organization-with-roles/roles-in-an-organization.md +++ b/translations/zh-CN/content/organizations/managing-peoples-access-to-your-organization-with-roles/roles-in-an-organization.md @@ -30,6 +30,10 @@ Organization-level roles are sets of permissions that can be assigned to individ You can assign individuals or teams to a variety of organization-level roles to control your members' access to your organization and its resources. For more details about the individual permissions included in each role, see "[Permissions for organization roles](#permissions-for-organization-roles)." +{% if enterprise-owner-join-org %} +If your organization is owned by an enterprise account, enterprise owners can choose to join your organization with any role. For more information, see "[Managing your role in an organization owned by your enterprise](/admin/user-management/managing-organizations-in-your-enterprise/managing-your-role-in-an-organization-owned-by-your-enterprise)." +{% endif %} + ### Organization owners Organization owners have complete administrative access to your organization. 此角色应限于组织中的少数几个人,但不少于两人。 更多信息请参阅“[管理组织的所有权连续性](/organizations/managing-peoples-access-to-your-organization-with-roles/maintaining-ownership-continuity-for-your-organization)”。 diff --git a/translations/zh-CN/content/organizations/managing-saml-single-sign-on-for-your-organization/about-scim.md b/translations/zh-CN/content/organizations/managing-saml-single-sign-on-for-your-organization/about-scim.md index 9e7601a1c5ab..e10543f3cef8 100644 --- a/translations/zh-CN/content/organizations/managing-saml-single-sign-on-for-your-organization/about-scim.md +++ b/translations/zh-CN/content/organizations/managing-saml-single-sign-on-for-your-organization/about-scim.md @@ -28,11 +28,10 @@ topics: {% endnote %} +{% data reusables.scim.changes-should-come-from-idp %} + {% data reusables.scim.enterprise-account-scim %} ## 延伸阅读 -- "[关于使用 SAML 单点登录管理身份和访问](/articles/about-identity-and-access-management-with-saml-single-sign-on)" -- "[将身份提供程序连接到组织](/articles/connecting-your-identity-provider-to-your-organization)" -- "[对组织启用并测试 SAML 单点登录](/articles/enabling-and-testing-saml-single-sign-on-for-your-organization)" - "[查看和管理成员对组织的 SAML 访问](/github/setting-up-and-managing-organizations-and-teams//viewing-and-managing-a-members-saml-access-to-your-organization)" diff --git a/translations/zh-CN/content/organizations/managing-saml-single-sign-on-for-your-organization/troubleshooting-identity-and-access-management.md b/translations/zh-CN/content/organizations/managing-saml-single-sign-on-for-your-organization/troubleshooting-identity-and-access-management.md index fada86ae1f53..903987be8790 100644 --- a/translations/zh-CN/content/organizations/managing-saml-single-sign-on-for-your-organization/troubleshooting-identity-and-access-management.md +++ b/translations/zh-CN/content/organizations/managing-saml-single-sign-on-for-your-organization/troubleshooting-identity-and-access-management.md @@ -11,7 +11,11 @@ shortTitle: Troubleshooting access ## Some users are not provisioned or deprovisioned by SCIM -When you encounter provisioning issues with users, we recommend that you check if the users are missing SCIM metadata. If an organization member has missing SCIM metadata, then you can re-provision SCIM for the user manually through your IdP. +When you encounter provisioning issues with users, we recommend that you check if the users are missing SCIM metadata. + +{% data reusables.scim.changes-should-come-from-idp %} + +If an organization member has missing SCIM metadata, then you can re-provision SCIM for the user manually through your IdP. ### Auditing users for missing SCIM metadata @@ -78,7 +82,7 @@ For more information on using the GraphQL API, see: ### Re-provisioning SCIM for users through your identity provider -You can re-provision SCIM for users manually through your IdP. For example, to resolve provisioning errors, in the Okta admin portal, you can unassign and reassign users to the {% data variables.product.prodname_dotcom %} app. This should trigger Okta to make an API call to populate the SCIM metadata for these users on {% data variables.product.prodname_dotcom %}. For more information, see "[Unassign users from applications](https://help.okta.com/en/prod/Content/Topics/users-groups-profiles/usgp-unassign-apps.htm)" or "[Assign users to applications](https://help.okta.com/en/prod/Content/Topics/users-groups-profiles/usgp-assign-apps.htm)" in the Okta documentation. +You can re-provision SCIM for users manually through your IdP. For example, to resolve provisioning errors for Okta, in the Okta admin portal, you can unassign and reassign users to the {% data variables.product.prodname_dotcom %} app. This should trigger Okta to make an API call to populate the SCIM metadata for these users on {% data variables.product.prodname_dotcom %}. For more information, see "[Unassign users from applications](https://help.okta.com/en/prod/Content/Topics/users-groups-profiles/usgp-unassign-apps.htm)" or "[Assign users to applications](https://help.okta.com/en/prod/Content/Topics/users-groups-profiles/usgp-assign-apps.htm)" in the Okta documentation. To confirm that a user's SCIM identity is created, we recommend testing this process with a single organization member whom you have confirmed doesn't have a SCIM external identity. After manually updating the users in your IdP, you can check if the user's SCIM identity was created using the SCIM API or on {% data variables.product.prodname_dotcom %}. For more information, see "[Auditing users for missing SCIM metadata](#auditing-users-for-missing-scim-metadata)" or the REST API endpoint "[Get SCIM provisioning information for a user](/rest/reference/scim#get-scim-provisioning-information-for-a-user)." diff --git a/translations/zh-CN/content/pull-requests/collaborating-with-pull-requests/working-with-forks/syncing-a-fork.md b/translations/zh-CN/content/pull-requests/collaborating-with-pull-requests/working-with-forks/syncing-a-fork.md index 5124c25f5711..df5754b97283 100644 --- a/translations/zh-CN/content/pull-requests/collaborating-with-pull-requests/working-with-forks/syncing-a-fork.md +++ b/translations/zh-CN/content/pull-requests/collaborating-with-pull-requests/working-with-forks/syncing-a-fork.md @@ -26,10 +26,22 @@ permissions: People with write access for a forked repository can sync the fork 如果上游仓库的更改导致冲突,{% data variables.product.company_short %} 将提示您创建拉取请求以解决冲突。 +## Syncing a fork with the {% data variables.product.prodname_cli %} + +{% data reusables.cli.about-cli %} 要了解 {% data variables.product.prodname_cli %} 的更多信息,请参阅“[关于 {% data variables.product.prodname_cli %}](/github-cli/github-cli/about-github-cli)”。 + +To update the remote fork from its parent, use the `gh repo sync` subcommand and supply your fork name as argument. + +```shell +$ gh repo sync owner/cli-fork +``` + +If the changes from the upstream repository cause conflict then the {% data variables.product.prodname_cli %} can't sync. You can set the `-force` flag to overwrite the destination branch. + ## 从命令行同步复刻 {% endif %} -必须在 Git 中[配置指向上游仓库的远程仓库](/pull-requests/collaborating-with-pull-requests/working-with-forks/configuring-a-remote-for-a-fork),然后才能将您的复刻与上游仓库同步。 +Before you can sync your fork with an upstream repository, you must [configure a remote that points to the upstream repository](/pull-requests/collaborating-with-pull-requests/working-with-forks/configuring-a-remote-for-a-fork) in Git. {% data reusables.command_line.open_the_multi_os_terminal %} 2. 将当前工作目录更改为您的本地仓库。 @@ -74,6 +86,6 @@ permissions: People with write access for a forked repository can sync the fork {% tip %} -**提示**:同步复刻仅更新仓库的本地副本。 要在 {% data variables.product.product_location %} 上更新复刻,您必须[推送更改](/github/getting-started-with-github/pushing-commits-to-a-remote-repository/)。 +**Tip**: Syncing your fork only updates your local copy of the repository. 要在 {% data variables.product.product_location %} 上更新复刻,您必须[推送更改](/github/getting-started-with-github/pushing-commits-to-a-remote-repository/)。 {% endtip %} diff --git a/translations/zh-CN/content/repositories/configuring-branches-and-merges-in-your-repository/defining-the-mergeability-of-pull-requests/managing-a-branch-protection-rule.md b/translations/zh-CN/content/repositories/configuring-branches-and-merges-in-your-repository/defining-the-mergeability-of-pull-requests/managing-a-branch-protection-rule.md index cfbf8ca1b28d..85282dee0a32 100644 --- a/translations/zh-CN/content/repositories/configuring-branches-and-merges-in-your-repository/defining-the-mergeability-of-pull-requests/managing-a-branch-protection-rule.md +++ b/translations/zh-CN/content/repositories/configuring-branches-and-merges-in-your-repository/defining-the-mergeability-of-pull-requests/managing-a-branch-protection-rule.md @@ -41,7 +41,7 @@ shortTitle: 分支保护规则 要创建对现有分支规则的例外,您可以创建优先级更高的新分支保护规则,例如针对特定分支名称的分支规则。 -For more information about each of the available branch protection settings, see "[About protected branches](/github/administering-a-repository/about-protected-branches)." +有关每个可用分支保护设置的更多信息,请参阅“[关于受保护分支](/github/administering-a-repository/about-protected-branches)”。 ## 创建分支保护规则 @@ -52,18 +52,18 @@ For more information about each of the available branch protection settings, see {% data reusables.repositories.repository-branches %} {% data reusables.repositories.add-branch-protection-rules %} {% ifversion fpt or ghec or ghes > 3.3 or ghae-issue-5506 %} -1. Optionally, enable required pull requests. - - Under "Protect matching branches", select **Require a pull request before merging**. ![拉取请求审查限制复选框](/assets/images/help/repository/PR-reviews-required-updated.png) - - Optionally, to require approvals before a pull request can be merged, select **Require approvals**, click the **Required number of approvals before merging** drop-down menu, then select the number of approving reviews you would like to require on the branch. ![用于选择必需审查批准数量的下拉菜单](/assets/images/help/repository/number-of-required-review-approvals-updated.png) +1. (可选)启用所需的拉取请求。 + - 在“Protect matching branches(保护匹配分支)”下,选择 **Require a pull request before merging(合并前需要拉取请求)**。 ![拉取请求审查限制复选框](/assets/images/help/repository/PR-reviews-required-updated.png) + - (可选)要在合并拉取请求之前要求审批,请选择 **Require approvals(需要审批)**,单击 **Required number of approvals before merging(合并前所需的审批数)**下拉菜单,然后选择您希望在分支上要求的审批审核数。 ![用于选择必需审查批准数量的下拉菜单](/assets/images/help/repository/number-of-required-review-approvals-updated.png) {% else %} 1. (可选)启用必需拉取请求审查。 - 在“Protect matching branches(保护匹配分支)”下,选择 **Require pull request reviews before merging(合并前必需拉取请求审查)**。 ![拉取请求审查限制复选框](/assets/images/help/repository/PR-reviews-required.png) - - Click the **Required approving reviews** drop-down menu, then select the number of approving reviews you would like to require on the branch. ![用于选择必需审查批准数量的下拉菜单](/assets/images/help/repository/number-of-required-review-approvals.png) + - 单击 **Required approving reviews(必需批准审查)**下拉菜单,然后选择要对分支要求的批准审查数量。 ![用于选择必需审查批准数量的下拉菜单](/assets/images/help/repository/number-of-required-review-approvals.png) {% endif %} - (可选)要在将代码修改提交推送到分支时忽略拉取请求批准审查,请选择 **Dismiss stale pull request approvals when new commits are pushed(推送新提交时忽略旧拉取请求批准)**。 ![在推送新提交时,关闭旧拉取请求批准的复选框](/assets/images/help/repository/PR-reviews-required-dismiss-stale.png) - (可选)要在拉取请求影响具有指定所有者的代码时要求代码所有者审查,请选择 **Require review from Code Owners(需要代码所有者审查)**。 更多信息请参阅“[关于代码所有者](/github/creating-cloning-and-archiving-repositories/about-code-owners)”。 ![代码所有者的必需审查](/assets/images/help/repository/PR-review-required-code-owner.png) {% ifversion fpt or ghec or ghes > 3.3 or ghae-issue-5611 %} - - Optionally, to allow specific people or teams to push code to the branch without being subject to the pull request rules above, select **Allow specific actors to bypass pull request requirements**. Then, search for and select the people or teams who are allowed to bypass the pull request requirements. ![Allow specific actors to bypass pull request requirements checkbox](/assets/images/help/repository/PR-bypass-requirements.png) + - Optionally, to allow specific people or teams to push code to the branch without creating pull requests when they're required, select **Allow specific actors to bypass required pull requests**. Then, search for and select the people or teams who should be allowed to skip creating a pull request. ![允许特定执行者绕过拉取请求要求复选框](/assets/images/help/repository/PR-bypass-requirements.png) {% endif %} - (可选)如果仓库属于组织,请选择 **Restrict who can dismiss pull request reviews(限制谁可以忽略拉取请求审查)**。 然后,搜索并选择有权忽略拉取请求审查的人员或团队。 更多信息请参阅“[忽略拉取请求审查](/pull-requests/collaborating-with-pull-requests/reviewing-changes-in-pull-requests/dismissing-a-pull-request-review)”。 ![限制可以忽略拉取请求审查的人员复选框](/assets/images/help/repository/PR-review-required-dismissals.png) 1. (可选)启用必需状态检查。 更多信息请参阅“[关于状态检查](/pull-requests/collaborating-with-pull-requests/collaborating-on-repositories-with-code-quality-features/about-status-checks)”。 diff --git a/translations/zh-CN/content/repositories/creating-and-managing-repositories/duplicating-a-repository.md b/translations/zh-CN/content/repositories/creating-and-managing-repositories/duplicating-a-repository.md index af6ac1b89aea..9eb8618b6072 100644 --- a/translations/zh-CN/content/repositories/creating-and-managing-repositories/duplicating-a-repository.md +++ b/translations/zh-CN/content/repositories/creating-and-managing-repositories/duplicating-a-repository.md @@ -1,6 +1,6 @@ --- title: 镜像仓库 -intro: 'To maintain a mirror of a repository without forking it, you can run a special clone command, then mirror-push to the new repository.' +intro: 要维护存储库的镜像而不对其进行复刻,可以运行特殊的克隆命令,然后镜像推送到新存储库。 redirect_from: - /articles/duplicating-a-repo - /articles/duplicating-a-repository @@ -19,13 +19,13 @@ topics: {% note %} -**Note:** If you have a project hosted on another version control system, you can automatically import your project to {% data variables.product.prodname_dotcom %} using the {% data variables.product.prodname_dotcom %} Importer tool. For more information, see "[About {% data variables.product.prodname_dotcom %} Importer](/get-started/importing-your-projects-to-github/importing-source-code-to-github/about-github-importer)." +**注意:** 如果您在其他版本控制系统上托管了项目,则可以使用 {% data variables.product.prodname_dotcom %} 导入程序工具自动将项目导入到 {% data variables.product.prodname_dotcom %}。 更多信息请参阅“[关于 {% data variables.product.prodname_dotcom %} Importer](/get-started/importing-your-projects-to-github/importing-source-code-to-github/about-github-importer)”。 {% endnote %} {% endif %} -Before you can push the original repository to your new copy, or _mirror_, of the repository, you must [create the new repository](/articles/creating-a-new-repository) on {% data variables.product.product_location %}. 在以下示例中,`exampleuser/new-repository` 或 `exampleuser/mirrored` 是镜像。 +在将原始存储库推送到存储库的新副本或_镜像_之前,必须在 {% data variables.product.product_location %} 上[创建新的存储库](/articles/creating-a-new-repository)。 在以下示例中,`exampleuser/new-repository` 或 `exampleuser/mirrored` 是镜像。 ## 镜像仓库 @@ -98,8 +98,8 @@ Before you can push the original repository to your new copy, or _mirror_, of th {% ifversion fpt or ghec %} ## 延伸阅读 -* "[Pushing changes to GitHub](/desktop/contributing-and-collaborating-using-github-desktop/making-changes-in-a-branch/pushing-changes-to-github#pushing-changes-to-github)" -* "[About Git Large File Storage and GitHub Desktop](/desktop/getting-started-with-github-desktop/about-git-large-file-storage-and-github-desktop)" +* "[将更改推送到 GitHub](/desktop/contributing-and-collaborating-using-github-desktop/making-changes-in-a-branch/pushing-changes-to-github#pushing-changes-to-github)" +* "[关于 Git 大文件存储和 GitHub Desktop](/desktop/getting-started-with-github-desktop/about-git-large-file-storage-and-github-desktop)" * “[关于 GitHub 导入工具](/get-started/importing-your-projects-to-github/importing-source-code-to-github/about-github-importer)” {% endif %} diff --git a/translations/zh-CN/content/repositories/managing-your-repositorys-settings-and-features/managing-repository-settings/managing-git-lfs-objects-in-archives-of-your-repository.md b/translations/zh-CN/content/repositories/managing-your-repositorys-settings-and-features/managing-repository-settings/managing-git-lfs-objects-in-archives-of-your-repository.md index 637b757e5a48..45375d89a505 100644 --- a/translations/zh-CN/content/repositories/managing-your-repositorys-settings-and-features/managing-repository-settings/managing-git-lfs-objects-in-archives-of-your-repository.md +++ b/translations/zh-CN/content/repositories/managing-your-repositorys-settings-and-features/managing-repository-settings/managing-git-lfs-objects-in-archives-of-your-repository.md @@ -19,7 +19,7 @@ redirect_from: 如果您选择在仓库存档中包含 {% data variables.large_files.product_name_short %} 对象,则每次下载这些存档都会计入您帐户的带宽使用量。 每个帐户每月免费获得 {% data variables.large_files.initial_bandwidth_quota %} 的带宽,您可以付费获得额外用量。 更多信息请参阅“[关于存储和带宽使用](/github/managing-large-files/about-storage-and-bandwidth-usage)”和“[管理 {% data variables.large_files.product_name_long %} 的计费](/billing/managing-billing-for-git-large-file-storage)”。 -If you use an external LFS server (configured in your `.lfsconfig`), those LFS files will not be included in archives of the repository. The archive will only contain files that have been committed to {% data variables.product.product_name %}. +如果您使用外部 LFS 服务器(在 `.lfsconfig` 中配置),则这些 LFS 文件将不会包含在存储库的存档中。 存档将仅包含已提交到 {% data variables.product.product_name %} 的文件。 ## 管理存档中的 {% data variables.large_files.product_name_short %} 对象 diff --git a/translations/zh-CN/content/repositories/working-with-files/index.md b/translations/zh-CN/content/repositories/working-with-files/index.md index 1e874875f794..5aacfdb894b1 100644 --- a/translations/zh-CN/content/repositories/working-with-files/index.md +++ b/translations/zh-CN/content/repositories/working-with-files/index.md @@ -1,6 +1,6 @@ --- -title: Working with files -intro: Learn how to manage and use files in repositories. +title: 使用文件 +intro: 了解如何管理和使用存储库中的文件。 redirect_from: - /categories/81/articles - /categories/manipulating-files @@ -17,6 +17,6 @@ children: - /managing-files - /using-files - /managing-large-files -shortTitle: Work with files +shortTitle: 使用文件 --- diff --git a/translations/zh-CN/content/repositories/working-with-files/managing-files/moving-a-file-to-a-new-location.md b/translations/zh-CN/content/repositories/working-with-files/managing-files/moving-a-file-to-a-new-location.md index 909ed466ff5d..90a0d7a66637 100644 --- a/translations/zh-CN/content/repositories/working-with-files/managing-files/moving-a-file-to-a-new-location.md +++ b/translations/zh-CN/content/repositories/working-with-files/managing-files/moving-a-file-to-a-new-location.md @@ -1,6 +1,6 @@ --- title: 将文件移至新位置 -intro: 'You can move a file to a different directory on {% data variables.product.product_name %} or by using the command line.' +intro: '您可以在 {% data variables.product.product_name %} 上或使用命令行将文件移动到其他目录。' redirect_from: - /articles/moving-a-file-to-a-new-location - /github/managing-files-in-a-repository/moving-a-file-to-a-new-location @@ -20,7 +20,7 @@ shortTitle: 移动 文件 除了更改文件位置之外,您也可以在同一提交中[更新文件内容](/articles/editing-files-in-your-repository)或[提供新名称](/articles/renaming-a-file)。 -## Moving a file to a new location on {% data variables.product.product_name %} +## 将文件移动到 {% data variables.product.product_name %} 上的新位置 {% tip %} diff --git a/translations/zh-CN/data/features/enterprise-owner-join-org.yml b/translations/zh-CN/data/features/enterprise-owner-join-org.yml new file mode 100644 index 000000000000..847a54f8b56d --- /dev/null +++ b/translations/zh-CN/data/features/enterprise-owner-join-org.yml @@ -0,0 +1,5 @@ +--- +versions: + ghec: '*' + ghes: '>=3.5' + ghae: 'issue-5740' diff --git a/translations/zh-CN/data/features/remove-enterprise-members.yml b/translations/zh-CN/data/features/remove-enterprise-members.yml new file mode 100644 index 000000000000..a9ef5be6d690 --- /dev/null +++ b/translations/zh-CN/data/features/remove-enterprise-members.yml @@ -0,0 +1,5 @@ +--- +versions: + ghec: '*' + ghes: '>=3.5' + ghae: 'issue-5739' diff --git a/translations/zh-CN/data/reusables/actions/runner-group-assign-policy-org.md b/translations/zh-CN/data/reusables/actions/runner-group-assign-policy-org.md index 850724ef11b8..8cf19ca67863 100644 --- a/translations/zh-CN/data/reusables/actions/runner-group-assign-policy-org.md +++ b/translations/zh-CN/data/reusables/actions/runner-group-assign-policy-org.md @@ -1,3 +1,3 @@ 1. 输入运行程序组的名称,并分配组织访问策略。 - 您可以配置运行器组供特定的组织列表或企业中所有组织访问。 默认情况下,只有私有仓库可以访问运行器组中的运行器,但您可以覆盖此设置。 This setting can't be overridden if configuring an organization's runner group that was shared by an enterprise. + 您可以配置运行器组供特定的组织列表或企业中所有组织访问。 默认情况下,只有私有仓库可以访问运行器组中的运行器,但您可以覆盖此设置。 如果配置企业共享的组织的运行组,则不能覆盖此设置。 diff --git a/translations/zh-CN/data/reusables/actions/runner-group-assign-policy-repo.md b/translations/zh-CN/data/reusables/actions/runner-group-assign-policy-repo.md index 6fe15bf7bfd3..9be2162b0a14 100644 --- a/translations/zh-CN/data/reusables/actions/runner-group-assign-policy-repo.md +++ b/translations/zh-CN/data/reusables/actions/runner-group-assign-policy-repo.md @@ -1,3 +1,3 @@ 1. 输入运行程序组的名称,并分配仓库访问策略。 - 您可以配置一个运行器组可供一组特定的仓库或组织中所有仓库访问。 默认情况下,只有私有仓库可以访问运行器组中的运行器,但您可以覆盖此设置。 This setting can't be overridden if configuring an organization's runner group that was shared by an enterprise. + 您可以配置一个运行器组可供一组特定的仓库或组织中所有仓库访问。 默认情况下,只有私有仓库可以访问运行器组中的运行器,但您可以覆盖此设置。 如果配置企业共享的组织的运行组,则不能覆盖此设置。 diff --git a/translations/zh-CN/data/reusables/billing/email-notifications.md b/translations/zh-CN/data/reusables/billing/email-notifications.md index 730b423648c2..94af39b8b2f6 100644 --- a/translations/zh-CN/data/reusables/billing/email-notifications.md +++ b/translations/zh-CN/data/reusables/billing/email-notifications.md @@ -2,4 +2,4 @@ Email notifications are sent to account owners and billing managers when spendin You can disable these notifications anytime by navigating to the bottom of the **Spending Limit** page. -![Screenshot of the billing email notification settings](/assets/images/help/billing/actions-packages-spending-limit-notifications.png) +![帐单邮箱通知设置的屏幕截图](/assets/images/help/billing/actions-packages-spending-limit-notifications.png) diff --git a/translations/zh-CN/data/reusables/scim/changes-should-come-from-idp.md b/translations/zh-CN/data/reusables/scim/changes-should-come-from-idp.md new file mode 100644 index 000000000000..d6b8dee0d999 --- /dev/null +++ b/translations/zh-CN/data/reusables/scim/changes-should-come-from-idp.md @@ -0,0 +1 @@ +If SCIM provisioning is implemented for your organization, any changes to a user's organization membership should be triggered from the identity provider. If a user is invited to an organization manually instead of by an existing SCIM integration, their user account may not get properly linked to their SCIM identity. This can prevent the user account from being deprovisioned via SCIM in the future. If a user is removed manually instead of by an existing SCIM integration, a stale linked identity will remain, which can lead to issues if the user needs to re-join the organization. diff --git a/translations/zh-CN/data/ui.yml b/translations/zh-CN/data/ui.yml index 65426b33a929..59c7765b04a1 100644 --- a/translations/zh-CN/data/ui.yml +++ b/translations/zh-CN/data/ui.yml @@ -94,6 +94,11 @@ products: deprecation_notice: 废弃通知 rest: reference: + default: 默认值 + name: 名称 + in: In + type: 类型 + description: 描述 notes: 注: parameters: 参数 response: 响应 @@ -104,6 +109,7 @@ products: see_preview_notice: 查看预览通知 see_preview_notices: 查看预览通知 preview_header_is_required: 此标头必填 + preview_notice_to_change: This API is under preview and subject to change works_with_github_apps: Works with GitHub Apps footer: all_rights_reserved: 保留所有权利 From b6e4ed31b4f39efca7ddd98dab4316e8b24b50e5 Mon Sep 17 00:00:00 2001 From: Landon Grindheim Date: Thu, 3 Mar 2022 08:29:05 -0500 Subject: [PATCH 2/6] Update instructions for enabling Dependabot in 3.3 (#25765) --- .../dependabot/beta-security-and-version-updates-onboarding.md | 2 +- data/reusables/dependabot/beta-security-and-version-updates.md | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/data/reusables/dependabot/beta-security-and-version-updates-onboarding.md b/data/reusables/dependabot/beta-security-and-version-updates-onboarding.md index 647e6a17d499..4825ebce9c5b 100644 --- a/data/reusables/dependabot/beta-security-and-version-updates-onboarding.md +++ b/data/reusables/dependabot/beta-security-and-version-updates-onboarding.md @@ -2,7 +2,7 @@ {% note %} -**Note:** Dependabot security updates and version updates are currently available for {% data variables.product.prodname_ghe_cloud %} and in beta for {% data variables.product.prodname_ghe_server %} 3.3. To request access to the beta release, [contact your account management team](https://enterprise.github.com/contact). +**Note:** Dependabot security updates and version updates are currently available for {% data variables.product.prodname_ghe_cloud %} and in beta for {% data variables.product.prodname_ghe_server %} 3.3. Please [contact your account management team](https://enterprise.github.com/contact) for instructions on enabling Dependabot updates. {% endnote %} diff --git a/data/reusables/dependabot/beta-security-and-version-updates.md b/data/reusables/dependabot/beta-security-and-version-updates.md index e356372aa4b0..f3c7a1f363e4 100644 --- a/data/reusables/dependabot/beta-security-and-version-updates.md +++ b/data/reusables/dependabot/beta-security-and-version-updates.md @@ -4,7 +4,7 @@ {% if dependabot-updates-github-connect %} **Note:** {% data variables.product.prodname_dependabot %} security and version updates are currently in public beta and subject to change. {% else %} -**Note:** {% data variables.product.prodname_dependabot %} security and version updates are currently in private beta and subject to change. To request access to the beta release, [contact your account management team](https://enterprise.github.com/contact). +**Note:** {% data variables.product.prodname_dependabot %} security and version updates are currently in private beta and subject to change. Please [contact your account management team](https://enterprise.github.com/contact) for instructions on enabling Dependabot updates. {% endif %} {% endnote %} From 89f45939b696fbe474a9231a04cbc5e338f3ef21 Mon Sep 17 00:00:00 2001 From: Sarah Edwards Date: Thu, 3 Mar 2022 05:43:47 -0800 Subject: [PATCH 3/6] Document PR file tree view --- .../help/pull_requests/pr-file-tree.png | Bin 0 -> 95257 bytes .../filtering-files-in-a-pull-request.md | 26 ++++++++++++++++-- ...wing-proposed-changes-in-a-pull-request.md | 1 + data/features/pr-tree-view.yml | 7 +++++ 4 files changed, 32 insertions(+), 2 deletions(-) create mode 100644 assets/images/help/pull_requests/pr-file-tree.png create mode 100644 data/features/pr-tree-view.yml diff --git a/assets/images/help/pull_requests/pr-file-tree.png b/assets/images/help/pull_requests/pr-file-tree.png new file mode 100644 index 0000000000000000000000000000000000000000..cca0c658296089d8c9e917402d663f8fbe19d3bf GIT binary patch literal 95257 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 literal 0 HcmV?d00001 diff --git a/content/pull-requests/collaborating-with-pull-requests/reviewing-changes-in-pull-requests/filtering-files-in-a-pull-request.md b/content/pull-requests/collaborating-with-pull-requests/reviewing-changes-in-pull-requests/filtering-files-in-a-pull-request.md index bd7a9b087f57..025220fe3e05 100644 --- a/content/pull-requests/collaborating-with-pull-requests/reviewing-changes-in-pull-requests/filtering-files-in-a-pull-request.md +++ b/content/pull-requests/collaborating-with-pull-requests/reviewing-changes-in-pull-requests/filtering-files-in-a-pull-request.md @@ -1,6 +1,6 @@ --- title: Filtering files in a pull request -intro: 'To help you quickly review changes in a large pull request, you can filter changed files.' +intro: 'To help you quickly review changes in a large pull request, you can filter changed files{% if pr-tree-view %} or use the file tree to navigate between files{% endif %}.' 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 @@ -16,7 +16,9 @@ topics: - Pull requests shortTitle: Filter files --- -You can filter files in a pull request by file extension type, such as `.html` or `.js`, lack of an extension, code ownership, or dotfiles. +You can filter files in a pull request by file extension type, such as `.html` or `.js`, lack of an extension, code ownership, or dotfiles.{% if pr-tree-view %} You can also use the file tree to filter by file path, navigate between files, or see a high level view of the changed files.{% endif %} + +## Using the file filter dropdown {% tip %} @@ -32,6 +34,26 @@ You can filter files in a pull request by file extension type, such as `.html` o 5. Optionally, to clear the filter selection, under the **Files changed** tab, click **Clear**. ![Clear file filter selection](/assets/images/help/pull_requests/clear-file-filter.png) +{% if pr-tree-view %} +## Using the file tree + +{% data reusables.repositories.sidebar-pr %} +1. In the list of pull requests, click the pull request you'd like to filter. +{% data reusables.repositories.changed-files %} +1. If the file tree is hidden, click **Show file tree** to display the file tree. + + {% note %} + + **Note**: The file tree will not display if your screen width is too narrow or if the pull request only includes one file. + + {% endnote %} + +1. Click on a file in the file tree to view the corresponding file diff. + ![Pull request file tree](/assets/images/help/pull_requests/pr-file-tree.png) +1. To filter by file path, enter part or all of the file path in the **Filter changed files** search box. Alternatively, use the file filter dropdown. For more information, see "[Using the file filter dropdown](#using-the-file-filter-dropdown)." + +{% endif %} + ## Further reading - "[About comparing branches in a pull request](/pull-requests/collaborating-with-pull-requests/proposing-changes-to-your-work-with-pull-requests/about-comparing-branches-in-pull-requests)" 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 3635048c074b..f5713b166e10 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 @@ -36,6 +36,7 @@ You can review changes in a pull request one file at a time. While reviewing the You can also choose to hide whitespace differences. The choice you make only applies to this pull request and will be remembered the next time you visit this page. {% endif %} +1. Optionally, filter the files to show only the files you want to review{% if pr-tree-view %} or use the file tree to navigate to a specific file{% endif %}. For more information, see "[Filtering files in a pull request](/pull-requests/collaborating-with-pull-requests/reviewing-changes-in-pull-requests/filtering-files-in-a-pull-request)." {% data reusables.repositories.start-line-comment %} {% data reusables.repositories.type-line-comment %} {% data reusables.repositories.suggest-changes %} diff --git a/data/features/pr-tree-view.yml b/data/features/pr-tree-view.yml new file mode 100644 index 000000000000..12f8c5569196 --- /dev/null +++ b/data/features/pr-tree-view.yml @@ -0,0 +1,7 @@ +# Issue 5892 +# PR file tree view +versions: + fpt: '*' + ghec: '*' + ghes: '>=3.5' + ghae: 'issue-5892' From 0f35b9b82de5913b801253aaa65f3bf8c15b9cc3 Mon Sep 17 00:00:00 2001 From: Quinn Murphy Date: Thu, 3 Mar 2022 10:57:49 -0500 Subject: [PATCH 4/6] adding yaml release notes (#25796) --- data/release-notes/enterprise-server/3-2/10.yml | 13 +++++++++++++ data/release-notes/enterprise-server/3-3/18.yml | 14 ++++++++++++++ data/release-notes/enterprise-server/3-3/5.yml | 15 +++++++++++++++ 3 files changed, 42 insertions(+) create mode 100644 data/release-notes/enterprise-server/3-2/10.yml create mode 100644 data/release-notes/enterprise-server/3-3/18.yml create mode 100644 data/release-notes/enterprise-server/3-3/5.yml diff --git a/data/release-notes/enterprise-server/3-2/10.yml b/data/release-notes/enterprise-server/3-2/10.yml new file mode 100644 index 000000000000..3605ac86dcdb --- /dev/null +++ b/data/release-notes/enterprise-server/3-2/10.yml @@ -0,0 +1,13 @@ +date: '2022-03-01' +sections: + bugs: + - Upgrades could sometimes fail if a high-availability replica's clock was out of sync with the primary. + - OAuth Applications created after September 1st, 2020 were not able to use the [Check an Authorization](https://docs.github.com/en/enterprise-server@3.2/rest/reference/apps#check-an-authorization) API endpoint. + known_issues: + - On a freshly set up {% data variables.product.prodname_ghe_server %} instance without any users, an attacker could create the first admin user. + - Custom firewall rules are removed during the upgrade process. + - Git LFS tracked files [uploaded through the web interface](https://github.com/blog/2105-upload-files-to-your-repositories) are incorrectly added directly to the repository. + - Issues cannot be closed if they contain a permalink to a blob in the same repository, where the blob's file path is longer than 255 characters. + - When "Users can search GitHub.com" is enabled with GitHub Connect, issues in private and internal repositories are not included in GitHub.com search results. + - The {% data variables.product.prodname_registry %} npm registry no longer returns a time value in metadata responses. This was done to allow for substantial performance improvements. We continue to have all the data necessary to return a time value as part of the metadata response and will resume returning this value in the future once we have solved the existing performance issues. + - Resource limits that are specific to processing pre-receive hooks may cause some pre-receive hooks to fail. diff --git a/data/release-notes/enterprise-server/3-3/18.yml b/data/release-notes/enterprise-server/3-3/18.yml new file mode 100644 index 000000000000..11c7167695bc --- /dev/null +++ b/data/release-notes/enterprise-server/3-3/18.yml @@ -0,0 +1,14 @@ +date: '2022-03-01' +sections: + bugs: + - Upgrades could sometimes fail if a high-availability replica's clock was out of sync with the primary. + - OAuth Applications created after September 1st, 2020 were not able to use the [Check an Authorization](https://docs.github.com/en/enterprise-server@3.1/rest/reference/apps#check-an-authorization) API endpoint. + known_issues: + - The {% data variables.product.prodname_registry %} npm registry no longer returns a time value in metadata responses. This was done to allow for substantial performance improvements. We continue to have all the data necessary to return a time value as part of the metadata response and will resume returning this value in the future once we have solved the existing performance issues. + - On a freshly set up {% data variables.product.prodname_ghe_server %} instance without any users, an attacker could create the first admin user. + - Custom firewall rules are removed during the upgrade process. + - Git LFS tracked files [uploaded through the web interface](https://github.com/blog/2105-upload-files-to-your-repositories) are incorrectly added directly to the repository. + - Issues cannot be closed if they contain a permalink to a blob in the same repository, where the blob's file path is longer than 255 characters. + - When "Users can search GitHub.com" is enabled with GitHub Connect, issues in private and internal repositories are not included in GitHub.com search results. + - If {% data variables.product.prodname_actions %} is enabled for {% data variables.product.prodname_ghe_server %}, teardown of a replica node with `ghe-repl-teardown` will succeed, but may return `ERROR:Running migrations`. + - Resource limits that are specific to processing pre-receive hooks may cause some pre-receive hooks to fail. diff --git a/data/release-notes/enterprise-server/3-3/5.yml b/data/release-notes/enterprise-server/3-3/5.yml new file mode 100644 index 000000000000..e814cac9a867 --- /dev/null +++ b/data/release-notes/enterprise-server/3-3/5.yml @@ -0,0 +1,15 @@ +date: '2022-03-01' +sections: + bugs: + - Upgrades could sometimes fail if a high-availability replica's clock was out of sync with the primary. + - OAuth Applications created after September 1st, 2020 were not able to use the [Check an Authorization](https://docs.github.com/en/enterprise-server@3.3/rest/reference/apps#check-an-authorization) API endpoint. + 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. + - Custom firewall rules are removed during the upgrade process. + - Git LFS tracked files [uploaded through the web interface](https://github.com/blog/2105-upload-files-to-your-repositories) are incorrectly added directly to the repository. + - Issues cannot be closed if they contain a permalink to a blob in the same repository, where the blob's file path is longer than 255 characters. + - When "Users can search GitHub.com" is enabled with GitHub Connect, issues in private and internal repositories are not included in GitHub.com search results. + - The {% data variables.product.prodname_registry %} npm registry no longer returns a time value in metadata responses. This was done to allow for substantial performance improvements. We continue to have all the data necessary to return a time value as part of the metadata response and will resume returning this value in the future once we have solved the existing performance issues. + - Resource limits that are specific to processing pre-receive hooks may cause some pre-receive hooks to fail. + - '{% data variables.product.prodname_actions %} storage settings cannot be validated and saved in the {% data variables.enterprise.management_console %} when "Force Path Style" is selected, and must instead be configured with the `ghe-actions-precheck` command line utility.' From 8f39ff6441f64a9d1c8b0cb255852d60c89124f9 Mon Sep 17 00:00:00 2001 From: Quinn Murphy Date: Thu, 3 Mar 2022 12:00:26 -0500 Subject: [PATCH 5/6] Early mar patch release (#25798) --- data/release-notes/enterprise-server/3-1/18.yml | 14 ++++++++++++++ 1 file changed, 14 insertions(+) create mode 100644 data/release-notes/enterprise-server/3-1/18.yml diff --git a/data/release-notes/enterprise-server/3-1/18.yml b/data/release-notes/enterprise-server/3-1/18.yml new file mode 100644 index 000000000000..11c7167695bc --- /dev/null +++ b/data/release-notes/enterprise-server/3-1/18.yml @@ -0,0 +1,14 @@ +date: '2022-03-01' +sections: + bugs: + - Upgrades could sometimes fail if a high-availability replica's clock was out of sync with the primary. + - OAuth Applications created after September 1st, 2020 were not able to use the [Check an Authorization](https://docs.github.com/en/enterprise-server@3.1/rest/reference/apps#check-an-authorization) API endpoint. + known_issues: + - The {% data variables.product.prodname_registry %} npm registry no longer returns a time value in metadata responses. This was done to allow for substantial performance improvements. We continue to have all the data necessary to return a time value as part of the metadata response and will resume returning this value in the future once we have solved the existing performance issues. + - On a freshly set up {% data variables.product.prodname_ghe_server %} instance without any users, an attacker could create the first admin user. + - Custom firewall rules are removed during the upgrade process. + - Git LFS tracked files [uploaded through the web interface](https://github.com/blog/2105-upload-files-to-your-repositories) are incorrectly added directly to the repository. + - Issues cannot be closed if they contain a permalink to a blob in the same repository, where the blob's file path is longer than 255 characters. + - When "Users can search GitHub.com" is enabled with GitHub Connect, issues in private and internal repositories are not included in GitHub.com search results. + - If {% data variables.product.prodname_actions %} is enabled for {% data variables.product.prodname_ghe_server %}, teardown of a replica node with `ghe-repl-teardown` will succeed, but may return `ERROR:Running migrations`. + - Resource limits that are specific to processing pre-receive hooks may cause some pre-receive hooks to fail. From 693fb35bc6f429b0dbe384d4ff63daa34e405d37 Mon Sep 17 00:00:00 2001 From: Peter Bengtsson Date: Thu, 3 Mar 2022 12:45:37 -0500 Subject: [PATCH 6/6] links on /rest/overview/endpoints (#25771) * links on /rest/overview/endpoints-available-for-github-apps * tests * remove unused code --- .../endpoints-available-for-github-apps.md | 17 +--------- .../endpoints-available-for-github-apps.tsx | 32 ++++++++----------- tests/rendering/rest.js | 4 +-- 3 files changed, 17 insertions(+), 36 deletions(-) diff --git a/content/rest/overview/endpoints-available-for-github-apps.md b/content/rest/overview/endpoints-available-for-github-apps.md index db6da5a5a0e0..ee73c0d87fa2 100644 --- a/content/rest/overview/endpoints-available-for-github-apps.md +++ b/content/rest/overview/endpoints-available-for-github-apps.md @@ -14,19 +14,4 @@ topics: shortTitle: GitHub App-enabled endpoints --- -You must use an installation access token to access endpoints using your {% data variables.product.prodname_github_app %}. For more information, see "[Authenticating with {% data variables.product.prodname_github_apps %}](/apps/building-github-apps/authenticating-with-github-apps/#authenticating-as-an-installation)." - -{% for thing in rest.operationsEnabledForGitHubApps[currentVersion] %} -{% assign category = thing[0] %} -{% assign operations = thing[1] %} -{% if operations.size > 0 %} -

- {{ category }} -

- -{% endif %} -{% endfor %} +**The content of this page is rendered as a NextJS page component.** diff --git a/pages/[versionId]/rest/overview/endpoints-available-for-github-apps.tsx b/pages/[versionId]/rest/overview/endpoints-available-for-github-apps.tsx index e4f7bad8a031..2b1a69a76f08 100644 --- a/pages/[versionId]/rest/overview/endpoints-available-for-github-apps.tsx +++ b/pages/[versionId]/rest/overview/endpoints-available-for-github-apps.tsx @@ -1,4 +1,5 @@ import { GetServerSideProps } from 'next' +import { useRouter } from 'next/router' import { MainContextT, MainContext, getMainContext } from 'components/context/MainContext' import { getArticleContextFromRequest, @@ -6,6 +7,7 @@ import { ArticleContext, } from 'components/context/ArticleContext' import { ArticlePage } from 'components/article/ArticlePage' +import { Link } from 'components/Link' import { getEnabledForApps } from 'lib/rest/index.js' type OperationT = { @@ -27,31 +29,27 @@ let enabledForApps: AppDataT | null = null type Props = { mainContext: MainContextT enabledForApps: EnabledAppCategoryT - userLanguage: string articleContext: ArticleContextT } -export default function Category({ - mainContext, - enabledForApps, - userLanguage, - articleContext, -}: Props) { - const content = Object.keys(enabledForApps).map((category: string, index: Number) => ( -
- {enabledForApps[category].length > 0 ? ( +export default function Category({ mainContext, enabledForApps, articleContext }: Props) { + const { locale } = useRouter() + + const content = Object.entries(enabledForApps).map(([category, operations]) => ( +
+ {operations.length > 0 && (

- {category} + {category}

- ) : null} + )} @@ -72,7 +70,6 @@ export const getServerSideProps: GetServerSideProps = async (context) => const res = context.res as object const currentVersion = context.query.versionId as string const mainContext = getMainContext(req, res) - const userLanguage = context.locale || '' if (!enabledForApps) { enabledForApps = (await getEnabledForApps()) as AppDataT @@ -82,7 +79,6 @@ export const getServerSideProps: GetServerSideProps = async (context) => props: { mainContext, enabledForApps: enabledForApps[currentVersion], - userLanguage, articleContext: getArticleContextFromRequest(req), }, } diff --git a/tests/rendering/rest.js b/tests/rendering/rest.js index 07d4810283bf..8890900f0be8 100644 --- a/tests/rendering/rest.js +++ b/tests/rendering/rest.js @@ -70,11 +70,11 @@ describe('REST references docs', () => { const schemaSlugs = [] // using the static file, generate the expected slug for each operation for (const [key, value] of Object.entries(enableForApps[version])) { - schemaSlugs.push(...value.map((item) => `en/rest/reference/${key}#${item.slug}`)) + schemaSlugs.push(...value.map((item) => `/en/rest/reference/${key}#${item.slug}`)) } // get all of the href attributes in the anchor tags const $ = await getDOM(`/en/${version}/rest/overview/endpoints-available-for-github-apps`) - const domH3Ids = $('a') + const domH3Ids = $('#article-contents a') .map((i, a) => $(a).attr('href')) .get() expect(schemaSlugs.every((slug) => domH3Ids.includes(slug))).toBe(true)