From 300a6296e502f4f2fde136d8328e22acde3d0fcb Mon Sep 17 00:00:00 2001 From: docubot <67483024+docubot@users.noreply.github.com> Date: Thu, 27 Jan 2022 02:05:10 +1000 Subject: [PATCH] New translation batch for cn (#24631) * 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 * remove now orphaned assets Co-authored-by: Peter Bengtsson Co-authored-by: Peter Bengtsson --- .../saml-deprovisioning-confirm.png | Bin 24209 -> 0 bytes .../business-accounts/saml-deprovisioning.png | Bin 25624 -> 0 bytes .../business-accounts/user-provisioning.png | Bin 27083 -> 0 bytes .../help/saml/okta-ghec-application.png | Bin 35163 -> 0 bytes translations/log/cn-resets.csv | 7 +- .../about-notifications.md | 2 +- .../setting-your-commit-email-address.md | 2 +- ...on-levels-for-a-user-account-repository.md | 2 +- ...iewing-peoples-roles-in-an-organization.md | 12 +- .../building-and-testing-java-with-ant.md | 2 +- .../building-and-testing-net.md | 4 +- .../building-and-testing-nodejs.md | 2 +- .../deploying-to-azure-kubernetes-service.md | 2 +- .../deploying-to-google-kubernetes-engine.md | 2 +- ...uring-openid-connect-in-hashicorp-vault.md | 2 +- ...and-troubleshooting-self-hosted-runners.md | 10 +- .../environment-variables.md | 218 ++++++++--- .../learn-github-actions/expressions.md | 50 +-- .../automatic-token-authentication.md | 4 + .../assigning-permissions-to-jobs.md | 2 +- .../actions/using-jobs/using-concurrency.md | 2 +- .../events-that-trigger-workflows.md | 58 ++- .../using-workflows/reusing-workflows.md | 4 +- .../workflow-commands-for-github-actions.md | 12 +- .../workflow-syntax-for-github-actions.md | 12 +- ...ring-secret-scanning-for-your-appliance.md | 2 +- .../accessing-the-management-console.md | 2 + .../command-line-utilities.md | 28 +- .../about-high-availability-configuration.md | 7 +- .../increasing-cpu-or-memory-resources.md | 2 +- .../upgrade-requirements.md | 3 +- .../upgrading-github-enterprise-server.md | 12 +- ...ting-github-actions-for-your-enterprise.md | 7 +- ...g-github-actions-with-amazon-s3-storage.md | 2 + ...-github-actions-with-azure-blob-storage.md | 2 + ...ions-with-minio-gateway-for-nas-storage.md | 2 + ...ub-actions-for-github-enterprise-server.md | 2 + ...-sign-on-for-your-enterprise-using-okta.md | 30 +- .../migrating-to-internal-repositories.md | 2 + .../about-two-factor-authentication.md | 4 + ...-github-using-two-factor-authentication.md | 18 + .../configuring-two-factor-authentication.md | 14 + .../troubleshooting-the-codeql-workflow.md | 10 +- ...installing-codeql-cli-in-your-ci-system.md | 36 +- .../zh-CN/content/code-security/guides.md | 44 +-- .../secret-scanning/about-secret-scanning.md | 70 ++-- ...g-secret-scanning-for-your-repositories.md | 1 - ...ing-custom-patterns-for-secret-scanning.md | 47 ++- .../code-security/secret-scanning/index.md | 1 + .../managing-alerts-from-secret-scanning.md | 1 - .../secret-scanning-partners.md | 55 +++ ...ltering-alerts-in-the-security-overview.md | 15 +- ...bout-alerts-for-vulnerable-dependencies.md | 4 +- ...configuring-dependabot-security-updates.md | 4 +- ...loring-the-dependencies-of-a-repository.md | 2 +- .../editing-wiki-content.md | 2 +- .../rate-limits-for-github-apps.md | 63 +++- ...nces-between-github-apps-and-oauth-apps.md | 16 +- ...ndpoints-for-the-github-marketplace-api.md | 2 +- .../about-github-importer.md | 31 ++ ...roject-to-github-using-the-command-line.md | 165 +++++++++ ...a-git-repository-using-the-command-line.md | 48 +++ ...rting-a-repository-with-github-importer.md | 38 ++ .../importing-source-code-to-github/index.md | 25 ++ .../source-code-migration-tools.md | 59 +++ ...author-attribution-with-github-importer.md | 43 +++ .../index.md | 19 + .../index.md | 17 + ...bversion-properties-supported-by-github.md | 29 ++ .../support-for-subversion-clients.md | 134 +++++++ ...-differences-between-subversion-and-git.md | 71 ++++ .../zh-CN/content/get-started/index.md | 3 + .../learning-about-github/githubs-products.md | 14 +- .../about-githubs-use-of-your-data.md | 41 +++ .../get-started/privacy-on-github/index.md | 16 + ...se-settings-for-your-private-repository.md | 36 ++ ...hive-program-for-your-public-repository.md | 25 ++ ...-archive-of-your-personal-accounts-data.md | 42 +++ .../using-github/github-command-palette.md | 16 +- .../get-started/using-github/github-mobile.md | 2 + .../creating-gists.md | 85 +++++ .../forking-and-cloning-gists.md | 36 ++ .../index.md | 19 + .../about-writing-and-formatting-on-github.md | 45 +++ .../basic-writing-and-formatting-syntax.md | 344 ++++++++++++++++++ .../index.md | 19 + .../get-started/writing-on-github/index.md | 21 ++ .../attaching-files.md | 64 ++++ .../autolinked-references-and-urls.md | 65 ++++ ...ting-a-permanent-link-to-a-code-snippet.md | 50 +++ .../creating-and-highlighting-code-blocks.md | 73 ++++ .../working-with-advanced-formatting/index.md | 22 ++ ...ing-information-with-collapsed-sections.md | 43 +++ .../organizing-information-with-tables.md | 83 +++++ ...ng-keywords-in-issues-and-pull-requests.md | 34 ++ .../about-saved-replies.md | 30 ++ .../creating-a-saved-reply.md | 26 ++ .../deleting-a-saved-reply.md | 18 + .../editing-a-saved-reply.md | 27 ++ .../working-with-saved-replies/index.md | 20 + .../using-saved-replies.md | 33 ++ translations/zh-CN/content/github/index.md | 3 - .../about-issues.md | 2 +- ...ing-the-audit-log-for-your-organization.md | 4 +- .../repository-roles-for-an-organization.md | 4 +- ...ng-a-former-member-of-your-organization.md | 15 +- ...saml-single-sign-on-and-scim-using-okta.md | 29 +- ...ml-single-sign-on-for-your-organization.md | 2 +- ...m-synchronization-for-your-organization.md | 2 +- .../introduction-to-github-packages.md | 2 +- .../automatically-merging-a-pull-request.md | 2 +- ...ut-archiving-content-and-data-on-github.md | 2 +- .../duplicating-a-repository.md | 4 +- .../zh-CN/content/repositories/index.md | 21 ++ .../guides/best-practices-for-integrators.md | 2 +- .../getting-started-with-the-rest-api.md | 8 +- .../overview/resources-in-the-rest-api.md | 63 +++- .../content/rest/reference/rate-limit.md | 2 +- .../zh-CN/content/rest/reference/search.md | 4 +- .../searching-issues-and-pull-requests.md | 2 +- .../data/learning-tracks/code-security.yml | 43 +-- .../actions/jobs/section-using-concurrency.md | 2 +- .../actions/perform-blob-storage-precheck.md | 1 + .../reusable-workflow-calling-syntax.md | 4 + .../reusables/actions/uses-keyword-example.md | 10 +- .../section-triggering-a-workflow-paths.md | 2 +- .../apps/api-rate-limits-non-ghec.md | 1 - .../apps/user-to-server-rate-limits-ghec.md | 4 + .../apps/user-to-server-rate-limits.md | 1 + .../user-provisioning-release-stage.md | 5 - .../data/reusables/enterprise/rate_limit.md | 11 +- .../hotpatching-explanation.md | 4 +- .../gated-features/secret-scanning.md | 17 +- .../rest-api/always-check-your-limit.md | 5 + .../reusables/saml/add-okta-application.md | 1 - .../data/reusables/saml/okta-admin-button.md | 1 - ...plications-click-ghec-application-label.md | 2 +- .../saml/okta-configure-api-integration.md | 2 +- .../saml/okta-dashboard-click-applications.md | 2 +- .../reusables/saml/okta-edit-provisioning.md | 14 +- .../saml/okta-enable-api-integration.md | 2 +- .../reusables/saml/okta-provisioning-tab.md | 2 +- .../reusables/saml/okta-save-provisioning.md | 2 +- .../saml/okta-sign-into-your-account.md | 1 + .../data/reusables/saml/okta-sign-on-tab.md | 2 +- .../saml/okta-view-setup-instructions.md | 2 +- .../saml/removed-users-can-rejoin.md | 1 + .../data/reusables/saml/search-ghec-okta.md | 1 - .../secret-scanning/about-secret-scanning.md | 2 - .../data/reusables/secret-scanning/beta.md | 15 +- .../secret-scanning/partner-program-link.md | 5 + .../shortdesc/rate_limits_github_apps.md | 2 +- .../two_fa/after-2fa-add-security-key.md | 2 +- ...to-reinstate-user-before-2fa-is-enabled.md | 2 +- translations/zh-CN/data/variables/contact.yml | 2 +- 155 files changed, 2865 insertions(+), 437 deletions(-) delete mode 100644 assets/images/help/business-accounts/saml-deprovisioning-confirm.png delete mode 100644 assets/images/help/business-accounts/saml-deprovisioning.png delete mode 100644 assets/images/help/business-accounts/user-provisioning.png delete mode 100644 assets/images/help/saml/okta-ghec-application.png create mode 100644 translations/zh-CN/content/code-security/secret-scanning/secret-scanning-partners.md create mode 100644 translations/zh-CN/content/get-started/importing-your-projects-to-github/importing-source-code-to-github/about-github-importer.md create mode 100644 translations/zh-CN/content/get-started/importing-your-projects-to-github/importing-source-code-to-github/adding-an-existing-project-to-github-using-the-command-line.md create mode 100644 translations/zh-CN/content/get-started/importing-your-projects-to-github/importing-source-code-to-github/importing-a-git-repository-using-the-command-line.md create mode 100644 translations/zh-CN/content/get-started/importing-your-projects-to-github/importing-source-code-to-github/importing-a-repository-with-github-importer.md create mode 100644 translations/zh-CN/content/get-started/importing-your-projects-to-github/importing-source-code-to-github/index.md create mode 100644 translations/zh-CN/content/get-started/importing-your-projects-to-github/importing-source-code-to-github/source-code-migration-tools.md create mode 100644 translations/zh-CN/content/get-started/importing-your-projects-to-github/importing-source-code-to-github/updating-commit-author-attribution-with-github-importer.md create mode 100644 translations/zh-CN/content/get-started/importing-your-projects-to-github/index.md create mode 100644 translations/zh-CN/content/get-started/importing-your-projects-to-github/working-with-subversion-on-github/index.md create mode 100644 translations/zh-CN/content/get-started/importing-your-projects-to-github/working-with-subversion-on-github/subversion-properties-supported-by-github.md create mode 100644 translations/zh-CN/content/get-started/importing-your-projects-to-github/working-with-subversion-on-github/support-for-subversion-clients.md create mode 100644 translations/zh-CN/content/get-started/importing-your-projects-to-github/working-with-subversion-on-github/what-are-the-differences-between-subversion-and-git.md create mode 100644 translations/zh-CN/content/get-started/privacy-on-github/about-githubs-use-of-your-data.md create mode 100644 translations/zh-CN/content/get-started/privacy-on-github/index.md create mode 100644 translations/zh-CN/content/get-started/privacy-on-github/managing-data-use-settings-for-your-private-repository.md create mode 100644 translations/zh-CN/content/get-started/privacy-on-github/opting-into-or-out-of-the-github-archive-program-for-your-public-repository.md create mode 100644 translations/zh-CN/content/get-started/privacy-on-github/requesting-an-archive-of-your-personal-accounts-data.md create mode 100644 translations/zh-CN/content/get-started/writing-on-github/editing-and-sharing-content-with-gists/creating-gists.md create mode 100644 translations/zh-CN/content/get-started/writing-on-github/editing-and-sharing-content-with-gists/forking-and-cloning-gists.md create mode 100644 translations/zh-CN/content/get-started/writing-on-github/editing-and-sharing-content-with-gists/index.md create mode 100644 translations/zh-CN/content/get-started/writing-on-github/getting-started-with-writing-and-formatting-on-github/about-writing-and-formatting-on-github.md create mode 100644 translations/zh-CN/content/get-started/writing-on-github/getting-started-with-writing-and-formatting-on-github/basic-writing-and-formatting-syntax.md create mode 100644 translations/zh-CN/content/get-started/writing-on-github/getting-started-with-writing-and-formatting-on-github/index.md create mode 100644 translations/zh-CN/content/get-started/writing-on-github/index.md create mode 100644 translations/zh-CN/content/get-started/writing-on-github/working-with-advanced-formatting/attaching-files.md create mode 100644 translations/zh-CN/content/get-started/writing-on-github/working-with-advanced-formatting/autolinked-references-and-urls.md create mode 100644 translations/zh-CN/content/get-started/writing-on-github/working-with-advanced-formatting/creating-a-permanent-link-to-a-code-snippet.md create mode 100644 translations/zh-CN/content/get-started/writing-on-github/working-with-advanced-formatting/creating-and-highlighting-code-blocks.md create mode 100644 translations/zh-CN/content/get-started/writing-on-github/working-with-advanced-formatting/index.md create mode 100644 translations/zh-CN/content/get-started/writing-on-github/working-with-advanced-formatting/organizing-information-with-collapsed-sections.md create mode 100644 translations/zh-CN/content/get-started/writing-on-github/working-with-advanced-formatting/organizing-information-with-tables.md create mode 100644 translations/zh-CN/content/get-started/writing-on-github/working-with-advanced-formatting/using-keywords-in-issues-and-pull-requests.md create mode 100644 translations/zh-CN/content/get-started/writing-on-github/working-with-saved-replies/about-saved-replies.md create mode 100644 translations/zh-CN/content/get-started/writing-on-github/working-with-saved-replies/creating-a-saved-reply.md create mode 100644 translations/zh-CN/content/get-started/writing-on-github/working-with-saved-replies/deleting-a-saved-reply.md create mode 100644 translations/zh-CN/content/get-started/writing-on-github/working-with-saved-replies/editing-a-saved-reply.md create mode 100644 translations/zh-CN/content/get-started/writing-on-github/working-with-saved-replies/index.md create mode 100644 translations/zh-CN/content/get-started/writing-on-github/working-with-saved-replies/using-saved-replies.md create mode 100644 translations/zh-CN/data/reusables/actions/perform-blob-storage-precheck.md create mode 100644 translations/zh-CN/data/reusables/actions/reusable-workflow-calling-syntax.md delete mode 100644 translations/zh-CN/data/reusables/apps/api-rate-limits-non-ghec.md create mode 100644 translations/zh-CN/data/reusables/apps/user-to-server-rate-limits-ghec.md create mode 100644 translations/zh-CN/data/reusables/apps/user-to-server-rate-limits.md delete mode 100644 translations/zh-CN/data/reusables/enterprise-accounts/user-provisioning-release-stage.md create mode 100644 translations/zh-CN/data/reusables/rest-api/always-check-your-limit.md delete mode 100644 translations/zh-CN/data/reusables/saml/add-okta-application.md delete mode 100644 translations/zh-CN/data/reusables/saml/okta-admin-button.md create mode 100644 translations/zh-CN/data/reusables/saml/okta-sign-into-your-account.md create mode 100644 translations/zh-CN/data/reusables/saml/removed-users-can-rejoin.md delete mode 100644 translations/zh-CN/data/reusables/saml/search-ghec-okta.md delete mode 100644 translations/zh-CN/data/reusables/secret-scanning/about-secret-scanning.md create mode 100644 translations/zh-CN/data/reusables/secret-scanning/partner-program-link.md diff --git a/assets/images/help/business-accounts/saml-deprovisioning-confirm.png b/assets/images/help/business-accounts/saml-deprovisioning-confirm.png deleted file mode 100644 index 783874885c5d18274eace96c38bfe8ed24dcf413..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 24209 zcmaHS1yEdFvn}pUa0~8kVQ>vPxCeJg(81k&@e1$#2rfZEH2fvEmRJh{)SCIJtQq^~0Ie8r(|K}D_Y z%qs8ZG_NfNTDl>cyl?*G)T|V&_JLGMq^keIa^VkVYsX8>P4(L0wr=@iAhikSyRn`Z zmziU1EL03R3k06_XA36A)`N^ikMbwfxKB>4PN3tO1+ue%bKK(j)6Q|qZi;EI5DlU3 z>t|$H6tAI_N)Oc643og8^D5`99aV9g42ZXbPE;pCcbxKr_&ZUbJ{uoG;4JHEC3K4xr6 zHZggRav(Hl$(3z+Mb9pt!`XNZXTUg36t;XanbGdjNwEukq6!piyjEr(DLR@3UT;q6v0;y?(~a^}pR)q*K0+(;>WnPq#MdDrwt8_7_c!>p zW5yY8P(HXG{jaCmRE>-hAXAC>D9xQ01H&u!Ev46N5<65 zu!COrnJUOh!au1)OWg^_2ttDTV9ErEs|*j4rYa*BsbtoVv6)6d?OmPs^I1~8<}FuB z)Aojp*=fhBD(e~vOMs}n_ql9A+@w!&KGDlhhqE z{N540XF{WkqI>Ii-oWFX%h)*JDp9|z28*37WO1gRi{vRMS)i0svdm}q0*}J(U5QK; zPf+j+!;rY6DG$}SMjMoCJ&d4Q70&?>i2*z)LjCjT z{OG}vU>|jJ*cb9ds9+d!-%f^!e-i?Lx&;UEd9ygd>hJ|y+`5*SD-T@>g=+QSI`C-? zyFqSKLI{~59r*2<3-KlFCt{nL2+5}tYzEOyv22|6iq!WFj_QwHA@~3WSOZa zGCWX`4CwwA`1F#HMXAGDfJ2w}O@lCSRsahfG^zX^LK1FSl@{Zp)8Oz^s^pC2mMZX- z92W zvngK4YY#p?OO-#S?xtFtd-y^z4r_@q&FHcnvB9> z1-`u0!Pyb(+<)rozFa;qxkNca1mx@;$(>J_&BNkwu3-CJ$@627kWz2qBLXnDNNPyc zNXq+0;tFQ_rsLXls$sx!m%e&MQOt-!B-ix~A-3Q1tjP}~4#pASzz8H;jASnCwI4pd zZ4KvNj=*X|Yb+9_ha}va2pf~th4dj&1{L_!FJKft1)sfK&^qA;jPFSI%64%{+0^rlkcR2|K^3G zY~@}pRgO#bLW&X6=yyUZez+c?TC^4pvFp$XI1A#9PkxM&NMol>B>mdZ4bSv4W4c)P%R6kAnKm(-GCS2 zp)Ry!wek^Jn$xCD;GWqgMY^>VJEy`e({k# zSCUbmY-8IULRUGE_azQBjYx7y6l)5MV^{JoAz>lw>KTpKL z7D2%4K?T$AQstu%92n?lJZ7xnAQPRdut~XxVqfP9@+D5-_WPlAwD*Dzd7z-lEYuol zMg_|+B-8CypZeJgHL1sV$?B|VWK$C`fskPZB%%jG8K3=jqH8r4kn6Zih@x7PmN4?n z(tEMGhL7O_BlFesYh3b+BYP!MFfC3KEO7R=n$PI&YT{;YnY;!((RyHp3$&LvU@67whR#F?6U z++{;1j;Z+rjWEP7mO0w7T?BgZZo(mz`5T9&lgdGOZw8-TkTuiXhASRkCEZv@yrXHPE# zhH&Ke{cZm0j?~_iXymSq(~S;9(+Mt3bjSLuyQu&+No#vqb zJ@!yvlfPoQmQmntgR8}WoA+U z{Uid_?_}@yn2m}->)yRU3N2U|ST&sIml!yT3Yf*LHj)JZy}|O_R93%YO{HMDH|G&78SLZU|o7j{vhI;}px*UE3 zTEF}rT3L9}E@k28ck^8MrJny8a2i-%EfpnW?%>Nvm~g-ba`$)h_Ws$w=lbQd<6f1_ zsO8L_hlSwc2gUMP8H#ur*PBvXzSho0QpVrj(EHu%ljkCg35{Z($DTmv%?mGmudeQ{ z7kIMKUkb`g)uI3~7l4sFQ&ArJO_hD>L~X5;SEpsmGIP%8w#^4}=9{2lbM78-h$-~> z@#WwxA&=BRJ5MqqR*Tq@4(||pr0ygP=uoNLSX&DX zboH@EyE?qmt<+j6iTiUje|R$nLz)wiX@(aw9G^3IOSuH;f-D%?k#LBGqKg8oPN&r)lo31tAU zC~tZB{XjYA-Cevn)(0~d%W07mOgb zti<-gnYbLRTBz~K>7S-`obeBG41J22&NWsAn##WyzFLR;Qe)+>Du26$R3^`d1GNp2 zK<>px%G1K`2Tfb#ho0A0FW$qS7V|U(tYPH-OW_UjlQN{{W z?1fhddw|hfCgkY5;#dG^piu>~Gt{<*ip z@gAz1qgfK)Bqv*6dwUnH(^uG+-@+ZvNlo7 zD^MO7O!m?i2}~P5z+RKBXX&Z`t}NV8;Ekg8OQv29%2&BJhua+%$|wh=12j@srer~( z_rwa(@m%o8xylT@yn?Dmn+3ywdc&J{sNe-0KD6oE@>=O+)0^mLh~2~E#||my$Y{OV zJIrUR1r9IKVYBx^fp1RD!nXpZU- z%(}M(_PyJR8uo?hbiUyEeNy_NSv#a;?r@*kaBMo4Oov_O8g{&{W$1f^-;C?`UK5XO zY19m3k$i_AOq)XX_t%G4pC`c`cQun}MG_tsWke=j0c&fG2rB@9I~v9}=cX=F!tS9q z#|_C;l({3Gz%>+z_}eAxXA(w|-qMDOO+uE!6-(S%SNnyxetydJz;mW*Up(!bAdJi@ z<$zYiMnQjjaH0|l1ygJFEWR$9*AAmEQSD3S{G#9p=qX8E^e<)Y^#1<>TN{B4Fr1L91bKUL* zxr|AtmmTTZ!)Qldz3c+{%|?nFlly5FPNqJe{@{Iz!%TE9VnCuDUgr=;?z@y7L^5-s z9kke$&MAptAF$I#H@ZgM zr;hdYc5&(O>_?MsKRdu)qlOJDMN6|d_f81FFt88y$7kf|3K8UC_)1Ohx|ygdV}ung zSPx8)0jU;;+MHPm(R*zUYN`U0=J;d zN=@J;mp0Pqb-8Mo=FsNgoY3)(fIL0@r#LJ012JNB7AY!^Dy4C(&)ghr4wDC*CK6ro zH>*84#SL2a&%d2|63*ohQyr*nRKUIr&Sh;!He|nU<8-Wkh(3SS6v|l&i`9^h5T&b|e|6OQ9jpLpz-iC#TPSeb;gjl0tL9zJ|(Rb7yS}uIIp;jL5pZJG@azhdI0MFO=A4(}}7YgVS_v;#n3z@eY2~l21~`#SNqsEk!~kop^XW z9z|Ntjwpz%;oxwc6Bc)lK?6}=b;a=DEPxG+i2v<43`ML^pd%Kbg&E=8OO5*cI|>H* zH&r<>xla;dD6`=^%vw$j?yY^dK}z?>5lZXB=y4mMA*^dcvLe;K#L@UM zONYybFOv)VE?b4$R9J6p*T?cn_zPO^$S0p1E=|U8n!^2#vd4awGC!xJJ=Fa_)Fpu+UjEknT$vuw6bZmi*86cXo$H zXq0Jzj>?QYLTz))u66DU4HdHnLX0|B_VU%op=91QKZUW0uh~M&t&c#xxQwDJkdhua z8q(y_=zh8G$LYfey^Ou@8MztBR}O z8WCBy2{{b3z^_!Xum+V&+4za6Y;s2@Sqjssn!o|Q-`v;#REH!O9e-0ZYHja?$X~A3 zx-92n_IYilE|D@p66>C1SP5YUc^#TEe~4{_9_%}(fMri9E}NPEVubL$?Xt4=r`-{I z56@dqAuy>-=IGCd)<~^-E;TQ>`~Z9`&w;RI2sX2ueC>kCM`x)Ae-|}2F1wWn0`OFKhZ*5;wx`}?= zNYRwCF)9n{0^bCM#YFHlT3fV}G!xnt2r204aMngew{S9i318EO;lTI3I>Xf5^6jb~ zaap0+--wi>bMF3j-!>&Mi?G;lL5O!_{JpntNbaqDSDXX;CwXyTEG;Y?%5rvTj1 zml)r!iKw;aTui4{L4;n)#ioAqo5{L#Z71jcSsf)6ZYyE^w#}UE;B1#M((gP9*pcpQs=|;duf7SrJ;o|N-%06 z%H?=G?J*SNmHSp^QqVcSf6M)91(_;>ia6&P35Qmb)GKA1mu}h@1 zAA<6l{`TI6HBFE;XHs-5j)(ZqwrK;<(WykxZlOQX+EJ46V`(rF=|zPj_IZE!-Zh6b zQSh_PD{cyA=bm|#>gvF_fmDNq$a)77lSV=H z%#;KCWsX4(o?|TO-@OlC1_dFdD%bU&6_VD!sxl^BRaI|V!y9_ zky&zc6~w-&m3p_8dkBf7@&Zv*uMh<6#u{4|1m+y6Vny!Qv;duPmCQb-_V;x-5IAF zd@AV1aw6R~x$z*ubm{Px&(UkL3LxZW7Z-or2Om12gCobyoeC&v*W~aTKv<=VF_rQY z+!vT(sU+6Kj|lm42KK1DwIyRD3aa>> zy)vRnX`W}&@BEfJpl(_ss~8@6GRF$JlV<$Vuy9WaQ8+@2Tu!( z8{{*8PSYV4l42aywT#-TV<@|!fV@3!ydlRi49~EX(xUvqt2^3sNBYu8Kb-;6Zw0bY zulZbkCFvg}9q!WVkN(U!r4ihZquaildb(||aXE`32bJ!a_=I=sBAixWwrENJJX0=o zbTRLBI-_Xxn`Mw-MI-bY`|^R<=y~zcCF@4Gr|5`aUm^=Wq?IxZ%*BBxAQ7bTD8OR? zmS)5Zzl+PoMnXMm-(9^rXCT1eiDnWqe%JY^etPI|i9{R>?S+(Z+toq_t z7$hV!bS;!XH}iL=Oy%vBj~LI>Wf;8@FMZP2O0vdKWre8IN{-5`ZI)5rbRc18YE~UlEmpu;?Jymom!BL8mQ;2{#j|ZKUQ_d_X z%A}{nfwXbGoX$=C`B>J^aly}OGZk*WyJ0>j0Rxmn=!*=lH$n9Z)KyrI3^Rc3A|(Ib z4mH=A7XJY(QlHy*0fH&Pr$szM+P%0n-Pmkd@wy!C@@_7?hmB@V`*?uhMPC(<{<`~j zy%TadR`1qr92Qz?@ov$@;3~*OKk^d*GAAOu5y0UEwfZL!T&FB0qDZymh=JF`fhW5@ zaNsb|5hLB)279($=;6s|glHF}YEnT5c=?&pRU&SR8f35SnR|~Fx+yaj8Wkj8GdxEF z`XLU3FKsYzO$!Ip!Q_Dr_VfIyLht(A1rP8vuJ>)M>iP#|30kjq*iLt~Xdz`sLlG|pM;q_^1;u${G6odSaa~@gb6m(J;u%Hzfg%#5h9u@Xu@eGh;i@#uFXZ7 zLNm*fK3&BK8CA}G;L-n4swf@_L^h}?tkn>@;qthL@y1HQhnB3>Ah-y2<4bqRe+g*z zE8x8<@(m;yU|>7HF$x7zWTz#f7Yj-rOrm>8>$DL4O=V)KK~uGtwxStW)WHV}8q<|b zQ@7y#!#N!(NCgrL)7L3g!9}gpGqUN~v56Sw>yS{s}N!RV<-a<_d+o zK7bs$Ab4fWU7*&xL6s*WYzt<8x!|a0PoaU=%$13^{M|-XV?3@5sIA`t20ZX_4k{#J z_6CCQML`kxu@URYU~KO`QvLaXeoh-g3tBl*-6FSZZ#=*N|4PBElVkA+2a&!7vwH7s-!xak*~L61|aNR8+!OS4h4D zWAP>>z$L3|#K3UqWX{ck8?-Mc)xUulk%G2b($rjpT$v~xO94P-an$t&%6}ib=^K`` z*+KM`|BnLFD}Cb2#T}WH&s(x7NU^ZaQgt>A1)h^K;<~MJJV73VT0938Ayly`wO_v> zax~Cw(O-Xnck2lI#5adkpq?323`70X6KSTM-s$@;&BV`%k~~2B*CCyWPplvh6;hDB z1WvGfG%f5g{}&;w0maQ}YEa0U7IMCp&{^>-X{Lbp$>*I#=xV{Nf-E{$x<1MI8ihuQKAVFZ$aKZD*7VGeZWEtn z^{8-nK-)$wlYp+eJ=a2B02-HJ4W|7LYrFuJ8^rr(x*{-Iy8l*iV~ag^+DkMMNiXLi)4KmU>C zKz-6N9aiQE1;Ior=Zm>^+2w?)f83Wg8&&lVtWTRL5cdTsN1(<_OLx$E_K2ek)7d%@ zI)u55NitHjHHCaF9-8DKbi^`-&5)r`8}lRls;YI?gXcm!ey%(r40@E#0Hu4o_%{_B zVw8Wa3eb~kuyeMH#f5wK5UyX~_L1(U??f2n`Z6s2mqk`f?b7q=te?&$xocA~M_bba zg8X)msosBrW}{hkh*ee(@>t!z_2OoHa=BS7u;J5>lY7AbLKK?6$O$>21c~${ z7Q~^c(j3*(P90m^Vf**3^ssEOTjPHg^Z03-am)xte601J35@N`S90VdAt8Z2qgs96 z#roGN`QK|2=zp>Q?c%>qK*_1AIh+VDL;u|2q=&0d4$5}^>gu7h*)PGyZ3;U-HTAAN zW@^VUy0tpWSKn?t>odE1h2fn<25hK^OU>>7JjzhI)Nl54;bdeRJHE0mqaIz-NWQD| zcE2m`G%fN)>dn}|-St3a1W2!T?7h$hRo*IK30w0Rvx`rKY1(6)UgPjP540){I z4p5^IpPqU+8Q7jk3h`YgZVaF&7%oo9cPTIie^SUjtg8>J@7GTy4jc+KX{Ev(EH%oU0COPBNo^D4X4 zXE?K+qE=ZLveVrqJdi<&ud!_22sFAi(V~?{7mVF>`slsU{Pi%4qwa(O;V4NLJ#V3~ z5u8xD5O_hW>r|$U`V(?M156r(T%d0yGSyAE$q;2z{)!+P&MfBC89eBD4Yt2&nWIn` zmCmMe!*d1uVV3n+QQ-&+=J9)kTkdgxKHtFt3rpu}tBe1#AelvE4rl*HTvDP<_enYt z`E$#wm?~UF9^3py!A0!htvxO*`kVNlrlwUuwMa-v8uxKOUu zi5Sw`c-FVshK)FehGM;7e!YVtya|$nSW;J7p+=Z!QI~h__Sy$_r&cI@NYeE*&05xz zLvX&&J@A0(sS-2wpU*XMe9?a9eySW}B~`13S$qv4k>}}Yi4S?{GF$7NLr zPoz_G>lK3bE=|_zl&gH@=~Og1p4Db&iF_=|7-2Cvm5_a$;(ftg)uX1}%YH+JUPr2M zU8($jg>nxRumJ8ap_5orKc$nki2_IASV7=( ze*>NBPG>CaTcSF3gFv|&&o2T_tuapQKjqS4wBhu)2B+qX4uFUUb z;;NfFZ#;>c!O&e%+9@G4ctYP6)TnwG?#RN>vVk4!haFo%iZwr4u9wGARUnJNZ{IMs|%` z-=T^Seyr`8N`a}eK}o4ZmRPPTPB*$Cj z168&_VjD>uS&H}i@!!XxB% zRRpv8?;(75cu55Wq>Wy0a3CHYA}>H;u3_dH*Sog~c0U_9)4fKuvBCi%&=2=6n{bPV z&A8>x4QZRI=$_mj@B0(om@61_myIO=B(^Q?u90|l6Q-Z{1qU?ebf zwVUc<7!ly~$vI#ls_DGnd>yQvc)ai_wpGJU0ht1t$|ZVDX=WX_$)900mm5{iO}s8q z4(KEROq|5|8_^Ow$MGpbL7j&^hyW^$5qQDps1(KS-B1_9x5OyJd z0ks5Ery!5uUlt9Se&sKD9AV*yD448cf+w#)l)ADva-@5N(%tVTJmJ70QX>SJX7!(2 zVF&;NC=1?Yq#y%SW3vkAJsH$eNNyspA0kP9!X8hqleFbkFzp`~^qY&qOvZ1v2s`^T z6dj^KZcqxt#g@Ic{ZK*;kTftCZE1me-e^TM5-7OoLi7H; zv0$-&kc|rJPd6xrUT7LfpUw^=;@ekvv7syM2%xpPuHli3DrvaMOC1K?-=E0YAypy| z*2sT6{Wc1CrN1WYVR8!ORU(0t7221nmG#9oq|1@JwSeD$OM*Nm>qEnYkH3T8ioy#lqPrW*Zfl$b@I@A)QgMCwO-WK9L zg*J?eE!gN)PU&HcO@+^n;i8eL5Gbd>NNv7@^cSh?Pl|NeC0KN?{n^JS5meLQ$(EHc zgzW@530A(*mC}o0)C}^#;JgV$!Q6;Qh{D--M8*hh$U1*<0~Wm+2|vb{p+=y1`uLqTd|Yxf$Y} zFG#6JVSlIM<{t@+ccP=X@?|Oa>_hR1>+wu)*i+9*XnNsfQJD&^(c2I@kqjm-Y^3FBwR$wc_ZaKB|tcvhp?i~bN^VHpUE zbqIN2d&&epGtmg#c(a2TEP98f4h|YNF+m>Yl~UDOQPnUZIP$nOh45~MiVGSn8ScnF zG;JxHC+=1s!x_Gma0#U-7s=Ywe@hHPw&WJZeW>(^;Mt&GL&nCWU-ZX2j-dG2TmnPm zl#qmE9SnR23=r~+@i-?39QM15qTi|)qE=Kedh_}x#EC0Nzhg*FGY-K#OqT$V;4if+ znZq;XtdT(3#!bpkEL^sw2IaP?9F;w=uXc>$YVfn*^*~CPLw7*&wg{3d*tTAO4;2QL zADvLQotJ(a&yP>^qXvRwEHVAzUf&?U2@+0fyyFn-T)zG3h;-(expVN~Sl(8~Si&tZ zNbbLfdtn~856V^8+rEpK1hQ${rm?sXNDCrp#1=W^eU!vW9lZGdwsFPyDvoTQY!J;L zV3w@n7ctiNZVFbOgE175A4TtZ9%Mgy+AYoa&^94}bb5l$SF|AFd#%1-!wSl-xJH|8 zo^%-$0%_ES(OcpfE(DbvHlZpv7t@tHDQU}Cp7YVPhwLmEiI>$|7dCMPf*TWlMxo=9 zF|NSEJtfmO;W6?kO5!8+4B804=%Djn@0u?~uai|Bb)dbD6>Dr-jj@!nq zfAhAqnQ&n9igRPfi$*7g27SH*RAkWdzw2f8(sxXVfVmqFdLF|ujW>%;joBar2sdaI zY6IxMDW-O4b9a*OGD1kC6cIL+;>8_O0;74#;NBq&sI~6sHpVn=c5w)yzQ@(1#ktUh z^1bp@@)W6^kpqlG=_C07&KAF#0zYP1+F6oM%SbtI{M!D6~R{O_EZe%i{Q|I##+4zgAVop49WcJnjg2ylRY9@L1_ zIn4deqTbz9hqKp%0-i~RdZoNZNGY|BfeXiLy4aZspE7ovv1#A$*`aGc)Q`Hps!AC4 zQgE|s&e5(+7GC|BwdqopK5dWvS%Zb5&-}HebvX4&EUDM(0aAcpo4mepg<06d9q7(T zDOqmm-5VDbM{luIn6m%P&Y?64>t(?|QynkVEki`9A9QWE?&Rlj*K86z>6kw2f*VmP z=d>u&Sii3gJ;`Q6OxUcR~`p3S#M;L_LE4bP&1fYln~En_=iW76?sR2tR4iFA|tAWwohh%43S) z5z%h)LEG87QRFCB1+aB(Pt{d)q(&=*vKqfkELoEmmi=MvmN+eC?3dLvP}; zGVlEqB{uOCH+32g@&3R;+GTV#A_}s9_ML3mBca$s4LYyF`;+HN{4Ag{j9L`|Gm(5U zOc5mXbyF3a^Dhl2|H>$I^mIsW`yvhiQ#c{rF2-fg4dIAcD$#7mSq?2JuMg!9A&0%LC$XydZsMJ;+yKWha$> z#8Tt)t7D!>mLtH`Sr_m(Z-b-w7Rhp^&}rMB!^i*B4ZxBr2A_zgHN0$yyGgn{tPBH) zjiZ-*g0s*+-Y|g_&X6gTUSR)Erg4T%4!BH1|73r3EO6rv*!dI_R-T7bii#x&4-O%H z!(-GCDD?QJWFn%(dkdP#&BmA+^lqrl%K%B+dRk+iK%kNJ=i5irRTMb0Sa-#R!a}lg(A3GWut@k z880dYo?V2!NtTk}q%=I7Z`ZKLloLkHwe81@dY37`ibXIe*Oe?$mIGX&zGklgtG@_6 zX<9`Ze~%vGVQfly{R#H^Q7@&3&HJ;GW7T82+^6SinL^S=Fvb%B?)3>zQ~kyS)@x5&O}<^ZtgDBAutYUtH-r{b-$_jF$RK=Zru((I?0O-~b11%w zRc~a&KWH9(cExix#lf+yH;F<;0O(<(rG*Exnf0mwAN6LMxbKFk#9Ly|mm-_ST1RfK z2QnrC4gRfD{eKjyf5fbRPh)5=kF*h)q)g;kD}GfSN4gfGdHVgt>fIwRd*vEJ?r-qr z@}-b>+@vlYs4dXQ03&Dznc~LU zp>SvS`JWp}l8rgRRmvo=wq7Y|31^&dC;dvZ-kiU8C7gmL1)F+=j1B1F!40ERh~O!n zK#E3NeX{oHzv>D5-@j}Cw+X9w1kbv!fZAnw0_?51I?v1xrZm2@D$t#}Qm$j`=?YVRHdHsRzGh{t01&LzIc`=!1tXhNRj`6O9_ ziJMyHg8x`RfID;Dr{kJ6$}EGQOTc%^3zs}@d~HA@)%p$ni7XWEOC1#tr9#ZE(I+$d zaLl`lWJR7+I?du91%Yvb_R!cO@WgKg66TvM28+aE+`=a@Scw$t}YOprwUR zilWK7K!7RHn??jH3F1U~gMwrfcKD=CRu7hbvy_jlc5_IfmCbL3)#OmT1VtaLJSnws zb5lTZ(!v854BeWMTe*{pAf^i)fa~>w91$joY=-06--@GHAf&NHwiowNk6)o3op+6v z!ZG}laakkd25E%B59NtDi;j}e)KmtcZHVQ>#HUAXy&v8EnR0tx=f4=y9&>PqK;9bg zoBI8u<5j)6>D(-8zhhIV)1sGX_YJynSg_7r}QZ~ zla{}2kC8vxB0J;A?AN0bk!4jhBoMKp%4uS#xycmNV^&hr$|kqGJpY;=%r9uuf{kR{ zQ^8Zr;?amd{VN|dC~?CDi6=c)%U<>?L^3lakWkCi+Z7i*@Cn#4U1UKX-d!yU#iX|+ zovgey{;Hn_53)l>ADL2_*@oXon`^7SXJ9RQAWxyz)6Y32ovFaA#J;j*{Bs0pZ;{2J zvmiqkMB}smQ8WOC5ex!CcPfuo_UQJMkld4ND|#Z_HAI3Z!KKHmi;7F{Yp6_eI`K}C z{n*dc3a+*yD3pw&MsF#Q(8Az?q$zzcFHau}=mLu*i1WfHhy3LvW>hjtXMBTd7jXmj z5R;GQNh{*M$YkDd-HRD(p!Vg8)SJD4sGS}S>MRn$kE7Frdh$}XiA-T|6@wZ77y8<> z9fJ0kq)z7{SRjnGQ2iK0POqcqi59< zdzX~^G9gdtcr>doKOAg_J}>Jw7TJ{;VVa*R{5s7#jKacJMhB&jrL zb?=hGrLaC+eWJPc7Np(VH7?{mj1JBGSHhcx#p7=&tKW&msgNrAF@VH=KD$pA$$l}D z&=y%!G9RV@#K|gi-XZPjV>~7fMqKJ&UX~sDVq%(P4}Eb2I>~ns-?}=z_7<7{hON!XXV#+3YgMROOzJWQesqdC46N#Pw>Lg6hg5M=@e8Pt5`U3F%+9QEN>S6V< zC`3LyU&5lQCCV+D`c24~8Sl`*GW&Q-?8!u6(Nr4;Y@^l$K5q9LyU#P~+tP(s3j1}^ zgzOIJd^pZS{-HomzBxh-(l#VKR#)Hpd3Tra$s%gn$S#bOdZVFYj6%5;`q1Mv$M6_o zkfLQ+lV+?o<>v3qe>fzLCjN*A5EI!(ne_|>wv7*pGOTfT-Bhc4`Ui8Xy!{ZNt`IRU zDQ}P~;H|EehRSed9N-B_a3y+_bMc@O#3(rSWeoXyz=0hj-!AK3?X#Bj=!W$DZvS?x z)jxPs%g+F}PBg%8d7(()c&4xDgl$qMG?p9nGv=7dA?Lsm41iV9j|n6;`s_YZlm>5F zKsTqJTgV3mxo;j~@1)E}4_nF*;|ohFaE-o5Y2QH})TC9tdx^GDug&J#(`-wOl-cuM z>r?1K_ubMqx9vgi4z`a}gNKwCLGKX`iTc{etJx34*5eiLAk3IZ`Jxxj$GXL*k8lZ>2>1|yT9aI{!2N_aVyE3gaewO!I=&+#c$qs||DDhS zyP&CP@IdO|@3I%kW!jkSScM4WG*0{aJT$Eb zu4r@NF6CogtHU36?zjcJK5Sz~hhHHIU?J5-nI|rE3sbrd>mOywbF*+TFO_i>#ZAlg zf~QUN??o?0P^Q`g#cr{#&^G*fX~$9cPIlHm!yX+Yg z@nP#0;Wl;O!4o!|OH%z96%3qYUB3Bn5#On@R*gBQuTZ(E#5mK>1E|I0_I){hSN7aAxR~j&P-^2>wEy|!te%f@kv5(9-2(V* zN$8QDu;P*8-yZiQ@E{ z6A%WxNYHorOdkXBLCL{L;H3LvG6p7s z`mGCJwq&Us;jbfT=N}ZN#AnJuOX}?;wz5n!2C6hkvD-j#C8~OSw4-<|3_JJ5;;%ar z2aIZhd4`vJNv6baTu{0vtlDg}m!pwt4Qj4l6u zMFm|8{7!QeG%B8raADQ4L@ot;-t;&rn-+zOl~am`6*X*ry7vBLMrAjRxrXjCy1Qi2 zn1DaV3&I{LtP-f}X74X3s*O`}vxh$U|1haqBTW7-ae&H7#Z3M%%ReRVAh%yGH$w!S z%S_j*$HN3mm*>&QlaGL4-3r+^+T)9Tck8r3;cust$-WQtc*>npdD3Xk6gN^dc+@2d z+eDYx5lG0Klx~H@@m#Ti#GvFb#XDZdWwH11s*{`d=ZNd9DxFO_e?ET-yz>lnnvn)P zB(5-PK&x5S=8F#U_$APIX-=pM2?jW;E)iE3{|Sf0up!fsl?J{B%+Cc5&qm%V9$qpg zQ@Az)K#F5^3RL#iW7@xl8rz;!T>YXf%y)dXNmrE*IT63F4J`?JoC%V^gWh3swt z@72#|<0D$h^ziMAC+7~u<5xJnSlDrQUzsgSU-(UBEz;q#E<`jl zzQIS1D;e5DbWjNMCJ*auEL`?|3nZ%x@w}FKl}-V6uCw#=68f7_gC%E=4BUrI%Z_(T zs`QKCqaEKz|agOc-- zBuH3b$vFy2P70EiC5V84DM$%n>_uhK-s@|(QXZ|=d)#vM(o~ik!yN3=?Y?YA| ze@E(U7=i%r&^aC(LU*0U8yn2Llq&IHX)_7MQD2SjSAB%ltB;K&&vb+!R118t?yqL% zQlAeI;62W%^zbcgJ~mbb0SLS3D6ZjVMw>@VGJ}Z7;&LljWee}BBtHni6KhdtK0WRl2p^x!=OjPxfnqh_MDo^j~tFeyZCt;;#xW&KROo8ma3 zkez<7#P+@V7Gbca*@y~%Os?Y^7CcOTry6PUvXTVi?NqAHMNo$PwL030h9nd4_xGPVhlmFJ7B$*>=zElOoGYnIVrw zM35Irw>2gWX@9tI?`arBtcNVfE}3V%8ya+@97%Qy{$S4hfdsO08GzodGBk-)0h%Up zA>OT(Xg?wt6j`C9%h&9A%NZSzgU!Nhn~&L1igbfro$+8ZS=j)sv*Ab>?q-7Y&VR!_ z0EdCSo?2z$SM-X|oN}|@73Mu$dy<6_iYjgtLCnG1v4E?U930lQaFHaE^nt(pp+zD{ zCNZ*+b*^)4V)Q>dH$LBsfvyvCG(e)yYIs4b`KXea%)ZU^k;r! zozX)VGtE+OAQ++Q(}bSQZ=`;OJ$C!%os;3799&4#JN$9GV;H&}-x&oN={rQh#dnO* zLRiBdq-KwhvdU-Jh8=w>n=J}(Jptzr9SnvE^^Xuw<{$_6mukDig zrCNmJEVn8-oM_dXMj`r#eC`f5`I7Zo@jO*uPbdjUk%Nm5l&7YKdxU`L7jnin!VEuP zlb1zA3?R_|^m~_TsL-U4j8rX$eXmASH0exIvy(3Sy&w`ugJ4fp!o?j}M3a-%svgj! zUo>fax3$u64B_FWcAf4EZDFZ52RFEm``7i&t%JQIzaM|T|J^InIsySMD6QJ@Mz?R? zAYf4-+B;>b4hjxmu!g<`+iz+)SOXU1t+I|>lGn9=Y=jRl495e#eb!~My~Da(#2aQW z^0qRpzmULSX>XZKSl8^dgc+|nHU8WM)%B!m8+GSxX+mn++5Xn|q7=mrgCM1&z!IYr2hum6Fq zU-7R9x;-RUb#HO@%Xo-UYESSs|DgJ)rQoa)YKhdG*}SmvB7aS)FXPILRE-_;T$;V+ z$ziy@_=nz@<+mIsOjZgJ*eH?(TgoFY8rcUbwAE^H7L<_Cz0YZ#wEa^yp*-5LMsu`U zB(Nyxiu2q=-KRL-=uEo?RE_p2tHg^)o)1Too2&7z5dk{E(ue+N33G9`$6bqg*B5zw z<&qcq+V2uq&*%i`lGL;MILz7_Rd|?q5WEDVdOWU7-?i!e`ZiRNKRlNPncWAW5eXG3 zsShzQs-zIh00#C7clDIw?QbukLbWHYNh@r=MFwAeCfDL2M5dWiP`JflGeDH*CmNv+ z3=bT~z3##47{dU&2)|px^rh9vE&Xw;cJzwBz>{zT%>7Cb4(`UOs66L*qsLTZcHm2W zBH+NoV>~X>YJj^;Li$O6E+4dkw^$~(fZ^dAE3J`dLE!>!fuoi>PA%te)=rQy)#6av z(6u&{G)i}EX?Vj}ubK_`c+*j@!X%Neq1TEBEQ2KZS+ZFwbLRykNDC_^r__f4_>Vd4 z=`OK`(L$Y1L;JMZ{qJo@KVojY#m`=KQ7t{MwKau}y537)YarzKB#L0_3c{lsn>&KvZp?y)I2@QhFT*K|q}Ch&^vi71ucctE!c@9+3c@Uyp<&=;RX zDUu3J%zjFCYOBQttbt&MB?34E@R+C^lrqF_`b?AU=fya^l5oHL=d$+>C$_PZ{TsY@ zG=c|&b`+e*B~u!(aW4!N%tYKK*r*SaMIBFRfyEFt@QH)*edq6zcNn+QTq+w|9`>cM zZd_@AD#;m+pdnt=!uiw7 zxhy%=3vJf+{HJ=oh=PMdV5_4W-*@T#ALTbSsr6%GQ>3#-Hp(XOkKVEb`(0_vmCAer zp~2fHYFcu+V4AV*ml0qB(G>#a)GsN937gttg{(?^rsUK|x=$J>sZM1aQ=u7zz1odL z)e92$91p<0q;KEFTRfn4P%o zP)L)X=Xj7v#!6)e=bGe|g@84)59#%@nf33WeeTLoj0}J-R4+NoZ2l zSM1mz3=EVJddMle1Tq1VTCFi*Zy3}-Fq3oX55s315KTG?q~(q$2$m~WAKalQzN3g~ z?+sLSoe$V^rr&$Y*%7U)WBSs~@(rsN;DDA@TkZtDdcQjmQOKH8b zVC0hZ?i4VYEQjWNhNl^R^@I7Y)>vXoRdg;I00Q%;Jlfb=7yFvJ9Q z?qG)=ezPl^**$|2LzoC(*koxo|D2sy%CL7hTK+55XMEnmy68K=j21FqgwuwBU@kR1 zRpGd(h2i%XIVvKFK##j1chbJWm1ucP41t4%UK=WCyq>lNWd{`MHQ}56uZd_HRFBSkX4Q6V`E$X>SqN zlaW0vx^X$iTQ86=#GKfg4v<;45pCW`WtgEwJ$v!{Wmm5+aTc#rO2!11@jSK70fR1E zp0+N^ty&$5AgGSFT`n^NK8%ZNS9`Xmarrgvkk7rjKzys94A>=#6x}aI&rrv0+lTNm zs)Ft$*j;wjJ5v(TsNmud9*x;mV-oI;%rv_i+9Ca~e_j^8Yl0}fg-l`W-)hx88QmV; zjC4-G%x7rxO3SHv-6M&x=Ae5YbbJ2y0wbH6wmNNLNIPgythdPl!9NZj&+8~DMLN!%JV3YS|f-|>Sas2KI0kq|#H`Ax1qdZZ`0 zKq(=>`#vbq8qy&@vwr&2axaBjg9wx#w4{m&W+%VKMH|azyUm=MAE=}JC@r;IEc=kW}Y{3R=kHp5Z0X(CF8qxaC72fY`O65x1k}m&Z~>w z8n&v(AVMp;)9bv-3VKHYayK~Bs77`kpz?ys;f!D<&grqo^b;t3^ZxoNQ zW;sz6fpdP^Tk7OY9!Fe~$fWa(T(+*-c@@juL=gMdZd6~-h@5c8TYr6QQy0w3L3?`z z)NVclH4Z4u*xv%i>?P?TmX)3zot??Jy=&iJm|>TR^2;i5XN|H#pLNKnYYP0_!VsY0`*V=xMA>{@BD{dlp~*Zdmq@ zZjPR24+o%NQH1bTWoAOKft%BsCUXoQft;_8HUmB^W$KP{5`hMIVa%Mn*6BzBi#CFHfa` zy#~cl<0f(tr~USF_(c!Hv}Vo9jQvMo4{{{fy=}K$moG08Jjo5D=@rnD-9NYoVB(`O z{qA%yO@VRZ$fTEi&wS7_d1C{s^=R9N09hE?Kr;p`8vd<-mK*M&hB_VQuEAVd{6o&i zcvI(mCx;qek@5QWRxp27+oR~o(Y?9Txq^%ZSqQVHp;;xvaLvF`;2nD3P+yv^+q};( zu=u47aF0E2_h+v!V`rIr)?)h(@v z{ZYG_lj!Xq6eoa>BN0qA+Sr^4rhf4=Xo6|2uG7b{kI{zJwp9{l{>xm~L1Z#T3`ary z*mU!laW@lDS0Y{#|ET}rS8d?Z3K;nO?W)hgC&FiUzQuDds$Lstl#hJW?>f_H!~t7% zXoT5$t!IzgH^v2d{k37TiU0jB2C^7&5Tt=5!`bhtF_BYC;c~so^ONry7#Rs19vK;t z#=avXGWPxU_7B_wPJhc9CRT3>Mg^4BcH~EsJu`YBn5Gx?J}rg3D#&YGfT!L=+3BdJ z-kU2qLBup$-t!>6AZ@s>VxX3gOSvykXS=;&0L=A4+%hX^+=kT1m)#FBF?zu2QHr3P zKPj8r>wqq0$;bONMu8P>593rEF0wi@oF;}IA0Hey-(IQ~LjrfyzA%vQdEcUaY<7wf z>=42~*^rO!Rfo?Zh?Jqgi8e}uzb|7EHRoH$DgARi-^;Ik`R%j<1QZS-nsx84Xk3=&t`AO}V|YfV|XSv-mXA zT-?$4-q2yzvG{!yFwW$=+BY*H>8?iOj6E9EF7S+JLvQl{Z^giY>vzrzr-oopqe7#% zUyp0vdmV~aFxzOy_kzZjMPtFfB1ky!pXuzeyXRIsDtw1d*lnRAH5uLjwb$ce&}W6 z$r6ZW%1$G%mROl#&un}eaG0~NDE3al`c0Z#VjUNco>ynR`(fn)g**xY{p)+a0Ii0JK{^aIB7;<6ZZ@PK*N_2}plA`@u z!}fyO3la1hXSl1_y8xPv6$u^4D3BIg>OXX9|vhRj1U4l(*{|0UZ z*YBf0oXDbYp2&r}(bJ(bR~;^IFOsfTg0Nmb*vD+|Zro(J>GX43L`rAZJn20lj~gd( zY#`Z}9wJNXz$9dZL5th>Q@5E_kYp#N%Gg@i9=JEvHL9>Q>G5GkKxrgUXCx2NERUgr z&8|8;94&f%DV2TkASP@fv|635qnqFp-oou+n*t*nBMCrgO8Prq4i7dHfK2ODbkS1Z zzZM{ib5=3dtd9`18sOgyQj6DK{8`B-?!ESFam=z#{M)z%M#xkXz0(kgm$FEjx>Wr!3ZfmhG0sbWqNRJ01I*(SE!K)<7YhUh!WZ zOMD`}k9>b#{}KAAj-lqUG7-A+oC8a_K7RiOfBsK(Jxa*qFFv7@&1ADXY+HJi0J@6q z&+uMvuIH)Dkf4F?{xOhdyt{3uJU&5`uwE-6PVqo(rpcBbuvD`nFxRsGK`3j=pI`*5 zJ9^LYp@pdxzBN-oW$fnkRJB5{yJ!BQvX`&kJxY9tX|hg~;8e6ix>E~M;2)}7-}Z;y zZNddT$abmDd0xZ@iG1Oe(8U|=sD|E-s3H5C8M#947$eaVb2o&KNONcAZ9;+gho)!V-Qf2&=)I>m~y{xge)W|bjiozELFWBi{ zwdJd+jSn7+(!b}L*}Ug_rjMp3iaW1{XHQdoU@m+j zq_2=f6DfqINytHg2z18x6f;Dk_)hejNg72`m1i*yuEs(1M|;QaCujrZueh%n#))74 z2A#iq018zLByMmJj>T_NK>3p5sn>7ZO}}YlUk;J=*%d4AS(C~@7MZBP+8 zA=GSp@!YKEA{jX;73h(_)X!u|$IqBbfd}K}iqpJuib$sbKoIMgZ@T??8u8DBR)izW zt2FK=TIM&#QoaW*_fh74s!DyOA&Z=ynhuf2RWDB?kk8r(-Ygi-^-AblW+FZRH1l~< z71iAFszyD>N-HdqUo~H_2NdW_ahDqJ?FTZgU2A1{M>aYPgxZtteC#u z3cM7B{QV)&hS@ta=FOY;3YO^6i#Bc_YbViyH~wmhe+6Jjz`~W|;T-m-RXW}0k**L9 zpveWdb%oNZ!5sX8tmo&0_^;52Tq$>osj$%XmAKY|m@3Yrbfp0xz6f=-Tq%JbGk1)n z$pXH_>i$JLE_3yA5~1~+c)I6qJGWdg-_*-IoF|6pPe`4C3|ZrPlod5v+ihWW{;qJt z&bsr{aa!1Z2%f-aZ>51dT!u})ukvZV=~8S-)C9aJ*I0gQd#cCBHHw0weNGBAwcv2_ z+Wg)KcJubwXRP4Da@nYmYHADTbOpXePHGTEj%;Hotip4>p9CUY)xdl8xNP|;q}ICtf7Lf~0os4leBWz2xyALa95&|=ZxaINOM z-Z2CE+XWjYQeS-gYY&G5JkbEghgde|n5~bjTlFSPe2@Cr7fXZb{)89j=K$~3M;RXU z=n&E!#JwARMB3uxG=m58sse_+1EN}|UVPsd!SBrY11DI_BWs&E!pc^m9)QwWwtc_6 zVo`~tVJruT@p7#Es@T7t5zh!#g4>E#FqkjPWFWTOn)#PCr#Gj0{49mT)0`Z8g2ZZQ zj)eU)nFAVUVRXTkM75QFe|l}0xd99r0_I%`I`z8muUI{Tdojr;;YYEmpqb0TKf?KF ze{tMF-K@BNAYf!wu!GK)!FPR5Vqi(w{QR@7HBR?wE&a-t+R z;5R6Jjy~eY&$QYPD^D{lHDR|8iI?p8Guz@;#kp{I{b;uWYxnj$?i70<^#sq7f7846 z9^fo^*li(Dl!z&cX}rG&kT;GPf9=x{=3$JWOe~lm+%~k)m?3S)5G2E%2Xm0>{aET7 zJFL^CR#TeL2QiXJI|(yjlMh)@guwmsYqb|o;9tWm{9dEXOSL|0cZ!w3Gta~8Nb`u$ z?HCmX8NbBA2s{NV0zm4l`%*uj>Rm9*nMnYLl|AIXDo7`n{4q4%`DNWc?Ru-Qf`kz1 zOJZ~G$ki?=;+dc;Bv*#We2l@*SmC%(DcoI%-ee}dJ!Bqj?r`@Wx~$NhGME?-_9{Hp1a> z0ASg!@Ko>HFIjj$?p3a3zNL4od+FWHBt<*m9{A@L~6aK1>ovz6GNwp{j)@quq0u&G{Yg{!a{> zGQ%V{M>dj$<8LJDyi>vI1pQy&M+NPzY$&flOJ=Al{+qf}e*n{Z!+_m|OBnz5{sg|h zoOmO_%#S5h0kPoMGGLUTV?7+X)C`pnHA=s`{rr#!!iM)WO< zl7$sE3Jpu>uweNZJ)rn~P|9;ZAD^=*gq?|R6Q(sgJA235IiC9eYOsmE(nvt; zpJ@n{{Wql&y|POwoUG0{J3C_m@7=ibRSFFK4@pyxzX$OL-05^m9X;Y4CMEudgH`A3 zqm2-sz+Jx0uERYyaeA5^m)%q}*F&4Sn6AxlFDyKCWftmTl-&=9AE*V{XuqKI%XKhG zFL6xaMkPv1C#UK?SRqBeCZFe^Krc}o=TqWXA=!S0JhG5-Wf8tw**qqAHElp~;brcb zQBm>L+)-SSf$x)^W@i4x9d`vHpM0VqEZaql`mU30s!XcuCY(hNqu?1VlFfhNFxP-k zf#NBIk^Iz5FvYF{7-w|#@tlH)ia12P#M7kHPu51kH7egPx2uM; zI2G@+GSWH@DYM19H+zM>%g^6~4R?#Yc&`#HP%Ptv^kE(C9=(-+e?v$qweVuzeQ6(i Q)jW>IGq6gH((BOw0_nH*X#fBK diff --git a/assets/images/help/business-accounts/saml-deprovisioning.png b/assets/images/help/business-accounts/saml-deprovisioning.png deleted file mode 100644 index 6d7cbe6023cda1e94382757e3e68e9a80d8cf91f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 25624 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 C>2)Un diff --git a/assets/images/help/business-accounts/user-provisioning.png b/assets/images/help/business-accounts/user-provisioning.png deleted file mode 100644 index 6f3bdc050e6f6f9458095250938844a0f8f64550..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 27083 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%0Ag3uIB^e#IuIKaphD%-)(D(Z*0h!jABf`zo2dbn9 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 diff --git a/translations/log/cn-resets.csv b/translations/log/cn-resets.csv index 05641af432..a2925060c5 100644 --- a/translations/log/cn-resets.csv +++ b/translations/log/cn-resets.csv @@ -122,16 +122,16 @@ translations/zh-CN/content/education/explore-the-benefits-of-teaching-and-learni translations/zh-CN/content/education/manage-coursework-with-github-classroom/integrate-github-classroom-with-an-ide/about-using-makecode-arcade-with-github-classroom.md,broken liquid tags translations/zh-CN/content/education/manage-coursework-with-github-classroom/learn-with-github-classroom/view-autograding-results.md,broken liquid tags translations/zh-CN/content/get-started/getting-started-with-git/updating-credentials-from-the-macos-keychain.md,broken liquid tags +translations/zh-CN/content/get-started/importing-your-projects-to-github/importing-source-code-to-github/adding-an-existing-project-to-github-using-the-command-line.md,broken liquid tags translations/zh-CN/content/get-started/learning-about-github/about-github-advanced-security.md,broken liquid tags +translations/zh-CN/content/get-started/privacy-on-github/managing-data-use-settings-for-your-private-repository.md,broken liquid tags translations/zh-CN/content/get-started/quickstart/communicating-on-github.md,broken liquid tags translations/zh-CN/content/get-started/quickstart/git-and-github-learning-resources.md,broken liquid tags translations/zh-CN/content/get-started/quickstart/github-flow.md,broken liquid tags translations/zh-CN/content/get-started/using-git/dealing-with-non-fast-forward-errors.md,broken liquid tags translations/zh-CN/content/get-started/using-github/github-mobile.md,broken liquid tags +translations/zh-CN/content/get-started/writing-on-github/editing-and-sharing-content-with-gists/creating-gists.md,broken liquid tags translations/zh-CN/content/github/customizing-your-github-workflow/exploring-integrations/about-github-marketplace.md,broken liquid tags -translations/zh-CN/content/github/importing-your-projects-to-github/importing-source-code-to-github/adding-an-existing-project-to-github-using-the-command-line.md,broken liquid tags -translations/zh-CN/content/github/understanding-how-github-uses-and-protects-your-data/managing-data-use-settings-for-your-private-repository.md,broken liquid tags -translations/zh-CN/content/github/writing-on-github/editing-and-sharing-content-with-gists/creating-gists.md,broken liquid tags translations/zh-CN/content/issues/using-labels-and-milestones-to-track-work/managing-labels.md,broken liquid tags translations/zh-CN/content/organizations/keeping-your-organization-secure/reviewing-the-audit-log-for-your-organization.md,Listed in localization-support#489 translations/zh-CN/content/organizations/managing-organization-settings/managing-the-default-branch-name-for-repositories-in-your-organization.md,broken liquid tags @@ -209,6 +209,5 @@ translations/zh-CN/data/reusables/repositories/github-reviews-security-advisorie translations/zh-CN/data/reusables/saml/you-must-periodically-authenticate.md,Listed in localization-support#489 translations/zh-CN/data/reusables/saml/you-must-periodically-authenticate.md,parsing error translations/zh-CN/data/reusables/scim/after-you-configure-saml.md,broken liquid tags -translations/zh-CN/data/reusables/secret-scanning/about-secret-scanning.md,broken liquid tags translations/zh-CN/data/reusables/secret-scanning/enterprise-enable-secret-scanning.md,broken liquid tags translations/zh-CN/data/reusables/sponsors/feedback.md,broken liquid tags diff --git a/translations/zh-CN/content/account-and-profile/managing-subscriptions-and-notifications-on-github/setting-up-notifications/about-notifications.md b/translations/zh-CN/content/account-and-profile/managing-subscriptions-and-notifications-on-github/setting-up-notifications/about-notifications.md index 389d2be9bb..12f5adfddc 100644 --- a/translations/zh-CN/content/account-and-profile/managing-subscriptions-and-notifications-on-github/setting-up-notifications/about-notifications.md +++ b/translations/zh-CN/content/account-and-profile/managing-subscriptions-and-notifications-on-github/setting-up-notifications/about-notifications.md @@ -101,4 +101,4 @@ topics: ## 反馈和支持 -如果您对通知有反馈或功能请求,请使用[通知反馈表](https://support.github.com/contact/feedback?contact%5Bcategory%5D=notifications&contact%5Bsubject%5D=Product+feedback)。 +If you have feedback or feature requests for notifications, use a [{% data variables.product.product_name %} feedback discussion](https://github.com/github/feedback/discussions/categories/general-feedback). diff --git a/translations/zh-CN/content/account-and-profile/setting-up-and-managing-your-github-user-account/managing-email-preferences/setting-your-commit-email-address.md b/translations/zh-CN/content/account-and-profile/setting-up-and-managing-your-github-user-account/managing-email-preferences/setting-your-commit-email-address.md index 55361b997a..a322ca460f 100644 --- a/translations/zh-CN/content/account-and-profile/setting-up-and-managing-your-github-user-account/managing-email-preferences/setting-your-commit-email-address.md +++ b/translations/zh-CN/content/account-and-profile/setting-up-and-managing-your-github-user-account/managing-email-preferences/setting-your-commit-email-address.md @@ -89,7 +89,7 @@ If you use your `noreply` email address for {% data variables.product.product_na {% data variables.product.product_name %} uses the email address set in your local Git configuration to associate commits pushed from the command line with your account on {% data variables.product.product_location %}. -您可以更改与您在一个仓库中所进行的提交关联的电子邮件地址。 此操作将覆盖这一个仓库中的全局 Git 配置设置,但不会影响任何其他仓库。 +您可以更改与您在一个仓库中所进行的提交关联的电子邮件地址。 This will override your global Git configuration settings in this one repository, but will not affect any other repositories. {% data reusables.command_line.open_the_multi_os_terminal %} 2. 将当前工作目录更改为您想要在其中配置与 Git 提交关联的电子邮件地址的本地仓库。 diff --git a/translations/zh-CN/content/account-and-profile/setting-up-and-managing-your-github-user-account/managing-user-account-settings/permission-levels-for-a-user-account-repository.md b/translations/zh-CN/content/account-and-profile/setting-up-and-managing-your-github-user-account/managing-user-account-settings/permission-levels-for-a-user-account-repository.md index aff8a7edfe..225310eafe 100644 --- a/translations/zh-CN/content/account-and-profile/setting-up-and-managing-your-github-user-account/managing-user-account-settings/permission-levels-for-a-user-account-repository.md +++ b/translations/zh-CN/content/account-and-profile/setting-up-and-managing-your-github-user-account/managing-user-account-settings/permission-levels-for-a-user-account-repository.md @@ -51,7 +51,7 @@ shortTitle: 权限用户仓库 | 从仓库创建模板 | "[创建模板仓库](/github/creating-cloning-and-archiving-repositories/creating-a-template-repository)" |{% ifversion fpt or ghes or ghae-issue-4864 or ghec %} | Control access to {% data variables.product.prodname_dependabot_alerts %} for vulnerable dependencies | "[管理仓库的安全和分析设置](/repositories/managing-your-repositorys-settings-and-features/enabling-features-for-your-repository/managing-security-and-analysis-settings-for-your-repository#granting-access-to-security-alerts)" |{% endif %}{% ifversion fpt or ghec %} | 忽略仓库中的 {% data variables.product.prodname_dependabot_alerts %} | "[查看和更新仓库中的漏洞依赖项](/github/managing-security-vulnerabilities/viewing-and-updating-vulnerable-dependencies-in-your-repository)" | -| 管理私有仓库的数据使用 | “[管理私有仓库的数据使用设置](/github/understanding-how-github-uses-and-protects-your-data/managing-data-use-settings-for-your-private-repository)” +| 管理私有仓库的数据使用 | “[管理私有仓库的数据使用设置](/get-started/privacy-on-github/managing-data-use-settings-for-your-private-repository)” {% endif %} | 定义仓库的代码所有者 | "[关于代码所有者](/github/creating-cloning-and-archiving-repositories/about-code-owners)" | | 存档仓库 | "[Archiving repositories](/repositories/archiving-a-github-repository/archiving-repositories)" |{% ifversion fpt or ghec %} diff --git a/translations/zh-CN/content/account-and-profile/setting-up-and-managing-your-github-user-account/managing-your-membership-in-organizations/viewing-peoples-roles-in-an-organization.md b/translations/zh-CN/content/account-and-profile/setting-up-and-managing-your-github-user-account/managing-your-membership-in-organizations/viewing-peoples-roles-in-an-organization.md index 729806d871..09bb6d4623 100644 --- a/translations/zh-CN/content/account-and-profile/setting-up-and-managing-your-github-user-account/managing-your-membership-in-organizations/viewing-peoples-roles-in-an-organization.md +++ b/translations/zh-CN/content/account-and-profile/setting-up-and-managing-your-github-user-account/managing-your-membership-in-organizations/viewing-peoples-roles-in-an-organization.md @@ -35,7 +35,7 @@ If your organization uses {% data variables.product.prodname_ghe_cloud %}, you c If your organization is managed by an enterprise account, then you can view the enterprise owners who manage billing settings and policies for all of your enterprise's organizations. For more information about enterprise accounts, see "[Types of {% data variables.product.prodname_dotcom %} accounts](/get-started/learning-about-github/types-of-github-accounts)." -You can also view whether an enterprise owner has a specific role in the organization. Enterprise owners can also be an organization member, any other organization role, or be unaffililated with the organization. +You can also view whether an enterprise owner has a specific role in the organization. Enterprise owners can also be an organization member, any other organization role, or be un-affililated with the organization. {% note %} @@ -43,11 +43,11 @@ You can also view whether an enterprise owner has a specific role in the organiz {% endnote %} -| **Enterprise role** | **Organization role** | **Organization access or impact** | -| ------------------- | ---------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------ | -| 企业所有者 | Unaffililated or no official organization role | Cannot access organization content or repositories but manages enterprise settings and policies that impact your organization. | -| 企业所有者 | Organization owner | Able to configure organization settings and manage access to the organization's resources through teams, etc. | -| 企业所有者 | Organization member | Able to access organization resources and content, such as repositories, without access to the organization's settings. | +| **Enterprise role** | **Organization role** | **Organization access or impact** | +| ------------------- | ----------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------ | +| 企业所有者 | Un-affililated or no official organization role | Cannot access organization content or repositories but manages enterprise settings and policies that impact your organization. | +| 企业所有者 | Organization owner | Able to configure organization settings and manage access to the organization's resources through teams, etc. | +| 企业所有者 | Organization member | Able to access organization resources and content, such as repositories, without access to the organization's settings. | To review all roles in an organization, see "[Roles in an organization](/organizations/managing-peoples-access-to-your-organization-with-roles/roles-in-an-organization)." {% ifversion ghec %} An organization member can also have a custom role for a specific repository. For more information, see "[Managing custom repository roles for an organization](/organizations/managing-peoples-access-to-your-organization-with-roles/managing-custom-repository-roles-for-an-organization)."{% endif %} diff --git a/translations/zh-CN/content/actions/automating-builds-and-tests/building-and-testing-java-with-ant.md b/translations/zh-CN/content/actions/automating-builds-and-tests/building-and-testing-java-with-ant.md index e8d3f02b0e..9d735c7c5a 100644 --- a/translations/zh-CN/content/actions/automating-builds-and-tests/building-and-testing-java-with-ant.md +++ b/translations/zh-CN/content/actions/automating-builds-and-tests/building-and-testing-java-with-ant.md @@ -88,7 +88,7 @@ The default starter workflows are excellent starting points when creating your b 初学者工作流程将运行 _build.xml_ 文件中指定的默认目标。 默认目标通常设置为将类、运行测试和包类设置为其可分发格式,例如 JAR 文件。 -如果使用不同的命令来构建项目,或者想要运行不同的目标,则可以指定这些命令。 例如,您可能想要运行在 _build-ci.xml_ 文件中配置的 `jar` 目标。 +如果使用不同的命令来构建项目,或者想要运行不同的目标,则可以指定这些命令。 For example, you may want to run the `jar` target that's configured in your `_build-ci.xml_` file. {% raw %} ```yaml{:copy} diff --git a/translations/zh-CN/content/actions/automating-builds-and-tests/building-and-testing-net.md b/translations/zh-CN/content/actions/automating-builds-and-tests/building-and-testing-net.md index b6f8132c1d..d46252865d 100644 --- a/translations/zh-CN/content/actions/automating-builds-and-tests/building-and-testing-net.md +++ b/translations/zh-CN/content/actions/automating-builds-and-tests/building-and-testing-net.md @@ -35,6 +35,7 @@ shortTitle: 构建和测试 .NET To get started quickly, add the starter workflow to the `.github/workflows` directory of your repository. {% raw %} + ```yaml name: dotnet package @@ -61,6 +62,7 @@ jobs: - name: Test run: dotnet test --no-restore --verbosity normal ``` + {% endraw %} ## 指定 .NET 版本 @@ -227,7 +229,7 @@ jobs: ## 发布到包注册表 -您可以配置工作流程在 CI 测试通过后将 Dotnet 包发布到包注册表。 您可以使用仓库机密来存储发布二进制文件所需的任何令牌或凭据。 下面的示例使用 `dotnet core cli`创建并发布软件包到 {% data variables.product.prodname_registry %}。 +You can configure your workflow to publish your .NET package to a package registry when your CI tests pass. 您可以使用仓库机密来存储发布二进制文件所需的任何令牌或凭据。 下面的示例使用 `dotnet core cli`创建并发布软件包到 {% data variables.product.prodname_registry %}。 ```yaml name: Upload dotnet package diff --git a/translations/zh-CN/content/actions/automating-builds-and-tests/building-and-testing-nodejs.md b/translations/zh-CN/content/actions/automating-builds-and-tests/building-and-testing-nodejs.md index 874473990b..ba85b448bf 100644 --- a/translations/zh-CN/content/actions/automating-builds-and-tests/building-and-testing-nodejs.md +++ b/translations/zh-CN/content/actions/automating-builds-and-tests/building-and-testing-nodejs.md @@ -189,7 +189,7 @@ steps: run: yarn ``` -或者,您可以传递 `--frozen-lockfile` 来安装 *yarn.lock* 文件中的版本,并阻止更新 *yarn.lock* 文件。 +或者,您可以传递 `--frozen-lockfile` 来安装 `yarn.lock` 文件中的版本,并阻止更新 `yarn.lock` 文件。 ```yaml{:copy} steps: diff --git a/translations/zh-CN/content/actions/deployment/deploying-to-your-cloud-provider/deploying-to-azure/deploying-to-azure-kubernetes-service.md b/translations/zh-CN/content/actions/deployment/deploying-to-your-cloud-provider/deploying-to-azure/deploying-to-azure-kubernetes-service.md index d3c9ff96ad..20fe344ef2 100644 --- a/translations/zh-CN/content/actions/deployment/deploying-to-your-cloud-provider/deploying-to-azure/deploying-to-azure-kubernetes-service.md +++ b/translations/zh-CN/content/actions/deployment/deploying-to-your-cloud-provider/deploying-to-azure/deploying-to-azure-kubernetes-service.md @@ -44,7 +44,7 @@ This guide explains how to use {% data variables.product.prodname_actions %} to The following example workflow demonstrates how to build and deploy a project to Azure Kubernetes Service when code is pushed to your repository. -Under the workflow `env` key, change the the following values: +Under the workflow `env` key, change the following values: - `AZURE_CONTAINER_REGISTRY` to the name of your container registry - `PROJECT_NAME` to the name of your project - `RESOURCE_GROUP` to the resource group containing your AKS cluster diff --git a/translations/zh-CN/content/actions/deployment/deploying-to-your-cloud-provider/deploying-to-google-kubernetes-engine.md b/translations/zh-CN/content/actions/deployment/deploying-to-your-cloud-provider/deploying-to-google-kubernetes-engine.md index 0bbf8738f1..5a91887854 100644 --- a/translations/zh-CN/content/actions/deployment/deploying-to-your-cloud-provider/deploying-to-google-kubernetes-engine.md +++ b/translations/zh-CN/content/actions/deployment/deploying-to-your-cloud-provider/deploying-to-google-kubernetes-engine.md @@ -114,7 +114,7 @@ $ gcloud services enable \ Store the name of your project as a secret named `GKE_PROJECT`. For more information about how to store a secret, see "[Encrypted secrets](/actions/security-guides/encrypted-secrets)." ### (可选)配置 kustomize -Kustomize 是用于管理 YAML 规范的可选工具。 在创建 _kustomization_ 文件之后, 下面的工作流可用于将结果中的图像和管道字段动态设置为 `kubectl`。 更多信息请参阅 [kustomize 的用法](https://github.com/kubernetes-sigs/kustomize#usage)。 +Kustomize 是用于管理 YAML 规范的可选工具。 After creating a `kustomization` file, the workflow below can be used to dynamically set fields of the image and pipe in the result to `kubectl`. 更多信息请参阅 [kustomize 的用法](https://github.com/kubernetes-sigs/kustomize#usage)。 {% ifversion fpt or ghes > 3.0 or ghae or ghec %} ### (Optional) Configure a deployment environment diff --git a/translations/zh-CN/content/actions/deployment/security-hardening-your-deployments/configuring-openid-connect-in-hashicorp-vault.md b/translations/zh-CN/content/actions/deployment/security-hardening-your-deployments/configuring-openid-connect-in-hashicorp-vault.md index f264937e8c..90f8d11dcc 100644 --- a/translations/zh-CN/content/actions/deployment/security-hardening-your-deployments/configuring-openid-connect-in-hashicorp-vault.md +++ b/translations/zh-CN/content/actions/deployment/security-hardening-your-deployments/configuring-openid-connect-in-hashicorp-vault.md @@ -19,7 +19,7 @@ topics: OpenID Connect (OIDC) allows your {% data variables.product.prodname_actions %} workflows to authenticate with a HashiCorp Vault to retrieve secrets. -This guide gives an overview of how to configure HashiCorp Vault to trust {% data variables.product.prodname_dotcom %}'s OIDC as a federated identity, and demonstrates how to use this configuration in [`hashicorp/vault-action`](https://github.com/hashicorp/vault-action) to retrieve secrets from HashiCorp Vault. +This guide gives an overview of how to configure HashiCorp Vault to trust {% data variables.product.prodname_dotcom %}'s OIDC as a federated identity, and demonstrates how to use this configuration in the [hashicorp/vault-action](https://github.com/hashicorp/vault-action) action to retrieve secrets from HashiCorp Vault. ## 基本要求 diff --git a/translations/zh-CN/content/actions/hosting-your-own-runners/monitoring-and-troubleshooting-self-hosted-runners.md b/translations/zh-CN/content/actions/hosting-your-own-runners/monitoring-and-troubleshooting-self-hosted-runners.md index 014d20b526..1de5cdf6e1 100644 --- a/translations/zh-CN/content/actions/hosting-your-own-runners/monitoring-and-troubleshooting-self-hosted-runners.md +++ b/translations/zh-CN/content/actions/hosting-your-own-runners/monitoring-and-troubleshooting-self-hosted-runners.md @@ -80,14 +80,14 @@ Feb 11 16:06:54 runner01 runsvc.sh[962]: 2020-02-11 16:06:54Z: Running job: test Feb 11 16:07:10 runner01 runsvc.sh[962]: 2020-02-11 16:07:10Z: Job testAction completed with result: Succeeded ``` -To view the systemd configuration, you can locate the service file here: `/etc/systemd/system/actions.runner.-..service`. +To view the `systemd` configuration, you can locate the service file here: `/etc/systemd/system/actions.runner.-..service`. If you want to customize the self-hosted runner application service, do not directly modify this file. Follow the instructions described in "[Configuring the self-hosted runner application as a service](/actions/hosting-your-own-runners/configuring-the-self-hosted-runner-application-as-a-service#customizing-the-self-hosted-runner-service)." {% endlinux %} {% mac %} -## Using launchd to check the self-hosted runner application service +## Using `launchd` to check the self-hosted runner application service For macOS-based self-hosted runners running the application as a service, you can use `launchctl` to monitor their real-time activity. The default launchd-based service uses the following naming convention: `actions.runner.-.`. This name is truncated if it exceeds 80 characters, so the preferred way of finding the service's name is by checking the _.service_ file in the runner directory: @@ -106,9 +106,9 @@ Started: 379 0 actions.runner.example.runner01 ``` -The resulting output includes the process ID and the name of the application’s launchd service. +The resulting output includes the process ID and the name of the application’s `launchd` service. -To view the launchd configuration, you can locate the service file here: `/Users/exampleUsername/Library/LaunchAgents/actions.runner...service`. +To view the `launchd` configuration, you can locate the service file here: `/Users/exampleUsername/Library/LaunchAgents/actions.runner...service`. If you want to customize the self-hosted runner application service, do not directly modify this file. Follow the instructions described in "[Configuring the self-hosted runner application as a service](/actions/hosting-your-own-runners/configuring-the-self-hosted-runner-application-as-a-service#customizing-the-self-hosted-runner-service-1)." {% endmac %} @@ -196,7 +196,7 @@ If your job fails with the following error: dial unix /var/run/docker.sock: connect: permission denied ``` -Check that the self-hosted runner's service account has permission to use the Docker service. You can identify this account by checking the configuration of the self-hosted runner in systemd. For example: +Check that the self-hosted runner's service account has permission to use the Docker service. You can identify this account by checking the configuration of the self-hosted runner in `systemd`. For example: ```shell $ sudo systemctl show -p User actions.runner.octo-org-octo-repo.runner01.service diff --git a/translations/zh-CN/content/actions/learn-github-actions/environment-variables.md b/translations/zh-CN/content/actions/learn-github-actions/environment-variables.md index 5dbe72f903..ea4aaf9dee 100644 --- a/translations/zh-CN/content/actions/learn-github-actions/environment-variables.md +++ b/translations/zh-CN/content/actions/learn-github-actions/environment-variables.md @@ -18,73 +18,175 @@ versions: ## 关于环境变量 -{% data variables.product.prodname_dotcom %} 设置适用于工作流程运行中每个步骤的默认环境变量。 环境变量区分大小写。 在操作或步骤中运行的命令可以创建、读取和修改环境变量。 +You can use environment variables to store information that you want to reference in your workflow. You reference environment variables within a workflow step or an action, and the variables are interpolated on the runner machine that runs your workflow. Commands that run in actions or workflow steps can create, read, and modify environment variables. -要设置自定义环境变量,您需要在工作流程文件中指定变量。 您可以使用 [`jobs..steps[*].env`](/github/automating-your-workflow-with-github-actions/workflow-syntax-for-github-actions#jobsjob_idstepsenv)、[`jobs..env`](/github/automating-your-workflow-with-github-actions/workflow-syntax-for-github-actions#jobsjob_idenv) 和 [`env`](/github/automating-your-workflow-with-github-actions/workflow-syntax-for-github-actions#env) 关键字定义步骤、作业或整个工作流程的环境变量。 更多信息请参阅“[{% data variables.product.prodname_dotcom %} 的工作流程语法](/articles/workflow-syntax-for-github-actions/#jobsjob_idstepsenv)”。 +You can set your own custom environment variables, you can use the default environment variables that {% data variables.product.prodname_dotcom %} sets automatically, and you can also use any other environment variables that are set in the working environment on the runner. 环境变量区分大小写。 + +To set a custom environment variable, you must define it in the workflow file. The scope of a custom environment variable is limited to the element in which it is defined. You can define environment variables that are scoped for: + +* The entire workflow, by using [`env`](/actions/using-workflows/workflow-syntax-for-github-actions#env) at the top level of the workflow file. +* The contents of a job within a workflow, by using [`jobs..env`](/actions/using-workflows/workflow-syntax-for-github-actions#jobsjob_idenv). +* A specific step within a job, by using [`jobs..steps[*].env`](/actions/using-workflows/workflow-syntax-for-github-actions#jobsjob_idstepsenv). + +{% raw %} +```yaml +name: Greeting on variable day + +on: + workflow_dispatch + +env: + DAY_OF_WEEK: Monday + +jobs: + greeting_job: + runs-on: ubuntu-latest + env: + Greeting: Hello + steps: + - name: "Say Hello Mona it's Monday" + run: echo "$Greeting $First_Name. Today is $DAY_OF_WEEK!" + env: + First_Name: Mona +``` +{% endraw %} + +The example above shows three custom environment variables being used in an `echo` command: `$DAY_OF_WEEK`, `$Greeting`, and `$First_Name`. The values for these environment variables are set, and scoped, at the workflow, job, and step level respectively. + +Because environment variable interpolation is done after a workflow job is sent to a runner machine, you must use the appropriate syntax for the shell that's used on the runner. In this example, the workflow specifies `ubuntu-latest`. By default, Linux runners use the bash shell, so you must use the syntax `$NAME`. If the workflow specified a Windows runner, you would use the syntax for PowerShell, `$env:NAME`. For more information about shells, see "[Workflow syntax for {% data variables.product.prodname_actions %}](/actions/learn-github-actions/workflow-syntax-for-github-actions#jobsjob_idstepsshell)." + +{% note %} + +**Note**: You can list the entire set of environment variables that are available to a workflow step by using `run: env` in a step and then examining the output for the step. + +{% endnote %} + +## Using contexts to access environment variable values + +In addition to environment variables, {% data variables.product.prodname_actions %} also allows you to set and read values using contexts. Environment variables and contexts are intended for use at different points in the workflow. + +Environment variables are always interpolated on the virtual machine runner. However, parts of a workflow are processed by {% data variables.product.prodname_actions %} and are not sent to the runner. You cannot use environment variables in these parts of a workflow file. Instead, you can use contexts. For example, an `if` conditional, which determines whether a job or step is sent to the runner, is always processed by {% data variables.product.prodname_actions %}. You can use a context in an `if` conditional statement to access the value of an environment variable. + +{% raw %} +```yaml +env: + DAY_OF_WEEK: Monday + +jobs: + greeting_job: + runs-on: ubuntu-latest + env: + Greeting: Hello + steps: + - name: "Say Hello Mona it's Monday" + if: ${{ env.DAY_OF_WEEK == 'Monday' }} + run: echo "$Greeting $First_Name. Today is $DAY_OF_WEEK!" + env: + First_Name: Mona +``` +{% endraw %} + +In this modification of the first example, we've introduced an `if` conditional. The workflow step is now only run if `DAYS_OF_WEEK` is set to "Monday". We access this value from the `if` conditional statement by using the [`env` context](/actions/learn-github-actions/contexts#env-context). + +{% note %} + +**Note**: Contexts are usually denoted using the dollar sign and curly braces, as {% raw %}`${{ context.property }}`{% endraw %}. In an `if` conditional, the {% raw %}`${{` and `}}`{% endraw %} are optional, but if you use them they must enclose the entire comparison statement, as shown above. + +{% endnote %} + +You will commonly use either the `env` or `github` context to access environment variable values in parts of the workflow that are processed before jobs are sent to runners. + + +| 上下文 | Use case | 示例 | +| -------- | ---------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------- | +| `env` | Reference custom environment variables defined in the workflow. | {% raw %}`${{ env.MY_VARIABLE }}`{% endraw %} | +| `github` | Reference information about the workflow run and the event that triggered the run. | {% raw %}`${{ github.repository }}`{% endraw %} | + + + +There are many other contexts that you can use for a variety of purposes in your workflows. 更多信息请参阅“[上下文](/actions/learn-github-actions/contexts)”。 For details of where you can use specific contexts within a workflow, see "[Context availability](/actions/learn-github-actions/contexts#context-availability)." + +### Other types of variables + +In most places in a workflow, the only types of variables that you can use are either environment variables, such as `$MY_VARIABLE`, or the equivalent context property, such as {% raw %}`${{ env.MY_VARIABLE }}`{% endraw %}. Exceptions are: + +* Inputs for the `workflow_call` and `workflow_dispatch` events, which allow you to pass values to a workflow. For more information, see [`on.workflow_call.inputs`](/actions/learn-github-actions/workflow-syntax-for-github-actions#onworkflow_callinputs) and [`on.workflow_dispatch.inputs`](/actions/learn-github-actions/workflow-syntax-for-github-actions#onworkflow_dispatchinputs). +* Job outputs, which allow you to pass values between jobs in a workflow. For more information, see [`jobs..outputs`](/actions/learn-github-actions/workflow-syntax-for-github-actions#jobsjob_idoutputs). +* The variables in a format expression, which allow you to replace parts of a string. For more information, see [`format`](/actions/learn-github-actions/expressions#format). + +## 环境变量命名约定 + +When you set a custom environment variable, you cannot use any of the default environment variable names. For a complete list of these, see "[Default environment variables](#default-environment-variables)" below. 如果尝试重写其中一个默认环境变量的值,则会忽略赋值。 + +您设置的指向文件系统上某个位置的任何新环境变量都应该有 `_PATH` 后缀。 The `HOME`, `GITHUB_ENV`, and `GITHUB_WORKSPACE` default environment variables are exceptions to this convention. + +## 默认环境变量 + +The default environment variables that {% data variables.product.prodname_dotcom %} sets are available to every step in a workflow. + +强烈建议操作使用环境变量访问文件系统,而非使用硬编码的文件路径。 {% data variables.product.prodname_dotcom %} 设置供操作用于所有运行器环境中的环境变量。 + +| 环境变量 | 描述 | +| -------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | +| `CI` | 始终设置为 `true`。 | +| `GITHUB_ACTION` | The name of the action currently running, or the [`id`](/actions/learn-github-actions/workflow-syntax-for-github-actions#jobsjob_idstepsid) of a step. For example, for an action, `__repo-owner_name-of-action-repo`.

{% data variables.product.prodname_dotcom %} removes special characters, and uses the name `__run` when the current step runs a script without an `id`. If you use the same script or action more than once in the same job, the name will include a suffix that consists of the sequence number preceded by an underscore. For example, the first script you run will have the name `__run`, and the second script will be named `__run_2`. 同样,`actions/checkout` 第二次调用时将变成 `actionscheckout2`。 | +| `GITHUB_ACTION_PATH` | The path where an action is located. This property is only supported in composite actions. You can use this path to access files located in the same repository as the action. For example, `/home/runner/work/_actions/repo-owner/name-of-action-repo/v1`. | +| `GITHUB_ACTION_REPOSITORY` | For a step executing an action, this is the owner and repository name of the action. For example, `actions/checkout`. | +| `GITHUB_ACTIONS` | 当 {% data variables.product.prodname_actions %} 运行工作流程时,始终设置为 `true`。 您可以使用此变量来区分测试是在本地运行还是通过 {% data variables.product.prodname_actions %} 运行。 | +| `GITHUB_ACTOR` | 发起工作流程的个人或应用程序的名称。 例如 `octocat`。 | +| `GITHUB_API_URL` | 返回 API URL。 For example: `{% data variables.product.api_url_code %}`. | +| `GITHUB_BASE_REF` | The name of the base ref or target branch of the pull request in a workflow run. This is only set when the event that triggers a workflow run is either `pull_request` or `pull_request_target`. For example, `main`. | +| `GITHUB_ENV` | The path on the runner to the file that sets environment variables from workflow commands. This file is unique to the current step and changes for each step in a job. For example, `/home/runner/work/_temp/_runner_file_commands/set_env_87406d6e-4979-4d42-98e1-3dab1f48b13a`. 更多信息请参阅“[{% data variables.product.prodname_actions %} 的工作流程命令](/actions/using-workflows/workflow-commands-for-github-actions#setting-an-environment-variable)”。 | +| `GITHUB_EVENT_NAME` | The name of the event that triggered the workflow. For example, `workflow_dispatch`. | +| `GITHUB_EVENT_PATH` | The path to the file on the runner that contains the full event webhook payload. 例如 `/github/workflow/event.json`。 | +| `GITHUB_GRAPHQL_URL` | 返回 GraphQL API URL。 For example: `{% data variables.product.graphql_url_code %}`. | +| `GITHUB_HEAD_REF` | The head ref or source branch of the pull request in a workflow run. This property is only set when the event that triggers a workflow run is either `pull_request` or `pull_request_target`. For example, `feature-branch-1`. | +| `GITHUB_JOB` | 当前作业的 [job_id](/actions/reference/workflow-syntax-for-github-actions#jobsjob_id)。 For example, `greeting_job`. | +| `GITHUB_PATH` | The path on the runner to the file that sets system `PATH` variables from workflow commands. This file is unique to the current step and changes for each step in a job. For example, `/home/runner/work/_temp/_runner_file_commands/add_path_899b9445-ad4a-400c-aa89-249f18632cf5`. 更多信息请参阅“[{% data variables.product.prodname_actions %} 的工作流程命令](/actions/using-workflows/workflow-commands-for-github-actions#adding-a-system-path)”。 | +| `GITHUB_REF` | 触发工作流程的分支或标记参考。 For branches this is the format `refs/heads/`, and for tags it is `refs/tags/`. This variable is only set if a branch or tag is available for the event type. 例如 `refs/heads/feature-branch-1`。 | +{%- ifversion fpt or ghec or ghes > 3.3 or ghae-issue-5338 %} +| `GITHUB_REF_NAME` | {% data reusables.actions.ref_name-description %} For example, `feature-branch-1`.| | `GITHUB_REF_PROTECTED` | {% data reusables.actions.ref_protected-description %} | | `GITHUB_REF_TYPE` | {% data reusables.actions.ref_type-description %} +{%- endif %} +| `GITHUB_REPOSITORY` | The owner and repository name. 例如 `octocat/Hello-World`。 | | `GITHUB_REPOSITORY_OWNER` | The repository owner's name. 例如 `octocat`。 | | `GITHUB_RETENTION_DAYS` | The number of days that workflow run logs and artifacts are kept. For example, `90`. | | `GITHUB_RUN_ATTEMPT` | A unique number for each attempt of a particular workflow run in a repository. This number begins at 1 for the workflow run's first attempt, and increments with each re-run. For example, `3`. | | `GITHUB_RUN_ID` | {% data reusables.github-actions.run_id_description %} For example, `1658821493`. | | `GITHUB_RUN_NUMBER` | {% data reusables.github-actions.run_number_description %} For example, `3`. | | `GITHUB_SERVER_URL`| The URL of the {% data variables.product.product_name %} server. For example: `https://{% data variables.product.product_url %}`. | `GITHUB_SHA` | The commit SHA that triggered the workflow. 例如 `ffac537e6cbbf934b08745a378932722df287a53`。 | | `GITHUB_WORKFLOW` | The name of the workflow. For example, `My test workflow`. If the workflow file doesn't specify a `name`, the value of this variable is the full path of the workflow file in the repository. | | `GITHUB_WORKSPACE` | The default working directory on the runner for steps, and the default location of your repository when using the [`checkout`](https://github.com/actions/checkout) action. 例如 `/home/runner/work/my-repo-name/my-repo-name`。 | +{%- if actions-runner-arch-envvars %} +| `RUNNER_ARCH` | {% data reusables.actions.runner-arch-description %} +{%- endif %} +| `RUNNER_NAME` | {% data reusables.actions.runner-name-description %} For example, `Hosted Agent` | | `RUNNER_OS` | {% data reusables.actions.runner-os-description %} For example, `Windows` | | `RUNNER_TEMP` | {% data reusables.actions.runner-temp-directory-description %} For example, `D:\a\_temp` | +{% ifversion not ghae %}| `RUNNER_TOOL_CACHE` | {% data reusables.actions.runner-tool-cache-description %} For example, `C:\hostedtoolcache\windows` |{% endif %} + +{% note %} + +**注:** + +* If you need to use a workflow run's URL from within a job, you can combine these environment variables: `$GITHUB_SERVER_URL/$GITHUB_REPOSITORY/actions/runs/$GITHUB_RUN_ID` +* Most of the default environment variables have a corresponding, and similarly named, context property. For example, the value of the `GITHUB_REF` environment variable can be read during workflow processing using the {% raw %}`${{ github.ref }}`{% endraw %} context property. + +{% endnote %} + +## Detecting the operating system + +You can write a single workflow file that can be used for different operating systems by using the `RUNNER_OS` default environment variable and the corresponding context property {% raw %}`${{ runner.os }}`{% endraw %}. For example, the following workflow could be run successfully if you changed the operating system from `macos-latest` to `windows-latest` without having to alter the syntax of the environment variables, which differs depending on the shell being used by the runner. {% raw %} ```yaml jobs: - weekday_job: - runs-on: ubuntu-latest - env: - DAY_OF_WEEK: Mon + if-Windows-else: + runs-on: macos-latest steps: - - name: "Hello world when it's Monday" - if: ${{ env.DAY_OF_WEEK == 'Mon' }} - run: echo "Hello $FIRST_NAME $middle_name $Last_Name, today is Monday!" - env: - FIRST_NAME: Mona - middle_name: The - Last_Name: Octocat + - name: condition 1 + if: runner.os == 'Windows' + run: echo "The operating system on the runner is $env:RUNNER_OS." + - name: condition 2 + if: runner.os != 'Windows' + run: echo "The operating system on the runner is not Windows, it's $RUNNER_OS." ``` {% endraw %} -要在工作流程文件中使用环境变量的值,您应该使用 [`env` 上下文](/actions/reference/context-and-expression-syntax-for-github-actions#env-context)。 如果要在运行器中使用环境变量的值,您可以使用运行器操作系统的正常方法来读取环境变量。 +In this example, the two `if` statements check the `os` property of the `runner` context to determine the operating system of the runner. `if` conditionals are processed by {% data variables.product.prodname_actions %}, and only steps where the check resolves as `true` are sent to the runner. Here one of the checks will always be `true` and the other `false`, so only one of these steps is sent to the runner. Once the job is sent to the runner, the step is executed and the environment variable in the `echo` command is interpolated using the appropriate syntax (`$env:NAME` for PowerShell on Windows, and `$NAME` for bash and sh on Linux and MacOS). In this example, the statement `runs-on: macos-latest` means that the second step will be run. -如果使用工作流程文件的 `run` 键从运行器操作系统中读取环境变量(如上例所示),则在作业发送到运行器后,该变量将在运行器操作系统中被替换。 对于工作流程文件的其他部分,必须使用 `env` 上下文来读取环境变量;这是因为工作流程键(例如 `if`)需要在发送到运行器之前,在工作流程处理过程中替换变量。 +## Passing values between steps and jobs in a workflow -You can also use the `GITHUB_ENV` environment file to set an environment variable that the following steps in a job can use. The environment file can be used directly by an action or as a shell command in a workflow file using the `run` keyword. 更多信息请参阅“[{% data variables.product.prodname_actions %} 的工作流程命令](/actions/reference/workflow-commands-for-github-actions/#setting-an-environment-variable)”。 + If you generate a value in one step of a job, you can use the value in subsequent steps of the same job by assigning the value to an existing or new environment variable and then writing this to the `GITHUB_ENV` environment file. The environment file can be used directly by an action, or from a shell command in the workflow file by using the `run` keyword. 更多信息请参阅“[{% data variables.product.prodname_actions %} 的工作流程命令](/actions/reference/workflow-commands-for-github-actions/#setting-an-environment-variable)”。 -## 默认环境变量 - -强烈建议操作使用环境变量访问文件系统,而非使用硬编码的文件路径。 {% data variables.product.prodname_dotcom %} 设置供操作用于所有运行器环境中的环境变量。 - -| 环境变量 | 描述 | -| -------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | -| `CI` | 始终设置为 `true`。 | -| `GITHUB_WORKFLOW` | 工作流程的名称。 | -| `GITHUB_RUN_ID` | {% data reusables.github-actions.run_id_description %} -| `GITHUB_RUN_NUMBER` | {% data reusables.github-actions.run_number_description %} -| `GITHUB_JOB` | 当前作业的 [job_id](/actions/reference/workflow-syntax-for-github-actions#jobsjob_id)。 | -| `GITHUB_ACTION` | 操作唯一的标识符 (`id`)。 | -| `GITHUB_ACTION_PATH` | 您的操作所在的路径。 您可以使用此路径访问与操作位于同一仓库中的文件。 此变量仅在复合操作中才受支持。 | -| `GITHUB_ACTIONS` | 当 {% data variables.product.prodname_actions %} 运行工作流程时,始终设置为 `true`。 您可以使用此变量来区分测试是在本地运行还是通过 {% data variables.product.prodname_actions %} 运行。 | -| `GITHUB_ACTOR` | 发起工作流程的个人或应用程序的名称。 例如 `octocat`。 | -| `GITHUB_REPOSITORY` | 所有者和仓库名称。 例如 `octocat/Hello-World`。 | -| `GITHUB_EVENT_NAME` | 触发工作流程的 web 挂钩事件的名称。 | -| `GITHUB_EVENT_PATH` | 具有完整 web 挂钩事件有效负载的文件路径。 例如 `/github/workflow/event.json`。 | -| `GITHUB_WORKSPACE` | {% data variables.product.prodname_dotcom %} 工作空间目录路径,初始为空白。 例如 `/home/runner/work/my-repo-name/my-repo-name`。 [actions/checkout](https://github.com/actions/checkout) 操作将在此目录内检出文件,默认情况下是仓库的副本。 | -| `GITHUB_SHA` | 触发工作流程的提交 SHA。 例如 `ffac537e6cbbf934b08745a378932722df287a53`。 | -| `GITHUB_REF` | 触发工作流程的分支或标记参考。 例如 `refs/heads/feature-branch-1`。 如果分支或标记都不适用于事件类型,则变量不会存在。 | -{%- ifversion fpt or ghec or ghes > 3.3 or ghae-issue-5338 %} -| `GITHUB_REF_NAME` | {% data reusables.actions.ref_name-description %} | | `GITHUB_REF_PROTECTED` | {% data reusables.actions.ref_protected-description %} | | `GITHUB_REF_TYPE` | {% data reusables.actions.ref_type-description %} -{%- endif %} -| `GITHUB_HEAD_REF` | Only set for pull request events. 头部分支的名称。 | `GITHUB_BASE_REF` | Only set for pull request events. 基础分支的名称。 | `GITHUB_SERVER_URL`| Returns the URL of the {% data variables.product.product_name %} server. 例如: `https://{% data variables.product.product_url %}`。 | `GITHUB_API_URL` | Returns the API URL. 例如: `{% data variables.product.api_url_code %}`。 | `GITHUB_GRAPHQL_URL` | Returns the GraphQL API URL. 例如: `{% data variables.product.graphql_url_code %}`。 | `RUNNER_NAME` | {% data reusables.actions.runner-name-description %} | `RUNNER_OS` | {% data reusables.actions.runner-os-description %}{% if actions-runner-arch-envvars %} | `RUNNER_ARCH` | {% data reusables.actions.runner-arch-description %}{% endif %} | `RUNNER_TEMP` | {% data reusables.actions.runner-temp-directory-description %} -{% ifversion not ghae %}| `RUNNER_TOOL_CACHE` | {% data reusables.actions.runner-tool-cache-description %}{% endif %} - -{% tip %} - -**注:**如果需要在作业中使用工作流程运行的 URL,您可以组合这些环境变量:`$GITHUB_SERVER_URL/$GITHUB_REPOSITORY/actions/runs/$GITHUB_RUN_ID` - -{% endtip %} - -### 确定何时使用默认环境变量或上下文 - -{% data reusables.github-actions.using-context-or-environment-variables %} - -## 环境变量命名约定 - -设置自定义环境变量时,不能使用上面列出的前缀为 `GITHUB_` 的任何默认环境变量名称。 如果尝试重写其中一个默认环境变量的值,则会忽略赋值。 - -您设置的指向文件系统上某个位置的任何新环境变量都应该有 `_PATH` 后缀。 `HOME` 和 `GITHUB_WORKSPACE` 默认变量例外于此约定,因为 "home" 和 "workspace" 一词已经暗示位置。 + If you want to pass a value from a step in one job in a workflow to a step in another job in the workflow, you can define the value as a job output. You can then reference this job output from a step in another job. 更多信息请参阅“[{% data variables.product.prodname_actions %} 的工作流程语法](/actions/learn-github-actions/workflow-syntax-for-github-actions#jobsjob_idoutputs)”。 + diff --git a/translations/zh-CN/content/actions/learn-github-actions/expressions.md b/translations/zh-CN/content/actions/learn-github-actions/expressions.md index 7db5f0304a..07bd7e05f7 100644 --- a/translations/zh-CN/content/actions/learn-github-actions/expressions.md +++ b/translations/zh-CN/content/actions/learn-github-actions/expressions.md @@ -15,7 +15,7 @@ miniTocMaxHeadingLevel: 3 ## About expressions -您可以使用表达式程序化设置工作流程文件中的变量和访问上下文。 表达式可以是文字值、上下文引用或函数的任意组合。 您可以使用运算符组合文字、上下文引用和函数。 For more information about contexts, see "[Contexts](/actions/learn-github-actions/contexts)." +You can use expressions to programmatically set environment variables in workflow files and access contexts. 表达式可以是文字值、上下文引用或函数的任意组合。 您可以使用运算符组合文字、上下文引用和函数。 For more information about contexts, see "[Contexts](/actions/learn-github-actions/contexts)." 表达式通常在工作流程文件中与条件性 `if` 关键词一起用来确定步骤是否应该运行。 当 `if` 条件为 `true` 时,步骤将会运行。 @@ -50,16 +50,17 @@ env: 作为表达式的一部分,您可以使用 `boolean`、`null`、`number` 或 `string` 数据类型。 -| 数据类型 | 文字值 | -| -------- | ---------------------- | -| `布尔值` | `true` 或 `false` | -| `null` | `null` | -| `number` | JSON 支持的任何数字格式。 | -| `字符串` | 必须使用单引号。 使用单引号逸出文字单引号。 | +| 数据类型 | 文字值 | +| -------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `布尔值` | `true` 或 `false` | +| `null` | `null` | +| `number` | JSON 支持的任何数字格式。 | +| `字符串` | You don't need to enclose strings in {% raw %}${{{% endraw %} and {% raw %}}}{% endraw %}. However, if you do, you must use single quotes around the string and escape literal single quotes with an additional single quote. | #### 示例 {% raw %} + ```yaml env: myNull: ${{ null }} @@ -68,27 +69,28 @@ env: myFloatNumber: ${{ -9.2 }} myHexNumber: ${{ 0xff }} myExponentialNumber: ${{ -2.99-e2 }} - myString: ${{ 'Mona the Octocat' }} - myEscapedString: ${{ 'It''s open source!' }} + myString: Mona the Octocat + myStringInBraces: ${{ 'It''s open source!' }} ``` + {% endraw %} ## 运算符 -| 运算符 | 描述 | -| ------------------------- | ------ | -| `( )` | 逻辑分组 | -| `[ ]` | 索引 | -| `.` | 属性解除参考 | -| `!` | 非 | -| `<` | 小于 | -| `<=` | 小于或等于 | -| `>` | 大于 | -| `>=` | 大于或等于 | -| `==` | 等于 | -| `!=` | 不等于 | -| `&&` | 和 | -| \|\| | 或 | +| 运算符 | 描述 | +| ------------------------- | --------------------- | +| `( )` | 逻辑分组 | +| `[ ]` | 索引 | +| `.` | Property de-reference | +| `!` | 非 | +| `<` | 小于 | +| `<=` | 小于或等于 | +| `>` | 大于 | +| `>=` | 大于或等于 | +| `==` | 等于 | +| `!=` | 不等于 | +| `&&` | 和 | +| \|\| | 或 | {% data variables.product.prodname_dotcom %} 进行宽松的等式比较。 @@ -252,7 +254,7 @@ jobs: 返回匹配 `path` 模式的文件集的单个哈希值。 您可以提供单一 `path` 模式,或以逗号分隔的多个 `path` 模式。 `path` 相对于 `GITHUB_WORKSPACE` 目录,只能包括 `GITHUB_WORKSPACE` 中的文件。 此函数为每个匹配的文件计算单独的 SHA-256 哈希, 然后使用这些哈希来计算文件集的最终 SHA-256 哈希。 有关 SHA-256 的更多信息,请参阅“[SHA-2](https://en.wikipedia.org/wiki/SHA-2)”。 -您可以使用模式匹配字符来匹配文件名。 模式匹配在 Windows 上不区分大小写。 有关支持的模式匹配字符的更多信息,请参阅“[{% data variables.product.prodname_actions %} 的工作流程语法](/github/automating-your-workflow-with-github-actions/workflow-syntax-for-github-actions/#filter-pattern-cheat-sheet)”。 +您可以使用模式匹配字符来匹配文件名。 模式匹配在 Windows 上不区分大小写。 有关支持的模式匹配字符的更多信息,请参阅“[{% data variables.product.prodname_actions %} 的工作流程语法](/actions/using-workflows/workflow-syntax-for-github-actions/#filter-pattern-cheat-sheet)”。 #### 单一模式示例 diff --git a/translations/zh-CN/content/actions/security-guides/automatic-token-authentication.md b/translations/zh-CN/content/actions/security-guides/automatic-token-authentication.md index 441820e23a..fec3a19e0e 100644 --- a/translations/zh-CN/content/actions/security-guides/automatic-token-authentication.md +++ b/translations/zh-CN/content/actions/security-guides/automatic-token-authentication.md @@ -137,3 +137,7 @@ jobs: 1. 使用或创建具有该仓库适当权限的令牌。 更多信息请参阅“[创建个人访问令牌](/github/authenticating-to-github/creating-a-personal-access-token)”。 1. 添加令牌作为工作流程仓库中的密码,然后使用 {%raw%}`${{ secrets.SECRET_NAME }}`{% endraw %} 语法进行引用。 更多信息请参阅“[创建和使用加密密码](/github/automating-your-workflow-with-github-actions/creating-and-using-encrypted-secrets)”。 + +### 延伸阅读 + +- "[Resources in the REST API](/rest/overview/resources-in-the-rest-api#rate-limiting)" diff --git a/translations/zh-CN/content/actions/using-jobs/assigning-permissions-to-jobs.md b/translations/zh-CN/content/actions/using-jobs/assigning-permissions-to-jobs.md index f371d8ccf7..53a8b3708f 100644 --- a/translations/zh-CN/content/actions/using-jobs/assigning-permissions-to-jobs.md +++ b/translations/zh-CN/content/actions/using-jobs/assigning-permissions-to-jobs.md @@ -5,7 +5,7 @@ intro: Modify the default permissions granted to `GITHUB_TOKEN`. versions: fpt: '*' ghes: '> 3.1' - ghae: ghae-next + ghae: '*' ghec: '*' miniTocMaxHeadingLevel: 4 --- diff --git a/translations/zh-CN/content/actions/using-jobs/using-concurrency.md b/translations/zh-CN/content/actions/using-jobs/using-concurrency.md index cf5bbf8687..97e20c0ec4 100644 --- a/translations/zh-CN/content/actions/using-jobs/using-concurrency.md +++ b/translations/zh-CN/content/actions/using-jobs/using-concurrency.md @@ -5,7 +5,7 @@ intro: Run a single job at a time. versions: fpt: '*' ghes: '> 3.1' - ghae: ghae-next + ghae: '*' ghec: '*' miniTocMaxHeadingLevel: 4 --- diff --git a/translations/zh-CN/content/actions/using-workflows/events-that-trigger-workflows.md b/translations/zh-CN/content/actions/using-workflows/events-that-trigger-workflows.md index 0c4c5b8404..7537d48ba4 100644 --- a/translations/zh-CN/content/actions/using-workflows/events-that-trigger-workflows.md +++ b/translations/zh-CN/content/actions/using-workflows/events-that-trigger-workflows.md @@ -1397,6 +1397,61 @@ on: workflow_dispatch 您可以直接在工作流程中配置事件的自定义输入属性、默认输入值和必要输入。 When you trigger the event, you can provide the `ref` and any `inputs`. 当工作流程运行时,您可以访问 `github.event.inputs` 上下文中的输入值。 更多信息请参阅“[上下文](/actions/learn-github-actions/contexts)”。 +{% ifversion fpt or ghec or ghes > 3.3 or ghae-issue-5511 %} +This example defines inputs called `logLevel`, `tags`, and `environment`. You pass values for these inputs to the workflow when you run it. This workflow then prints the values to the log, using the `github.event.inputs.logLevel`, `github.event.inputs.tags`, and `github.event.inputs.environment` context properties. + +{% raw %} +```yaml +on: + workflow_dispatch: + inputs: + logLevel: + description: 'Log level' + required: true + default: 'warning' + type: choice + options: + - info + - warning + - debug + tags: + description: 'Test scenario tags' + required: false + type: boolean + environment: + description: 'Environment to run tests against' + type: environment + required: true + +jobs: + log-the-inputs: + runs-on: ubuntu-latest + steps: + - run: | + echo "Log level: $LEVEL" + echo "Tags: $TAGS" + echo "Environment: $ENVIRONMENT" + env: + LEVEL: ${{ github.event.inputs.logLevel }} + TAGS: ${{ github.event.inputs.tags }} + ENVIRONMENT: ${{ github.event.inputs.environment }} +``` +{% endraw %} + +If you run this workflow from a browser you must enter values for the required inputs manually before the workflow will run. + +![Entering inputs for a workflow](/assets/images/help/images/workflow-dispatch-inputs.png) + +You can also pass inputs when you run a workflow from a script, or by using {% data variables.product.prodname_cli %}. 例如: + +``` +gh workflow run run-tests.yml -f logLevel=warning -f tags=false -f environment=staging +``` + +For more information, see the {% data variables.product.prodname_cli %} information in "[Manually running a workflow](/actions/managing-workflow-runs/manually-running-a-workflow)." + + +{% else %} 此示例定义了 `name` 和 `home` 输入,并使用 `github.event.inputs.name` 和 `github.event.inputs.home` 上下文打印。 如果未提供 `home` ,则打印默认值“The Octoverse”。 ```yaml @@ -1424,6 +1479,7 @@ jobs: NAME: {% raw %}${{ github.event.inputs.name }}{% endraw %} HOME: {% raw %}${{ github.event.inputs.home }}{% endraw %} ``` +{% endif %} ### `workflow_run` @@ -1492,7 +1548,7 @@ jobs: #### Limiting your workflow to run based on branches -You can use the `branches` or `branches-ignore` filter to specify what branches the triggering workflow must run on in order to trigger your workflow. 更多信息请参阅“[GitHub Actions 的工作流程语法](/actions/learn-github-actions/workflow-syntax-for-github-actions#onworkflow_runbranchesbranches-ignore)”。 For example, a workflow with the following trigger will only run when the workflow named `Build` runs on a branch named `canary`. +You can use the `branches` or `branches-ignore` filter to specify what branches the triggering workflow must run on in order to trigger your workflow. For more information, see "[Workflow syntax for GitHub Actions](/actions/learn-github-actions/workflow-syntax-for-github-actions#onworkflow_runbranchesbranches-ignore)." For example, a workflow with the following trigger will only run when the workflow named `Build` runs on a branch named `canary`. ```yaml on: 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 dea1910124..faa456a49e 100644 --- a/translations/zh-CN/content/actions/using-workflows/reusing-workflows.md +++ b/translations/zh-CN/content/actions/using-workflows/reusing-workflows.md @@ -164,9 +164,9 @@ You call a reusable workflow by using the `uses` keyword. Unlike when you are us [`jobs..uses`](/actions/reference/workflow-syntax-for-github-actions#jobsjob_iduses) -You reference reusable workflow files using the syntax: +You reference reusable workflow files using {% ifversion fpt or ghec or ghes > 3.4 or ghae-issue-6000 %}one of the following syntaxes:{% else %}the syntax:{% endif %} -`{owner}/{repo}/{path}/{filename}@{ref}` +{% data reusables.actions.reusable-workflow-calling-syntax %} You can call multiple workflows, referencing each in a separate job. diff --git a/translations/zh-CN/content/actions/using-workflows/workflow-commands-for-github-actions.md b/translations/zh-CN/content/actions/using-workflows/workflow-commands-for-github-actions.md index bc4f0e2399..2bf4229bfe 100644 --- a/translations/zh-CN/content/actions/using-workflows/workflow-commands-for-github-actions.md +++ b/translations/zh-CN/content/actions/using-workflows/workflow-commands-for-github-actions.md @@ -308,7 +308,7 @@ console.log('::save-state name=processID::12345') console.log("The running PID from the main action is: " + process.env.STATE_processID); ``` -## 环境文件 +## Environment files 在工作流程执行期间,运行器生成可用于执行某些操作的临时文件。 这些文件的路径通过环境变量显示。 写入这些文件时,您需要使用 UTF-8 编码,以确保正确处理命令。 多个命令可以写入同一个文件,用换行符分隔。 @@ -347,16 +347,10 @@ More detail about UTF-8 and PowerShell Core found on this great [Stack Overflow ## 设置环境变量 ``` bash -echo "{name}={value}" >> $GITHUB_ENV +echo "{environment_variable_name}={value}" >> $GITHUB_ENV ``` -为作业中接下来运行的任何步骤创建或更新环境变量。 创建或更新环境变量的步骤无法访问新值,但在作业中的所有后续步骤均可访问。 环境变量区分大小写,并且可以包含标点符号。 - -{% note %} - -**Note:** Environment variables must be explicitly referenced using the [`env` context](/actions/reference/context-and-expression-syntax-for-github-actions#env-context) in expression syntax or through use of the `$GITHUB_ENV` file directly; environment variables are not implicitly available in shell commands. - -{% endnote %} +You can make an environment variable available to any subsequent steps in a workflow job by defining or updating the environment variable and writing this to the `GITHUB_ENV` environment file. 创建或更新环境变量的步骤无法访问新值,但在作业中的所有后续步骤均可访问。 The names of environment variables are case-sensitive, and you can include punctuation. 更多信息请参阅“[环境变量](/actions/learn-github-actions/environment-variables)”。 ### 示例 diff --git a/translations/zh-CN/content/actions/using-workflows/workflow-syntax-for-github-actions.md b/translations/zh-CN/content/actions/using-workflows/workflow-syntax-for-github-actions.md index d8a87e4429..8a1db6c9e3 100644 --- a/translations/zh-CN/content/actions/using-workflows/workflow-syntax-for-github-actions.md +++ b/translations/zh-CN/content/actions/using-workflows/workflow-syntax-for-github-actions.md @@ -183,7 +183,7 @@ on: logLevel: description: 'Log level' required: true - default: 'warning' {% ifversion ghec or ghes > 3.3 or ghae-issue-5511 %} + default: 'warning' {% ifversion fpt or ghec or ghes > 3.3 or ghae-issue-5511 %} type: choice options: - info @@ -191,7 +191,7 @@ on: - debug {% endif %} tags: description: 'Test scenario tags' - required: false {% ifversion ghec or ghes > 3.3 or ghae-issue-5511 %} + required: false {% ifversion fpt or ghec or ghes > 3.3 or ghae-issue-5511 %} type: boolean environment: description: 'Environment to run tests against' @@ -209,7 +209,7 @@ jobs: {% ifversion fpt or ghes > 3.1 or ghae or ghec %} -## `permissions` +## `权限` {% data reusables.actions.jobs.section-assigning-permissions-to-jobs %} @@ -914,11 +914,9 @@ volumes: {% ifversion fpt or ghes > 3.3 or ghae-issue-4757 or ghec %} ## `jobs..uses` -The location and version of a reusable workflow file to run as a job. +The location and version of a reusable workflow file to run as a job. {% ifversion fpt or ghec or ghes > 3.4 or ghae-issue-6000 %}Use one of the following syntaxes:{% endif %} -`{owner}/{repo}/{path}/{filename}@{ref}` - -`{ref}` can be a SHA, a release tag, or a branch name. Using the commit SHA is the safest for stability and security. For more information, see "[Security hardening for GitHub Actions](/actions/learn-github-actions/security-hardening-for-github-actions#reusing-third-party-workflows)." +{% data reusables.actions.reusable-workflow-calling-syntax %} ### 示例 diff --git a/translations/zh-CN/content/admin/advanced-security/configuring-secret-scanning-for-your-appliance.md b/translations/zh-CN/content/admin/advanced-security/configuring-secret-scanning-for-your-appliance.md index 1ff1342d1f..b9f563ef85 100644 --- a/translations/zh-CN/content/admin/advanced-security/configuring-secret-scanning-for-your-appliance.md +++ b/translations/zh-CN/content/admin/advanced-security/configuring-secret-scanning-for-your-appliance.md @@ -20,7 +20,7 @@ topics: ## About {% data variables.product.prodname_secret_scanning %} -{% data reusables.secret-scanning.about-secret-scanning %} For more information, see "[About {% data variables.product.prodname_secret_scanning %}](/github/administering-a-repository/about-secret-scanning)." +If someone checks a secret with a known pattern into a repository, {% data variables.product.prodname_secret_scanning %} catches the secret as it's checked in, and helps you mitigate the impact of the leak. Repository administrators are notified about any commit that contains a secret, and they can quickly view all detected secrets in the Security tab for the repository. For more information, see "[About {% data variables.product.prodname_secret_scanning %}](/code-security/secret-scanning/about-secret-scanning)." ## Checking whether your license includes {% data variables.product.prodname_GH_advanced_security %} diff --git a/translations/zh-CN/content/admin/configuration/configuring-your-enterprise/accessing-the-management-console.md b/translations/zh-CN/content/admin/configuration/configuring-your-enterprise/accessing-the-management-console.md index d78d9ed5dd..afe2d5aa16 100644 --- a/translations/zh-CN/content/admin/configuration/configuring-your-enterprise/accessing-the-management-console.md +++ b/translations/zh-CN/content/admin/configuration/configuring-your-enterprise/accessing-the-management-console.md @@ -32,6 +32,8 @@ You can always reach the {% data variables.enterprise.management_console %} usin To access the {% data variables.enterprise.management_console %}, you must use the administrator password established during initial setup of {% data variables.product.product_location %}. You must also be able to connect to the virtual machine host on port 8443. If you're having trouble reaching the {% data variables.enterprise.management_console %}, please check intermediate firewall and security group configurations. +The {% data variables.enterprise.management_console %} password hash is stored in `/data/user/common/secrets.conf`, and that file is automatically synced from the primary appliance to any high-availability replicas. Any change to the primary's password will automatically be replicated to high-availability replicas. For more information about high availability, see "[About high availability configuration](/admin/enterprise-management/configuring-high-availability/about-high-availability-configuration)." + ## Accessing the {% data variables.enterprise.management_console %} as a site administrator The first time that you access the {% data variables.enterprise.management_console %} as a site administrator, you must upload your {% data variables.product.prodname_enterprise %} license file to authenticate into the app. For more information, see "[Managing your license for {% data variables.product.prodname_enterprise %}](/billing/managing-your-license-for-github-enterprise)." diff --git a/translations/zh-CN/content/admin/configuration/configuring-your-enterprise/command-line-utilities.md b/translations/zh-CN/content/admin/configuration/configuring-your-enterprise/command-line-utilities.md index 2c3a6f3bb8..61e750cc30 100644 --- a/translations/zh-CN/content/admin/configuration/configuring-your-enterprise/command-line-utilities.md +++ b/translations/zh-CN/content/admin/configuration/configuring-your-enterprise/command-line-utilities.md @@ -667,6 +667,32 @@ You can add the optional `--prune` argument to remove unreachable Git objects th ghe-repo-gc username/reponame ``` +## {% data variables.product.prodname_actions %} + +### ghe-actions-check + +This utility checks that all services for {% data variables.product.prodname_actions %} are healthy. For more information, see "[Getting started with {% data variables.product.prodname_actions %} for {% data variables.product.product_name %}](/admin/github-actions/getting-started-with-github-actions-for-your-enterprise/getting-started-with-github-actions-for-github-enterprise-server)" and "[Troubleshooting {% data variables.product.prodname_actions %} for your enterprise](/admin/github-actions/advanced-configuration-and-troubleshooting/troubleshooting-github-actions-for-your-enterprise)." + +```shell +ghe-actions-check +``` + +### ghe-actions-precheck + +This utility tests the blob storage configuration for {% data variables.product.prodname_actions %} on {% data variables.product.product_location %}. You can use the utility to verify your storage configuration before you enable {% data variables.product.prodname_actions %} for your instance. + +For more information about the configuration of {% data variables.product.prodname_actions %}, see "[Getting started with {% data variables.product.prodname_actions %} for {% data variables.product.product_name %}](/admin/github-actions/getting-started-with-github-actions-for-your-enterprise/getting-started-with-github-actions-for-github-enterprise-server)." + +```shell +ghe-actions-precheck -p [provider] -cs ["connectionstring"] +``` + +If your storage system is configured correctly, you'll see the following output. + +``` +All Storage tests passed +``` + ## Import and export ### ghe-migrator @@ -836,7 +862,7 @@ This utility will enforce the default organization membership visibility setting ghe-org-membership-update --visibility=SETTING ``` -### ghe-user-csv +### `ghe-user-csv` This utility exports a list of all the users in the installation into CSV format. The CSV file includes the email address, which type of user they are (e.g., admin, user), how many repositories they have, how many SSH keys, how many organization memberships, last logged IP address, etc. Use the `-h` flag for more options. diff --git a/translations/zh-CN/content/admin/enterprise-management/configuring-high-availability/about-high-availability-configuration.md b/translations/zh-CN/content/admin/enterprise-management/configuring-high-availability/about-high-availability-configuration.md index cdd8c2924a..6ec77e8fa7 100644 --- a/translations/zh-CN/content/admin/enterprise-management/configuring-high-availability/about-high-availability-configuration.md +++ b/translations/zh-CN/content/admin/enterprise-management/configuring-high-availability/about-high-availability-configuration.md @@ -15,10 +15,11 @@ topics: shortTitle: 关于 HA 配置 --- -配置高可用性时,会自动设置将所有数据存储(Git 仓库、MySQL、Redis 和 Elasticsearch)单向、异步地从主设备复制到副本。 +配置高可用性时,会自动设置将所有数据存储(Git 仓库、MySQL、Redis 和 Elasticsearch)单向、异步地从主设备复制到副本。 Most {% data variables.product.prodname_ghe_server %} configuration settings are also replicated, including the {% data variables.enterprise.management_console %} password. For more information, see "[Accessing the management console](/admin/configuration/configuring-your-enterprise/accessing-the-management-console)." {% data variables.product.prodname_ghe_server %} 支持主动/被动配置,在这些配置下,副本作为备用设备运行,并且数据库服务在复制模式下运行,但应用程序服务将停止。 +After replication has been established, the {% data variables.enterprise.management_console %} is no longer accessible on replica appliances. If you navigate to the replica's IP address or hostname on port 8443, you'll see a "Server in replication mode" message, which indicates that the appliance is currently configured as a replica. {% data reusables.enterprise_installation.replica-limit %} ## 有针对性的故障场景 @@ -44,13 +45,13 @@ shortTitle: 关于 HA 配置 在故障转移期间,必须将主设备置于维护模式,并将其 DNS 记录重定向到副本的 IP 地址。 将流量从主设备重新定向到副本所需的时间将取决于 TTL 配置以及更新 DNS 记录所需的时间。 -如果您要使用 Geo-replication,则必须配置 Geo DNS,将流量定向到距离最近的副本。 更多信息请参阅“[关于 Geo-replication](/enterprise/{{ currentVersion }}/admin/guides/installation/about-geo-replication/)”。 +如果您要使用 Geo-replication,则必须配置 Geo DNS,将流量定向到距离最近的副本。 For more information, see "[About geo-replication](/enterprise/{{ currentVersion }}/admin/guides/installation/about-geo-replication/)." ### 负载均衡器 {% data reusables.enterprise_clustering.load_balancer_intro %} {% data reusables.enterprise_clustering.load_balancer_dns %} -在故障转移期间,您必须将主设备置于维护模式。 您可以将负载均衡器配置为自动检测副本何时已升级为主设备,或者可能需要手动更改配置。 您必须先将副本手动升级为主设备,随后副本才能对用户流量作出响应。 更多信息请参阅“[结合使用 {% data variables.product.prodname_ghe_server %} 和负载均衡器](/enterprise/{{ currentVersion }}/admin/guides/installation/using-github-enterprise-server-with-a-load-balancer/)”。 +在故障转移期间,您必须将主设备置于维护模式。 您可以将负载均衡器配置为自动检测副本何时已升级为主设备,或者可能需要手动更改配置。 您必须先将副本手动升级为主设备,随后副本才能对用户流量作出响应。 For more information, see "[Using {% data variables.product.prodname_ghe_server %} with a load balancer](/enterprise/{{ currentVersion }}/admin/guides/installation/using-github-enterprise-server-with-a-load-balancer/)." {% data reusables.enterprise_installation.monitoring-replicas %} diff --git a/translations/zh-CN/content/admin/enterprise-management/updating-the-virtual-machine-and-physical-resources/increasing-cpu-or-memory-resources.md b/translations/zh-CN/content/admin/enterprise-management/updating-the-virtual-machine-and-physical-resources/increasing-cpu-or-memory-resources.md index c687ca375c..61b681ed8b 100644 --- a/translations/zh-CN/content/admin/enterprise-management/updating-the-virtual-machine-and-physical-resources/increasing-cpu-or-memory-resources.md +++ b/translations/zh-CN/content/admin/enterprise-management/updating-the-virtual-machine-and-physical-resources/increasing-cpu-or-memory-resources.md @@ -58,7 +58,7 @@ It's not possible to add CPU or memory resources to an existing AWS/EC2 instance {% note %} -**Note:** To add CPU or memory resources in Microsoft Azure, you must be familiar with using either the Azure Portal, Azure CLI or Azure Powershell to manage VM instances. For background and details on using the Azure tools of your choice to perform the resize, please refer to the Azure documentation on [changing the size of a virtual machine](https://docs.microsoft.com/en-us/azure/virtual-machines/resize-vm). +**Note:** To add CPU or memory resources in Microsoft Azure, you must be familiar with using either the Azure Portal, Azure CLI or Azure PowerShell to manage VM instances. For background and details on using the Azure tools of your choice to perform the resize, please refer to the Azure documentation on [changing the size of a virtual machine](https://docs.microsoft.com/en-us/azure/virtual-machines/resize-vm). {% endnote %} diff --git a/translations/zh-CN/content/admin/enterprise-management/updating-the-virtual-machine-and-physical-resources/upgrade-requirements.md b/translations/zh-CN/content/admin/enterprise-management/updating-the-virtual-machine-and-physical-resources/upgrade-requirements.md index 67ec886148..fa32f2c3f2 100644 --- a/translations/zh-CN/content/admin/enterprise-management/updating-the-virtual-machine-and-physical-resources/upgrade-requirements.md +++ b/translations/zh-CN/content/admin/enterprise-management/updating-the-virtual-machine-and-physical-resources/upgrade-requirements.md @@ -40,7 +40,8 @@ topics: - {% data reusables.enterprise_installation.hotpatching-explanation %} - A hotpatch may require downtime if the affected services (like kernel, MySQL, or Elasticsearch) require a VM reboot or a service restart. You'll be notified when a reboot or restart is required. You can complete the reboot or restart at a later time. - Additional root storage must be available when upgrading through hotpatching, as it installs multiple versions of certain services until the upgrade is complete. Pre-flight checks will notify you if you don't have enough root disk storage. -- When upgrading through hotpatching, your instance cannot be too heavily loaded, as it may impact the hotpatching process. Pre-flight checks will consider the load average and the upgrade will fail if the load average is too high.- Upgrading to {% data variables.product.prodname_ghe_server %} 2.17 migrates your audit logs from Elasticsearch to MySQL. This migration also increases the amount of time and disk space it takes to restore a snapshot. Before migrating, check the number of bytes in your Elasticsearch audit log indices with this command: +- When upgrading through hotpatching, your instance cannot be too heavily loaded, as it may impact the hotpatching process. +- Upgrading to {% data variables.product.prodname_ghe_server %} 2.17 migrates your audit logs from Elasticsearch to MySQL. This migration also increases the amount of time and disk space it takes to restore a snapshot. Before migrating, check the number of bytes in your Elasticsearch audit log indices with this command: ``` shell curl -s http://localhost:9201/audit_log/_stats/store | jq ._all.primaries.store.size_in_bytes ``` diff --git a/translations/zh-CN/content/admin/enterprise-management/updating-the-virtual-machine-and-physical-resources/upgrading-github-enterprise-server.md b/translations/zh-CN/content/admin/enterprise-management/updating-the-virtual-machine-and-physical-resources/upgrading-github-enterprise-server.md index 504211d17c..8b9bea4d75 100644 --- a/translations/zh-CN/content/admin/enterprise-management/updating-the-virtual-machine-and-physical-resources/upgrading-github-enterprise-server.md +++ b/translations/zh-CN/content/admin/enterprise-management/updating-the-virtual-machine-and-physical-resources/upgrading-github-enterprise-server.md @@ -41,7 +41,9 @@ shortTitle: 升级 GHES ## 生成快照 -快照是虚拟机 (VM) 在某一时间点的检查点。 强烈建议在升级虚拟机之前生成快照,这样一来,如果升级失败,您可以将 VM 还原到快照状态。 如果您要升级到新的功能版本,则必须生成 VM 快照。 如果您要升级到补丁版本,可以连接现有数据磁盘。 +快照是虚拟机 (VM) 在某一时间点的检查点。 强烈建议在升级虚拟机之前生成快照,这样一来,如果升级失败,您可以将 VM 还原到快照状态。 We only recommend taking a VM snapshot when the appliance is powered down or in maintenance mode and all background jobs have finished. + +如果您要升级到新的功能版本,则必须生成 VM 快照。 如果您要升级到补丁版本,可以连接现有数据磁盘。 有两种类型的快照: @@ -67,7 +69,9 @@ shortTitle: 升级 GHES ## 使用热补丁升级 -{% data reusables.enterprise_installation.hotpatching-explanation %} 利用 {% data variables.enterprise.management_console %},您可以立即安装热补丁,也可以排定稍后安装热补丁。 您可以使用管理 shell 的 `ghe-upgrade` 实用程序安装热补丁。 更多信息请参阅“[升级要求](/enterprise/{{ currentVersion }}/admin/guides/installation/upgrade-requirements/)”。 +{% data reusables.enterprise_installation.hotpatching-explanation %} + +Using the {% data variables.enterprise.management_console %}, you can install a hotpatch immediately or schedule it for later installation. 您可以使用管理 shell 的 `ghe-upgrade` 实用程序安装热补丁。 更多信息请参阅“[升级要求](/enterprise/{{ currentVersion }}/admin/guides/installation/upgrade-requirements/)”。 {% note %} @@ -84,6 +88,10 @@ shortTitle: 升级 GHES #### 使用 {% data variables.enterprise.management_console %} 安装热补丁 +You can use the {% data variables.enterprise.management_console %} to upgrade with a hotpatch by enabling automatic updates. You will then be presented with the latest available version of {% data variables.product.prodname_ghe_server %} that you can upgrade to. + +If the upgrade target you're presented with is a feature release instead of a patch release, you cannot use the {% data variables.enterprise.management_console %} to install a hotpatch. You must install the hotpatch using the administrative shell instead. For more information, see "[Installing a hotpatch using the administrative shell](#installing-a-hotpatch-using-the-administrative-shell)." + 1. 启用自动更新。 更多信息请参阅“[启用自动更新](/enterprise/{{ currentVersion }}/admin/guides/installation/enabling-automatic-update-checks/)”。 {% data reusables.enterprise_site_admin_settings.access-settings %} {% data reusables.enterprise_site_admin_settings.management-console %} diff --git a/translations/zh-CN/content/admin/github-actions/advanced-configuration-and-troubleshooting/troubleshooting-github-actions-for-your-enterprise.md b/translations/zh-CN/content/admin/github-actions/advanced-configuration-and-troubleshooting/troubleshooting-github-actions-for-your-enterprise.md index 3e1182668d..eeae6fb8a8 100644 --- a/translations/zh-CN/content/admin/github-actions/advanced-configuration-and-troubleshooting/troubleshooting-github-actions-for-your-enterprise.md +++ b/translations/zh-CN/content/admin/github-actions/advanced-configuration-and-troubleshooting/troubleshooting-github-actions-for-your-enterprise.md @@ -13,6 +13,11 @@ redirect_from: - /admin/github-actions/troubleshooting-github-actions-for-your-enterprise shortTitle: Troubleshoot GitHub Actions --- + +## Checking the health of {% data variables.product.prodname_actions %} + +You can check the health of {% data variables.product.prodname_actions %} on {% data variables.product.product_location %} with the `ghe-actions-check` command-line utility. For more information, see "[Command-line utilities](/admin/configuration/configuring-your-enterprise/command-line-utilities#ghe-actions-check)" and "[Accessing the administrative shell (SSH)](/admin/configuration/configuring-your-enterprise/accessing-the-administrative-shell-ssh)." + ## Configuring self-hosted runners when using a self-signed certificate for {% data variables.product.prodname_ghe_server %} {% data reusables.actions.enterprise-self-signed-cert %} For more information, see "[Configuring TLS](/admin/configuration/configuring-tls)." @@ -177,4 +182,4 @@ There are three ways to resolve this problem: ``` 1. Return to {% data variables.product.prodname_ghe_server %}. -{% endif %} \ No newline at end of file +{% endif %} diff --git a/translations/zh-CN/content/admin/github-actions/enabling-github-actions-for-github-enterprise-server/enabling-github-actions-with-amazon-s3-storage.md b/translations/zh-CN/content/admin/github-actions/enabling-github-actions-for-github-enterprise-server/enabling-github-actions-with-amazon-s3-storage.md index d807e0ad35..309655b87e 100644 --- a/translations/zh-CN/content/admin/github-actions/enabling-github-actions-for-github-enterprise-server/enabling-github-actions-with-amazon-s3-storage.md +++ b/translations/zh-CN/content/admin/github-actions/enabling-github-actions-for-github-enterprise-server/enabling-github-actions-with-amazon-s3-storage.md @@ -26,6 +26,8 @@ Before enabling {% data variables.product.prodname_actions %}, make sure you hav ## Enabling {% data variables.product.prodname_actions %} with Amazon S3 storage +{% data reusables.enterprise_installation.ssh-into-instance %} +{% data reusables.actions.perform-blob-storage-precheck %} {% data reusables.enterprise_site_admin_settings.access-settings %} {% data reusables.enterprise_site_admin_settings.management-console %} {% data reusables.enterprise_management_console.actions %} diff --git a/translations/zh-CN/content/admin/github-actions/enabling-github-actions-for-github-enterprise-server/enabling-github-actions-with-azure-blob-storage.md b/translations/zh-CN/content/admin/github-actions/enabling-github-actions-for-github-enterprise-server/enabling-github-actions-with-azure-blob-storage.md index 038358298f..cb73b7f4fa 100644 --- a/translations/zh-CN/content/admin/github-actions/enabling-github-actions-for-github-enterprise-server/enabling-github-actions-with-azure-blob-storage.md +++ b/translations/zh-CN/content/admin/github-actions/enabling-github-actions-for-github-enterprise-server/enabling-github-actions-with-azure-blob-storage.md @@ -33,6 +33,8 @@ Before enabling {% data variables.product.prodname_actions %}, make sure you hav ## Enabling {% data variables.product.prodname_actions %} with Azure Blob storage +{% data reusables.enterprise_installation.ssh-into-instance %} +{% data reusables.actions.perform-blob-storage-precheck %} {% data reusables.enterprise_site_admin_settings.access-settings %} {% data reusables.enterprise_site_admin_settings.management-console %} {% data reusables.enterprise_management_console.actions %} diff --git a/translations/zh-CN/content/admin/github-actions/enabling-github-actions-for-github-enterprise-server/enabling-github-actions-with-minio-gateway-for-nas-storage.md b/translations/zh-CN/content/admin/github-actions/enabling-github-actions-for-github-enterprise-server/enabling-github-actions-with-minio-gateway-for-nas-storage.md index aa3e11ea08..77caf14c10 100644 --- a/translations/zh-CN/content/admin/github-actions/enabling-github-actions-for-github-enterprise-server/enabling-github-actions-with-minio-gateway-for-nas-storage.md +++ b/translations/zh-CN/content/admin/github-actions/enabling-github-actions-for-github-enterprise-server/enabling-github-actions-with-minio-gateway-for-nas-storage.md @@ -27,6 +27,8 @@ Before enabling {% data variables.product.prodname_actions %}, make sure you hav ## Enabling {% data variables.product.prodname_actions %} with MinIO Gateway for NAS storage +{% data reusables.enterprise_installation.ssh-into-instance %} +{% data reusables.actions.perform-blob-storage-precheck %} {% data reusables.enterprise_site_admin_settings.access-settings %} {% data reusables.enterprise_site_admin_settings.management-console %} {% data reusables.enterprise_management_console.actions %} diff --git a/translations/zh-CN/content/admin/github-actions/getting-started-with-github-actions-for-your-enterprise/getting-started-with-github-actions-for-github-enterprise-server.md b/translations/zh-CN/content/admin/github-actions/getting-started-with-github-actions-for-your-enterprise/getting-started-with-github-actions-for-github-enterprise-server.md index 5f067794ac..a3801a0252 100644 --- a/translations/zh-CN/content/admin/github-actions/getting-started-with-github-actions-for-your-enterprise/getting-started-with-github-actions-for-github-enterprise-server.md +++ b/translations/zh-CN/content/admin/github-actions/getting-started-with-github-actions-for-your-enterprise/getting-started-with-github-actions-for-github-enterprise-server.md @@ -113,6 +113,8 @@ To enable {% data variables.product.prodname_actions %} on {% data variables.pro {% endnote %} +Before you enable {% data variables.product.prodname_actions %}, you can test your storage configuration from the administrative shell with the `ghe-actions-precheck` utility. For more information, see "[Command-line utilities](/admin/configuration/configuring-your-enterprise/command-line-utilities#ghe-actions-check)" and "[Accessing the administrative shell (SSH)](/admin/configuration/configuring-your-enterprise/accessing-the-administrative-shell-ssh)." + ## Networking considerations {% data reusables.actions.proxy-considerations %} For more information about using a proxy with {% data variables.product.prodname_ghe_server %}, see "[Configuring an outbound web proxy server](/admin/configuration/configuring-network-settings/configuring-an-outbound-web-proxy-server)." diff --git a/translations/zh-CN/content/admin/identity-and-access-management/managing-iam-for-your-enterprise/configuring-saml-single-sign-on-for-your-enterprise-using-okta.md b/translations/zh-CN/content/admin/identity-and-access-management/managing-iam-for-your-enterprise/configuring-saml-single-sign-on-for-your-enterprise-using-okta.md index 7116413069..9c5bec8160 100644 --- a/translations/zh-CN/content/admin/identity-and-access-management/managing-iam-for-your-enterprise/configuring-saml-single-sign-on-for-your-enterprise-using-okta.md +++ b/translations/zh-CN/content/admin/identity-and-access-management/managing-iam-for-your-enterprise/configuring-saml-single-sign-on-for-your-enterprise-using-okta.md @@ -16,8 +16,6 @@ type: how_to shortTitle: Configure SAML with Okta --- -{% data reusables.enterprise-accounts.user-provisioning-release-stage %} - {% data reusables.enterprise-accounts.emu-saml-note %} ## 关于使用 Octa 的 SAML @@ -28,25 +26,20 @@ SAML SSO 控制并保护对企业帐户资源(如组织、仓库、议题和 {% data reusables.saml.switching-from-org-to-enterprise %} For more information, see "[Switching your SAML configuration from an organization to an enterprise account](/github/setting-up-and-managing-your-enterprise/configuring-identity-and-access-management-for-your-enterprise-account/switching-your-saml-configuration-from-an-organization-to-an-enterprise-account)." -## 基本要求 - -{% data reusables.saml.use-classic-ui %} +Alternatively, you can also configure SAML SSO using Okta for an organization that uses {% data variables.product.prodname_ghe_cloud %}. 更多信息请参阅“[使用 Okta 配置 SAML 单点登录和 SCIM](/organizations/managing-saml-single-sign-on-for-your-organization/configuring-saml-single-sign-on-and-scim-using-okta)”。 ## 在 Okta 中添加 {% data variables.product.prodname_ghe_cloud %} 应用程序 -{% data reusables.saml.okta-admin-button %} +{% data reusables.saml.okta-sign-into-your-account %} +1. Navigate to the [Github Enterprise Cloud - Enterprise Accounts](https://www.okta.com/integrations/github-enterprise-cloud-enterprise-accounts) application in the Okta Integration Network and click **Add Integration**. {% data reusables.saml.okta-dashboard-click-applications %} -{% data reusables.saml.add-okta-application %} -{% data reusables.saml.search-ghec-okta %} -1. 单击“{% data variables.product.prodname_ghe_cloud %} - Enterprise Accounts(企业帐户)”。 -1. 单击 **Add(添加)**。 -1. (可选)在“Application label(应用程序标签)”右边输入应用程序的描述性名称。 ![应用程序标签字段](/assets/images/help/saml/okta-application-label.png) -1. 在“{% data variables.product.prodname_dotcom %} Enterprises”右侧,键入企业帐户的名称。 例如,如果企业帐户的 URL 是`https://github.com/enterprises/octo-corp`,请键入 `octo-corp`。 ![GitHub Enterprises 字段](/assets/images/help/saml/okta-github-enterprises.png) +1. (可选)在“Application label(应用程序标签)”右边输入应用程序的描述性名称。 +1. 在“{% data variables.product.prodname_dotcom %} Enterprises”右侧,键入企业帐户的名称。 例如,如果企业帐户的 URL 是`https://github.com/enterprises/octo-corp`,请键入 `octo-corp`。 1. 单击 **Done(完成)**。 ## 启用和测试 SAML SSO -{% data reusables.saml.okta-admin-button %} +{% data reusables.saml.okta-sign-into-your-account %} {% data reusables.saml.okta-dashboard-click-applications %} {% data reusables.saml.click-enterprise-account-application %} {% data reusables.saml.assign-yourself-to-okta %} @@ -63,14 +56,3 @@ SAML SSO 控制并保护对企业帐户资源(如组织、仓库、议题和 1. 在 Okta 中,创建一个组来匹配企业帐户拥有的每个组织。 每个组的名称必须与组织的帐户名称匹配(而不是组织的显示名称)。 例如,如果组织的 URL 为`https://github.com/octo-org`,则将组命名为 `octo-org`。 1. 将为企业帐户创建的应用程序分配给每个组。 {% data variables.product.prodname_dotcom %} 将接收每个用户的所有`组`数据。 1. 根据您希望用户所属的组织将用户添加到组。 - -## 启用 SAML 用户预配 - -{% data reusables.enterprise-accounts.access-enterprise %} -{% data reusables.enterprise-accounts.settings-tab %} -{% data reusables.enterprise-accounts.security-tab %} -1. 在“SAML User Provisioning(SAML 用户预配)”下,选择 **Enable SAML user provisioning(启用 SAML 用户预配)**。 ![使用 SAML 启用用户预配的复选框](/assets/images/help/business-accounts/user-provisioning.png) -1. 单击 **Save(保存)**。 -1. (可选)启用 SAML 用户解除预配。 - - 选择 **Enable SAML user deprovisioning(启用 SAML 用户解除预配)**,然后单击 **Save(保存)**。 ![使用 SAML 启用用户解除预配的复选框](/assets/images/help/business-accounts/saml-deprovisioning.png) - - 阅读警告,然后单击 **Enable SAML deprovisioning(启用 SAML 解除预配)**。 ![启用 SAML 解除预配按钮](/assets/images/help/business-accounts/saml-deprovisioning-confirm.png) diff --git a/translations/zh-CN/content/admin/user-management/managing-repositories-in-your-enterprise/migrating-to-internal-repositories.md b/translations/zh-CN/content/admin/user-management/managing-repositories-in-your-enterprise/migrating-to-internal-repositories.md index 62b36b2487..5578f04811 100644 --- a/translations/zh-CN/content/admin/user-management/managing-repositories-in-your-enterprise/migrating-to-internal-repositories.md +++ b/translations/zh-CN/content/admin/user-management/managing-repositories-in-your-enterprise/migrating-to-internal-repositories.md @@ -42,9 +42,11 @@ shortTitle: 内部仓库迁移 1. 连接到管理 shell。 更多信息请参阅“[访问管理 shell (SSH)](/enterprise/admin/installation/accessing-the-administrative-shell-ssh)。” {% ifversion ghes or ghae %} 2. 运行迁移命令。 + ```shell github-env bin/safe-ruby lib/github/transitions/20191210220630_convert_public_ghes_repos_to_internal.rb --verbose -w | tee -a /tmp/convert_public_ghes_repos_to_internal.log ``` + {% else %} 2. 导航至 `/data/github/current` 目录。 ```shell diff --git a/translations/zh-CN/content/authentication/securing-your-account-with-two-factor-authentication-2fa/about-two-factor-authentication.md b/translations/zh-CN/content/authentication/securing-your-account-with-two-factor-authentication-2fa/about-two-factor-authentication.md index 8c1122a0b3..88a9126267 100644 --- a/translations/zh-CN/content/authentication/securing-your-account-with-two-factor-authentication-2fa/about-two-factor-authentication.md +++ b/translations/zh-CN/content/authentication/securing-your-account-with-two-factor-authentication-2fa/about-two-factor-authentication.md @@ -18,6 +18,10 @@ shortTitle: 关于 2FA {% data reusables.two_fa.after-2fa-add-security-key %} +{% ifversion fpt or ghec %} +In addition to security keys, you can also use {% data variables.product.prodname_mobile %} for 2FA after configuring a TOTP mobile app or text messages. {% data variables.product.prodname_mobile %} uses public-key cryptography to secure your account, allowing you to use any mobile device that you've used to signed in to {% data variables.product.prodname_mobile %} as your second factor. +{% endif %} + 您还可以配置其他恢复方法,以防无法访问双重身份验证凭据。 有关设置 2FA 的更多信息,请参阅“[配置双重身份验证](/articles/configuring-two-factor-authentication)”和“[配置双重身份验证恢复方法](/articles/configuring-two-factor-authentication-recovery-methods)”。 为确保帐户安全,**强烈**建议启用 2FA,不仅在 {% data variables.product.product_name %} 上启用,在支持 2FA 的其他网站和应用程序上也要启用。 您可以启用 2FA 以访问 {% data variables.product.product_name %} 和 {% data variables.product.prodname_desktop %}。 diff --git a/translations/zh-CN/content/authentication/securing-your-account-with-two-factor-authentication-2fa/accessing-github-using-two-factor-authentication.md b/translations/zh-CN/content/authentication/securing-your-account-with-two-factor-authentication-2fa/accessing-github-using-two-factor-authentication.md index 51b5d4a674..c8684fcf25 100644 --- a/translations/zh-CN/content/authentication/securing-your-account-with-two-factor-authentication-2fa/accessing-github-using-two-factor-authentication.md +++ b/translations/zh-CN/content/authentication/securing-your-account-with-two-factor-authentication-2fa/accessing-github-using-two-factor-authentication.md @@ -37,6 +37,24 @@ shortTitle: 使用 2FA 访问 GitHub 如果设置通过短信进行双重身份验证,{% data variables.product.product_name %} 将通过短信向您发送验证码。 +### Verifying with {% data variables.product.prodname_mobile %} + +If you have installed and signed in to {% data variables.product.prodname_mobile %}, you may choose to authenticate with {% data variables.product.prodname_mobile %} for two-factor authentication. + +1. Sign in to {% data variables.product.product_name %} with your browser, using your username and password. +2. If you have added a security key to your account, you'll first be prompted to insert and use a security key. To skip using a security key, click **Authenticate with {% data variables.product.prodname_mobile %}**. ![Two-factor authentication challenge on {% data variables.product.product_name %} with "Authenticate with {% data variables.product.prodname_mobile %}" highlighted](/assets/images/help/2fa/2fa-select-mobile.png) +3. {% data variables.product.product_name %} will send you a push notification to verify your sign in attempt. Opening the push notification or opening the {% data variables.product.prodname_mobile %} app will display a prompt, asking you to approve or reject this sign in attempt. + {% note %} + + **Note**: This prompt may require you to enter a two-digit number displayed within the browser you are signing in to. + + {% endnote %} + + ![Two-factor authentication challenge with {% data variables.product.prodname_mobile %} requiring a two-digit input](/assets/images/help/2fa/2fa-mobile-number-challenge.png) + + - Upon approving the login attempt using {% data variables.product.prodname_mobile %}, your browser will complete the sign in attempt automatically. + - Rejecting the sign in attempt will prevent the authentication from finishing. For more information, see "[Keeping your account and data secure](/authentication/keeping-your-account-and-data-secure)." + {% endif %} ## 通过命令行使用双重身份验证 diff --git a/translations/zh-CN/content/authentication/securing-your-account-with-two-factor-authentication-2fa/configuring-two-factor-authentication.md b/translations/zh-CN/content/authentication/securing-your-account-with-two-factor-authentication-2fa/configuring-two-factor-authentication.md index bdff2cf6cd..22198ea767 100644 --- a/translations/zh-CN/content/authentication/securing-your-account-with-two-factor-authentication-2fa/configuring-two-factor-authentication.md +++ b/translations/zh-CN/content/authentication/securing-your-account-with-two-factor-authentication-2fa/configuring-two-factor-authentication.md @@ -123,6 +123,20 @@ If you're a member of an {% data variables.product.prodname_emu_enterprise %}, y 9. 确认您已下载并且能够访问恢复代码。 如果尚未下载,或者要生成另一组代码,请下载代码并将其保存在安全位置。 如果无法访问自己的帐户,您可以使用恢复代码来恢复帐户访问。 更多信息请参阅“[丢失 2FA 凭据时恢复帐户](/articles/recovering-your-account-if-you-lose-your-2fa-credentials)”。 ![下载恢复代码按钮](/assets/images/help/2fa/2fa-recover-during-setup.png) {% data reusables.two_fa.test_2fa_immediately %} +{% ifversion fpt or ghec %} +## Configuring two-factor authentication using {% data variables.product.prodname_mobile %} + +You can use {% data variables.product.prodname_mobile %} for 2FA when signing into your {% data variables.product.prodname_dotcom %} account in a web browser. 2FA with {% data variables.product.prodname_mobile %} does not rely on TOTP, and instead uses public-key cryptography to secure your account. + +Once you have configured a TOTP application, or SMS, you can also use {% data variables.product.prodname_mobile %} to authenticate. If, in the future, you no longer have access to {% data variables.product.prodname_mobile %}, you will still be able to use security keys or TOTP applications to sign in. + +1. You must have already configured 2FA via a TOTP mobile app or via SMS. +2. Install [{% data variables.product.prodname_mobile %}](https://github.com/mobile). +3. Sign in to your {% data variables.product.product_name %} account from {% data variables.product.prodname_mobile %}. + +After signing in, you can now use your device for 2FA. +{% endif %} + ## 延伸阅读 - "[关于双重身份验证](/articles/about-two-factor-authentication)" diff --git a/translations/zh-CN/content/code-security/code-scanning/automatically-scanning-your-code-for-vulnerabilities-and-errors/troubleshooting-the-codeql-workflow.md b/translations/zh-CN/content/code-security/code-scanning/automatically-scanning-your-code-for-vulnerabilities-and-errors/troubleshooting-the-codeql-workflow.md index bf47853ca9..d88ccb0c8f 100644 --- a/translations/zh-CN/content/code-security/code-scanning/automatically-scanning-your-code-for-vulnerabilities-and-errors/troubleshooting-the-codeql-workflow.md +++ b/translations/zh-CN/content/code-security/code-scanning/automatically-scanning-your-code-for-vulnerabilities-and-errors/troubleshooting-the-codeql-workflow.md @@ -139,13 +139,15 @@ Replace the `autobuild` step with the same build commands you would use in produ For more information, see "[Configuring the {% data variables.product.prodname_codeql %} workflow for compiled languages](/code-security/secure-coding/configuring-the-codeql-workflow-for-compiled-languages#adding-build-steps-for-a-compiled-language)." ### Inspect the copy of the source files in the {% data variables.product.prodname_codeql %} database -You may be able to understand why some source files haven't been analyzed by inspecting the copy of the source code included with the {% data variables.product.prodname_codeql %} database. To obtain the database from your Actions workflow, add an `upload-artifact` action after the analysis step in your code scanning workflow: +You may be able to understand why some source files haven't been analyzed by inspecting the copy of the source code included with the {% data variables.product.prodname_codeql %} database. To obtain the database from your Actions workflow, modify the `init` step of your {% data variables.product.prodname_codeql %} workflow file and set `debug: true`. + ```yaml -- uses: actions/upload-artifact@v2 +- name: Initialize CodeQL + uses: github/codeql-action/init@v1 with: - name: {% raw %}codeql-database-${{ matrix.language }}{% endraw %} - path: {% raw %}${{ runner.temp }}/codeql_databases{% endraw %} + debug: true ``` + This uploads the database as an actions artifact that you can download to your local machine. For more information, see "[Storing workflow artifacts](/actions/guides/storing-workflow-data-as-artifacts)." The artifact will contain an archived copy of the source files scanned by {% data variables.product.prodname_codeql %} called _src.zip_. If you compare the source code files in the repository and the files in _src.zip_, you can see which types of file are missing. Once you know what types of file are not being analyzed, it is easier to understand how you may need to change the workflow for {% data variables.product.prodname_codeql %} analysis. diff --git a/translations/zh-CN/content/code-security/code-scanning/using-codeql-code-scanning-with-your-existing-ci-system/installing-codeql-cli-in-your-ci-system.md b/translations/zh-CN/content/code-security/code-scanning/using-codeql-code-scanning-with-your-existing-ci-system/installing-codeql-cli-in-your-ci-system.md index 8528c045c6..fbd14eae91 100644 --- a/translations/zh-CN/content/code-security/code-scanning/using-codeql-code-scanning-with-your-existing-ci-system/installing-codeql-cli-in-your-ci-system.md +++ b/translations/zh-CN/content/code-security/code-scanning/using-codeql-code-scanning-with-your-existing-ci-system/installing-codeql-cli-in-your-ci-system.md @@ -71,24 +71,24 @@ After you extract the {% data variables.product.prodname_codeql_cli %} bundle, y **Extract from successful output:** ``` -codeql-cpp (//codeql/qlpacks/codeql-cpp) -codeql-cpp-examples (//codeql/qlpacks/codeql-cpp-examples) -codeql-cpp-upgrades (//codeql/qlpacks/codeql-cpp-upgrades) -codeql-csharp (//codeql/qlpacks/codeql-csharp) -codeql-csharp-examples (//codeql/qlpacks/codeql-csharp-examples) -codeql-csharp-upgrades (//codeql/qlpacks/codeql-csharp-upgrades) -codeql-go (//codeql/qlpacks/codeql-go) -codeql-go-examples (//codeql/qlpacks/codeql-go-examples) -codeql-go-upgrades (//codeql/qlpacks/codeql-go-upgrades) -codeql-java (//codeql/qlpacks/codeql-java) -codeql-java-examples (//codeql/qlpacks/codeql-java-examples) -codeql-java-upgrades (//codeql/qlpacks/codeql-java-upgrades) -codeql-javascript (//codeql/qlpacks/codeql-javascript) -codeql-javascript-examples (//codeql/qlpacks/codeql-javascript-examples) -codeql-javascript-upgrades (//codeql/qlpacks/codeql-javascript-upgrades) -codeql-python (//codeql/qlpacks/codeql-python) -codeql-python-examples (//codeql/qlpacks/codeql-python-examples) -codeql-python-upgrades (//codeql/qlpacks/codeql-python-upgrades) +codeql/cpp-all (//qlpacks/codeql/cpp-all/) +codeql/cpp-examples (//qlpacks/codeql/cpp-examples/) +codeql/cpp-queries (//qlpacks/codeql/cpp-queries/) +codeql/csharp-all (//qlpacks/codeql/charp-all/) +codeql/csharp-examples (//qlpacks/codeql/charp-examples/) +codeql/csharp-queries (//qlpacks/codeql/charp-queries/) +codeql/java-all (//qlpacks/codeql/java-all/) +codeql/java-examples (//qlpacks/codeql/java-examples/) +codeql/java-queries (//qlpacks/codeql/java-queries/) +codeql/javascript-all (//qlpacks/codeql/javascript-all/) +codeql/javascript-examples (//qlpacks/codeql/javascript-examples/) +codeql/javascript-queries (//qlpacks/codeql/javascript-queries/) +codeql/python-all (//qlpacks/codeql/python-all/) +codeql/python-examples (//qlpacks/codeql/python-examples/) +codeql/python-queries (//qlpacks/codeql/python-queries/) +codeql/ruby-all (//qlpacks/codeql/ruby-all/) +codeql/ruby-examples (//qlpacks/codeql/ruby-examples/) +codeql/ruby-queries (//qlpacks/codeql/ruby-queries/) ... ``` diff --git a/translations/zh-CN/content/code-security/guides.md b/translations/zh-CN/content/code-security/guides.md index 8570a9dcd2..f1a64f16af 100644 --- a/translations/zh-CN/content/code-security/guides.md +++ b/translations/zh-CN/content/code-security/guides.md @@ -23,27 +23,29 @@ includeGuides: - /code-security/getting-started/github-security-features - /code-security/getting-started/securing-your-organization - /code-security/getting-started/securing-your-repository - - /code-security/secret-security/about-secret-scanning - - /code-security/secret-security/configuring-secret-scanning-for-your-repositories - - /code-security/secret-security/managing-alerts-from-secret-scanning - - /code-security/code-scanning//automatically-scanning-your-code-for-vulnerabilities-and-errors/tracking-code-scanning-alerts-in-issues-using-task-lists - - /code-security/secure-coding/automatically-scanning-your-code-for-vulnerabilities-and-errors/about-code-scanning - - /code-security/secure-coding/automatically-scanning-your-code-for-vulnerabilities-and-errors/configuring-code-scanning - - /code-security/secure-coding/automatically-scanning-your-code-for-vulnerabilities-and-errors/configuring-the-codeql-workflow-for-compiled-languages - - /code-security/secure-coding/automatically-scanning-your-code-for-vulnerabilities-and-errors/managing-code-scanning-alerts-for-your-repository - - /code-security/secure-coding/automatically-scanning-your-code-for-vulnerabilities-and-errors/running-codeql-code-scanning-in-a-container - - /code-security/secure-coding/automatically-scanning-your-code-for-vulnerabilities-and-errors/setting-up-code-scanning-for-a-repository - - /code-security/secure-coding/automatically-scanning-your-code-for-vulnerabilities-and-errors/triaging-code-scanning-alerts-in-pull-requests - - /code-security/secure-coding/automatically-scanning-your-code-for-vulnerabilities-and-errors/troubleshooting-the-codeql-workflow - - /code-security/secure-coding/integrating-with-code-scanning/about-integration-with-code-scanning - - /code-security/secure-coding/integrating-with-code-scanning/sarif-support-for-code-scanning - - /code-security/secure-coding/integrating-with-code-scanning/uploading-a-sarif-file-to-github - - /code-security/secure-coding/using-codeql-code-scanning-with-your-existing-ci-system/about-codeql-code-scanning-in-your-ci-system - - /code-security/secure-coding/using-codeql-code-scanning-with-your-existing-ci-system/configuring-codeql-cli-in-your-ci-system - - /code-security/secure-coding/using-codeql-code-scanning-with-your-existing-ci-system/configuring-codeql-runner-in-your-ci-system - - /code-security/secure-coding/using-codeql-code-scanning-with-your-existing-ci-system/installing-codeql-cli-in-your-ci-system - - /code-security/secure-coding/using-codeql-code-scanning-with-your-existing-ci-system/running-codeql-runner-in-your-ci-system - - /code-security/secure-coding/using-codeql-code-scanning-with-your-existing-ci-system/troubleshooting-codeql-runner-in-your-ci-system + - /code-security/secret-scanning/about-secret-scanning + - /code-security/secret-scanning/configuring-secret-scanning-for-your-repositories + - /code-security/secret-scanning/defining-custom-patterns-for-secret-scanning + - /code-security/secret-scanning/managing-alerts-from-secret-scanning + - /code-security/secret-scanning/secret-scanning-partners + - /code-security/code-scanning/automatically-scanning-your-code-for-vulnerabilities-and-errors/tracking-code-scanning-alerts-in-issues-using-task-lists + - /code-security/code-scanning/automatically-scanning-your-code-for-vulnerabilities-and-errors/about-code-scanning + - /code-security/code-scanning/automatically-scanning-your-code-for-vulnerabilities-and-errors/configuring-code-scanning + - /code-security/code-scanning/automatically-scanning-your-code-for-vulnerabilities-and-errors/configuring-the-codeql-workflow-for-compiled-languages + - /code-security/code-scanning/automatically-scanning-your-code-for-vulnerabilities-and-errors/managing-code-scanning-alerts-for-your-repository + - /code-security/code-scanning/automatically-scanning-your-code-for-vulnerabilities-and-errors/running-codeql-code-scanning-in-a-container + - /code-security/code-scanning/automatically-scanning-your-code-for-vulnerabilities-and-errors/setting-up-code-scanning-for-a-repository + - /code-security/code-scanning/automatically-scanning-your-code-for-vulnerabilities-and-errors/triaging-code-scanning-alerts-in-pull-requests + - /code-security/code-scanning/automatically-scanning-your-code-for-vulnerabilities-and-errors/troubleshooting-the-codeql-workflow + - /code-security/code-scanning/integrating-with-code-scanning/about-integration-with-code-scanning + - /code-security/code-scanning/integrating-with-code-scanning/sarif-support-for-code-scanning + - /code-security/code-scanning/integrating-with-code-scanning/uploading-a-sarif-file-to-github + - /code-security/code-scanning/using-codeql-code-scanning-with-your-existing-ci-system/about-codeql-code-scanning-in-your-ci-system + - /code-security/code-scanning/using-codeql-code-scanning-with-your-existing-ci-system/configuring-codeql-cli-in-your-ci-system + - /code-security/code-scanning/using-codeql-code-scanning-with-your-existing-ci-system/configuring-codeql-runner-in-your-ci-system + - /code-security/code-scanning/using-codeql-code-scanning-with-your-existing-ci-system/installing-codeql-cli-in-your-ci-system + - /code-security/code-scanning/using-codeql-code-scanning-with-your-existing-ci-system/running-codeql-runner-in-your-ci-system + - /code-security/code-scanning/using-codeql-code-scanning-with-your-existing-ci-system/troubleshooting-codeql-runner-in-your-ci-system - /code-security/security-advisories/about-coordinated-disclosure-of-security-vulnerabilities - /code-security/security-advisories/about-github-security-advisories - /code-security/security-advisories/adding-a-collaborator-to-a-security-advisory diff --git a/translations/zh-CN/content/code-security/secret-scanning/about-secret-scanning.md b/translations/zh-CN/content/code-security/secret-scanning/about-secret-scanning.md index 445c0f3fab..96af1ff1aa 100644 --- a/translations/zh-CN/content/code-security/secret-scanning/about-secret-scanning.md +++ b/translations/zh-CN/content/code-security/secret-scanning/about-secret-scanning.md @@ -2,7 +2,6 @@ title: About secret scanning intro: '{% data variables.product.product_name %} scans repositories for known types of secrets, to prevent fraudulent use of secrets that were committed accidentally.' product: '{% data reusables.gated-features.secret-scanning %}' -miniTocMaxHeadingLevel: 3 redirect_from: - /github/administering-a-repository/about-token-scanning - /articles/about-token-scanning @@ -23,75 +22,78 @@ topics: {% data reusables.secret-scanning.beta %} {% data reusables.secret-scanning.enterprise-enable-secret-scanning %} +## About {% data variables.product.prodname_secret_scanning %} + If your project communicates with an external service, you might use a token or private key for authentication. Tokens and private keys are examples of secrets that a service provider can issue. If you check a secret into a repository, anyone who has read access to the repository can use the secret to access the external service with your privileges. We recommend that you store secrets in a dedicated, secure location outside of the repository for your project. -{% data variables.product.prodname_secret_scanning_caps %} will scan your entire Git history on all branches present in your {% data variables.product.prodname_dotcom %} repository for any secrets. Service providers can partner with {% data variables.product.company_short %} to provide their secret formats for scanning.{% ifversion fpt or ghec %} For more information, see "[Secret scanning partner program](/developers/overview/secret-scanning-partner-program)." -{% endif %} +{% data variables.product.prodname_secret_scanning_caps %} will scan your entire Git history on all branches present in your {% data variables.product.prodname_dotcom %} repository for any secrets. Service providers can partner with {% data variables.product.company_short %} to provide their secret formats for scanning. For details of the supported secrets and service providers, see "[{% data variables.product.prodname_secret_scanning_caps %} partners](/code-security/secret-scanning/secret-scanning-partners)." -{% data reusables.secret-scanning.about-secret-scanning %} +{% data reusables.secret-scanning.partner-program-link %} {% ifversion fpt or ghec %} ## About {% data variables.product.prodname_secret_scanning %} for public repositories -{% data variables.product.prodname_secret_scanning_caps %} is automatically enabled on public repositories. When you push to a public repository, {% data variables.product.product_name %} scans the content of the commits for secrets. If you switch a private repository to public, {% data variables.product.product_name %} scans the entire repository for secrets. +{% data variables.product.prodname_secret_scanning_caps %} is automatically enabled on public repositories. When you push to a public repository, {% data variables.product.product_name %} scans the content of the commits for secrets. -When {% data variables.product.prodname_secret_scanning %} detects a set of credentials, we notify the service provider who issued the secret. The service provider validates the credential and then decides whether they should revoke the secret, issue a new secret, or reach out to you directly, which will depend on the associated risks to you or the service provider. For an overview of how we work with token-issuing partners, see "[Secret scanning partner program](/developers/overview/secret-scanning-partner-program)." +When {% data variables.product.prodname_secret_scanning %} detects a potential secret, we notify the service provider who issued the secret. The service provider validates the string and then decides whether they should revoke the secret, issue a new secret, or contact you directly. Their action will depend on the associated risks to you or them. -### List of supported secrets for public repositories +You cannot change the configuration of {% data variables.product.prodname_secret_scanning %} on public repositories. -{% data variables.product.product_name %} currently scans public repositories for secrets issued by the following service providers. - -{% data reusables.secret-scanning.partner-secret-list-public-repo %} - -## About {% data variables.product.prodname_secret_scanning %} for private repositories +{% ifversion fpt %} +Organizations using {% data variables.product.prodname_ghe_cloud %} with {% data variables.product.prodname_GH_advanced_security %} can configure {% data variables.product.prodname_secret_scanning %} to run on private repositories. For more information, see the [{% data variables.product.prodname_ghe_cloud %} documentation](/enterprise-cloud@latest/code-security/secret-security/about-secret-scanning). {% endif %} -{% ifversion ghes or ghae %} +{% endif %} + +{% ifversion not fpt %} + +{% ifversion ghec %} +## About {% data variables.product.prodname_secret_scanning %} for private repositories +{% elsif ghes or ghae %} ## About {% data variables.product.prodname_secret_scanning %} on {% data variables.product.product_name %} {% data variables.product.prodname_secret_scanning_caps %} is available on all organization-owned repositories as part of {% data variables.product.prodname_GH_advanced_security %}. It is not available on user-owned repositories. {% endif %} -If you're a repository administrator or an organization owner, you can enable {% data variables.product.prodname_secret_scanning %} for {% ifversion fpt or ghec %} private{% endif %} repositories that are owned by organizations. You can enable {% data variables.product.prodname_secret_scanning %} for all your repositories, or for all new repositories within your organization.{% ifversion fpt or ghec %} {% data variables.product.prodname_secret_scanning_caps %} is not available for user-owned private repositories.{% endif %} For more information, see "[Managing security and analysis settings for your repository](/github/administering-a-repository/managing-security-and-analysis-settings-for-your-repository)" and "[Managing security and analysis settings for your organization](/organizations/keeping-your-organization-secure/managing-security-and-analysis-settings-for-your-organization)." +If you're a repository administrator or an organization owner, you can enable {% data variables.product.prodname_secret_scanning %} for {% ifversion ghec %} private{% endif %} repositories that are owned by organizations. You can enable {% data variables.product.prodname_secret_scanning %} for all your organization's repositories, or for all new repositories within your organization.{% ifversion ghec %} {% data variables.product.prodname_secret_scanning_caps %} is not available for private repositories owned by user accounts.{% endif %} For more information, see "[Managing security and analysis settings for your repository](/github/administering-a-repository/managing-security-and-analysis-settings-for-your-repository)" and "[Managing security and analysis settings for your organization](/organizations/keeping-your-organization-secure/managing-security-and-analysis-settings-for-your-organization)." -{% ifversion fpt or ghes > 3.1 or ghae or ghec %}You can also define custom {% data variables.product.prodname_secret_scanning %} patterns that only apply to your repository or organization. For more information, see "[Defining custom patterns for {% data variables.product.prodname_secret_scanning %}](/code-security/secret-security/defining-custom-patterns-for-secret-scanning)."{% endif %} +{% ifversion ghes > 3.1 or ghae or ghec %}You can also define custom {% data variables.product.prodname_secret_scanning %} patterns for a repository, organization, or enterprise. For more information, see "[Defining custom patterns for {% data variables.product.prodname_secret_scanning %}](/code-security/secret-security/defining-custom-patterns-for-secret-scanning)." +{% elsif ghes < 3.2 %} +Versions 3.1 and lower of {% data variables.product.product_name %} do not allow you to define your own patterns for detecting secrets. +{% endif %} -When you push commits to a{% ifversion fpt or ghec %} private{% endif %} repository with {% data variables.product.prodname_secret_scanning %} enabled, {% data variables.product.prodname_dotcom %} scans the contents of the commits for secrets. +### About {% data variables.product.prodname_secret_scanning %} alerts -When {% data variables.product.prodname_secret_scanning %} detects a secret in a{% ifversion fpt or ghec %} private{% endif %} repository, {% data variables.product.prodname_dotcom %} generates an alert. +When you push commits to a{% ifversion ghec %} private{% endif %} repository with {% data variables.product.prodname_secret_scanning %} enabled, {% data variables.product.prodname_dotcom %} scans the contents of the commits for secrets. + +When {% data variables.product.prodname_secret_scanning %} detects a secret in a{% ifversion ghec %} private{% endif %} repository, {% data variables.product.prodname_dotcom %} generates an alert. - {% data variables.product.prodname_dotcom %} sends an email alert to the repository administrators and organization owners. -{% ifversion fpt or ghes > 3.0 or ghae or ghec %} +{% ifversion ghes > 3.0 or ghae or ghec %} - {% data variables.product.prodname_dotcom %} sends an email alert to the contributor who committed the secret to the repository, with a link to the related {% data variables.product.prodname_secret_scanning %} alert. The commit author can then view the alert in the repository, and resolve the alert. {% endif %} - {% data variables.product.prodname_dotcom %} displays an alert in the repository.{% ifversion ghes = 3.0 %} For more information, see "[Managing alerts from {% data variables.product.prodname_secret_scanning %}](/github/administering-a-repository/managing-alerts-from-secret-scanning)."{% endif %} -{% ifversion fpt or ghes > 3.0 or ghae or ghec %} +{% ifversion ghes > 3.0 or ghae or ghec %} For more information about viewing and resolving {% data variables.product.prodname_secret_scanning %} alerts, see "[Managing alerts from {% data variables.product.prodname_secret_scanning %}](/github/administering-a-repository/managing-alerts-from-secret-scanning)."{% endif %} Repository administrators and organization owners can grant users and teams access to {% data variables.product.prodname_secret_scanning %} alerts. For more information, see "[Managing security and analysis settings for your repository](/github/administering-a-repository/managing-security-and-analysis-settings-for-your-repository#granting-access-to-security-alerts)." -{% ifversion fpt or ghes > 3.0 or ghec %} -To monitor results from {% data variables.product.prodname_secret_scanning %} across your {% ifversion fpt or ghec %}private {% endif %}repositories{% ifversion ghes > 3.1 %} or your organization{% endif %}, you can use the {% data variables.product.prodname_secret_scanning %} API. For more information about API endpoints, see "[{% data variables.product.prodname_secret_scanning_caps %}](/rest/reference/secret-scanning)."{% endif %} - -{% ifversion ghes or ghae %} -## List of supported secrets{% else %} -### List of supported secrets for private repositories +{% ifversion ghec or ghes > 3.1 %} +You can use the security overview to see an organization-level view of which repositories have enabled {% data variables.product.prodname_secret_scanning %} and the alerts found. For more information, see "[Viewing the security overview](/code-security/security-overview/viewing-the-security-overview)." {% endif %} -{% data variables.product.prodname_dotcom %} currently scans{% ifversion fpt or ghec %} private{% endif %} repositories for secrets issued by the following service providers. +{%- ifversion ghec or ghes > 3.1 %}You can also use the REST API to {% elsif ghes = 3.1 %}You can use the REST API to {% endif %} +{%- ifversion ghec or ghes > 3.0 %}monitor results from {% data variables.product.prodname_secret_scanning %} across your {% ifversion ghec %}private {% endif %}repositories{% ifversion ghes > 3.1 %} or your organization{% endif %}. For more information about API endpoints, see "[{% data variables.product.prodname_secret_scanning_caps %}](/rest/reference/secret-scanning)."{% endif %} -{% data reusables.secret-scanning.partner-secret-list-private-repo %} - -{% ifversion ghes < 3.2 or ghae %} -{% note %} - -**Note:** {% data variables.product.prodname_secret_scanning_caps %} does not currently allow you to define your own patterns for detecting secrets. - -{% endnote %} {% endif %} ## Further reading - "[Securing your repository](/code-security/getting-started/securing-your-repository)" - "[Keeping your account and data secure](/github/authenticating-to-github/keeping-your-account-and-data-secure)" +{%- ifversion fpt or ghec %} +- "[Managing encrypted secrets for your codespaces](/codespaces/managing-your-codespaces/managing-encrypted-secrets-for-your-codespaces)"{% endif %} +{%- ifversion fpt or ghec or ghes > 3.2 %} +- "[Managing encrypted secrets for Dependabot](/code-security/supply-chain-security/keeping-your-dependencies-updated-automatically/managing-encrypted-secrets-for-dependabot)"{% endif %} +- "[Encrypted secrets](/actions/security-guides/encrypted-secrets)" diff --git a/translations/zh-CN/content/code-security/secret-scanning/configuring-secret-scanning-for-your-repositories.md b/translations/zh-CN/content/code-security/secret-scanning/configuring-secret-scanning-for-your-repositories.md index 3ae19dfdbe..60461bb8bf 100644 --- a/translations/zh-CN/content/code-security/secret-scanning/configuring-secret-scanning-for-your-repositories.md +++ b/translations/zh-CN/content/code-security/secret-scanning/configuring-secret-scanning-for-your-repositories.md @@ -8,7 +8,6 @@ redirect_from: - /code-security/secret-security/configuring-secret-scanning-for-your-repositories product: '{% data reusables.gated-features.secret-scanning %}' versions: - fpt: '*' ghes: '*' ghae: '*' ghec: '*' diff --git a/translations/zh-CN/content/code-security/secret-scanning/defining-custom-patterns-for-secret-scanning.md b/translations/zh-CN/content/code-security/secret-scanning/defining-custom-patterns-for-secret-scanning.md index 7ef55ec4a7..947533b214 100644 --- a/translations/zh-CN/content/code-security/secret-scanning/defining-custom-patterns-for-secret-scanning.md +++ b/translations/zh-CN/content/code-security/secret-scanning/defining-custom-patterns-for-secret-scanning.md @@ -6,12 +6,13 @@ product: '{% data reusables.gated-features.secret-scanning %}' redirect_from: - /code-security/secret-security/defining-custom-patterns-for-secret-scanning versions: - fpt: '*' ghes: '>=3.2' ghae: '*' ghec: '*' +type: how_to topics: - - Repositories + - Advanced Security + - Secret scanning --- {% ifversion ghes < 3.3 or ghae %} @@ -24,7 +25,7 @@ topics: ## About custom patterns for {% data variables.product.prodname_secret_scanning %} -{% data variables.product.company_short %} performs {% data variables.product.prodname_secret_scanning %} on {% ifversion fpt or ghec %}public and private{% endif %} repositories for secret patterns provided by {% data variables.product.company_short %} and {% data variables.product.company_short %} partners. For more information on the {% data variables.product.prodname_secret_scanning %} partner program, see "
Secret scanning partner program." +{% data variables.product.company_short %} performs {% data variables.product.prodname_secret_scanning %} on {% ifversion fpt or ghec %}public and private{% endif %} repositories for secret patterns provided by {% data variables.product.company_short %} and {% data variables.product.company_short %} partners. {% data reusables.secret-scanning.partner-program-link %} For details of the supported secrets and service providers, see "[{% data variables.product.prodname_secret_scanning_caps %} partners](/code-security/secret-scanning/secret-scanning-partners)." However, there can be situations where you want to scan for other secret patterns in your {% ifversion fpt or ghec %}private{% endif %} repositories. For example, you might have a secret pattern that is internal to your organization. For these situations, you can define custom {% data variables.product.prodname_secret_scanning %} patterns in your enterprise, organization, or {% ifversion fpt or ghec %}private{% endif %} repository on {% data variables.product.product_name %}. You can define up to {%- ifversion fpt or ghec or ghes > 3.3 %} 500 custom patterns for each organization or enterprise account, and up to 100 custom patterns per {% ifversion fpt or ghec %}private{% endif %} repository. @@ -46,7 +47,16 @@ However, there can be situations where you want to scan for other secret pattern ## Regular expression syntax for custom patterns -Custom patterns for {% data variables.product.prodname_secret_scanning %} are specified as regular expressions. {% data variables.product.prodname_secret_scanning_caps %} uses the [Hyperscan library](https://github.com/intel/hyperscan) and only supports Hyperscan regex constructs, which are a subset of PCRE syntax. Hyperscan option modifiers are not supported. For more information on Hyperscan pattern constructs, see "[Pattern support](http://intel.github.io/hyperscan/dev-reference/compilation.html#pattern-support)" in the Hyperscan documentation. +Custom patterns for {% data variables.product.prodname_secret_scanning %} are specified as one or more regular expressions. + +- **Secret format:** an expression that describes the format of the secret itself. +- **Before secret:** an expression that describes the characters that come before the secret. By default, this is set to `\A|[^0-9A-Za-z]` which means that the secret must be at the start of a line or be preceded by a non-alphanumeric character. +- **After secret:** an expression that describes the characters that come after the secret. By default, this is set to `\z|[^0-9A-Za-z]` which means that the secret must be followed by a new line or a non-alphanumeric character. +- **Additional match requirements:** one or more optional expressions that the secret itself must or must not match. + +For simple tokens you will usually only need to specify a secret format. The other fields provide flexibility so that you can specify more complex secrets without creating complex regular expressions. For an example of a custom pattern, see "[Example of a custom pattern specified using additional requirements](#example-of-a-custom-pattern-specified-using-additional-requirements)" below. + +{% data variables.product.prodname_secret_scanning_caps %} uses the [Hyperscan library](https://github.com/intel/hyperscan) and only supports Hyperscan regex constructs, which are a subset of PCRE syntax. Hyperscan option modifiers are not supported. For more information on Hyperscan pattern constructs, see "[Pattern support](http://intel.github.io/hyperscan/dev-reference/compilation.html#pattern-support)" in the Hyperscan documentation. ## Defining a custom pattern for a repository @@ -61,6 +71,35 @@ Before defining a custom pattern, you must ensure that {% data variables.product After your pattern is created, {% data reusables.secret-scanning.secret-scanning-process %} For more information on viewing {% data variables.product.prodname_secret_scanning %} alerts, see "[Managing alerts from {% data variables.product.prodname_secret_scanning %}](/code-security/secret-security/managing-alerts-from-secret-scanning)." +### Example of a custom pattern specified using additional requirements + +A company has an internal token with five characteristics. They use the different fields to specify how to identify tokens as follows: + +| **Characteristic** | **Field and regular expression** | +|----------------|------------------------------| +| Length between 5 and 10 characters | Secret format: `[$#%@AA-Za-z0-9]{5,10}` | +| Does not end in a `.` | After secret: `[^\.]` | +| Contains numbers and uppercase letters | Additional requirements: secret must match `[A-Z]` and `[0-9]` | +| Does not include more than one lowercase letter in a row | Additional requirements: secret must not match `[a-z]{2,}` | +| Contains one of `$%@!` | Additional requirements: secret must match `[$%@!]` | + +These tokens would match the custom pattern described above: + +``` +a9@AAfT! # Secret string match: a9@AAfT +ee95GG@ZA942@aa # Secret string match: @ZA942@a +a9@AA!ee9 # Secret string match: a9@AA +``` + +These strings would not match the custom pattern described above: + +``` +a9@AA.! +a@AAAAA +aa9@AA!ee9 +aAAAe9 +``` + ## Defining a custom pattern for an organization Before defining a custom pattern, you must ensure that you enable {% data variables.product.prodname_secret_scanning %} for the {% ifversion fpt or ghec %}private{% endif %} repositories that you want to scan in your organization. To enable {% data variables.product.prodname_secret_scanning %} on all {% ifversion fpt or ghec %}private{% endif %} repositories in your organization, see "[Managing security and analysis settings for your organization](/organizations/keeping-your-organization-secure/managing-security-and-analysis-settings-for-your-organization)." diff --git a/translations/zh-CN/content/code-security/secret-scanning/index.md b/translations/zh-CN/content/code-security/secret-scanning/index.md index 0578277de8..0d5a0faa91 100644 --- a/translations/zh-CN/content/code-security/secret-scanning/index.md +++ b/translations/zh-CN/content/code-security/secret-scanning/index.md @@ -19,5 +19,6 @@ children: - /configuring-secret-scanning-for-your-repositories - /defining-custom-patterns-for-secret-scanning - /managing-alerts-from-secret-scanning + - /secret-scanning-partners --- diff --git a/translations/zh-CN/content/code-security/secret-scanning/managing-alerts-from-secret-scanning.md b/translations/zh-CN/content/code-security/secret-scanning/managing-alerts-from-secret-scanning.md index 0ed154db46..0061ea369a 100644 --- a/translations/zh-CN/content/code-security/secret-scanning/managing-alerts-from-secret-scanning.md +++ b/translations/zh-CN/content/code-security/secret-scanning/managing-alerts-from-secret-scanning.md @@ -6,7 +6,6 @@ redirect_from: - /github/administering-a-repository/managing-alerts-from-secret-scanning - /code-security/secret-security/managing-alerts-from-secret-scanning versions: - fpt: '*' ghes: '*' ghae: '*' ghec: '*' diff --git a/translations/zh-CN/content/code-security/secret-scanning/secret-scanning-partners.md b/translations/zh-CN/content/code-security/secret-scanning/secret-scanning-partners.md new file mode 100644 index 0000000000..865808e0cb --- /dev/null +++ b/translations/zh-CN/content/code-security/secret-scanning/secret-scanning-partners.md @@ -0,0 +1,55 @@ +--- +title: Secret scanning partners +intro: 'Lists of supported secrets and the partners that {% data variables.product.company_short %} works with to prevent fraudulent use of secrets that were committed accidentally.' +product: '{% data reusables.gated-features.secret-scanning %}' +versions: + fpt: '*' + ghes: '*' + ghae: '*' + ghec: '*' +type: reference +topics: + - Secret scanning + - Advanced Security +--- + +{% data reusables.secret-scanning.beta %} +{% data reusables.secret-scanning.enterprise-enable-secret-scanning %} + +{% ifversion fpt or ghec %} +## List of supported secrets for public repositories + +{% data variables.product.product_name %} 当前会扫描公共仓库,查找以下服务提供商发布的密码。 + +{% data reusables.secret-scanning.partner-secret-list-public-repo %} +{% endif %} + +{% ifversion fpt %} +Organizations using {% data variables.product.prodname_ghe_cloud %} with {% data variables.product.prodname_GH_advanced_security %} can run {% data variables.product.prodname_secret_scanning %} on private repositories. For more information, see the [{% data variables.product.prodname_ghe_cloud %} documentation](/enterprise-cloud@latest/code-security/secret-scanning/secret-scanning-partners). +{% endif %} + +{% ifversion ghec or ghae or ghes %} +## List of supported secrets {% ifversion ghec %}for private repositories{% endif %} + +{% ifversion ghes > 3.1 or ghae or ghec %} +{% note %} + +**Note:** You can also define custom {% data variables.product.prodname_secret_scanning %} patterns that only apply to your repository or organization. For more information, see "[Defining custom patterns for {% data variables.product.prodname_secret_scanning %}](/code-security/secret-security/defining-custom-patterns-for-secret-scanning)." + +{% endnote %} +{% endif %} + +{% data variables.product.prodname_dotcom %} 目前扫描{% ifversion ghec %}私有{% endif %}仓库,以检查由以下服务提供者颁发的密码。 + +{% data reusables.secret-scanning.partner-secret-list-private-repo %} +{% endif %} + +## 延伸阅读 + +- "[保护您的仓库](/code-security/getting-started/securing-your-repository)" +- "[保护帐户和数据安全](/github/authenticating-to-github/keeping-your-account-and-data-secure)" +{%- ifversion fpt or ghec %} +- "[{% data variables.product.prodname_secret_scanning_caps %} partner program](/developers/overview/secret-scanning-partner-program)" +{%- else %} +- "[{% data variables.product.prodname_secret_scanning_caps %} partner program](/free-pro-team@latest/developers/overview/secret-scanning-partner-program)" in the {% data variables.product.prodname_ghe_cloud %} documentation +{% endif %} diff --git a/translations/zh-CN/content/code-security/security-overview/filtering-alerts-in-the-security-overview.md b/translations/zh-CN/content/code-security/security-overview/filtering-alerts-in-the-security-overview.md index 5e50b87848..9ab4dc774c 100644 --- a/translations/zh-CN/content/code-security/security-overview/filtering-alerts-in-the-security-overview.md +++ b/translations/zh-CN/content/code-security/security-overview/filtering-alerts-in-the-security-overview.md @@ -121,15 +121,16 @@ Available in the code scanning alert views. All code scanning alerts have one of Available in the secret scanning alert views. -| 限定符 | 描述 | -| ------------------------------ | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| `secret-type:SERVICE_PROVIDER` | Displays alerts for the specified secret and provider. For more information, see "[List of supported secrets for private repositories](/code-security/secret-scanning/about-secret-scanning#list-of-supported-secrets-for-private-repositories) | -| `secret-type:CUSTOM-PATTERN` | Displays alerts for secrets matching the specified custom pattern. For more information, see "[Defining custom patterns for secret scanning](/code-security/secret-scanning/defining-custom-patterns-for-secret-scanning)." | +| 限定符 | 描述 | +| ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | +| `secret-type:SERVICE_PROVIDER` | Displays alerts for the specified secret and provider. For more information, see "[{% data variables.product.prodname_secret_scanning_caps %} partners](/code-security/secret-scanning/secret-scanning-partners) | +| `secret-type:CUSTOM-PATTERN` | Displays alerts for secrets matching the specified custom pattern. | +| {% ifversion not fpt %}For more information, see "[Defining custom patterns for secret scanning](/code-security/secret-scanning/defining-custom-patterns-for-secret-scanning)."{% endif %} | | ## Filter by provider Available in the secret scanning alert views. -| 限定符 | 描述 | -| ------------------------ | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| `provider:PROVIDER_NAME` | Displays alerts for all secrets issues by the specified provider. For more information, see "[List of supported secrets for private repositories](/code-security/secret-scanning/about-secret-scanning#list-of-supported-secrets-for-private-repositories) | +| 限定符 | 描述 | +| ------------------------ | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `provider:PROVIDER_NAME` | Displays alerts for all secrets issues by the specified provider. For more information, see "[{% data variables.product.prodname_secret_scanning_caps %} partners](/code-security/secret-scanning/secret-scanning-partners) | diff --git a/translations/zh-CN/content/code-security/supply-chain-security/managing-vulnerabilities-in-your-projects-dependencies/about-alerts-for-vulnerable-dependencies.md b/translations/zh-CN/content/code-security/supply-chain-security/managing-vulnerabilities-in-your-projects-dependencies/about-alerts-for-vulnerable-dependencies.md index 367a0af3e7..8b835ed644 100644 --- a/translations/zh-CN/content/code-security/supply-chain-security/managing-vulnerabilities-in-your-projects-dependencies/about-alerts-for-vulnerable-dependencies.md +++ b/translations/zh-CN/content/code-security/supply-chain-security/managing-vulnerabilities-in-your-projects-dependencies/about-alerts-for-vulnerable-dependencies.md @@ -64,7 +64,7 @@ You can also enable or disable {% data variables.product.prodname_dependabot_ale For information about access requirements for actions related to {% data variables.product.prodname_dependabot_alerts %}, see "[Repository roles for an organization](/organizations/managing-access-to-your-organizations-repositories/repository-roles-for-an-organization#access-requirements-for-security-features)." -{% data variables.product.product_name %} starts generating the dependency graph immediately and generates alerts for any vulnerable dependencies as soon as they are identified. The graph is usually populated within minutes but this may take longer for repositories with many dependencies. For more information, see "[Managing data use settings for your private repository](/github/understanding-how-github-uses-and-protects-your-data/managing-data-use-settings-for-your-private-repository)." +{% data variables.product.product_name %} starts generating the dependency graph immediately and generates alerts for any vulnerable dependencies as soon as they are identified. The graph is usually populated within minutes but this may take longer for repositories with many dependencies. For more information, see "[Managing data use settings for your private repository](/get-started/privacy-on-github/managing-data-use-settings-for-your-private-repository)." {% endif %} When {% data variables.product.product_name %} identifies a vulnerable dependency, we generate a {% data variables.product.prodname_dependabot %} alert and display it {% ifversion fpt or ghec or ghes > 3.0 %} on the Security tab for the repository and{% endif %} in the repository's dependency graph. The alert includes {% ifversion fpt or ghec or ghes > 3.0 %}a link to the affected file in the project, and {% endif %}information about a fixed version. {% data variables.product.product_name %} may also notify the maintainers of affected repositories about the new alert according to their notification preferences. For more information, see "[Configuring notifications for vulnerable dependencies](/code-security/supply-chain-security/configuring-notifications-for-vulnerable-dependencies)." @@ -96,4 +96,4 @@ You can also see all the {% data variables.product.prodname_dependabot_alerts %} - "[About {% data variables.product.prodname_dependabot_security_updates %}](/github/managing-security-vulnerabilities/about-dependabot-security-updates)" - "[Viewing and updating vulnerable dependencies in your repository](/articles/viewing-and-updating-vulnerable-dependencies-in-your-repository)"{% endif %} -{% ifversion fpt or ghec %}- "[Understanding how {% data variables.product.prodname_dotcom %} uses and protects your data](/categories/understanding-how-github-uses-and-protects-your-data)"{% endif %} +{% ifversion fpt or ghec %}- "[Privacy on {% data variables.product.prodname_dotcom %}](/get-started/privacy-on-github)"{% endif %} diff --git a/translations/zh-CN/content/code-security/supply-chain-security/managing-vulnerabilities-in-your-projects-dependencies/configuring-dependabot-security-updates.md b/translations/zh-CN/content/code-security/supply-chain-security/managing-vulnerabilities-in-your-projects-dependencies/configuring-dependabot-security-updates.md index ab19259e3d..4da8b0f52d 100644 --- a/translations/zh-CN/content/code-security/supply-chain-security/managing-vulnerabilities-in-your-projects-dependencies/configuring-dependabot-security-updates.md +++ b/translations/zh-CN/content/code-security/supply-chain-security/managing-vulnerabilities-in-your-projects-dependencies/configuring-dependabot-security-updates.md @@ -49,7 +49,7 @@ You can disable {% data variables.product.prodname_dependabot_security_updates % | ----------------- | ----------------------- | | Repository is not a fork | "[About forks](/github/collaborating-with-issues-and-pull-requests/about-forks)" | | Repository is not archived | "[Archiving repositories](/github/creating-cloning-and-archiving-repositories/archiving-repositories)" |{% ifversion fpt or ghec %} -| Repository is public, or repository is private and you have enabled read-only analysis by {% data variables.product.prodname_dotcom %}, dependency graph, and vulnerability alerts in the repository's settings | "[Managing data use settings for your private repository](/github/understanding-how-github-uses-and-protects-your-data/managing-data-use-settings-for-your-private-repository)." |{% endif %} +| Repository is public, or repository is private and you have enabled read-only analysis by {% data variables.product.prodname_dotcom %}, dependency graph, and vulnerability alerts in the repository's settings | "[Managing data use settings for your private repository](/get-started/privacy-on-github/managing-data-use-settings-for-your-private-repository)." |{% endif %} | Repository contains dependency manifest file from a package ecosystem that {% data variables.product.prodname_dotcom %} supports | "[Supported package ecosystems](/github/visualizing-repository-data-with-graphs/about-the-dependency-graph#supported-package-ecosystems)" | | {% data variables.product.prodname_dependabot_security_updates %} are not disabled for the repository | "[Managing {% data variables.product.prodname_dependabot_security_updates %} for your repository](#managing-dependabot-security-updates-for-your-repositories)" | @@ -75,5 +75,5 @@ You can also enable or disable {% data variables.product.prodname_dependabot_sec ## Further reading - "[About alerts for vulnerable dependencies](/code-security/supply-chain-security/about-alerts-for-vulnerable-dependencies)"{% ifversion fpt or ghec %} -- "[Managing data use settings for your private repository](/github/understanding-how-github-uses-and-protects-your-data/managing-data-use-settings-for-your-private-repository)"{% endif %} +- "[Managing data use settings for your private repository](/get-started/privacy-on-github/managing-data-use-settings-for-your-private-repository)"{% endif %} - "[Supported package ecosystems](/github/visualizing-repository-data-with-graphs/about-the-dependency-graph#supported-package-ecosystems)" diff --git a/translations/zh-CN/content/code-security/supply-chain-security/understanding-your-software-supply-chain/exploring-the-dependencies-of-a-repository.md b/translations/zh-CN/content/code-security/supply-chain-security/understanding-your-software-supply-chain/exploring-the-dependencies-of-a-repository.md index 52f0504f59..d03e346f6f 100644 --- a/translations/zh-CN/content/code-security/supply-chain-security/understanding-your-software-supply-chain/exploring-the-dependencies-of-a-repository.md +++ b/translations/zh-CN/content/code-security/supply-chain-security/understanding-your-software-supply-chain/exploring-the-dependencies-of-a-repository.md @@ -114,5 +114,5 @@ Enterprise owners can configure the dependency graph at an enterprise level. For - “[关于依赖关系图](/github/visualizing-repository-data-with-graphs/about-the-dependency-graph)” - "[查看和更新仓库中的漏洞依赖项](/github/managing-security-vulnerabilities/viewing-and-updating-vulnerable-dependencies-in-your-repository)"{% ifversion fpt or ghec %} - "[查看用于组织的洞见](/organizations/collaborating-with-groups-in-organizations/viewing-insights-for-your-organization)" -- "[了解 {% data variables.product.prodname_dotcom %} 如何使用和保护数据](/github/understanding-how-github-uses-and-protects-your-data)" +- "[了解 {% data variables.product.prodname_dotcom %} 如何使用和保护数据](/get-started/privacy-on-github)" {% endif %} diff --git a/translations/zh-CN/content/communities/documenting-your-project-with-wikis/editing-wiki-content.md b/translations/zh-CN/content/communities/documenting-your-project-with-wikis/editing-wiki-content.md index 62f1093901..af12ffbee6 100644 --- a/translations/zh-CN/content/communities/documenting-your-project-with-wikis/editing-wiki-content.md +++ b/translations/zh-CN/content/communities/documenting-your-project-with-wikis/editing-wiki-content.md @@ -48,7 +48,7 @@ Wikis 可显示 PNG、JPEG 和 GIF 图片。 ## 受支持的 MediaWiki 格式 无论您的 wiki 页面以哪种标记语言编写,始终可使用某些 MediaWiki 语法。 -- 链接 ([Asciidoc 除外](https://github.com/gollum/gollum/commit/d1cf698b456cd6a35a54c6a8e7b41d3068acec3b)) +- Links ([except AsciiDoc](https://github.com/gollum/gollum/commit/d1cf698b456cd6a35a54c6a8e7b41d3068acec3b)) - 水平规则通过 `---` - 简明符号实体(例如 `δ` 或 `€`) diff --git a/translations/zh-CN/content/developers/apps/building-github-apps/rate-limits-for-github-apps.md b/translations/zh-CN/content/developers/apps/building-github-apps/rate-limits-for-github-apps.md index 2db440f825..4796b1152a 100644 --- a/translations/zh-CN/content/developers/apps/building-github-apps/rate-limits-for-github-apps.md +++ b/translations/zh-CN/content/developers/apps/building-github-apps/rate-limits-for-github-apps.md @@ -17,46 +17,69 @@ topics: shortTitle: 速率限制 --- -## 服务器到服务器请求 +{% data reusables.enterprise.rate_limit %} -{% ifversion ghec %} +{% data reusables.rest-api.always-check-your-limit %} -The rate limits for server-to-server requests made by {% data variables.product.prodname_github_apps %} depend on where the app is installed. If the app is installed on organizations or repositories owned by an enterprise on {% data variables.product.product_location %}, then the rate is higher than for installations outside an enterprise. +{% ifversion ghec or fpt %} -### 标准的服务器到服务器速率限制 +## About rate limits for apps + +Rate limits for {% data variables.product.prodname_github_apps %} and {% data variables.product.prodname_oauth_apps %} depend on the plan for the organization where you install the application. For more information, see "[{% data variables.product.company_short %}'s products](/get-started/learning-about-github/githubs-products)" and "[Types of {% data variables.product.company_short %} accounts](/get-started/learning-about-github/types-of-github-accounts#organization-accounts)." {% endif %} -{% data reusables.apps.api-rate-limits-non-ghec %} +## 服务器到服务器请求 -{% ifversion ghec %} +{% ifversion ghec or fpt %} -### {% data variables.product.prodname_ghe_cloud %} 服务器到服务器速率限制 +### Default server-to-server rate limits for {% data variables.product.prodname_dotcom_the_website %} -{% data variables.product.prodname_github_apps %} that are installed on an organization or repository owned by an enterprise on {% data variables.product.product_location %} have a rate limit of 15,000 requests per hour for server-to-server requests. +{% endif %} + +发出服务器-服务器请求的 {% data variables.product.prodname_github_apps %} 使用安装的最低速率限制为每小时 5,000 个请求。 If an application is installed on an organization with more than 20 users, the application receives another 50 requests per hour for each user. 具有 20 个以上仓库的安装每小时会为每个仓库再接收 50 个请求。 安装的最大速率限制为每小时 12,500 个请求。 + +{% ifversion fpt or ghec %} + +### Server-to-server rate limits for {% data variables.product.prodname_ghe_cloud %} + +{% endif %} + +{% ifversion fpt or ghec %} + +{% data variables.product.prodname_github_apps %} that are installed on an organization or a repository within an enterprise on {% data variables.product.product_location %} are subject to a limit of 15,000 requests per hour. {% endif %} ## 用户到服务器请求 -{% data variables.product.prodname_github_apps %} 还可以[代表用户](/apps/building-github-apps/identifying-and-authorizing-users-for-github-apps/#identifying-and-authorizing-users-for-github-apps)发送用户到服务器的请求。 +{% data variables.product.prodname_github_apps %} and {% data variables.product.prodname_oauth_apps %} can also act on behalf of a user, making user-to-server requests after the user authorizes the app. For more information, see "[Authorizing {% data variables.product.prodname_github_apps %}](/authentication/keeping-your-account-and-data-secure/authorizing-github-apps)" and "[Authorizing {% data variables.product.prodname_oauth_apps %}](/authentication/keeping-your-account-and-data-secure/authorizing-oauth-apps)." + +User-to-server requests from {% data variables.product.prodname_oauth_apps %} are authenticated with an OAuth token. User-to-server requests from {% data variables.product.prodname_github_apps %} are authenticated with either an OAuth token or an expiring user access token. For more information, see "[Identifying and authorizing users for {% data variables.product.prodname_github_apps %}](/developers/apps/building-github-apps/identifying-and-authorizing-users-for-github-apps#identifying-and-authorizing-users-for-github-apps)" and "[Authorizing {% data variables.product.prodname_oauth_apps %}](/developers/apps/building-oauth-apps/authorizing-oauth-apps)." + +{% ifversion fpt or ghec %} + +### Default user-to-server rate limits for {% data variables.product.prodname_dotcom_the_website %} + +{% endif %} {% ifversion ghec %} The rate limits for user-to-server requests made by {% data variables.product.prodname_github_apps %} depend on where the app is installed. If the app is installed on organizations or repositories owned by an enterprise on {% data variables.product.product_location %}, then the rate is higher than for installations outside an enterprise. -### 标准的用户到服务器速率限制 +{% endif %} + +{% data reusables.apps.user-to-server-rate-limits %} + +{% ifversion fpt or ghec %} + +### User-to-server rate limits for {% data variables.product.prodname_ghe_cloud %} + +{% data reusables.apps.user-to-server-rate-limits-ghec %} {% endif %} -User-to-server requests are rate limited at {% ifversion ghae %}15,000{% else %}5,000{% endif %} requests per hour and per authenticated user. 该用户授权的所有 OAuth 应用程序、该用户拥有的个人访问令牌以及使用该用户的{% ifversion ghae %} 令牌{% else %} 用户名和密码{% endif %} 验证的请求,将共享该用户每小时 5,000 个请求的配额。 +## 延伸阅读 -{% ifversion ghec %} - -### {% data variables.product.prodname_ghe_cloud %} 用户到服务器速率限制 - -When a user belongs to an enterprise on {% data variables.product.product_location %}, user-to-server requests to resources owned by the same enterprise are rate limited at 15,000 requests per hour and per authenticated user. All OAuth applications authorized by that user, personal access tokens owned by that user, and requests authenticated with that user's username and password share the same quota of 5,000 requests per hour for that user. - -{% endif %} - -有关速率限制的更多信息,请参阅 REST API 的“[速率限制](/rest/overview/resources-in-the-rest-api#rate-limiting)”和 GraphQL API 的“[资源限制]({% ifversion ghec %}/free-pro-team@latest{% endif %}/graphql/overview/resource-limitations)”。 +- "[Rate limiting](/rest/overview/resources-in-the-rest-api#rate-limiting)" in the REST API documentation +- "[Resource limitations]({% ifversion ghec %}/free-pro-team@latest{% endif %}/graphql/overview/resource-limitations)" in the GraphQL API documentation diff --git a/translations/zh-CN/content/developers/apps/getting-started-with-apps/differences-between-github-apps-and-oauth-apps.md b/translations/zh-CN/content/developers/apps/getting-started-with-apps/differences-between-github-apps-and-oauth-apps.md index ecc0420a43..6f372a7fab 100644 --- a/translations/zh-CN/content/developers/apps/getting-started-with-apps/differences-between-github-apps-and-oauth-apps.md +++ b/translations/zh-CN/content/developers/apps/getting-started-with-apps/differences-between-github-apps-and-oauth-apps.md @@ -57,14 +57,14 @@ _授权的_ OAuth 应用程序有权访问用户或组织所有者可访问的 {% endnote %} -| GitHub 应用程序 | OAuth 应用程序 | -| ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| GitHub 应用可以使用带外 JSON Web 令牌格式的私钥请求安装访问令牌。 | OAuth 应用程序可以通过 Web 请求在重定向后将请求令牌交换为访问令牌。 | -| 安装程序将应用程序识别为 GitHub 应用自动程序,例如 @jenkins-bot。 | 访问令牌将应用程序识别为向应用程序授予令牌的用户,例如 @octocat。 | -| 安装令牌在预定义的时间(当前为 1 小时)后过期。 | OAuth 令牌在被客户撤销之前一直保持活动状态。 | -| {% data reusables.apps.api-rate-limits-non-ghec %}{% ifversion fpt or ghec %} 更高的速率限制适用于 {% data variables.product.prodname_ghe_cloud %}。 更多信息请参阅“[GitHub 应用程序的速率限制](/developers/apps/rate-limits-for-github-apps)”。{% endif %} | OAuth 令牌使用用户的每小时 5,000 个请求的速率限制。 | -| 速率限制的增加可在 GitHub 应用程序级别(影响所有安装)和单个安装级别上授予。 | 速率限制的增加按 OAuth 应用程序授予。 授予该 OAuth 应用程序的每个令牌都会获得增加的上限。 | -| {% data variables.product.prodname_github_apps %} 可以代表用户进行身份验证,这称为用户到服务器请求。 授权流程与 OAuth 应用程序授权流程相同。 用户到服务器令牌可能会过期,可通过刷新令牌进行续订。 更多信息请参阅“[刷新用户到服务器访问令牌](/apps/building-github-apps/refreshing-user-to-server-access-tokens/)”和“[识别和授权 GitHub 应用程序用户](/apps/building-github-apps/identifying-and-authorizing-users-for-github-apps/)”。 | {% data variables.product.prodname_oauth_apps %} 使用的 OAuth 流程代表用户授权 {% data variables.product.prodname_oauth_app %}。 这与用于 {% data variables.product.prodname_github_app %} 用户到服务器授权中使用的流程相同。 | +| GitHub 应用程序 | OAuth 应用程序 | +| --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| GitHub 应用可以使用带外 JSON Web 令牌格式的私钥请求安装访问令牌。 | OAuth 应用程序可以通过 Web 请求在重定向后将请求令牌交换为访问令牌。 | +| 安装程序将应用程序识别为 GitHub 应用自动程序,例如 @jenkins-bot。 | 访问令牌将应用程序识别为向应用程序授予令牌的用户,例如 @octocat。 | +| 安装令牌在预定义的时间(当前为 1 小时)后过期。 | OAuth 令牌在被客户撤销之前一直保持活动状态。 | +| {% data variables.product.prodname_github_apps %} installed on organizations or repositories are subject to rate limits for server-to-server requests. For more information, see "[Rate limits for {% data variables.product.prodname_github_apps %}](/developers/apps/building-github-apps/rate-limits-for-github-apps)." | OAuth tokens use the user's rate limit of {% ifversion fpt or ghec or ghes %}5,000{% elsif ghae %}15,000{% endif %} requests per hour. | +| 速率限制的增加可在 GitHub 应用程序级别(影响所有安装)和单个安装级别上授予。 | 速率限制的增加按 OAuth 应用程序授予。 授予该 OAuth 应用程序的每个令牌都会获得增加的上限。 | +| {% data variables.product.prodname_github_apps %} can authenticate on behalf of the user, which is called a user-to-server request. 授权流程与 OAuth 应用程序授权流程相同。 用户到服务器令牌可能会过期,可通过刷新令牌进行续订。 更多信息请参阅“[刷新用户到服务器访问令牌](/apps/building-github-apps/refreshing-user-to-server-access-tokens/)”和“[识别和授权 GitHub 应用程序用户](/apps/building-github-apps/identifying-and-authorizing-users-for-github-apps/)”。 | {% data variables.product.prodname_oauth_apps %} 使用的 OAuth 流程代表用户授权 {% data variables.product.prodname_oauth_app %}。 这与用于 {% data variables.product.prodname_github_app %} 用户到服务器授权中使用的流程相同。 | ## 请求资源的权限级别 diff --git a/translations/zh-CN/content/developers/github-marketplace/using-the-github-marketplace-api-in-your-app/rest-endpoints-for-the-github-marketplace-api.md b/translations/zh-CN/content/developers/github-marketplace/using-the-github-marketplace-api-in-your-app/rest-endpoints-for-the-github-marketplace-api.md index d371534d0b..d061101256 100644 --- a/translations/zh-CN/content/developers/github-marketplace/using-the-github-marketplace-api-in-your-app/rest-endpoints-for-the-github-marketplace-api.md +++ b/translations/zh-CN/content/developers/github-marketplace/using-the-github-marketplace-api-in-your-app/rest-endpoints-for-the-github-marketplace-api.md @@ -28,6 +28,6 @@ shortTitle: REST API {% note %} -**注:**[REST API 的速率限制](/rest#rate-limiting)适用于所有 {% data variables.product.prodname_marketplace %} API 端点。 +**注:**[REST API 的速率限制](/rest/overview/resources-in-the-rest-api#rate-limiting)适用于所有 {% data variables.product.prodname_marketplace %} API 端点。 {% endnote %} diff --git a/translations/zh-CN/content/get-started/importing-your-projects-to-github/importing-source-code-to-github/about-github-importer.md b/translations/zh-CN/content/get-started/importing-your-projects-to-github/importing-source-code-to-github/about-github-importer.md new file mode 100644 index 0000000000..01b5075133 --- /dev/null +++ b/translations/zh-CN/content/get-started/importing-your-projects-to-github/importing-source-code-to-github/about-github-importer.md @@ -0,0 +1,31 @@ +--- +title: 关于 GitHub 导入工具 +intro: 如果您在 Subversion、Mercurial、Team Foundation Version Control (TFVC) 或其他 Git 仓库中有源代码,可使用 GitHub 导入工具将其移至 GitHub。 +redirect_from: + - /articles/about-github-importer + - /github/importing-your-projects-to-github/about-github-importer + - /github/importing-your-projects-to-github/importing-source-code-to-github/about-github-importer +versions: + fpt: '*' + ghec: '*' +--- + +GitHub 导入工具是一种可快速将源代码仓库(包括提交和修订记录)导入 GitHub 的工具。 + +![导入仓库 gif](/assets/images/help/importer/github-importer.gif) + +在导入过程中,根据导入来源的版本控制系统,您可以向远程仓库进行身份验证,更新提交作者属性,以及导入包含大文件的仓库(如果不想使用 Git Large File Storage,也可删除大文件)。 + +| 导入操作 | 子版本,Subversion | Mercurial | TFVC | Git | +|:----------------------------------------------------------------------------- |:--------------:|:---------:|:-----:|:-----:| +| 向远程仓库进行身份验证 | **X** | **X** | **X** | **X** | +| [更新提交作者属性](/articles/updating-commit-author-attribution-with-github-importer) | **X** | **X** | **X** | | +| 将大文件移至 [Git Large 文件存储](/articles/about-git-large-file-storage) | **X** | **X** | **X** | | +| 从仓库删除大文件 | **X** | **X** | **X** | | + +## 延伸阅读 + +- "[使用 GitHub 导入工具导入仓库](/articles/importing-a-repository-with-github-importer)" +- "[使用 GitHub 导入工具更新提交作者属性](/articles/updating-commit-author-attribution-with-github-importer)" +- "[使用命令行导入 Git 仓库](/articles/importing-a-git-repository-using-the-command-line)" +- "[源代码迁移工具](/articles/source-code-migration-tools)" diff --git a/translations/zh-CN/content/get-started/importing-your-projects-to-github/importing-source-code-to-github/adding-an-existing-project-to-github-using-the-command-line.md b/translations/zh-CN/content/get-started/importing-your-projects-to-github/importing-source-code-to-github/adding-an-existing-project-to-github-using-the-command-line.md new file mode 100644 index 0000000000..d9ad171cd4 --- /dev/null +++ b/translations/zh-CN/content/get-started/importing-your-projects-to-github/importing-source-code-to-github/adding-an-existing-project-to-github-using-the-command-line.md @@ -0,0 +1,165 @@ +--- +title: Adding an existing project to GitHub using the command line +intro: 'Putting your existing work on {% data variables.product.product_name %} can let you share and collaborate in lots of great ways.' +redirect_from: + - /articles/add-an-existing-project-to-github + - /articles/adding-an-existing-project-to-github-using-the-command-line + - /github/importing-your-projects-to-github/adding-an-existing-project-to-github-using-the-command-line + - /github/importing-your-projects-to-github/importing-source-code-to-github/adding-an-existing-project-to-github-using-the-command-line +versions: + fpt: '*' + ghes: '*' + ghae: '*' + ghec: '*' +shortTitle: Add a project locally +--- + +## About adding existing projects to {% data variables.product.product_name %} + +{% tip %} + +**Tip:** If you're most comfortable with a point-and-click user interface, try adding your project with {% data variables.product.prodname_desktop %}. For more information, see "[Adding a repository from your local computer to GitHub Desktop](/desktop/guides/contributing-to-projects/adding-a-repository-from-your-local-computer-to-github-desktop)" in the *{% data variables.product.prodname_desktop %} Help*. + +{% endtip %} + +{% data reusables.repositories.sensitive-info-warning %} + +## Adding a project to {% data variables.product.product_name %} with {% data variables.product.prodname_cli %} + +{% data variables.product.prodname_cli %} is an open source tool for using {% data variables.product.prodname_dotcom %} from your computer's command line. {% data variables.product.prodname_cli %} can simplify the process of adding an existing project to {% data variables.product.product_name %} using the command line. To learn more about {% data variables.product.prodname_cli %}, see "[About {% data variables.product.prodname_cli %}](/github-cli/github-cli/about-github-cli)." + +1. In the command line, navigate to the root directory of your project. +1. Initialize the local directory as a Git repository. + + ```shell + git init -b main + ``` + +1. Stage and commit all the files in your project + + ```shell + git add . && git commit -m "initial commit" + ``` + +1. To create a repository for your project on GitHub, use the `gh repo create` subcommand. When prompted, select **Push an existing local repository to GitHub** and enter the desired name for your repository. If you want your project to belong to an organization instead of your user account, specify the organization name and project name with `organization-name/project-name`. + +1. Follow the interactive prompts. To add the remote and push the repository, confirm yes when asked to add the remote and push the commits to the current branch. + +1. Alternatively, to skip all the prompts, supply the path to the repository with the `--source` flag and pass a visibility flag (`--public`, `--private`, or `--internal`). For example, `gh repo create --source=. --public`. Specify a remote with the `--remote` flag. To push your commits, pass the `--push` flag. For more information about possible arguments, see the [GitHub CLI manual](https://cli.github.com/manual/gh_repo_create). + +## Adding a project to {% data variables.product.product_name %} without {% data variables.product.prodname_cli %} + +{% mac %} + +1. [Create a new repository](/repositories/creating-and-managing-repositories/creating-a-new-repository) on {% data variables.product.product_location %}. To avoid errors, do not initialize the new repository with *README*, license, or `gitignore` files. You can add these files after your project has been pushed to {% data variables.product.product_name %}. + ![Create New Repository drop-down](/assets/images/help/repository/repo-create.png) +{% data reusables.command_line.open_the_multi_os_terminal %} +3. Change the current working directory to your local project. +4. Initialize the local directory as a Git repository. + ```shell + $ git init -b main + ``` +5. Add the files in your new local repository. This stages them for the first commit. + ```shell + $ git add . + # Adds the files in the local repository and stages them for commit. {% data reusables.git.unstage-codeblock %} + ``` +6. Commit the files that you've staged in your local repository. + ```shell + $ git commit -m "First commit" + # Commits the tracked changes and prepares them to be pushed to a remote repository. {% data reusables.git.reset-head-to-previous-commit-codeblock %} + ``` +7. At the top of your repository on {% ifversion ghae %}{% data variables.product.product_name %}{% else %}{% data variables.product.product_location %}{% endif %}'s Quick Setup page, click {% octicon "clippy" aria-label="The copy to clipboard icon" %} to copy the remote repository URL. + ![Copy remote repository URL field](/assets/images/help/repository/copy-remote-repository-url-quick-setup.png) +8. In Terminal, [add the URL for the remote repository](/github/getting-started-with-github/managing-remote-repositories) where your local repository will be pushed. + ```shell + $ git remote add origin <REMOTE_URL> + # Sets the new remote + $ git remote -v + # Verifies the new remote URL + ``` +9. [Push the changes](/github/getting-started-with-github/pushing-commits-to-a-remote-repository/) in your local repository to {% data variables.product.product_location %}. + ```shell + $ git push -u origin main + # Pushes the changes in your local repository up to the remote repository you specified as the origin + ``` + +{% endmac %} + +{% windows %} + +1. [Create a new repository](/articles/creating-a-new-repository) on {% data variables.product.product_location %}. To avoid errors, do not initialize the new repository with *README*, license, or `gitignore` files. You can add these files after your project has been pushed to {% data variables.product.product_name %}. + ![Create New Repository drop-down](/assets/images/help/repository/repo-create.png) +{% data reusables.command_line.open_the_multi_os_terminal %} +3. Change the current working directory to your local project. +4. Initialize the local directory as a Git repository. + ```shell + $ git init -b main + ``` +5. Add the files in your new local repository. This stages them for the first commit. + ```shell + $ git add . + # Adds the files in the local repository and stages them for commit. {% data reusables.git.unstage-codeblock %} + ``` +6. Commit the files that you've staged in your local repository. + ```shell + $ git commit -m "First commit" + # Commits the tracked changes and prepares them to be pushed to a remote repository. {% data reusables.git.reset-head-to-previous-commit-codeblock %} + ``` +7. At the top of your repository on {% ifversion ghae %}{% data variables.product.product_name %}{% else %}{% data variables.product.product_location %}{% endif %}'s Quick Setup page, click {% octicon "clippy" aria-label="The copy to clipboard icon" %} to copy the remote repository URL. + ![Copy remote repository URL field](/assets/images/help/repository/copy-remote-repository-url-quick-setup.png) +8. In the Command prompt, [add the URL for the remote repository](/github/getting-started-with-github/managing-remote-repositories) where your local repository will be pushed. + ```shell + $ git remote add origin <REMOTE_URL> + # Sets the new remote + $ git remote -v + # Verifies the new remote URL + ``` +9. [Push the changes](/github/getting-started-with-github/pushing-commits-to-a-remote-repository/) in your local repository to {% data variables.product.product_location %}. + ```shell + $ git push origin main + # Pushes the changes in your local repository up to the remote repository you specified as the origin + ``` + +{% endwindows %} + +{% linux %} + +1. [Create a new repository](/articles/creating-a-new-repository) on {% data variables.product.product_location %}. To avoid errors, do not initialize the new repository with *README*, license, or `gitignore` files. You can add these files after your project has been pushed to {% data variables.product.product_name %}. + ![Create New Repository drop-down](/assets/images/help/repository/repo-create.png) +{% data reusables.command_line.open_the_multi_os_terminal %} +3. Change the current working directory to your local project. +4. Initialize the local directory as a Git repository. + ```shell + $ git init -b main + ``` +5. Add the files in your new local repository. This stages them for the first commit. + ```shell + $ git add . + # Adds the files in the local repository and stages them for commit. {% data reusables.git.unstage-codeblock %} + ``` +6. Commit the files that you've staged in your local repository. + ```shell + $ git commit -m "First commit" + # Commits the tracked changes and prepares them to be pushed to a remote repository. {% data reusables.git.reset-head-to-previous-commit-codeblock %} + ``` +7. At the top of your repository on {% ifversion ghae %}{% data variables.product.product_name %}{% else %}{% data variables.product.product_location %}{% endif %}'s Quick Setup page, click {% octicon "clippy" aria-label="The copy to clipboard icon" %} to copy the remote repository URL. + ![Copy remote repository URL field](/assets/images/help/repository/copy-remote-repository-url-quick-setup.png) +8. In Terminal, [add the URL for the remote repository](/github/getting-started-with-github/managing-remote-repositories) where your local repository will be pushed. + ```shell + $ git remote add origin <REMOTE_URL> + # Sets the new remote + $ git remote -v + # Verifies the new remote URL + ``` +9. [Push the changes](/github/getting-started-with-github/pushing-commits-to-a-remote-repository/) in your local repository to {% data variables.product.product_location %}. + ```shell + $ git push origin main + # Pushes the changes in your local repository up to the remote repository you specified as the origin + ``` + +{% endlinux %} + +## Further reading + +- "[Adding a file to a repository](/repositories/working-with-files/managing-files/adding-a-file-to-a-repository#adding-a-file-to-a-repository-using-the-command-line)" diff --git a/translations/zh-CN/content/get-started/importing-your-projects-to-github/importing-source-code-to-github/importing-a-git-repository-using-the-command-line.md b/translations/zh-CN/content/get-started/importing-your-projects-to-github/importing-source-code-to-github/importing-a-git-repository-using-the-command-line.md new file mode 100644 index 0000000000..74323b9c33 --- /dev/null +++ b/translations/zh-CN/content/get-started/importing-your-projects-to-github/importing-source-code-to-github/importing-a-git-repository-using-the-command-line.md @@ -0,0 +1,48 @@ +--- +title: 使用命令行导入 Git 仓库 +intro: '{% ifversion fpt %}如果 [GitHub Importer](/articles/importing-a-repository-with-github-importer) 不适用于您的目的,例如,如果您现有的代码托管在私有网络上,则我们建议使用命令行导入。{% else %}当您现有的代码托管在私有网络上时,适合使用命令行导入 Git 项目。{% endif %}' +redirect_from: + - /articles/importing-a-git-repository-using-the-command-line + - /github/importing-your-projects-to-github/importing-a-git-repository-using-the-command-line + - /github/importing-your-projects-to-github/importing-source-code-to-github/importing-a-git-repository-using-the-command-line +versions: + fpt: '*' + ghes: '*' + ghae: '*' + ghec: '*' +shortTitle: 本地导入仓库 +--- + +在开始之前,请确保您知道: + +- 您的 {% data variables.product.product_name %} 用户名 +- 外部仓库的克隆 URL,如 `https://external-host.com/user/repo.git` 或 `git://external-host.com/user/repo.git`(或许 `external-host.com` 域名前面是 `user@`) + +{% tip %} + +为便于示范,我们将使用: + +- 外部帐户 **extuser** +- 外部 Git 主机 `https://external-host.com` +- {% data variables.product.product_name %} 个人用户帐户 **ghuser** +- {% ifversion ghae %}{% data variables.product.product_name %}{% else %}{% data variables.product.product_location %}{% endif %} 上名为 **repo.git** 的仓库 + +{% endtip %} + +1. [在 {% data variables.product.product_name %} 上创建新仓库](/articles/creating-a-new-repository)。 您将在此新仓库中导入外部 Git 仓库。 +2. 在命令行上,使用外部克隆 URL 创建仓库的“裸”克隆。 这会创建数据的完整副本,但没有编辑文件的工作目录,并确保干净、新鲜地导出所有旧数据。 + ```shell + $ git clone --bare https://external-host.com/extuser/repo.git + # Makes a bare clone of the external repository in a local directory + ``` +3. 使用“镜像”选项将本地克隆的仓库推送到 {% data variables.product.product_name %},以确保所有引用(如分支和标记)都复制到导入的仓库。 + ```shell + $ cd repo.git + $ git push --mirror https://{% data variables.command_line.codeblock %}/ghuser/repo.git + # Pushes the mirror to the new repository on {% ifversion ghae %}{% data variables.product.product_name %}{% else %}{% data variables.product.product_location %}{% endif %} + ``` +4. 删除临时本地仓库。 + ```shell + $ cd .. + $ rm -rf repo.git + ``` diff --git a/translations/zh-CN/content/get-started/importing-your-projects-to-github/importing-source-code-to-github/importing-a-repository-with-github-importer.md b/translations/zh-CN/content/get-started/importing-your-projects-to-github/importing-source-code-to-github/importing-a-repository-with-github-importer.md new file mode 100644 index 0000000000..7cb6295818 --- /dev/null +++ b/translations/zh-CN/content/get-started/importing-your-projects-to-github/importing-source-code-to-github/importing-a-repository-with-github-importer.md @@ -0,0 +1,38 @@ +--- +title: 使用 GitHub 导入工具导入仓库 +intro: 如果您有项目托管在另一个版本控制系统上,可以使用 GitHub 导入工具将其自动导入到 GitHub。 +redirect_from: + - /articles/importing-from-other-version-control-systems-to-github + - /articles/importing-a-repository-with-github-importer + - /github/importing-your-projects-to-github/importing-a-repository-with-github-importer + - /github/importing-your-projects-to-github/importing-source-code-to-github/importing-a-repository-with-github-importer +versions: + fpt: '*' + ghec: '*' +shortTitle: 使用 GitHub 导入工具 +--- + +{% tip %} + +**提示:**GitHub 导入工具不适用于所有导入。 例如,如果您现有的代码托管在私有网络上,我们的工具便无法访问。 在这些情况下,我们建议对 Git 仓库[使用命令行导入](/articles/importing-a-git-repository-using-the-command-line),或者对导入自其他版本控制系统的项目使用[源代码迁移工具](/articles/source-code-migration-tools)。 + +{% endtip %} + +如果在导入时要将仓库中的提交匹配到作者的 GitHub 用户帐户,请确保在开始导入之前,仓库的每个贡献者都有 GitHub 帐户。 + +{% data reusables.repositories.repo-size-limit %} + +1. 在任何页面的右上角,单击 {% octicon "plus" aria-label="Plus symbol" %},然后单击 **Import repository(导入仓库)**。 ![新仓库菜单中的导入仓库选项](/assets/images/help/importer/import-repository.png) +2. 在 "Your old repository's clone URL"(您的旧仓库的克隆 URL)下,输入要导入的项目的 URL。 ![导入的仓库 URL 对应的文本字段](/assets/images/help/importer/import-url.png) +3. 选择拥有仓库的用户帐户或组织,然后输入 GitHub 上帐户的名称。 ![仓库所有者菜单和仓库名称字段](/assets/images/help/importer/import-repo-owner-name.png) +4. 指定新仓库是*公共*还是*私有*。 更多信息请参阅“[设置仓库可见性](/articles/setting-repository-visibility)”。 ![公共或私有仓库单选按钮](/assets/images/help/importer/import-public-or-private.png) +5. 检查您输入的信息,然后单击 **Begin import(开始导入)**。 ![开始导入按钮](/assets/images/help/importer/begin-import-button.png) +6. 如果您的旧项目有密码保护,请输入该项目的登录信息,然后单击 **Submit(提交)**。 ![有密码保护项目的密码表单和提交按钮](/assets/images/help/importer/submit-old-credentials-importer.png) +7. 如果有多个项目托管于旧项目的克隆 URL 上,请选择要导入的项目,然后单击 **Submit(提交)**。 ![要导入的项目列表和提交按钮](/assets/images/help/importer/choose-project-importer.png) +8. 如果项目包含超过 100 MB 的大文件,请选择是否使用 [Git Large File Storage](/articles/versioning-large-files) 导入大文件,然后单击 **Continue(继续)**。 ![Git Large File Storage 菜单和继续按钮](/assets/images/help/importer/select-gitlfs-importer.png) + +在仓库完成导入时,您会收到一封电子邮件。 + +## 延伸阅读 + +- "[使用 GitHub 导入工具更新提交作者属性](/articles/updating-commit-author-attribution-with-github-importer)" diff --git a/translations/zh-CN/content/get-started/importing-your-projects-to-github/importing-source-code-to-github/index.md b/translations/zh-CN/content/get-started/importing-your-projects-to-github/importing-source-code-to-github/index.md new file mode 100644 index 0000000000..6796ee2536 --- /dev/null +++ b/translations/zh-CN/content/get-started/importing-your-projects-to-github/importing-source-code-to-github/index.md @@ -0,0 +1,25 @@ +--- +title: 将源代码导入到 GitHub +intro: '您可以使用 {% ifversion fpt %}GitHub 导入工具、命令行、{% else %}命令行{% endif %}或外部迁移工具将仓库导入到 GitHub。' +redirect_from: + - /articles/importing-an-external-git-repository + - /articles/importing-from-bitbucket + - /articles/importing-an-external-git-repo + - /articles/importing-your-project-to-github + - /articles/importing-source-code-to-github + - /github/importing-your-projects-to-github/importing-source-code-to-github +versions: + fpt: '*' + ghes: '*' + ghae: '*' + ghec: '*' +children: + - /about-github-importer + - /importing-a-repository-with-github-importer + - /updating-commit-author-attribution-with-github-importer + - /importing-a-git-repository-using-the-command-line + - /adding-an-existing-project-to-github-using-the-command-line + - /source-code-migration-tools +shortTitle: 导入代码到 GitHub +--- + diff --git a/translations/zh-CN/content/get-started/importing-your-projects-to-github/importing-source-code-to-github/source-code-migration-tools.md b/translations/zh-CN/content/get-started/importing-your-projects-to-github/importing-source-code-to-github/source-code-migration-tools.md new file mode 100644 index 0000000000..1f09554eae --- /dev/null +++ b/translations/zh-CN/content/get-started/importing-your-projects-to-github/importing-source-code-to-github/source-code-migration-tools.md @@ -0,0 +1,59 @@ +--- +title: 源代码迁移工具 +intro: 您可以使用外部工具将项目移动到 GitHub。 +redirect_from: + - /articles/importing-from-subversion + - /articles/source-code-migration-tools + - /github/importing-your-projects-to-github/source-code-migration-tools + - /github/importing-your-projects-to-github/importing-source-code-to-github/source-code-migration-tools +versions: + fpt: '*' + ghes: '*' + ghae: '*' + ghec: '*' +shortTitle: 代码迁移工具 +--- + +{% ifversion fpt or ghec %} + +我们建议使用 [GitHub 导入工具](/articles/about-github-importer)从 Subversion、Mercurial、Team Foundation Version Control (TFVC) 或其他 Git 仓库导入项目。 您还可以使用这些外部工具将项目转换为 Git。 + +{% endif %} + +## 从 Subversion 导入 + +在典型 Subversion 环境中,多个项目存储在一个根仓库中。 在 GitHub 上,这些项目的每一个通常都将映射到用户帐户或组织的单独 Git 仓库。 以下情况时,我们建议将 Subversion 仓库的每一部分导入到单独的 GitHub 仓库: + +* 协作者需要检出或提交到独立于项目其他部分的部分 +* 您想要不同的部分有其自己的访问权限 + +我们建议使用以下工具将 Subversion 仓库转换为 Git: + +- [`git-svn`](https://git-scm.com/docs/git-svn) +- [svn2git](https://github.com/nirvdrum/svn2git) + +## 从 Mercurial 导入 + +我们建议使用 [hg-fast-export](https://github.com/frej/fast-export) 将 Mercurial 仓库转换为 Git。 + +## 从 TFVC 导入 + +我们建议 [git-tfs](https://github.com/git-tfs/git-tfs) 用于在TFVC 和 Git 之间移动更改。 + +For more information about moving from TFVC (a centralized version control system) to Git, see "[Plan your Migration to Git](https://docs.microsoft.com/devops/develop/git/centralized-to-git)" from the Microsoft docs site. + +{% tip %} + +**提示:**在成功地将项目转换为 Git 后,您可以[将其推送到 {% data variables.product.prodname_dotcom %}](/github/getting-started-with-github/pushing-commits-to-a-remote-repository/)。 + +{% endtip %} + +{% ifversion fpt or ghec %} + +## 延伸阅读 + +- “[关于 GitHub 导入工具](/articles/about-github-importer)” +- "[使用 GitHub 导入工具导入仓库](/articles/importing-a-repository-with-github-importer)" +- [{% data variables.product.prodname_learning %}]({% data variables.product.prodname_learning_link %}) + +{% endif %} diff --git a/translations/zh-CN/content/get-started/importing-your-projects-to-github/importing-source-code-to-github/updating-commit-author-attribution-with-github-importer.md b/translations/zh-CN/content/get-started/importing-your-projects-to-github/importing-source-code-to-github/updating-commit-author-attribution-with-github-importer.md new file mode 100644 index 0000000000..e355494eca --- /dev/null +++ b/translations/zh-CN/content/get-started/importing-your-projects-to-github/importing-source-code-to-github/updating-commit-author-attribution-with-github-importer.md @@ -0,0 +1,43 @@ +--- +title: 使用 GitHub 导入工具更新提交作者归属 +intro: 导入期间,您可以将仓库中的提交匹配提交作者的 GitHub 帐户。 +redirect_from: + - /articles/updating-commit-author-attribution-with-github-importer + - /github/importing-your-projects-to-github/updating-commit-author-attribution-with-github-importer + - /github/importing-your-projects-to-github/importing-source-code-to-github/updating-commit-author-attribution-with-github-importer +versions: + fpt: '*' + ghec: '*' +shortTitle: 更新作者 GitHub 导入工具 +--- + +GitHub 导入工具查找其电子邮件地址匹配您所导入仓库中提交作者的 GitHub 用户。 然后,您可以使用其电子邮件地址或作者的 GitHub 用户名将提交连接到其作者。 + +## 更新提交作者 + +1. 导入仓库后,在导入状态页面上,单击 **Match authors(匹配作者)**。 ![匹配作者按钮](/assets/images/help/importer/match-authors-button.png) +2. 在您想要更新其信息的作者旁边,单击 **Connect(连接)**。 ![提交作者列表](/assets/images/help/importer/connect-commit-author.png) +3. 输入作者的电子邮件地址或 GitHub 用户名,然后按 **Enter** 键。 + +## 将提交归于具有公共电子邮件地址的 GitHub 用户 + +如果导入的仓库中的提交作者具有与其用于创作提交的电子邮件地址关联的 GitHub 帐户,并且他们没有[将其提交电子邮件地址设为私有](/articles/setting-your-commit-email-address),则 GitHub 导入工具会将与提交关联的电子邮件地址匹配与其 GitHub 帐户关联的公共电子邮件地址,并将提交归于其 GitHub 帐户。 + +## 将提交归于没有公共电子邮件地址的 GitHub 用户 + +如果导入的仓库中的提交作者既没有在其 GitHub 个人资料中设置公共电子邮件地址,也没有[将其提交电子邮件地址设为私有](/articles/setting-your-commit-email-address),则 GitHub 导入工具可能无法将与提交关联的电子邮件地址匹配其 GitHub 帐户。 + +提交作者可通过将其电子邮件地址设为私有来解决此问题。 其提交随后归于 `@users.noreply.github.com`,导入的提交将与其 GitHub 帐户关联。 + +## 使用电子邮件地址归属提交 + +如果作者的电子邮件地址没有与其 GitHub 帐户关联,他们可以在导入后[将地址添加到其帐户](/articles/adding-an-email-address-to-your-github-account),然后即可正确归属提交。 + +如果作者没有 GitHub 帐户,则 GitHub 导入工具会将其提交归于与提交关联的电子邮件地址。 + +## 延伸阅读 + +- “[关于 GitHub 导入工具](/articles/about-github-importer)” +- "[使用 GitHub 导入工具导入仓库](/articles/importing-a-repository-with-github-importer)" +- “[将电子邮件地址添加到您的帐户](/articles/adding-an-email-address-to-your-github-account/)” +- "[设置提交电子邮件地址](/articles/setting-your-commit-email-address)" diff --git a/translations/zh-CN/content/get-started/importing-your-projects-to-github/index.md b/translations/zh-CN/content/get-started/importing-your-projects-to-github/index.md new file mode 100644 index 0000000000..33becd6661 --- /dev/null +++ b/translations/zh-CN/content/get-started/importing-your-projects-to-github/index.md @@ -0,0 +1,19 @@ +--- +title: 将项目导入到 GitHub +intro: '您可以使用多种不同方法将源代码导入到 {% data variables.product.product_name %}。' +shortTitle: 导入项目 +redirect_from: + - /categories/67/articles + - /categories/importing + - /categories/importing-your-projects-to-github + - /github/importing-your-projects-to-github +versions: + fpt: '*' + ghes: '*' + ghae: '*' + ghec: '*' +children: + - /importing-source-code-to-github + - /working-with-subversion-on-github +--- + diff --git a/translations/zh-CN/content/get-started/importing-your-projects-to-github/working-with-subversion-on-github/index.md b/translations/zh-CN/content/get-started/importing-your-projects-to-github/working-with-subversion-on-github/index.md new file mode 100644 index 0000000000..bd42cc7f64 --- /dev/null +++ b/translations/zh-CN/content/get-started/importing-your-projects-to-github/working-with-subversion-on-github/index.md @@ -0,0 +1,17 @@ +--- +title: 在 GitHub 上使用 Subversion +intro: 您可以将 Subversion 客户端以及一些 Subversion 工作流程和属性与 GitHub 一起使用。 +redirect_from: + - /articles/working-with-subversion-on-github + - /github/importing-your-projects-to-github/working-with-subversion-on-github +versions: + fpt: '*' + ghes: '*' + ghec: '*' +children: + - /what-are-the-differences-between-subversion-and-git + - /support-for-subversion-clients + - /subversion-properties-supported-by-github +shortTitle: 在 GitHub 上使用 Subversion +--- + diff --git a/translations/zh-CN/content/get-started/importing-your-projects-to-github/working-with-subversion-on-github/subversion-properties-supported-by-github.md b/translations/zh-CN/content/get-started/importing-your-projects-to-github/working-with-subversion-on-github/subversion-properties-supported-by-github.md new file mode 100644 index 0000000000..7f93ffc676 --- /dev/null +++ b/translations/zh-CN/content/get-started/importing-your-projects-to-github/working-with-subversion-on-github/subversion-properties-supported-by-github.md @@ -0,0 +1,29 @@ +--- +title: GitHub 支持的 Subversion 属性 +intro: '有几个 Subversion 工作流和属性与 {% data variables.product.product_name %} 上现有的功能类似。' +redirect_from: + - /articles/subversion-properties-supported-by-github + - /github/importing-your-projects-to-github/subversion-properties-supported-by-github + - /github/importing-your-projects-to-github/working-with-subversion-on-github/subversion-properties-supported-by-github +versions: + fpt: '*' + ghes: '*' + ghec: '*' +shortTitle: GitHub 支持的属性 +--- + +## 可执行文件 (svn:executable) + +我们通过在将文件模式添加到 Git 仓库之前直接进行更新来转换 `svn:executable` 属性。 + +## MIME 类型 (svn:mime-type) + +{% data variables.product.product_name %} 内部跟踪文件的 mime 类型和添加它们的提交。 + +## 忽略未版本化的项目 (svn:ignore) + +如果您已设置要在 Subversion 中忽略的文件和目录,{% data variables.product.product_name %} 将在内部跟踪它们。 Subversion 客户端忽略的文件与 *.gitignore* 文件中的条目完全不同。 + +## 目前不支持的属性 + +{% data variables.product.product_name %} 目前不支持 `svn:externals`、`svn:global-ignores` 或上面未列出的任何属性,包括自定义属性。 diff --git a/translations/zh-CN/content/get-started/importing-your-projects-to-github/working-with-subversion-on-github/support-for-subversion-clients.md b/translations/zh-CN/content/get-started/importing-your-projects-to-github/working-with-subversion-on-github/support-for-subversion-clients.md new file mode 100644 index 0000000000..4a1e277c95 --- /dev/null +++ b/translations/zh-CN/content/get-started/importing-your-projects-to-github/working-with-subversion-on-github/support-for-subversion-clients.md @@ -0,0 +1,134 @@ +--- +title: Subversion 客户端支持 +intro: GitHub 仓库可从 Git 和 Subversion (SVN) 客户端进行访问。 本文介绍如何在 GitHub 上使用 Subversion 客户端以及您可能遇到的一些常见问题。 +redirect_from: + - /articles/support-for-subversion-clients + - /github/importing-your-projects-to-github/support-for-subversion-clients + - /github/importing-your-projects-to-github/working-with-subversion-on-github/support-for-subversion-clients +versions: + fpt: '*' + ghes: '*' + ghec: '*' +shortTitle: Subversion 客户端支持 +--- + +GitHub 通过 HTTPS 协议支持 Subversion 客户端。 我们使用 Subversion 网桥将 svn 命令传递给 GitHub。 + +## GitHub 上支持的 Subversion 功能 + +### 检出 + +您首先要进行 Subversion 检出。 由于 Git 克隆将工作目录(您编辑文件的位置)与仓库数据分开,因此工作目录中一次只有一个分支。 + +Subversion 检出则不同:它们混合工作目录中的仓库数据,因此存在用于您已检出的每个分支和标记的工作目录。 对于具有许多分支和标记的仓库,检出所有内容可能会造成带宽负担,因此应从部分检出开始。 + +{% data reusables.repositories.navigate-to-repo %} +{% data reusables.repositories.copy-clone-url %} + +3. 进行仓库的空检出: + ```shell + $ svn co --depth empty https://github.com/user/repo + > Checked out revision 1. + $ cd repo + ``` + +4. 获取 `trunk` 分支。 Subversion 网桥将主干映射到 Git HEAD 分支。 + ```shell + $ svn up trunk + > A trunk + > A trunk/README.md + > A trunk/gizmo.rb + > Updated to revision 1. + ``` + +5. 获取 `branches` 目录的空检出。 这是所有非 `HEAD` 分支所在的位置,您将在此处进行功能分支。 + ```shell + $ svn up --depth empty branches + Updated to revision 1. + ``` + +### 创建分支 + +您还可以使用到 GitHub 的 Subversion 网桥创建分支。 + +从 svn 客户端更新 `trunk`,以确保 "master" 是最新的: +```shell +$ svn up trunk +> At revision 1. +``` + +接下来,您可以使用 `svn copy` 创建新分支: +```shell +$ svn copy trunk branches/more_awesome +> A branches/more_awesome +$ svn commit -m 'Added more_awesome topic branch' +> Adding branches/more_awesome + +> Committed revision 2. +``` + +您可以在仓库的分支下拉菜单中确认存在新分支: + +![分支快照](/assets/images/help/branch/svnflow-branch-snapshot.png) + +您还可以通过命令行确认新分支: + +```shell +$ git fetch +> From https://github.com/user/repo/ +> * [new branch] more_awesome -> origin/more_awesome +``` + +### 对 Subversion 进行提交 + +添加一些功能并修复一些漏洞后,您想要将这些更改提交到 GitHub。 此工作正如您惯用的 Subversion 一样。 编辑文件,然后使用 `svn commit` 记录您的更改: + +```shell +$ svn status +> M gizmo.rb +$ svn commit -m 'Guard against known problems' +> Sending more_awesome/gizmo.rb +> Transmitting file data . +> Committed revision 3. +$ svn status +> ? test +$ svn add test +> A test +> A test/gizmo_test.rb +$ svn commit -m 'Test coverage for problems' +> Adding more_awesome/test +> Adding more_awesome/test/gizmo_test.rb +> Transmitting file data . +> Committed revision 4. +``` + +### 在分支间切换 + +要在分支之间切换,您可能想要从 `trunk` 的检出开始: + +```shell +$ svn co --depth empty https://github.com/user/repo/trunk +``` + +然后,您可以切换到另一个分支: + +```shell +$ svn switch https://github.com/user/repo/branches/more_awesome +``` + +## 为 Subversion 提交查找 Git 提交 SHA + +GitHub 的 Subversion 服务器公开每个 Subversion 提交的 Git 提交 sha。 + +要查看提交 SHA,应请求 `git-commit` 未版本化的远程属性。 + +```shell +$ svn propget git-commit --revprop -r HEAD https://github.com/user/repo +05fcc584ed53d7b0c92e116cb7e64d198b13c4e3 +``` + +使用此提交 SHA,举例来说,您可以在 GitHub 上查找相应的 Git 提交。 + +## 延伸阅读 + +* “[GitHub 支持的 Subversion 属性](/articles/subversion-properties-supported-by-github)” diff --git a/translations/zh-CN/content/get-started/importing-your-projects-to-github/working-with-subversion-on-github/what-are-the-differences-between-subversion-and-git.md b/translations/zh-CN/content/get-started/importing-your-projects-to-github/working-with-subversion-on-github/what-are-the-differences-between-subversion-and-git.md new file mode 100644 index 0000000000..bd66708183 --- /dev/null +++ b/translations/zh-CN/content/get-started/importing-your-projects-to-github/working-with-subversion-on-github/what-are-the-differences-between-subversion-and-git.md @@ -0,0 +1,71 @@ +--- +title: Subversion 和 Git 有哪些区别? +intro: Subversion (SVN) 仓库与 Git 仓库类似,但涉及项目架构时有一些区别。 +redirect_from: + - /articles/what-are-the-differences-between-svn-and-git + - /articles/what-are-the-differences-between-subversion-and-git + - /github/importing-your-projects-to-github/what-are-the-differences-between-subversion-and-git + - /github/importing-your-projects-to-github/working-with-subversion-on-github/what-are-the-differences-between-subversion-and-git +versions: + fpt: '*' + ghes: '*' + ghec: '*' +shortTitle: Subversion 与 Git 差异 +--- + +## 目录结构 + +项目中的每个*引用*或标记的提交快照均在特定子目录中组织,例如 `trunk`、`branches` 和 `tags`。 例如,具有两项正在开发的功能的 SVN 项目可能类似如下: + + sample_project/trunk/README.md + sample_project/trunk/lib/widget.rb + sample_project/branches/new_feature/README.md + sample_project/branches/new_feature/lib/widget.rb + sample_project/branches/another_new_feature/README.md + sample_project/branches/another_new_feature/lib/widget.rb + +SVN 工作流程可能类似如下: + +* `trunk` 目录表示项目的最新稳定发行版。 +* 活动功能工作在 `branches` 下的子目录内进行开发。 +* 功能完成后,该功能目录将合并到 `trunk` 中并删除。 + +Git 项目也存储在一个目录中。 不过,Git 通过将其引用存储在一个特殊的 *.git* 目录中来模糊其详细信息。 例如,具有两项正在开发的功能的 Git 项目可能类似如下: + + sample_project/.git + sample_project/README.md + sample_project/lib/widget.rb + +Git 工作流程可能类似如下: + +* Git 仓库在 *.git* 目录中存储所有其分支和标记的完整历史记录。 +* 最新稳定发行版包含在默认分支中。 +* 活动功能工作在单独的分支中进行开发。 +* 功能完成后,该功能分支将合并到默认分支中并删除。 + +与 SVN 不同的是,使用 Git 时目录结构保持不变,但文件内容会根据您的分支而变化。 + +## 包括子项目 + +*子项目*是在主项目之外的某个位置开发和管理的项目。 您通常导入子项目以将一些功能添加到您的项目,而无需自行维护代码。 每当子项目更新时,您可以将其与您的项目同步,以确保所有内容都是最新的。 + +在 SVN 中,子项目称为 *SVN 外部*。 在 Git 中,它称为 *Git 子模块*。 尽管在概念上类似,但 Git 子模块不会自动保持最新状态;您必须明确要求才能将新版本带入您的项目。 + +更多信息请参阅 Git 文档中的“[Git 工具子模块](https://git-scm.com/book/en/Git-Tools-Submodules)”。 + +## 保留历史记录 + +SVN 配置为假设项目的历史记录永不更改。 Git 允许您使用 [`git rebase`](/github/getting-started-with-github/about-git-rebase) 等工具修改以前的提交和更改。 + +{% tip %} + +[GitHub 支持 Subversion 客户端](/articles/support-for-subversion-clients),如果您在同一项目内同时使用 Git 和 SVN,可能会产生一些意外的结果。 如果您操纵了 Git 的提交历史记录,这些相同的提交在 SVN 的历史记录中将始终保留。 如果意外提交了一些敏感数据,我们有[一篇文章可帮助您将其从 Git 的历史中删除](/articles/removing-sensitive-data-from-a-repository)。 + +{% endtip %} + +## 延伸阅读 + +- “[GitHub 支持的 Subversion 属性](/articles/subversion-properties-supported-by-github)” +- [_Git SCM_ 书籍中的“分支与合并”](https://git-scm.com/book/en/Git-Branching-Basic-Branching-and-Merging) +- “[将源代码导入到 GitHub](/articles/importing-source-code-to-github)” +- "[源代码迁移工具](/articles/source-code-migration-tools)" diff --git a/translations/zh-CN/content/get-started/index.md b/translations/zh-CN/content/get-started/index.md index 3532e3373b..918268f517 100644 --- a/translations/zh-CN/content/get-started/index.md +++ b/translations/zh-CN/content/get-started/index.md @@ -57,8 +57,11 @@ children: - /learning-about-github - /signing-up-for-github - /using-github + - /writing-on-github + - /importing-your-projects-to-github - /exploring-projects-on-github - /getting-started-with-git - /using-git + - /privacy-on-github --- diff --git a/translations/zh-CN/content/get-started/learning-about-github/githubs-products.md b/translations/zh-CN/content/get-started/learning-about-github/githubs-products.md index 9256eedebf..9c2cd1dd83 100644 --- a/translations/zh-CN/content/get-started/learning-about-github/githubs-products.md +++ b/translations/zh-CN/content/get-started/learning-about-github/githubs-products.md @@ -47,11 +47,11 @@ When you read {% data variables.product.prodname_docs %}, make sure to select th - 私有仓库中的高级工具和洞察力: - 必需拉取请求审查 - 多个拉取请求审查者 + - 受保护分支 + - 代码所有者 - 自动链接的引用 - {% data variables.product.prodname_pages %} - Wikis - - 受保护分支 - - 代码所有者 - 仓库洞察图:脉冲、贡献者、流量、提交、代码频率、网络和复刻 ## 组织的 {% data variables.product.prodname_free_team %} @@ -74,14 +74,14 @@ When you read {% data variables.product.prodname_docs %}, make sure to select th - 私有仓库中的高级工具和洞察力: - 必需拉取请求审查 - 多个拉取请求审查者 - - {% data variables.product.prodname_pages %} - - Wikis - - 受保护分支 - - 代码所有者 - - 仓库洞察图:脉冲、贡献者、流量、提交、代码频率、网络和复刻 - 草稿拉取请求 - 团队拉取请求审查 + - 受保护分支 + - 代码所有者 - 预定提醒 + - {% data variables.product.prodname_pages %} + - Wikis + - 仓库洞察图:脉冲、贡献者、流量、提交、代码频率、网络和复刻 {% ifversion fpt or ghec %} - The option to enable {% data variables.product.prodname_github_codespaces %} - Organization owners can enable {% data variables.product.prodname_github_codespaces %} for the organization by setting a spending limit and granting user permissions for members of their organization. For more information, see "[Enabling Codespaces for your organization](/codespaces/managing-codespaces-for-your-organization/enabling-codespaces-for-your-organization)." diff --git a/translations/zh-CN/content/get-started/privacy-on-github/about-githubs-use-of-your-data.md b/translations/zh-CN/content/get-started/privacy-on-github/about-githubs-use-of-your-data.md new file mode 100644 index 0000000000..dd7b505275 --- /dev/null +++ b/translations/zh-CN/content/get-started/privacy-on-github/about-githubs-use-of-your-data.md @@ -0,0 +1,41 @@ +--- +title: 关于 GitHub 使用您的数据 +redirect_from: + - /articles/about-github-s-use-of-your-data + - /articles/about-githubs-use-of-your-data + - /github/understanding-how-github-uses-and-protects-your-data/about-githubs-use-of-your-data +intro: '{% data variables.product.product_name %} 使用您的仓库数据来将您连接到相关工具、人员、项目和信息。' +versions: + fpt: '*' + ghec: '*' +topics: + - Policy + - Legal +shortTitle: GitHub 对您的数据的使用 +--- + +## 关于 {% data variables.product.product_name %} 使用您的数据 + +{% data variables.product.product_name %} 汇总元数据并剖析内容模式,以在产品中提交一般化的见解。 它使用公共仓库中的数据,当仓库所有者选择与 {% data variables.product.product_name %} 共享数据时还会使用私有仓库中的元数据并汇总数据。 如果选择使用私有仓库的数据,它会对特定私有仓库执行只读分析。 + +{% data reusables.repositories.about-github-archive-program %} 更多信息请参阅“[关于在 {% data variables.product.prodname_dotcom %} 上存档内容](/github/creating-cloning-and-archiving-repositories/about-archiving-content-and-data-on-github#about-the-github-archive-program)”。 + +{% data reusables.user_settings.export-data %} 更多信息请参阅“[请求个人帐户数据的存档](/articles/requesting-an-archive-of-your-personal-account-s-data)”。 + +如果您选择使用私人仓库的数据,我们将继续按照[服务条款](/free-pro-team@latest/github/site-policy/github-terms-of-service),将您的私人数据、源代码或商业秘密视为机密和私密。 我们了解的信息只来自汇总的数据。 更多信息请参阅“[管理私有仓库的数据使用设置](/get-started/privacy-on-github/managing-data-use-settings-for-your-private-repository)”。 + +我们会在 [{% data variables.product.prodname_dotcom %} 博客](https://github.com/blog)中宣布使用元数据或汇总数据的重要新功能。 + +## 数据如何改进安全建议 + +例如,在使用您的数据时,我们可能会检测您的公共仓库依赖项中的安全漏洞并提醒您。 更多信息请参阅“[关于易受攻击的依赖项的警报](/github/managing-security-vulnerabilities/about-alerts-for-vulnerable-dependencies)”。 + +为检测潜在安全漏洞,{% data variables.product.product_name %} 会扫描依赖项清单文件的内容,以列出项目的依赖项。 + +{% data variables.product.product_name %} 还会获知您对依赖项清单所做的更改。 例如,如果您在获得安全警报后将有漏洞的依赖项升级到安全版本,其他人也执行同样的操作,{% data variables.product.product_name %} 就会了解如何修补漏洞,并对受影响的仓库推荐类似的补丁。 + +## 隐私和数据共享 + +私有仓库数据由电脑扫描,{% data variables.product.product_name %} 员工不能查看。 除了我们[服务条款](/free-pro-team@latest/github/site-policy/github-terms-of-service#3-access)中所述的内容之外,绝不会有人查看私有仓库的内容。 + +您的个别人员或仓库数据不会与第三方共享。 我们可能与合作伙伴共享分析后获得的汇总数据。 diff --git a/translations/zh-CN/content/get-started/privacy-on-github/index.md b/translations/zh-CN/content/get-started/privacy-on-github/index.md new file mode 100644 index 0000000000..15d0962799 --- /dev/null +++ b/translations/zh-CN/content/get-started/privacy-on-github/index.md @@ -0,0 +1,16 @@ +--- +title: Privacy on GitHub +redirect_from: + - /categories/understanding-how-github-uses-and-protects-your-data + - /github/understanding-how-github-uses-and-protects-your-data +versions: + fpt: '*' + ghec: '*' +children: + - /about-githubs-use-of-your-data + - /requesting-an-archive-of-your-personal-accounts-data + - /managing-data-use-settings-for-your-private-repository + - /opting-into-or-out-of-the-github-archive-program-for-your-public-repository +shortTitle: Privacy on GitHub +--- + diff --git a/translations/zh-CN/content/get-started/privacy-on-github/managing-data-use-settings-for-your-private-repository.md b/translations/zh-CN/content/get-started/privacy-on-github/managing-data-use-settings-for-your-private-repository.md new file mode 100644 index 0000000000..81430fd179 --- /dev/null +++ b/translations/zh-CN/content/get-started/privacy-on-github/managing-data-use-settings-for-your-private-repository.md @@ -0,0 +1,36 @@ +--- +title: Managing data use settings for your private repository +intro: 'To help {% data variables.product.product_name %} connect you to relevant tools, people, projects, and information, you can configure data use for your private repository.' +redirect_from: + - /articles/opting-into-or-out-of-data-use-for-your-private-repository + - /github/understanding-how-github-uses-and-protects-your-data/opting-into-or-out-of-data-use-for-your-private-repository + - /github/understanding-how-github-uses-and-protects-your-data/managing-data-use-settings-for-your-private-repository +versions: + fpt: '*' + ghec: '*' +topics: + - Policy + - Legal +shortTitle: Manage data use for private repo +--- + +## About data use for your private repository + +When you enable data use for your private repository, you'll be able to access the dependency graph, where you can track your repository's dependencies and receive {% data variables.product.prodname_dependabot_alerts %} when {% data variables.product.product_name %} detects vulnerable dependencies. For more information, see "[About alerts for vulnerable dependencies](/github/managing-security-vulnerabilities/about-alerts-for-vulnerable-dependencies#dependabot-alerts-for-vulnerable-dependencies)." + +## Enabling or disabling data use features + +{% data reusables.security.security-and-analysis-features-enable-read-only %} + +{% data reusables.repositories.navigate-to-repo %} +{% data reusables.repositories.sidebar-settings %} +{% data reusables.repositories.navigate-to-security-and-analysis %} +4. Under "Configure security and analysis features", to the right of the feature, click **Disable** or **Enable**.{% ifversion fpt %} + !["Enable" or "Disable" button for "Configure security and analysis" features](/assets/images/help/repository/security-and-analysis-disable-or-enable-fpt-private.png){% elsif ghec %} + !["Enable" or "Disable" button for "Configure security and analysis" features](/assets/images/help/repository/security-and-analysis-disable-or-enable-ghec-private.png){% endif %} + +## Further reading + +- "[About {% data variables.product.prodname_dotcom %}'s use of your data](/articles/about-github-s-use-of-your-data)" +- "[Viewing and updating vulnerable dependencies in your repository](/github/managing-security-vulnerabilities/viewing-and-updating-vulnerable-dependencies-in-your-repository)" +- "[Managing security and analysis settings for your repository](/github/administering-a-repository/managing-security-and-analysis-settings-for-your-repository)" diff --git a/translations/zh-CN/content/get-started/privacy-on-github/opting-into-or-out-of-the-github-archive-program-for-your-public-repository.md b/translations/zh-CN/content/get-started/privacy-on-github/opting-into-or-out-of-the-github-archive-program-for-your-public-repository.md new file mode 100644 index 0000000000..f11de993ac --- /dev/null +++ b/translations/zh-CN/content/get-started/privacy-on-github/opting-into-or-out-of-the-github-archive-program-for-your-public-repository.md @@ -0,0 +1,25 @@ +--- +title: 选择加入或退出公共仓库的 GitHub 存档计划 +intro: '您可以管理 {% data variables.product.prodname_dotcom %} 是否将您的公共仓库包含在 {% data variables.product.prodname_archive %} 中,以帮助确保长期保存世界的开源软件。' +permissions: 'People with admin permissions to a public repository can opt into or out of the {% data variables.product.prodname_archive %}.' +redirect_from: + - /github/understanding-how-github-uses-and-protects-your-data/opting-into-or-out-of-the-github-archive-program-for-your-public-repository +versions: + fpt: '*' + ghec: '*' +topics: + - Policy + - Legal +shortTitle: GitHub 存档计划 +--- + +{% data reusables.repositories.about-github-archive-program %} 更多信息请参阅“[关于在 {% data variables.product.prodname_dotcom %} 上存档内容](/github/creating-cloning-and-archiving-repositories/about-archiving-content-and-data-on-github#about-the-github-archive-program)”。 + +如果您对仓库选择退出 {% data variables.product.prodname_archive %},该仓库将被排除在 {% data variables.product.prodname_dotcom %} 未来可能创建的任何长期存档之外。 我们还会向每个合作伙伴组织发送请求,请求从他们的数据中删除该仓库。 + +{% data reusables.repositories.navigate-to-repo %} +{% data reusables.repositories.sidebar-settings %} +3. 在“Features(功能)”下,选择或取消选择 **Preserve this repository(保存此仓库)**。 ![允许 {% data variables.product.prodname_dotcom %} 在 {% data variables.product.prodname_archive %} 中包含您的代码的复选框](/assets/images/help/repository/github-archive-program-checkbox.png) + +## 延伸阅读 +- [{% data variables.product.prodname_archive %} 常见问题](https://archiveprogram.github.com/faq/) diff --git a/translations/zh-CN/content/get-started/privacy-on-github/requesting-an-archive-of-your-personal-accounts-data.md b/translations/zh-CN/content/get-started/privacy-on-github/requesting-an-archive-of-your-personal-accounts-data.md new file mode 100644 index 0000000000..090c8d012d --- /dev/null +++ b/translations/zh-CN/content/get-started/privacy-on-github/requesting-an-archive-of-your-personal-accounts-data.md @@ -0,0 +1,42 @@ +--- +title: 请求个人帐户数据的存档 +redirect_from: + - /articles/requesting-an-archive-of-your-personal-account-s-data + - /articles/requesting-an-archive-of-your-personal-accounts-data + - /github/understanding-how-github-uses-and-protects-your-data/requesting-an-archive-of-your-personal-accounts-data +intro: '{% data reusables.user_settings.export-data %}' +versions: + fpt: '*' + ghec: '*' +topics: + - Policy + - Legal +shortTitle: 请求帐户存档 +--- + +{% data variables.product.product_name %} 存储您个人帐户活动的仓库和个人资料元数据。 您可以通过 {% data variables.product.prodname_dotcom_the_website %} 上的设置或使用用户迁移 API 导出个人帐户的数据。 + +有关可供导出的数据 {% data variables.product.product_name %} 存储的更多信息,请参阅“[下载用户迁移存档](/rest/reference/migrations#download-a-user-migration-archive)”和“[关于 {% data variables.product.product_name %} 对数据的使用](/articles/about-github-s-use-of-your-data)”。 + +当您通过 {% data variables.product.prodname_dotcom_the_website %} 上的设置请求导出个人数据时,{% data variables.product.product_name %} 会将您的个人数据打包到 `tar.gz` 文件中,并向您的主电子邮件地址发送含有下载链接的电子邮件。 + +默认情况下,下载链接会在七天后过期。 在下载链接过期之前的任何时候,您都可以从用户设置中禁用该链接。 更多信息请参阅“[删除对个人帐户数据存档的访问权限](/articles/requesting-an-archive-of-your-personal-account-s-data/#deleting-access-to-an-archive-of-your-personal-accounts-data)”。 + +如果您的操作系统无法本机解压缩 `tar.gz` 文件,则可以使用第三方工具解压缩存档的文件。 更多信息请参阅 Opensource.com 上的“[如何解压缩 tar.gz 文件](https://opensource.com/article/17/7/how-unzip-targz-file)”。 + +生成的 `tar.gz` 文件在您开始数据导出时反映存储的数据。 + +## 下载个人帐户数据的存档 + +{% data reusables.user_settings.access_settings %} +{% data reusables.user_settings.account_settings %} +3. 在“Export account data(导出帐户数据)”下,单击 **Start export(开始导出)**或 **New export(新导出)**。 ![开始个人数据导出按钮突出显示](/assets/images/help/repository/export-personal-data.png) ![新个人数据导出按钮突出显示](/assets/images/help/repository/new-export.png) +4. 导出准备好供下载后,{% data variables.product.product_name %} 将发送下载链接到您的主电子邮件地址。 +5. 单击电子邮件中的下载链接并在提示时重新输入密码。 +6. 您将被重定向到可以下载的 `tar.gz` 文件。 + +## 删除个人帐户数据存档的访问权限 + +{% data reusables.user_settings.access_settings %} +{% data reusables.user_settings.account_settings %} +3. 要在其过期之前禁用发送到您电子邮件的下载链接,请在“Export account data(导出帐户数据)”下,找到您想要禁用的数据导出下载,然后单击 **Delete(删除)**。 ![删除个人数据导出包按钮突出显示](/assets/images/help/repository/delete-export-personal-account-data.png) diff --git a/translations/zh-CN/content/get-started/using-github/github-command-palette.md b/translations/zh-CN/content/get-started/using-github/github-command-palette.md index 66afeace32..112ea50bf5 100644 --- a/translations/zh-CN/content/get-started/using-github/github-command-palette.md +++ b/translations/zh-CN/content/get-started/using-github/github-command-palette.md @@ -135,14 +135,14 @@ These keystrokes are available when the command palette is in navigation and sea These commands are available from all scopes. -| Command | Behavior | -|:------------------------------------ |:------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| `Import repository` | Create a new repository by importing a project from another version control system. For more information, see "[Importing a repository with GitHub importer](/github/importing-your-projects-to-github/importing-source-code-to-github/importing-a-repository-with-github-importer)." | -| `New gist` | Open a new gist. For more information, see "[Creating a gist](/github/writing-on-github/editing-and-sharing-content-with-gists/creating-gists)." | -| `New organization` | Create a new organization. 更多信息请参阅“[从头开始创建新组织](/organizations/collaborating-with-groups-in-organizations/creating-a-new-organization-from-scratch)”。 | -| `新项目` | Create a new project board. For more information, see "[Creating a project](/issues/trying-out-the-new-projects-experience/creating-a-project)." | -| `New repository` | Create a new repository from scratch. 更多信息请参阅“[创建新仓库](/repositories/creating-and-managing-repositories/creating-a-new-repository)”。 | -| `Switch theme to ` | Change directly to a different theme for the UI. For more information, see "[Managing your theme settings](/account-and-profile/setting-up-and-managing-your-github-user-account/managing-user-account-settings/managing-your-theme-settings)." | +| Command | Behavior | +|:------------------------------------ |:------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | +| `Import repository` | Create a new repository by importing a project from another version control system. For more information, see "[Importing a repository with GitHub importer](/get-started/importing-your-projects-to-github/importing-source-code-to-github/importing-a-repository-with-github-importer)." | +| `New gist` | Open a new gist. For more information, see "[Creating a gist](/get-started/writing-on-github/editing-and-sharing-content-with-gists/creating-gists)." | +| `New organization` | Create a new organization. 更多信息请参阅“[从头开始创建新组织](/organizations/collaborating-with-groups-in-organizations/creating-a-new-organization-from-scratch)”。 | +| `新项目` | Create a new project board. For more information, see "[Creating a project](/issues/trying-out-the-new-projects-experience/creating-a-project)." | +| `New repository` | Create a new repository from scratch. 更多信息请参阅“[创建新仓库](/repositories/creating-and-managing-repositories/creating-a-new-repository)”。 | +| `Switch theme to ` | Change directly to a different theme for the UI. For more information, see "[Managing your theme settings](/account-and-profile/setting-up-and-managing-your-github-user-account/managing-user-account-settings/managing-your-theme-settings)." | ### Organization commands diff --git a/translations/zh-CN/content/get-started/using-github/github-mobile.md b/translations/zh-CN/content/get-started/using-github/github-mobile.md index 2625518bd9..7fea5b4bf5 100644 --- a/translations/zh-CN/content/get-started/using-github/github-mobile.md +++ b/translations/zh-CN/content/get-started/using-github/github-mobile.md @@ -21,10 +21,12 @@ redirect_from: {% data variables.product.prodname_mobile %} gives you a way to do high-impact work on {% data variables.product.product_name %} quickly and from anywhere. {% data variables.product.prodname_mobile %} is a safe and secure way to access your {% data variables.product.product_name %} data through a trusted, first-party client application. With {% data variables.product.prodname_mobile %} you can: + - Manage, triage, and clear notifications - Read, review, and collaborate on issues and pull requests - Search for, browse, and interact with users, repositories, and organizations - Receive a push notification when someone mentions your username +{% ifversion fpt or ghec %}- Secure your GitHub.com account with two-factor authentication{% endif %} For more information about notifications for {% data variables.product.prodname_mobile %}, see "[Configuring notifications](/github/managing-subscriptions-and-notifications-on-github/configuring-notifications#enabling-push-notifications-with-github-mobile)." diff --git a/translations/zh-CN/content/get-started/writing-on-github/editing-and-sharing-content-with-gists/creating-gists.md b/translations/zh-CN/content/get-started/writing-on-github/editing-and-sharing-content-with-gists/creating-gists.md new file mode 100644 index 0000000000..00a5333f72 --- /dev/null +++ b/translations/zh-CN/content/get-started/writing-on-github/editing-and-sharing-content-with-gists/creating-gists.md @@ -0,0 +1,85 @@ +--- +title: Creating gists +intro: 'You can create two kinds of gists: {% ifversion ghae %}internal{% else %}public{% endif %} and secret. Create {% ifversion ghae %}an internal{% else %}a public{% endif %} gist if you''re ready to share your ideas with {% ifversion ghae %}enterprise members{% else %}the world{% endif %} or a secret gist if you''re not.' +permissions: '{% data reusables.enterprise-accounts.emu-permission-gist %}' +redirect_from: + - /articles/about-gists + - /articles/cannot-delete-an-anonymous-gist + - /articles/deleting-an-anonymous-gist + - /articles/creating-gists + - /github/writing-on-github/creating-gists + - /github/writing-on-github/editing-and-sharing-content-with-gists/creating-gists +versions: + fpt: '*' + ghes: '*' + ghae: '*' + ghec: '*' +--- +## About gists + +Every gist is a Git repository, which means that it can be forked and cloned. {% ifversion not ghae %}If you are signed in to {% data variables.product.product_name %} when{% else %}When{% endif %} you create a gist, the gist will be associated with your account and you will see it in your list of gists when you navigate to your {% data variables.gists.gist_homepage %}. + +Gists can be {% ifversion ghae %}internal{% else %}public{% endif %} or secret. {% ifversion ghae %}Internal{% else %}Public{% endif %} gists show up in {% data variables.gists.discover_url %}, where {% ifversion ghae %}enterprise members{% else %}people{% endif %} can browse new gists as they're created. They're also searchable, so you can use them if you'd like other people to find and see your work. + +Secret gists don't show up in {% data variables.gists.discover_url %} and are not searchable. Secret gists aren't private. If you send the URL of a secret gist to {% ifversion ghae %}another enterprise member{% else %}a friend{% endif %}, they'll be able to see it. However, if {% ifversion ghae %}any other enterprise member{% else %}someone you don't know{% endif %} discovers the URL, they'll also be able to see your gist. If you need to keep your code away from prying eyes, you may want to [create a private repository](/articles/creating-a-new-repository) instead. + +{% data reusables.gist.cannot-convert-public-gists-to-secret %} + +{% ifversion ghes %} + +If your site administrator has disabled private mode, you can also use anonymous gists, which can be public or secret. + +{% data reusables.gist.anonymous-gists-cannot-be-deleted %} + +{% endif %} + +You'll receive a notification when: +- You are the author of a gist. +- Someone mentions you in a gist. +- You subscribe to a gist, by clicking **Subscribe** at the top of any gist. + +{% ifversion fpt or ghes or ghec %} + +You can pin gists to your profile so other people can see them easily. For more information, see "[Pinning items to your profile](/articles/pinning-items-to-your-profile)." + +{% endif %} + +You can discover {% ifversion ghae %}internal{% else %}public{% endif %} gists others have created by going to the {% data variables.gists.gist_homepage %} and clicking **All Gists**. This will take you to a page of all gists sorted and displayed by time of creation or update. You can also search gists by language with {% data variables.gists.gist_search_url %}. Gist search uses the same search syntax as [code search](/search-github/searching-on-github/searching-code). + +Since gists are Git repositories, you can view their full commit history, complete with diffs. You can also fork or clone gists. For more information, see ["Forking and cloning gists"](/articles/forking-and-cloning-gists). + +You can download a ZIP file of a gist by clicking the **Download ZIP** button at the top of the gist. You can embed a gist in any text field that supports Javascript, such as a blog post. To get the embed code, click the clipboard icon next to the **Embed** URL of a gist. To embed a specific gist file, append the **Embed** URL with `?file=FILENAME`. + +{% ifversion fpt or ghec %} + +Gist supports mapping GeoJSON files. These maps are displayed in embedded gists, so you can easily share and embed maps. For more information, see "[Working with non-code files](/repositories/working-with-files/using-files/working-with-non-code-files#mapping-geojson-files-on-github)." + +{% endif %} + +## Creating a gist + +Follow the steps below to create a gist. + +{% ifversion fpt or ghes or ghae or ghec %} +{% note %} + +You can also create a gist using the {% data variables.product.prodname_cli %}. For more information, see "[`gh gist create`](https://cli.github.com/manual/gh_gist_create)" in the {% data variables.product.prodname_cli %} documentation. + +Alternatively, you can drag and drop a text file from your desktop directly into the editor. + +{% endnote %} +{% endif %} + +1. Sign in to {% data variables.product.product_name %}. +2. Navigate to your {% data variables.gists.gist_homepage %}. +3. Type an optional description and name for your gist. +![Gist name description](/assets/images/help/gist/gist_name_description.png) + +4. Type the text of your gist into the gist text box. +![Gist text box](/assets/images/help/gist/gist_text_box.png) + +5. Optionally, to create {% ifversion ghae %}an internal{% else %}a public{% endif %} gist, click {% octicon "triangle-down" aria-label="The downwards triangle icon" %}, then click **Create {% ifversion ghae %}internal{% else %}public{% endif %} gist**. +![Drop-down menu to select gist visibility]{% ifversion ghae %}(/assets/images/help/gist/gist-visibility-drop-down-ae.png){% else %}(/assets/images/help/gist/gist-visibility-drop-down.png){% endif %} + +6. Click **Create secret Gist** or **Create {% ifversion ghae %}internal{% else %}public{% endif %} gist**. + ![Button to create gist](/assets/images/help/gist/create-secret-gist-button.png) diff --git a/translations/zh-CN/content/get-started/writing-on-github/editing-and-sharing-content-with-gists/forking-and-cloning-gists.md b/translations/zh-CN/content/get-started/writing-on-github/editing-and-sharing-content-with-gists/forking-and-cloning-gists.md new file mode 100644 index 0000000000..2e40b26e95 --- /dev/null +++ b/translations/zh-CN/content/get-started/writing-on-github/editing-and-sharing-content-with-gists/forking-and-cloning-gists.md @@ -0,0 +1,36 @@ +--- +title: 复刻和克隆 Gist +intro: Gist 实际上是 Git 仓库,这意味着即使您不是原作者,也可以复刻或克隆任何 Gist。 还可以查看 Gist 的完整提交历史记录,包括差异。 +permissions: '{% data reusables.enterprise-accounts.emu-permission-gist %}' +redirect_from: + - /articles/forking-and-cloning-gists + - /github/writing-on-github/forking-and-cloning-gists + - /github/writing-on-github/editing-and-sharing-content-with-gists/forking-and-cloning-gists +versions: + fpt: '*' + ghes: '*' + ghae: '*' + ghec: '*' +--- + +## 复刻 Gist + +每个 Gist 都指示哪些复刻中有活动,使您更容易找到他人的有趣更改。 + +![Gist 复刻](/assets/images/help/gist/gist_forks.png) + +## 克隆 Gist + +如果要对 Gist 进行本地更改然后将其推送到 web 上,您可以克隆 Gist 然后进行提交,与使用任何 Git 仓库的方法一样。 更多信息请参阅“[克隆仓库](/articles/cloning-a-repository)”。 + +![Gist 克隆按钮](/assets/images/help/gist/gist_clone_btn.png) + +## 查看 Gist 提交历史记录 + +To view a gist's full commit history, click the "Revisions" tab at the top of the gist. + +![Gist 版本选项卡](/assets/images/help/gist/gist_revisions_tab.png) + +您将看到该 Gist 的完整提交历史记录及其差异。 + +![Gist 版本页面](/assets/images/help/gist/gist_history.png) diff --git a/translations/zh-CN/content/get-started/writing-on-github/editing-and-sharing-content-with-gists/index.md b/translations/zh-CN/content/get-started/writing-on-github/editing-and-sharing-content-with-gists/index.md new file mode 100644 index 0000000000..72c14a0d92 --- /dev/null +++ b/translations/zh-CN/content/get-started/writing-on-github/editing-and-sharing-content-with-gists/index.md @@ -0,0 +1,19 @@ +--- +title: 编辑内容以及与 gist 共享内容 +intro: '' +redirect_from: + - /categories/23/articles + - /categories/gists + - /articles/editing-and-sharing-content-with-gists + - /github/writing-on-github/editing-and-sharing-content-with-gists +versions: + fpt: '*' + ghes: '*' + ghae: '*' + ghec: '*' +children: + - /creating-gists + - /forking-and-cloning-gists +shortTitle: 与 gists 共享内容 +--- + diff --git a/translations/zh-CN/content/get-started/writing-on-github/getting-started-with-writing-and-formatting-on-github/about-writing-and-formatting-on-github.md b/translations/zh-CN/content/get-started/writing-on-github/getting-started-with-writing-and-formatting-on-github/about-writing-and-formatting-on-github.md new file mode 100644 index 0000000000..b885bb92a8 --- /dev/null +++ b/translations/zh-CN/content/get-started/writing-on-github/getting-started-with-writing-and-formatting-on-github/about-writing-and-formatting-on-github.md @@ -0,0 +1,45 @@ +--- +title: 关于在 GitHub 上编写和设置格式 +intro: GitHub 结合了用于格式化文字的语法,称为 GitHub Flavored Markdown,具有一些独特的写作功能。 +redirect_from: + - /articles/about-writing-and-formatting-on-github + - /github/writing-on-github/about-writing-and-formatting-on-github + - /github/writing-on-github/getting-started-with-writing-and-formatting-on-github/about-writing-and-formatting-on-github +versions: + fpt: '*' + ghes: '*' + ghae: '*' + ghec: '*' +shortTitle: 在 GitHub 上编写和格式化 +--- + +[Markdown](http://daringfireball.net/projects/markdown/) 是一种易于阅读和编写的语法,用于格式化纯文本。 + +我们添加了一些自定义功能来创建 {% data variables.product.prodname_dotcom %} Flavored Markdown,用于格式化网站中的散文和代码。 + +您也可以在拉取请求和议题中使用 [@提及](/articles/basic-writing-and-formatting-syntax/#mentioning-people-and-teams)、[议题和 PR 参考](/articles/basic-writing-and-formatting-syntax/#referencing-issues-and-pull-requests)和[表情符号](/articles/basic-writing-and-formatting-syntax/#using-emoji)等功能与其他用户交互。 + +## 文本格式工具栏 + +{% data variables.product.product_name %} 上的每个评论字段都包含文本格式工具栏,用于格式化文本,而无需了解 Markdown 语法。 除了 Markdown 格式(如粗体和斜体样式)和创建标题、链接及列表等之外,工具栏还包括 {% data variables.product.product_name %} 特定的功能,如 @提及、任务列表以及链接到议题和拉取请求。 + +{% if fixed-width-font-gfm-fields %} + +## Enabling fixed-width fonts in the editor + +You can enable a fixed-width font in every comment field on {% data variables.product.product_name %}. Each character in a fixed-width, or monospace, font occupies the same horizontal space which can make it easier to edit advanced Markdown structures such as tables and code snippets. + +![Screenshot showing the {% data variables.product.product_name %} comment field with fixed-width fonts enabled](/assets/images/help/writing/fixed-width-example.png) + +{% data reusables.user_settings.access_settings %} +{% data reusables.user_settings.appearance-settings %} +1. Under "Markdown editor font preference", select **Use a fixed-width (monospace) font when editing Markdown**. ![Screenshot showing the {% data variables.product.product_name %} comment field with fixed width fonts enabled](/assets/images/help/writing/enable-fixed-width.png) + +{% endif %} + +## 延伸阅读 + +- [{% data variables.product.prodname_dotcom %} Flavored Markdown 规格](https://github.github.com/gfm/) +- "[基本撰写和格式语法](/articles/basic-writing-and-formatting-syntax)" +- "[使用高级格式](/articles/working-with-advanced-formatting)" +- "[熟悉 Markdown](https://guides.github.com/features/mastering-markdown/)" diff --git a/translations/zh-CN/content/get-started/writing-on-github/getting-started-with-writing-and-formatting-on-github/basic-writing-and-formatting-syntax.md b/translations/zh-CN/content/get-started/writing-on-github/getting-started-with-writing-and-formatting-on-github/basic-writing-and-formatting-syntax.md new file mode 100644 index 0000000000..d529b5611d --- /dev/null +++ b/translations/zh-CN/content/get-started/writing-on-github/getting-started-with-writing-and-formatting-on-github/basic-writing-and-formatting-syntax.md @@ -0,0 +1,344 @@ +--- +title: 基本撰写和格式语法 +intro: 使用简单的语法在 GitHub 上为您的散文和代码创建复杂的格式。 +redirect_from: + - /articles/basic-writing-and-formatting-syntax + - /github/writing-on-github/basic-writing-and-formatting-syntax + - /github/writing-on-github/getting-started-with-writing-and-formatting-on-github/basic-writing-and-formatting-syntax +versions: + fpt: '*' + ghes: '*' + ghae: '*' + ghec: '*' +shortTitle: 基本格式语法 +--- + +## 标题 + +要创建标题,请在标题文本前添加一至六个 # 符号。 您使用的 # 数量将决定标题的大小。 + +```markdown +# 最大标题 +## 第二大标题 +###### 最小标题 +``` + +![渲染的 H1、H2 和 H6 标题](/assets/images/help/writing/headings-rendered.png) + +## 样式文本 + +您可以在评论字段和 `.md` 文件中以粗体、斜体或删除线的文字表示强调。 + +| 样式 | 语法 | 键盘快捷键 | 示例 | 输出 | +| -------- | ------------------ | ------------------------------------------------------------------------------------- | ------------------ | ---------------- | +| 粗体 | `** **` 或 `__ __` | Command+B (Mac) or Ctrl+B (Windows/Linux) | `**这是粗体文本**` | **这是粗体文本** | +| 斜体 | `* *` 或 `_ _`      | Command+I (Mac) or Ctrl+I (Windows/Linux) | `*这是斜体文本*` | *这是斜体文本* | +| 删除线 | `~~ ~~` | | `~~这是错误文本~~` | ~~这是错误文本~~ | +| 粗体和嵌入的斜体 | `** **` 和 `_ _` | | `**此文本 _非常_ 重要**` | **此文本_非常_重要** | +| 全部粗体和斜体 | `*** ***` | | `***所有这些文本都很重要***` | ***所有这些文本都是斜体*** | + +## 引用文本 + +You can quote text with a >. + +```markdown +Text that is not a quote + +> Text that is a quote +``` + +![渲染的引用文本](/assets/images/help/writing/quoted-text-rendered.png) + +{% tip %} + +**Tip:** When viewing a conversation, you can automatically quote text in a comment by highlighting the text, then typing R. 您可以单击 {% octicon "kebab-horizontal" aria-label="The horizontal kebab icon" %} 和 **Quote reply(引用回复)**引用整个评论。 有关键盘快捷键的更多信息,请参阅“[键盘快捷键](/articles/keyboard-shortcuts/)”。 + +{% endtip %} + +## 引用代码 + +使用单反引号可标注句子中的代码或命令。 The text within the backticks will not be formatted.{% ifversion fpt or ghae or ghes > 3.1 or ghec %} You can also press the Command+E (Mac) or Ctrl+E (Windows/Linux) keyboard shortcut to insert the backticks for a code block within a line of Markdown.{% endif %} + +```markdown +使用 `git status` 列出尚未提交的所有新文件或已修改文件。 +``` + +![渲染的内联代码块](/assets/images/help/writing/inline-code-rendered.png) + +要将代码或文本格式化为各自的不同块,请使用三反引号。 + +
+一些基本的 Git 命令为:
+```
+git status
+git add
+git commit
+```
+
+ +![渲染的代码块](/assets/images/help/writing/code-block-rendered.png) + +更多信息请参阅“[创建和突出显示代码块](/articles/creating-and-highlighting-code-blocks)”。 + +{% data reusables.user_settings.enabling-fixed-width-fonts %} + +## 链接 + +通过将链接文本包含在方括号 `[ ]` 内,然后将 URL 包含在括号 `( )` 内,可创建内联链接。 {% ifversion fpt or ghae or ghes > 3.1 or ghec %}You can also use the keyboard shortcut Command+K to create a link.{% endif %}{% ifversion fpt or ghae-issue-5434 or ghes > 3.3 or ghec %} When you have text selected, you can paste a URL from your clipboard to automatically create a link from the selection.{% endif %} + +`本站点是使用 [GitHub Pages](https://pages.github.com/) 构建的。` + +![渲染的链接](/assets/images/help/writing/link-rendered.png) + +{% tip %} + +**提示:**当评论中写入了有效 URL 时,{% data variables.product.product_name %} 会自动创建链接。 更多信息请参阅“[自动链接的引用和 URL](/articles/autolinked-references-and-urls)”。 + +{% endtip %} + +## 章节链接 + +{% data reusables.repositories.section-links %} + +## 相对链接 + +{% data reusables.repositories.relative-links %} + +## 图像 + +You can display an image by adding ! and wrapping the alt text in `[ ]`. 然后将图像链接包装在括号 `()` 中。 + +`![This is an image](https://myoctocat.com/assets/images/base-octocat.svg)` + +![渲染的图像](/assets/images/help/writing/image-rendered.png) + +{% data variables.product.product_name %} 支持将图像嵌入到您的议题、拉取请求{% ifversion fpt or ghec %}、讨论{% endif %}、评论和 `.md` 文件中。 您可以从仓库显示图像、添加在线图像链接或上传图像。 更多信息请参阅“[上传资产](#uploading-assets)”。 + +{% tip %} + +**提示:**想要显示仓库中的图像时,应该使用相对链接而不是绝对链接。 + +{% endtip %} + +下面是一些使用相对链接显示图像的示例。 + +| 上下文 | 相对链接 | +| ------------------ | ---------------------------------------------------------------------- | +| 在同一个分支上的 `.md` 文件中 | `/assets/images/electrocat.png` | +| 在另一个分支的 `.md` 文件中 | `/../main/assets/images/electrocat.png` | +| 在仓库的议题、拉取请求和评论中 | `../blob/main/assets/images/electrocat.png` | +| 在另一个仓库的 `.md` 文件中 | `/../../../../github/docs/blob/main/assets/images/electrocat.png` | +| 在另一个仓库的议题、拉取请求和评论中 | `../../../github/docs/blob/main/assets/images/electrocat.png?raw=true` | + +{% note %} + +**注意**:上表中的最后两个相对链接只有在查看者至少能够读取包含这些图像的私有仓库时,才可用于私有仓库中的图像。 + +{% endnote %} + +更多信息请参阅“[相对链接](#relative-links)”。 + +{% ifversion fpt or ghec or ghes > 3.3 or ghae-issue-5559 %} +### Specifying the theme an image is shown to + +You can specify the theme an image is displayed to by appending `#gh-dark-mode-only` or `#gh-light-mode-only` to the end of an image URL, in Markdown. + +We distinguish between light and dark color modes, so there are two options available. You can use these options to display images optimized for dark or light backgrounds. This is particularly helpful for transparent PNG images. + +| 上下文 | URL | +| ----------- | ------------------------------------------------------------------------ | +| Dark Theme | `![GitHub Light](https://github.com/github-light.png#gh-dark-mode-only)` | +| Light Theme | `![GitHub Dark](https://github.com/github-dark.png#gh-light-mode-only)` | +{% endif %} + +## 列表 + +通过在一行或多行文本前面添加 -* 可创建无序列表。 + +```markdown +- George Washington +- John Adams +- Thomas Jefferson +``` + +![渲染的无序列表](/assets/images/help/writing/unordered-list-rendered.png) + +要对列表排序,请在每行前面添加一个编号。 + +```markdown +1. James Madison +2. James Monroe +3. John Quincy Adams +``` + +![渲染的有序列表](/assets/images/help/writing/ordered-list-rendered.png) + +### 嵌套列表 + +通过在一个列表项下面缩进一个或多个其他列表项,可创建嵌套列表。 + +要通过 {% data variables.product.product_name %} 上的 web 编辑器或使用等宽字体的文本编辑器(例如 [Atom](https://atom.io/))创建嵌套列表,您可以直观地对齐列表。 在嵌套列表项的前面键入空格字符,直至列表标记字符(-*)位于其上方条目中第一个文本字符的正下方。 + +```markdown +1. 第一个列表项 + - 第一个嵌套列表项 + - 第二个嵌套列表项 +``` + +![突出显示对齐的嵌套列表](/assets/images/help/writing/nested-list-alignment.png) + +![含两级嵌套项的列表](/assets/images/help/writing/nested-list-example-1.png) + +要在 {% data variables.product.product_name %} 上的评论编辑器中创建嵌套列表(不使用等宽字体),您可以查看嵌套列表正上方的列表项,并计算该条目内容前面的字符数量。 然后在嵌套列表项的前面键入该数量的空格字符。 + +在此例中,您可以通过缩进嵌套列表项至少五个空格,在列表项 `100. 第一个列表项`的下面添加一个嵌套列表项,因为在`第一个列表项`的前面有五个字符 (`100.`) 。 + +```markdown +100. 第一个列表项 + - 第一个嵌套列表项 +``` + +![含一个嵌套列表项的列表](/assets/images/help/writing/nested-list-example-3.png) + +您可以使用相同的方法创建多层级嵌套列表。 例如,由于在第一个嵌套列表项中,嵌套列表项内容`第一个嵌套列表项`之前有七个字符 (`␣␣␣␣␣-␣`),因此需要将第二个嵌套列表项缩进七个空格。 + +```markdown +100. 第一个列表项 + - 第一个嵌套列表项 + - 第二个嵌套列表项 +``` + +![含两级嵌套项的列表](/assets/images/help/writing/nested-list-example-2.png) + +更多示例请参阅 [GitHub Flavored Markdown 规范](https://github.github.com/gfm/#example-265)。 + +## 任务列表 + +{% data reusables.repositories.task-list-markdown %} + +If a task list item description begins with a parenthesis, you'll need to escape it with \\: + +`- [ ] \(Optional) 打开后续议题` + +更多信息请参阅“[关于任务列表](/articles/about-task-lists)”。 + +## 提及人员和团队 + +您可以在 {% data variables.product.product_name %} 上提及人员或[团队](/articles/setting-up-teams/),方法是键入 @ 加上其用户名或团队名称。 这将触发通知并提请他们注意对话。 如果您在编辑的评论中提及某人的用户名或团队名称,该用户也会收到通知。 有关通知的更多信息,请参阅{% ifversion fpt or ghes or ghae or ghec %}"[关于通知](/github/managing-subscriptions-and-notifications-on-github/about-notifications){% else %}“[关于通知](/github/receiving-notifications-about-activity-on-github/about-notifications){% endif %}”。 + +`@github/support 您如何看待这些更新?` + +![渲染的 @提及](/assets/images/help/writing/mention-rendered.png) + +当您提及父团队时,其子团队的成员也会收到通知,这简化了与多个人员团队的沟通。 更多信息请参阅“[关于团队](/articles/about-teams)”。 + +键入 @ 符号将显示项目中的人员或团队列表。 列表会在您键入时进行过滤,因此一旦找到所需人员或团队的名称,您可以使用箭头键选择它,然后按 Tab 或 Enter 键以填写名称。 提及团队时,请输入 @组织/团队名称,该团队的所有成员将收到关注对话的提醒。 + +自动填写结果仅限于仓库协作者和该线程上的任何其他参与者。 + +## 引用议题和拉取请求 + +通过键入 # 可显示仓库中建议的议题和拉取请求列表。 键入议题或拉取请求的编号或标题以过滤列表,然后按 Tab 或 Enter 键以填写选中的结果。 + +更多信息请参阅“[自动链接的引用和 URL](/articles/autolinked-references-and-urls)”。 + +## 引用外部资源 + +{% data reusables.repositories.autolink-references %} + +{% ifversion ghes < 3.4 %} +## 内容附件 + +有些 {% data variables.product.prodname_github_apps %} 在 {% data variables.product.product_name %} 中提供链接到其注册域名的 URL 信息。 {% data variables.product.product_name %} 可渲染应用程序在正文或者议题或拉取请求的评论中的 URL 下提供的信息。 + +![内容附件](/assets/images/github-apps/content_reference_attachment.png) + +要查看内容附件,您必须拥有使用仓库中安装的内容附件 API 的 {% data variables.product.prodname_github_app %}。{% ifversion fpt or ghec %} 更多信息请参阅“[在个人帐户中安装应用程序](/articles/installing-an-app-in-your-personal-account)”和“[在组织中安装应用程序](/articles/installing-an-app-in-your-organization)”。{% endif %} + +内容附件不会显示在属于 markdown 链接的 URL 中。 + +For more information about building a {% data variables.product.prodname_github_app %} that uses content attachments, see "[Using Content Attachments](/apps/using-content-attachments)."{% endif %} + +## 上传资产 + +您可以通过拖放、从文件浏览器中选择或粘贴来上传图像等资产。 您可以将资产上传到议题、拉取请求、评论和仓库中的 `.md` 文件。 + +## 使用表情符号 + +通过键入 `:EMOJICODE:` 可在您的写作中添加表情符号。 + +`@octocat :+1: 这个 PR 看起来很棒 - 可以合并了! :shipit:` + +![渲染的表情符号](/assets/images/help/writing/emoji-rendered.png) + +键入 : 将显示建议的表情符号列表。 列表将在您键入时进行过滤,因此一旦找到所需表情符号,请按 **Tab** 或 **Enter** 键以填写选中的结果。 + +有关可用表情符号和代码的完整列表,请查看[表情符号备忘清单](https://github.com/ikatyang/emoji-cheat-sheet/blob/master/README.md)。 + +## 段落 + +通过在文本行之间留一个空白行,可创建新段落。 + +{% ifversion fpt or ghae-issue-5180 or ghes > 3.2 or ghec %} +## 脚注 + +您可以使用此括号语法为您的内容添加脚注: + +``` +Here is a simple footnote[^1]. + +A footnote can also have multiple lines[^2]. + +You can also use words, to fit your writing style more closely[^note]. + +[^1]: My reference. +[^2]: Every new line should be prefixed with 2 spaces. + This allows you to have a footnote with multiple lines. +[^note]: + Named footnotes will still render with numbers instead of the text but allow easier identification and linking. + This footnote also has been made with a different syntax using 4 spaces for new lines. +``` + +脚注将呈现如下: + +![渲染的脚注](/assets/images/site/rendered-footnote.png) + +{% tip %} + +**注意**:Markdown 中脚注的位置不会影响该脚注的呈现位置。 您可以在引用脚注后立即写脚注,脚注仍将呈现在 Markdown 的底部。 + +{% endtip %} +{% endif %} + +## 隐藏有评论的内容 + +您可以通过在 HTML 评论中加入内容来指示 {% data variables.product.product_name %} 隐藏渲染的 Markdown 中的内容。 + +
+<!-- This content will not appear in the rendered Markdown -->
+
+ +## 忽略 Markdown 格式 + +You can tell {% data variables.product.product_name %} to ignore (or escape) Markdown formatting by using \\ before the Markdown character. + +`让我们将 \*our-new-project\* 重命名为 \*our-old-project\*。` + +![渲染的规避字符](/assets/images/help/writing/escaped-character-rendered.png) + +更多信息请参阅 Daring Fireball 的“[Markdown 语法](https://daringfireball.net/projects/markdown/syntax#backslash)”。 + +{% ifversion fpt or ghes > 3.2 or ghae-issue-5232 or ghec %} + +## 禁用 Markdown 渲染 + +{% data reusables.repositories.disabling-markdown-rendering %} + +{% endif %} + +## 延伸阅读 + +- [{% data variables.product.prodname_dotcom %} Flavored Markdown 规格](https://github.github.com/gfm/) +- “[关于 GitHub 上的撰写和格式](/articles/about-writing-and-formatting-on-github)” +- "[使用高级格式](/articles/working-with-advanced-formatting)" +- "[熟悉 Markdown](https://guides.github.com/features/mastering-markdown/)" diff --git a/translations/zh-CN/content/get-started/writing-on-github/getting-started-with-writing-and-formatting-on-github/index.md b/translations/zh-CN/content/get-started/writing-on-github/getting-started-with-writing-and-formatting-on-github/index.md new file mode 100644 index 0000000000..a588fd0848 --- /dev/null +++ b/translations/zh-CN/content/get-started/writing-on-github/getting-started-with-writing-and-formatting-on-github/index.md @@ -0,0 +1,19 @@ +--- +title: 开始在 GitHub 上编写和格式化 +redirect_from: + - /articles/markdown-basics + - /articles/things-you-can-do-in-a-text-area-on-github + - /articles/getting-started-with-writing-and-formatting-on-github + - /github/writing-on-github/getting-started-with-writing-and-formatting-on-github +intro: 您可以在 GitHub 上使用简单的功能格式化您的评论,与他人交流议题、拉取请求和 wiki。 +versions: + fpt: '*' + ghes: '*' + ghae: '*' + ghec: '*' +children: + - /about-writing-and-formatting-on-github + - /basic-writing-and-formatting-syntax +shortTitle: 开始在 GitHub 上写入 +--- + diff --git a/translations/zh-CN/content/get-started/writing-on-github/index.md b/translations/zh-CN/content/get-started/writing-on-github/index.md new file mode 100644 index 0000000000..3ababab321 --- /dev/null +++ b/translations/zh-CN/content/get-started/writing-on-github/index.md @@ -0,0 +1,21 @@ +--- +title: 在 GitHub 上编写 +redirect_from: + - /categories/88/articles + - /articles/github-flavored-markdown + - /articles/writing-on-github + - /categories/writing-on-github + - /github/writing-on-github +intro: '您可以通过各种格式选项构建 {% data variables.product.product_name %} 共享的信息。' +versions: + fpt: '*' + ghes: '*' + ghae: '*' + ghec: '*' +children: + - /getting-started-with-writing-and-formatting-on-github + - /working-with-advanced-formatting + - /working-with-saved-replies + - /editing-and-sharing-content-with-gists +--- + diff --git a/translations/zh-CN/content/get-started/writing-on-github/working-with-advanced-formatting/attaching-files.md b/translations/zh-CN/content/get-started/writing-on-github/working-with-advanced-formatting/attaching-files.md new file mode 100644 index 0000000000..26af593bf4 --- /dev/null +++ b/translations/zh-CN/content/get-started/writing-on-github/working-with-advanced-formatting/attaching-files.md @@ -0,0 +1,64 @@ +--- +title: 附加文件 +intro: 您可以通过将各种文件类型附加到议题和拉取请求来传达信息。 +redirect_from: + - /github/managing-your-work-on-github/managing-your-work-with-issues-and-pull-requests/file-attachments-on-issues-and-pull-requests + - /articles/issue-attachments + - /articles/file-attachments-on-issues-and-pull-requests + - /github/managing-your-work-on-github/file-attachments-on-issues-and-pull-requests + - /github/writing-on-github/working-with-advanced-formatting/attaching-files +versions: + fpt: '*' + ghes: '*' + ghae: '*' + ghec: '*' +topics: + - Pull requests +--- + +{% warning %} + +**Warning:** If you add an image{% ifversion fpt or ghes > 3.1 or ghae or ghec %} or video{% endif %} to a pull request or issue comment, anyone can view the anonymized URL without authentication, even if the pull request is in a private repository{% ifversion ghes %}, or if private mode is enabled{% endif %}. 要对敏感媒体文件保密,请从需要身份验证的私有网络或服务器提供它们。 {% ifversion fpt or ghec %}有关匿名 URL 的更多信息,请参阅“[关于匿名 URL](/github/authenticating-to-github/about-anonymized-urls)”。{% endif %} + +{% endwarning %} + +要将文件附加到议题或拉取请求对话,请将它拖放到评论框中。 或者,您也可以单击评论框底部的栏来浏览、选择和添加计算机中的文件。 + +![从计算机选择附件](/assets/images/help/pull_requests/select-bar.png) + +{% tip %} + +**提示:**在许多浏览器中,您可以将图像直接复制并粘贴到该框中。 + +{% endtip %} + +最大文件大小为: +- 10MB for images and gifs{% ifversion fpt or ghec %} +- 10MB,对于上传到使用免费 GitHub 计划的用户或组织所拥有仓库的视频 +- 100MB,对于上传到使用付费 GitHub 计划的用户或组织所拥有仓库的视频{% elsif fpt or ghes > 3.1 or ghae %} +- 100MB for videos{% endif %} +- 25MB,对于所有其他文件 + +我们支持这些文件: + +* PNG (*.png*) +* GIF (*.gif*) +* JPEG (*.jpg*) +{%- if svg-support %} +* SVG (*.svg*) +{%- endif %} +* 日志文件 (*.log*) +* Microsoft Word (*.docx*)、Powerpoint (*.pptx*) 和 Excel (*.xlsx*) 文档 +* 文本文件 (*.txt*) +* PDF (*.pdf*) +* ZIP(*.zip*、*.gz*){% ifversion fpt or ghes > 3.1 or ghae or ghec %} +* 视频(*.mp4*、*.mov*) + +{% note %} + +**注意:** 视频编解码器兼容性是浏览器特定的,上传到一个浏览器的视频可能无法在另一个浏览器上查看。 目前,我们建议使用 h.264 实现最大兼容性。 + +{% endnote %} +{% endif %} + +![附件动画 GIF](/assets/images/help/pull_requests/dragging_images.gif) diff --git a/translations/zh-CN/content/get-started/writing-on-github/working-with-advanced-formatting/autolinked-references-and-urls.md b/translations/zh-CN/content/get-started/writing-on-github/working-with-advanced-formatting/autolinked-references-and-urls.md new file mode 100644 index 0000000000..08eff72eee --- /dev/null +++ b/translations/zh-CN/content/get-started/writing-on-github/working-with-advanced-formatting/autolinked-references-and-urls.md @@ -0,0 +1,65 @@ +--- +title: 自动链接的引用和 URL +intro: 对 URL、议题、拉取请求和提交的引用会自动缩短并转换为链接。 +redirect_from: + - /articles/autolinked-references-and-urls + - /github/writing-on-github/autolinked-references-and-urls + - /github/writing-on-github/working-with-advanced-formatting/autolinked-references-and-urls +versions: + fpt: '*' + ghes: '*' + ghae: '*' + ghec: '*' +shortTitle: 自动链接的引用 +--- + +## URL + +{% data variables.product.product_name %} 自动从标准 URL 创建链接。 + +`访问 https://github.com` + +![显示的自动链接的 URL](/assets/images/help/writing/url-autolink-rendered.png) + +有关创建链接的更多信息,请参阅“[基本撰写和格式语法](/articles/basic-writing-and-formatting-syntax/#links)”。 + +## 议题和拉取请求 + +在 {% data variables.product.product_name %} 上的对话中,对议题和拉取请求的引用将自动转换为缩短的链接。 + +{% note %} + +**注:**在仓库的 wiki 或文件中无法创建自动链接的引用。 + +{% endnote %} + +| 引用类型 | 源引用 | 短链接 | +| ------------------------------------------ | ---------------------------------------------- | ---------------------------------------------------------------------- | +| 议题或拉取请求 URL | https://github.com/jlord/sheetsee.js/issues/26 | [#26](https://github.com/jlord/sheetsee.js/issues/26) | +| `#` 和议题或拉取请求编号 | #26 | [#26](https://github.com/jlord/sheetsee.js/issues/26) | +| `GH-` 和议题或拉取请求编号 | GH-26 | [GH-26](https://github.com/jlord/sheetsee.js/issues/26) | +| `Username/Repository#` 和议题或拉取请求编号 | jlord/sheetsee.js#26 | [jlord/sheetsee.js#26](https://github.com/jlord/sheetsee.js/issues/26) | +| `Organization_name/Repository#` 和议题或拉取请求编号 | github/linguist#4039 | [github/linguist#4039](https://github.com/github/linguist/pull/4039) | + +{% ifversion fpt or ghec %} +如果您在列表中引用议题、拉取请求或讨论,则引用将展开以显示标题和状态。 有关任务列表的更多信息,请参阅“[关于任务列表](/issues/tracking-your-work-with-issues/creating-issues/about-task-lists)”。 +{% endif %} + +## 提交 SHA + +对提交 SHA 哈希的引用会自动转换为指向 {% data variables.product.product_name %} 上提交的短链接。 + +| 引用类型 | 源引用 | 短链接 | +| ------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------- | +| 提交 URL | [`https://github.com/jlord/sheetsee.js/commit/a5c3785ed8d6a35868bc169f07e40e889087fd2e`](https://github.com/jlord/sheetsee.js/commit/a5c3785ed8d6a35868bc169f07e40e889087fd2e) | [a5c3785](https://github.com/jlord/sheetsee.js/commit/a5c3785ed8d6a35868bc169f07e40e889087fd2e) | +| SHA | a5c3785ed8d6a35868bc169f07e40e889087fd2e | [a5c3785](https://github.com/jlord/sheetsee.js/commit/a5c3785ed8d6a35868bc169f07e40e889087fd2e) | +| User@SHA | jlord@a5c3785ed8d6a35868bc169f07e40e889087fd2e | [jlord@a5c3785](https://github.com/jlord/sheetsee.js/commit/a5c3785ed8d6a35868bc169f07e40e889087fd2e) | +| `Username/Repository@SHA` | `jlord/sheetsee.js@a5c3785ed8d6a35868bc169f07e40e889087fd2e` | [`jlord/sheetsee.js@a5c3785`](https://github.com/jlord/sheetsee.js/commit/a5c3785ed8d6a35868bc169f07e40e889087fd2e) | + +## 自定义外部资源的自动链接 + +{% data reusables.repositories.autolink-references %} + +## 延伸阅读 + +- "[基本撰写和格式语法](/articles/basic-writing-and-formatting-syntax)" diff --git a/translations/zh-CN/content/get-started/writing-on-github/working-with-advanced-formatting/creating-a-permanent-link-to-a-code-snippet.md b/translations/zh-CN/content/get-started/writing-on-github/working-with-advanced-formatting/creating-a-permanent-link-to-a-code-snippet.md new file mode 100644 index 0000000000..90a5ed05e3 --- /dev/null +++ b/translations/zh-CN/content/get-started/writing-on-github/working-with-advanced-formatting/creating-a-permanent-link-to-a-code-snippet.md @@ -0,0 +1,50 @@ +--- +title: 创建指向代码段的永久链接 +intro: 您可以创建指向特定版本的文件或拉取请求中特定代码行或行范围的永久链接。 +redirect_from: + - /github/managing-your-work-on-github/managing-your-work-with-issues-and-pull-requests/creating-a-permanent-link-to-a-code-snippet + - /articles/creating-a-permanent-link-to-a-code-snippet + - /github/managing-your-work-on-github/creating-a-permanent-link-to-a-code-snippet + - /github/writing-on-github/working-with-advanced-formatting/creating-a-permanent-link-to-a-code-snippet +versions: + fpt: '*' + ghes: '*' + ghae: '*' + ghec: '*' +topics: + - Pull requests +shortTitle: 代码的永久链接 +--- + +## 链接到代码 + +此类永久链接仅在其起源仓库中呈现为代码段。 在其他仓库中,永久链接代码段将呈现为 URL。 + +![评论中呈现的代码段](/assets/images/help/repository/rendered-code-snippet.png) + +{% tip %} + +**提示:**要创建整个文件的永久链接,请参阅“[获取文件的永久链接](/articles/getting-permanent-links-to-files)”。 + +{% endtip %} + +{% data reusables.repositories.navigate-to-repo %} +2. 找到要链接的代码: + - 要链接到文件中的代码,请导航到该文件。 + - 要链接到拉取请求中的代码,请导航到该拉取请求并单击 {% octicon "diff" aria-label="The file diff icon" %} **Files changed(已更改文件)**。 然后浏览到含有要包含在评论中的代码的文件,并单击 **View(查看)**。 +{% data reusables.repositories.choose-line-or-range %} +4. 在代码行或行范围的左侧,单击 {% octicon "kebab-horizontal" aria-label="The horizontal kebab octicon" %}。 在下拉菜单中,单击 **Copy permalink(复制永久链接)**。 ![可选择复制所选行的永久链接的 Kebab 菜单](/assets/images/help/repository/copy-permalink-specific-line.png) +5. 导航到要链接到代码段的对话。 +6. 将永久链接粘贴到评论中,然后单击 **Comment(评论)**。 ![粘贴在同一个仓库的评论中的永久链接](/assets/images/help/repository/code-snippet-permalink-in-comment.png) + +## 链接到 Markdown + +您可以通过加载 Markdown 文件而不进行 Markdown 渲染来链接到 Markdown 文件中的特定行。 要在不渲染的情况下加载 Markdown 文件,您可以在文件的 url 末尾使用 `?plain=1` 参数。 例如 `github.com///blob//README.md?plain=1`。 + +您可以在代码中以同样的方式链接到 Markdown 文件中的特定行。 在 url 末尾的行号附加 `#L`。 例如,`github.com///blob//README.md?plain=1#L14` 将在纯文本文件 README.md 中突出显示第 14 行。 + +## 延伸阅读 + +- “[创建议题](/articles/creating-an-issue/)” +- “[从代码打开议题](/articles/opening-an-issue-from-code/)” +- “[审查拉取请求中的更改](/articles/reviewing-changes-in-pull-requests/)” diff --git a/translations/zh-CN/content/get-started/writing-on-github/working-with-advanced-formatting/creating-and-highlighting-code-blocks.md b/translations/zh-CN/content/get-started/writing-on-github/working-with-advanced-formatting/creating-and-highlighting-code-blocks.md new file mode 100644 index 0000000000..4b6d8519a3 --- /dev/null +++ b/translations/zh-CN/content/get-started/writing-on-github/working-with-advanced-formatting/creating-and-highlighting-code-blocks.md @@ -0,0 +1,73 @@ +--- +title: 创建和突显代码块 +intro: 通过围栏代码块和启用语法突显来分享代码样本 +redirect_from: + - /articles/creating-and-highlighting-code-blocks + - /github/writing-on-github/creating-and-highlighting-code-blocks + - /github/writing-on-github/working-with-advanced-formatting/creating-and-highlighting-code-blocks +versions: + fpt: '*' + ghes: '*' + ghae: '*' + ghec: '*' +shortTitle: 创建代码块 +--- + +## 围栏代码块 + +通过在代码块的前后输入三反引号 \`\`\`,可创建围栏代码块。 我们建议在代码块的前后各留一个空白行,使原始格式更易辨读。 + +
+```
+function test() {
+  console.log("notice the blank line before this function?");
+}
+```
+
+ +![渲染的围栏代码块](/assets/images/help/writing/fenced-code-block-rendered.png) + +{% tip %} + +**提示:**要在列表中保留格式,请确保将非围栏代码块缩进八个空格。 + +{% endtip %} + +要在围栏代码块中显示三重倒引号,请将其包在四个倒引号内。 + + +
+````
+```
+Look! You can see my backticks.
+```
+````
+
+ +![使用倒引号块呈现的围栏代码](/assets/images/help/writing/fenced-code-show-backticks-rendered.png) + +{% data reusables.user_settings.enabling-fixed-width-fonts %} + +## 语法突显 + + + +您可以添加可选的语言标识符,以在围栏代码块中启用语法突显。 + +例如,要语法突显 Ruby 代码: + + ```ruby + require 'redcarpet' + markdown = Redcarpet.new("Hello World!") + puts markdown.to_html + puts markdown.to_html + ``` + +![渲染的启用 Ruby 语法突显的代码块](/assets/images/help/writing/code-block-syntax-highlighting-rendered.png) + +我们使用 [Linguist](https://github.com/github/linguist) 来执行语言检测并选择[第三方语法](https://github.com/github/linguist/blob/master/vendor/README.md)进行语法突显。 您可以在[语言 YAML 文件](https://github.com/github/linguist/blob/master/lib/linguist/languages.yml)中找出哪些关键词有效。 + +## 延伸阅读 + +- [{% data variables.product.prodname_dotcom %} Flavored Markdown 规格](https://github.github.com/gfm/) +- "[基本撰写和格式语法](/articles/basic-writing-and-formatting-syntax)" diff --git a/translations/zh-CN/content/get-started/writing-on-github/working-with-advanced-formatting/index.md b/translations/zh-CN/content/get-started/writing-on-github/working-with-advanced-formatting/index.md new file mode 100644 index 0000000000..5c1f690dd7 --- /dev/null +++ b/translations/zh-CN/content/get-started/writing-on-github/working-with-advanced-formatting/index.md @@ -0,0 +1,22 @@ +--- +title: 使用高级格式 +intro: 表格、语法突出显示和自动链接等格式设置可让您在拉取请求、议题和评论中清楚地布置复杂的信息。 +redirect_from: + - /articles/working-with-advanced-formatting + - /github/writing-on-github/working-with-advanced-formatting +versions: + fpt: '*' + ghes: '*' + ghae: '*' + ghec: '*' +children: + - /organizing-information-with-tables + - /organizing-information-with-collapsed-sections + - /creating-and-highlighting-code-blocks + - /autolinked-references-and-urls + - /attaching-files + - /creating-a-permanent-link-to-a-code-snippet + - /using-keywords-in-issues-and-pull-requests +shortTitle: 使用高级格式 +--- + diff --git a/translations/zh-CN/content/get-started/writing-on-github/working-with-advanced-formatting/organizing-information-with-collapsed-sections.md b/translations/zh-CN/content/get-started/writing-on-github/working-with-advanced-formatting/organizing-information-with-collapsed-sections.md new file mode 100644 index 0000000000..84c519d679 --- /dev/null +++ b/translations/zh-CN/content/get-started/writing-on-github/working-with-advanced-formatting/organizing-information-with-collapsed-sections.md @@ -0,0 +1,43 @@ +--- +title: Organizing information with collapsed sections +intro: You can streamline your Markdown by creating a collapsed section with the `
` tag. +versions: + fpt: '*' + ghes: '*' + ghae: '*' + ghec: '*' + redirect_from: + - /github/writing-on-github/working-with-advanced-formatting/organizing-information-with-collapsed-sections +shortTitle: Collapsed sections +--- + +## Creating a collapsed section + +You can temporarily obscure sections of your Markdown by creating a collapsed section that the reader can choose to expand. For example, when you want to include technical details in an issue comment that may not be relevant or interesting to every reader, you can put those details in a collapsed section. + +Any Markdown within the `
` block will be collapsed until the reader clicks {% octicon "triangle-right" aria-label="The right triange icon" %} to expand the details. Within the `
` block, use the `` tag to create a label to the right of {% octicon "triangle-right" aria-label="The right triange icon" %}. + +```markdown +
CLICK ME +

+ +#### We can hide anything, even code! + + ```ruby + puts "Hello World" + ``` + +

```

+ +The Markdown will be collapsed by default. + +![Rendered collapsed](/assets/images/help/writing/collapsed-section-view.png) + +After a reader clicks {% octicon "triangle-right" aria-label="The right triange icon" %}, the details are expanded. + +![Rendered open](/assets/images/help/writing/open-collapsed-section.png) + +## 延伸阅读 + +- [{% data variables.product.prodname_dotcom %} Flavored Markdown 规格](https://github.github.com/gfm/) +- "[基本撰写和格式语法](/articles/basic-writing-and-formatting-syntax)" diff --git a/translations/zh-CN/content/get-started/writing-on-github/working-with-advanced-formatting/organizing-information-with-tables.md b/translations/zh-CN/content/get-started/writing-on-github/working-with-advanced-formatting/organizing-information-with-tables.md new file mode 100644 index 0000000000..7f4c8444b8 --- /dev/null +++ b/translations/zh-CN/content/get-started/writing-on-github/working-with-advanced-formatting/organizing-information-with-tables.md @@ -0,0 +1,83 @@ +--- +title: 使用表格组织信息 +intro: 您可以创建表格来组织评论、议题、拉取请求和 wiki 中的信息。 +redirect_from: + - /articles/organizing-information-with-tables + - /github/writing-on-github/organizing-information-with-tables + - /github/writing-on-github/working-with-advanced-formatting/organizing-information-with-tables +versions: + fpt: '*' + ghes: '*' + ghae: '*' + ghec: '*' +shortTitle: 使用表格组织的数据 +--- + +## 创建表格 + +您可以用竖线 `|` 和横线 `-` 创建表格。 横线用于创建每列的标题,而竖线用于分隔每列。 必须在表格前包含空白链接,以便其正确呈现。 + +```markdown + +| First Header | Second Header | +| ------------- | ------------- | +| Content Cell | Content Cell | +| Content Cell | Content Cell | +``` + +![呈现的表格](/assets/images/help/writing/table-basic-rendered.png) + +表格末尾的竖线可选。 + +单元格的宽度可以不同,无需在列内准确对齐。 标题行的第一列中必须至少有三个横线。 + +```markdown +| Command | Description | +| --- | --- | +| git status | List all new or modified files | +| git diff | Show file differences that haven't been staged | +``` + +![呈现的单元格宽度不同的表格](/assets/images/help/writing/table-varied-columns-rendered.png) + +{% data reusables.user_settings.enabling-fixed-width-fonts %} + +## 格式化表格中的内容 + +您可以在表格中使用[格式](/articles/basic-writing-and-formatting-syntax),如链接、内联代码块和文本样式: + +```markdown +| Command | Description | +| --- | --- | +| `git status` | List all *new or modified* files | +| `git diff` | Show file differences that **haven't been** staged | +``` + +![呈现的带格式化文本的表格](/assets/images/help/writing/table-inline-formatting-rendered.png) + +您可以在标头行中横线的左侧、右侧或两侧加入冒号 `:`,靠左、靠右或居中对齐列中的文本。 + +```markdown +| Left-aligned | Center-aligned | Right-aligned | +| :--- | :---: | ---: | +| git status | git status | git status | +| git diff | git diff | git diff | +``` + +![呈现的文本靠左、居中和靠右对齐的表格](/assets/images/help/writing/table-aligned-text-rendered.png) + +要包含竖线 `|` 作为单元格中的内容,请在竖线前使用 `\`: + +```markdown +| Name | Character | +| --- | --- | +| Backtick | ` | +| Pipe | \| | +``` + +![呈现的带逸出竖线字符的表格](/assets/images/help/writing/table-escaped-character-rendered.png) + +## 延伸阅读 + +- [{% data variables.product.prodname_dotcom %} Flavored Markdown 规格](https://github.github.com/gfm/) +- "[基本撰写和格式语法](/articles/basic-writing-and-formatting-syntax)" diff --git a/translations/zh-CN/content/get-started/writing-on-github/working-with-advanced-formatting/using-keywords-in-issues-and-pull-requests.md b/translations/zh-CN/content/get-started/writing-on-github/working-with-advanced-formatting/using-keywords-in-issues-and-pull-requests.md new file mode 100644 index 0000000000..54e06fa175 --- /dev/null +++ b/translations/zh-CN/content/get-started/writing-on-github/working-with-advanced-formatting/using-keywords-in-issues-and-pull-requests.md @@ -0,0 +1,34 @@ +--- +title: 在议题和拉取请求中使用关键字 +intro: 使用关键字链接议题和拉取请求,或将议题或拉取请求标记为重复。 +versions: + fpt: '*' + ghes: '*' + ghae: '*' + ghec: '*' + redirect_from: + - /github/writing-on-github/working-with-advanced-formatting/using-keywords-in-issues-and-pull-requests +topics: + - Issues + - Pull requests +--- + +## 将拉取请求链接到议题 + +要将拉取请求链接到议题以{% ifversion fpt or ghes or ghae or ghec %} 显示正在进行的修复,并且{% endif %} 当有人合并拉取请求时自动关闭议题,请键入以下关键字之一,然后引用议题。 例如 `Closes #10` 或 `Fixes octo-org/octo-repo#100`。 + +* close +* closes +* closed +* fix +* fixes +* fixed +* 解决 +* resolves +* resolved + +更多信息请参阅“[将拉取请求链接到议题](/github/managing-your-work-on-github/linking-a-pull-request-to-an-issue)”。 + +## 将议题或拉取请求标记为重复 + +要将议题或拉取请求标记为重复,请在新评论正文中输入 "Duplicate of",后接它复制的议题或拉取请求编号。 更多信息请参阅“[将议题或拉取请求标记为重复](/issues/tracking-your-work-with-issues/marking-issues-or-pull-requests-as-a-duplicate)”。 diff --git a/translations/zh-CN/content/get-started/writing-on-github/working-with-saved-replies/about-saved-replies.md b/translations/zh-CN/content/get-started/writing-on-github/working-with-saved-replies/about-saved-replies.md new file mode 100644 index 0000000000..84be488dec --- /dev/null +++ b/translations/zh-CN/content/get-started/writing-on-github/working-with-saved-replies/about-saved-replies.md @@ -0,0 +1,30 @@ +--- +title: 关于已保存回复 +intro: 您可以使用已保存回复来响应议题或拉取请求。 +redirect_from: + - /articles/about-saved-replies + - /github/writing-on-github/about-saved-replies + - /github/writing-on-github/working-with-saved-replies/about-saved-replies +versions: + fpt: '*' + ghes: '*' + ghae: '*' + ghec: '*' +--- + +![已保存回复](/assets/images/help/settings/saved-replies.png) + +已保存回复用于创建可重复使用的议题和拉取请求响应。 创建回复作为常用响应可节省时间。 + +已保存回复在添加后,可用于议题和拉取请求。 已保存回复与您的用户帐户关联。 在它们创建后,便可用于不同的仓库和组织。 + +最多可以创建 100 个已保存回复。 如果已达到最大限制,可以删除不再使用的已保存回复,或者编辑现有的已保存回复。 + +您也可以使用 {% data variables.product.product_name %} 提供“重复议题”已保存回复来将议题标记为重复,并用类似的议题跟踪它。 + +## 延伸阅读 + +- "[创建已保存回复](/articles/creating-a-saved-reply)" +- "[使用已保存回复](/articles/using-saved-replies)" +- "[编辑已保存回复](/articles/editing-a-saved-reply)" +- "[删除已保存回复](/articles/deleting-a-saved-reply)" diff --git a/translations/zh-CN/content/get-started/writing-on-github/working-with-saved-replies/creating-a-saved-reply.md b/translations/zh-CN/content/get-started/writing-on-github/working-with-saved-replies/creating-a-saved-reply.md new file mode 100644 index 0000000000..d1390d9113 --- /dev/null +++ b/translations/zh-CN/content/get-started/writing-on-github/working-with-saved-replies/creating-a-saved-reply.md @@ -0,0 +1,26 @@ +--- +title: 创建已保存回复 +intro: 如果您经常反复添加相同的评论,您可以创建已保存回复。 +redirect_from: + - /articles/creating-a-saved-reply + - /github/writing-on-github/creating-a-saved-reply + - /github/writing-on-github/working-with-saved-replies/creating-a-saved-reply +versions: + fpt: '*' + ghes: '*' + ghae: '*' + ghec: '*' +--- + +{% data reusables.user_settings.access_settings %} +{% data reusables.user_settings.saved_replies %} +3. 在“Add a saved reply(添加已保存回复)”下,添加已保存回复的标题。 ![已保存回复标题](/assets/images/help/settings/saved-replies-title.png) +4. 在“Write(撰写 )”字段中,添加要用于已保存回复的内容。 有关在 {% data variables.product.product_name %} 上撰写的更多信息,请参阅“[基本撰写和格式语法](/articles/basic-writing-and-formatting-syntax)”。 ![撰写已保存回复](/assets/images/help/settings/saved-replies-settings-adding.png) +5. 要查看回复,请单击 **Preview(预览)**。 ![添加已保存回复](/assets/images/help/settings/saved-replies-preview.png) +6. 单击 **Add saved reply(添加已保存回复)**。 !["添加已保存回复"按钮](/assets/images/help/settings/saved-replies-add-button.png) + +## 延伸阅读 + +- "[使用已保存回复](/articles/using-saved-replies)" +- "[编辑已保存回复](/articles/editing-a-saved-reply)" +- "[删除已保存回复](/articles/deleting-a-saved-reply)" diff --git a/translations/zh-CN/content/get-started/writing-on-github/working-with-saved-replies/deleting-a-saved-reply.md b/translations/zh-CN/content/get-started/writing-on-github/working-with-saved-replies/deleting-a-saved-reply.md new file mode 100644 index 0000000000..89c1697cd8 --- /dev/null +++ b/translations/zh-CN/content/get-started/writing-on-github/working-with-saved-replies/deleting-a-saved-reply.md @@ -0,0 +1,18 @@ +--- +title: 删除已保存回复 +intro: 如果发现不再使用某个已保存回复,可将其删除。 +redirect_from: + - /articles/deleting-a-saved-reply + - /github/writing-on-github/deleting-a-saved-reply + - /github/writing-on-github/working-with-saved-replies/deleting-a-saved-reply +versions: + fpt: '*' + ghes: '*' + ghae: '*' + ghec: '*' +--- + +{% data reusables.user_settings.access_settings %} +{% data reusables.user_settings.saved_replies %} +3. 在“已保存回复”下,靠近要删除的已保存回复的位置,单击 {% octicon "x" aria-label="The X" %}。 + ![删除已保存回复](/assets/images/help/settings/saved-replies-delete-existing.png) diff --git a/translations/zh-CN/content/get-started/writing-on-github/working-with-saved-replies/editing-a-saved-reply.md b/translations/zh-CN/content/get-started/writing-on-github/working-with-saved-replies/editing-a-saved-reply.md new file mode 100644 index 0000000000..285391c9d8 --- /dev/null +++ b/translations/zh-CN/content/get-started/writing-on-github/working-with-saved-replies/editing-a-saved-reply.md @@ -0,0 +1,27 @@ +--- +title: 编辑已保存回复 +intro: 您可以编辑已保存回复的标题和正文。 +redirect_from: + - /articles/changing-a-saved-reply + - /articles/editing-a-saved-reply + - /github/writing-on-github/editing-a-saved-reply + - /github/writing-on-github/working-with-saved-replies/editing-a-saved-reply +versions: + fpt: '*' + ghes: '*' + ghae: '*' + ghec: '*' +--- + +{% data reusables.user_settings.access_settings %} +{% data reusables.user_settings.saved_replies %} +3. 使用位于要编辑已保存回复旁边的“Saved replies”(已保存回复),单击 {% octicon "pencil" aria-label="The pencil" %}。 + ![编辑已保存回复](/assets/images/help/settings/saved-replies-edit-existing.png) +4. 在“ Edit saved reply”(已保存回复)下,您可以编辑已保存回复的标题和内容。 ![编辑标题和内容](/assets/images/help/settings/saved-replies-edit-existing-content.png) +5. 单击 **Update saved reply(更新已保存回复)**。 ![更新已保存回复](/assets/images/help/settings/saved-replies-save-edit.png) + +## 延伸阅读 + +- "[创建已保存回复](/articles/creating-a-saved-reply)" +- "[删除已保存回复](/articles/deleting-a-saved-reply)" +- "[使用已保存回复](/articles/using-saved-replies)" diff --git a/translations/zh-CN/content/get-started/writing-on-github/working-with-saved-replies/index.md b/translations/zh-CN/content/get-started/writing-on-github/working-with-saved-replies/index.md new file mode 100644 index 0000000000..312b6cfb8a --- /dev/null +++ b/translations/zh-CN/content/get-started/writing-on-github/working-with-saved-replies/index.md @@ -0,0 +1,20 @@ +--- +title: 使用已保存回复 +intro: 为节省时间并确保提供一致的消息,您可将已保存回复添加到议题和拉取请求评论。 +redirect_from: + - /articles/working-with-saved-replies + - /github/writing-on-github/working-with-saved-replies +versions: + fpt: '*' + ghes: '*' + ghae: '*' + ghec: '*' +children: + - /about-saved-replies + - /creating-a-saved-reply + - /editing-a-saved-reply + - /deleting-a-saved-reply + - /using-saved-replies +shortTitle: 处理已保存回复 +--- + diff --git a/translations/zh-CN/content/get-started/writing-on-github/working-with-saved-replies/using-saved-replies.md b/translations/zh-CN/content/get-started/writing-on-github/working-with-saved-replies/using-saved-replies.md new file mode 100644 index 0000000000..30247489f8 --- /dev/null +++ b/translations/zh-CN/content/get-started/writing-on-github/working-with-saved-replies/using-saved-replies.md @@ -0,0 +1,33 @@ +--- +title: 使用已保存回复 +intro: 对议题或拉取请求进行评论时,可添加您已设置的已保存回复。 已保存回复可以是整个评论;或者如果您想要自定义,可以添加或删除内容。 +redirect_from: + - /articles/using-saved-replies + - /github/writing-on-github/using-saved-replies + - /github/writing-on-github/working-with-saved-replies/using-saved-replies +versions: + fpt: '*' + ghes: '*' + ghae: '*' + ghec: '*' +--- + +{% data reusables.repositories.navigate-to-repo %} +{% data reusables.repositories.sidebar-issue-pr %} +2. 单击所需的议题或拉取请求。 +3. 要添加已保存回复,在评论字段中,单击 {% octicon "reply" aria-label="The mail reply" %}。 ![已保存回复按钮](/assets/images/help/writing/saved-replies-button.png) +4. 从列表中,选择您想要添加到评论的已保存回复。 ![已保存回复](/assets/images/help/settings/saved-replies.png) + +{% tip %} + +**提示:** +- 您可以使用键盘快捷键通过已保存回复自动填充评论。 更多信息请参阅“[键盘快捷键](/articles/keyboard-shortcuts/#comments)”。 +- 您可通过输入已保存回复的标题来过滤该列表。 + +{% endtip %} + +## 延伸阅读 + +- "[创建已保存回复](/articles/creating-a-saved-reply)" +- "[编辑已保存回复](/articles/editing-a-saved-reply)" +- "[删除已保存回复](/articles/deleting-a-saved-reply)" diff --git a/translations/zh-CN/content/github/index.md b/translations/zh-CN/content/github/index.md index fd3281d4d0..3d51889658 100644 --- a/translations/zh-CN/content/github/index.md +++ b/translations/zh-CN/content/github/index.md @@ -12,11 +12,8 @@ versions: ghae: '*' children: - /copilot - - /writing-on-github - - /importing-your-projects-to-github - /customizing-your-github-workflow - /extending-github - - /understanding-how-github-uses-and-protects-your-data - /site-policy - /site-policy-deprecated --- diff --git a/translations/zh-CN/content/issues/tracking-your-work-with-issues/about-issues.md b/translations/zh-CN/content/issues/tracking-your-work-with-issues/about-issues.md index e4f8a1b704..128be36203 100644 --- a/translations/zh-CN/content/issues/tracking-your-work-with-issues/about-issues.md +++ b/translations/zh-CN/content/issues/tracking-your-work-with-issues/about-issues.md @@ -45,7 +45,7 @@ topics: ## 高效沟通 您可以在议题中@提及能访问您的仓库的协作者,以提请他们注意评论。 要将相关议题链接到同一仓库,您可以键入 `#`,后接议题标题的一部分,然后点击要链接的议题。 为了沟通责任,您可以分配议题。 如果您发现自己经常输入相同的评论,可以使用已保存的回复。 -{% ifversion fpt or ghec %} 更多信息请参阅“[基本编写和格式语法](/github/writing-on-github/getting-started-with-writing-and-formatting-on-github/basic-writing-and-formatting-syntax)”和“[将议题和拉取请求分配到其他 GitHub 用户](/issues/tracking-your-work-with-issues/assigning-issues-and-pull-requests-to-other-github-users)”。 +{% ifversion fpt or ghec %} 更多信息请参阅“[基本编写和格式语法](/get-started/writing-on-github/getting-started-with-writing-and-formatting-on-github/basic-writing-and-formatting-syntax)”和“[将议题和拉取请求分配到其他 GitHub 用户](/issues/tracking-your-work-with-issues/assigning-issues-and-pull-requests-to-other-github-users)”。 ## 比较议题和讨论 diff --git a/translations/zh-CN/content/organizations/keeping-your-organization-secure/reviewing-the-audit-log-for-your-organization.md b/translations/zh-CN/content/organizations/keeping-your-organization-secure/reviewing-the-audit-log-for-your-organization.md index 034abf484e..616f2c6b5f 100644 --- a/translations/zh-CN/content/organizations/keeping-your-organization-secure/reviewing-the-audit-log-for-your-organization.md +++ b/translations/zh-CN/content/organizations/keeping-your-organization-secure/reviewing-the-audit-log-for-your-organization.md @@ -649,8 +649,8 @@ For more information, see "[Managing the publication of {% data variables.produc | Action | Description |------------------|------------------- -| `enable` | Triggered when an organization owner or person with admin access to the repository [enables data use settings for a private repository](/github/understanding-how-github-uses-and-protects-your-data/managing-data-use-settings-for-your-private-repository). -| `disable` | Triggered when an organization owner or person with admin access to the repository [disables data use settings for a private repository](/github/understanding-how-github-uses-and-protects-your-data/managing-data-use-settings-for-your-private-repository). +| `enable` | Triggered when an organization owner or person with admin access to the repository [enables data use settings for a private repository](/get-started/privacy-on-github/managing-data-use-settings-for-your-private-repository). +| `disable` | Triggered when an organization owner or person with admin access to the repository [disables data use settings for a private repository](/get-started/privacy-on-github/managing-data-use-settings-for-your-private-repository). {% endif %}{% ifversion fpt or ghec %} diff --git a/translations/zh-CN/content/organizations/managing-access-to-your-organizations-repositories/repository-roles-for-an-organization.md b/translations/zh-CN/content/organizations/managing-access-to-your-organizations-repositories/repository-roles-for-an-organization.md index 037a076c6e..ef77152b00 100644 --- a/translations/zh-CN/content/organizations/managing-access-to-your-organizations-repositories/repository-roles-for-an-organization.md +++ b/translations/zh-CN/content/organizations/managing-access-to-your-organizations-repositories/repository-roles-for-an-organization.md @@ -132,7 +132,7 @@ In addition to managing organization-level settings, organization owners have ad | 重命名仓库默认分支以外的分支(请参阅“[重命名分支](/github/administering-a-repository/renaming-a-branch)”) | | | **X** | **X** | **X** {% endif %} | 管理 web 挂钩和部署密钥 | | | | | **X** |{% ifversion fpt or ghec %} -| [管理私有仓库的数据使用设置](/github/understanding-how-github-uses-and-protects-your-data/managing-data-use-settings-for-your-private-repository) | | | | | **X** +| [管理私有仓库的数据使用设置](/get-started/privacy-on-github/managing-data-use-settings-for-your-private-repository) | | | | | **X** {% endif %} | [管理仓库的复刻策略](/github/administering-a-repository/managing-the-forking-policy-for-your-repository) | | | | | **X** | | [将仓库转让给组织](/articles/restricting-repository-creation-in-your-organization) | | | | | **X** | @@ -140,7 +140,7 @@ In addition to managing organization-level settings, organization owners have ad | [存档仓库](/articles/about-archiving-repositories) | | | | | **X** |{% ifversion fpt or ghec %} | 显示赞助按钮(请参阅“[在仓库中显示赞助按钮](/articles/displaying-a-sponsor-button-in-your-repository)”)。 | | | | | **X** {% endif %} -| 创建到外部资源的自动链接引用,如 JIRA 或 Zendesk(请参阅“[配置自动链接以引用外部资源](/articles/configuring-autolinks-to-reference-external-resources)”) | | | | | **X** |{% ifversion fpt or ghec %} +| Create autolink references to external resources, like Jira or Zendesk (see "[Configuring autolinks to reference external resources](/articles/configuring-autolinks-to-reference-external-resources)") | | | | | **X** |{% ifversion fpt or ghec %} | 在仓库中[启用 {% data variables.product.prodname_discussions %}](/github/administering-a-repository/enabling-or-disabling-github-discussions-for-a-repository) | | | | **X** | **X** | | 为 {% data variables.product.prodname_discussions %} [创建和编辑类别](/discussions/managing-discussions-for-your-community/managing-categories-for-discussions-in-your-repository) | | | | **X** | **X** | | [将讨论移动到其他类别](/discussions/managing-discussions-for-your-community/managing-discussions-in-your-repository) | | | **X** | **X** | **X** | diff --git a/translations/zh-CN/content/organizations/managing-membership-in-your-organization/reinstating-a-former-member-of-your-organization.md b/translations/zh-CN/content/organizations/managing-membership-in-your-organization/reinstating-a-former-member-of-your-organization.md index a4964715a2..f0357e03c6 100644 --- a/translations/zh-CN/content/organizations/managing-membership-in-your-organization/reinstating-a-former-member-of-your-organization.md +++ b/translations/zh-CN/content/organizations/managing-membership-in-your-organization/reinstating-a-former-member-of-your-organization.md @@ -18,7 +18,20 @@ shortTitle: 恢复成员 ## 关于成员恢复 -如果您[从组织中删除用户](/articles/removing-a-member-from-your-organization){% ifversion ghae %} 或{% else %}、{% endif %}[将组织成员转换为外部协作者](/articles/converting-an-organization-member-to-an-outside-collaborator){% ifversion not ghae %} 或者由于您[要求成员和外部协作者启用双重身份验证 (2FA)](/articles/requiring-two-factor-authentication-in-your-organization){% endif %} 而从组织中删除用户,则用户的访问权限和设置将保存三个月。 如果您在该时间范围内将用户{% ifversion fpt or ghec %}邀请{% else %}添加{% endif %}回组织,则可以恢复该用户的权限。 +If a user is removed from your organization in one of the following ways, the user's access privileges and settings are saved for three months. + +- You manually removed the user from your organization. For more information, see "[Removing a member from your organization](/organizations/managing-membership-in-your-organization/removing-a-member-from-your-organization)."{% ifversion not ghae %} +- The user was removed from your organization because you've required members and outside collaborators to enable two-factor authentication (2FA). For more information, see "[Requiring two-factor authentication in your organization](/organizations/keeping-your-organization-secure/requiring-two-factor-authentication-in-your-organization)."{% endif %}{% ifversion fpt or ghec %} +- The user was removed from your organization because you enforced SAML single sign-on. For more information, see "[Enforcing SAML single sign-on for your organization](/enterprise-cloud@latest/organizations/managing-saml-single-sign-on-for-your-organization/enforcing-saml-single-sign-on-for-your-organization){% ifversion fpt %}" in the {% data variables.product.prodname_ghe_cloud %} documentation.{% else %}."{% endif %}{% endif %} +- You converted an organization member to an outside collaborator. For more information, see "[Converting an organization member to an outside collaborator](/organizations/managing-access-to-your-organizations-repositories/converting-an-organization-member-to-an-outside-collaborator)." + +如果您在该时间范围内将用户{% ifversion fpt or ghec %}邀请{% else %}添加{% endif %}回组织,则可以恢复该用户的权限。 + +{% note %} + +**Note:** {% data reusables.saml.removed-users-can-rejoin %} You do not need to invite these users to rejoin. Instead, the user can sign into their personal account, navigate to the organization, and click the banner to authenticate via SAML single sign-on. + +{% endnote %} {% data reusables.two_fa.send-invite-to-reinstate-user-before-2fa-is-enabled %} diff --git a/translations/zh-CN/content/organizations/managing-saml-single-sign-on-for-your-organization/configuring-saml-single-sign-on-and-scim-using-okta.md b/translations/zh-CN/content/organizations/managing-saml-single-sign-on-for-your-organization/configuring-saml-single-sign-on-and-scim-using-okta.md index 374006d401..aeda1e0ef7 100644 --- a/translations/zh-CN/content/organizations/managing-saml-single-sign-on-for-your-organization/configuring-saml-single-sign-on-and-scim-using-okta.md +++ b/translations/zh-CN/content/organizations/managing-saml-single-sign-on-for-your-organization/configuring-saml-single-sign-on-and-scim-using-okta.md @@ -27,29 +27,25 @@ SAML SSO 控制并保护对组织资源(如仓库、议题和拉取请求) | 推送个人资料更新 | When you update a user's profile in Okta, Okta will update the metadata for the user's membership in your organization on {% data variables.product.product_location %}. | | 重新激活用户 | When you reactivate a user in Okta, Okta will send an email invitation for the user to rejoin your organization on {% data variables.product.product_location %}. | -## 基本要求 - -{% data reusables.saml.use-classic-ui %} +Alternatively, you can configure SAML SSO for an enterprise using Okta. SCIM for enterprise accounts is only available with Enterprise Managed Users. For more information, see "[Configuring SAML single sign-on for your enterprise using Okta](/admin/identity-and-access-management/managing-iam-for-your-enterprise/configuring-saml-single-sign-on-for-your-enterprise-using-okta)" and "[Configuring SCIM provisioning for Enterprise Managed Users with Okta](/admin/identity-and-access-management/managing-iam-with-enterprise-managed-users/configuring-scim-provisioning-for-enterprise-managed-users-with-okta)." ## 在 Okta 中添加 {% data variables.product.prodname_ghe_cloud %} 应用程序 -{% data reusables.saml.okta-dashboard-click-applications %} -{% data reusables.saml.add-okta-application %} -{% data reusables.saml.search-ghec-okta %} -4. 在“Github Enterprise Cloud - Organization(Github Enterprise Cloud - 组织)”的右侧单击 **Add(添加)**。 ![对 {% data variables.product.prodname_ghe_cloud %} 应用程序单击"Add(添加)"](/assets/images/help/saml/okta-add-ghec-application.png) - -5. In the **GitHub Organization** field, type the name of your organization on {% data variables.product.product_location %}. 例如,如果组织的 URL 是 https://github.com/octo-org,则组织名称为 `octo-org`。 ![键入 GitHub 组织名称](/assets/images/help/saml/okta-github-organization-name.png) - -6. 单击 **Done(完成)**。 +{% data reusables.saml.okta-sign-into-your-account %} +1. Navigate to the [Github Enterprise Cloud - Organization](https://www.okta.com/integrations/github-enterprise-cloud-organization) application in the Okta Integration Network and click **Add Integration**. +1. (可选)在“Application label(应用程序标签)”右边输入应用程序的描述性名称。 +1. In the **GitHub Organization** field, type the name of your organization on {% data variables.product.product_location %}. 例如,如果组织的 URL 是 https://github.com/octo-org,则组织名称为 `octo-org`。 +1. 单击 **Done(完成)**。 ## 启用和测试 SAML SSO +{% data reusables.saml.okta-sign-into-your-account %} {% data reusables.saml.okta-dashboard-click-applications %} {% data reusables.saml.okta-applications-click-ghec-application-label %} {% data reusables.saml.assign-yourself-to-okta %} {% data reusables.saml.okta-sign-on-tab %} {% data reusables.saml.okta-view-setup-instructions %} -6. 按照“如何配置 SAML 2.0”指南,使用登录 URL、发行机构 URL 和公共证书在 {% data variables.product.prodname_dotcom %} 上启用并测试 SAML SSO。 更多信息请参阅“[对组织启用并测试 SAML 单点登录](/organizations/managing-saml-single-sign-on-for-your-organization/enabling-and-testing-saml-single-sign-on-for-your-organization)”。 +1. 按照“如何配置 SAML 2.0”指南,使用登录 URL、发行机构 URL 和公共证书在 {% data variables.product.prodname_dotcom %} 上启用并测试 SAML SSO。 更多信息请参阅“[对组织启用并测试 SAML 单点登录](/organizations/managing-saml-single-sign-on-for-your-organization/enabling-and-testing-saml-single-sign-on-for-your-organization#enabling-and-testing-saml-single-sign-on-for-your-organization)”。 ## 在 Okta 中使用 SCIM 配置访问配置 @@ -58,18 +54,17 @@ SAML SSO 控制并保护对组织资源(如仓库、议题和拉取请求) {% data reusables.saml.okta-provisioning-tab %} {% data reusables.saml.okta-configure-api-integration %} {% data reusables.saml.okta-enable-api-integration %} +1. 单击 **Authenticate with Github Enterprise Cloud - Organization(向 Github Enterprise Cloud 验证 - 组织)**。 +1. 在组织名称的右侧,单击 **Grant(授予)**。 - -6. 单击 **Authenticate with Github Enterprise Cloud - Organization(向 Github Enterprise Cloud 验证 - 组织)**。 ![Okta 应用程序的"Authenticate with Github Enterprise Cloud - Organization( 向 Github Enterprise Cloud 验证 - 组织)"按钮](/assets/images/help/saml/okta-authenticate-with-ghec-organization.png) - -7. 在组织名称的右侧,单击 **Grant(授予)**。 ![用于授权 Okta SCIM 集成访问组织的"Grant(授予)"按钮](/assets/images/help/saml/okta-scim-integration-grant-organization-access.png) + ![用于授权 Okta SCIM 集成访问组织的"Grant(授予)"按钮](/assets/images/help/saml/okta-scim-integration-grant-organization-access.png) {% note %} **注**:如果在列表中看不到您的组织,请在浏览器中访问 `https://github.com/orgs/ORGANIZATION-NAME/sso`,并使用 IdP 上的管理员帐户通过 SAML SSO 向您的组织验证身份。 例如,如果您的组织名称是 `octo-org`,则 URL 是 `https://github.com/orgs/octo-org/so`。 更多信息请参阅“[关于使用 SAML 单点登录进行身份验证](/github/authenticating-to-github/about-authentication-with-saml-single-sign-on)”。 {% endnote %} -1. 单击 **Authorize OktaOAN(授权 OktaOAN)**。 ![用于授权 Okta SCIM 集成访问组织的"Authorize OktaOAN(授权 OktaOAN)"按钮](/assets/images/help/saml/okta-scim-integration-authorize-oktaoan.png) +1. 单击 **Authorize OktaOAN(授权 OktaOAN)**。 {% data reusables.saml.okta-save-provisioning %} {% data reusables.saml.okta-edit-provisioning %} diff --git a/translations/zh-CN/content/organizations/managing-saml-single-sign-on-for-your-organization/enforcing-saml-single-sign-on-for-your-organization.md b/translations/zh-CN/content/organizations/managing-saml-single-sign-on-for-your-organization/enforcing-saml-single-sign-on-for-your-organization.md index 41876c8b41..ec2ecc4e31 100644 --- a/translations/zh-CN/content/organizations/managing-saml-single-sign-on-for-your-organization/enforcing-saml-single-sign-on-for-your-organization.md +++ b/translations/zh-CN/content/organizations/managing-saml-single-sign-on-for-your-organization/enforcing-saml-single-sign-on-for-your-organization.md @@ -20,7 +20,7 @@ shortTitle: 强制 SAML 单点登录 您也可以对组织实施 SAML SSO。 {% data reusables.saml.when-you-enforce %} 实施会从组织中删除尚未通过 IdP 进行身份验证的任何成员和管理员。 {% data variables.product.company_short %} 将向每个被删除的用户发送电子邮件通知。 -Any users removed due to SAML SSO enforcement can rejoin your organization by authenticating via SAML single sign-on. If a user rejoins the organization within three months, the user's access privileges and settings will be restored. 更多信息请参阅“[恢复组织的前成员](/articles/reinstating-a-former-member-of-your-organization)”。 +{% data reusables.saml.removed-users-can-rejoin %} If a user rejoins the organization within three months, the user's access privileges and settings will be restored. 更多信息请参阅“[恢复组织的前成员](/articles/reinstating-a-former-member-of-your-organization)”。 未在组织的 IdP 中设置外部身份的自动程序和服务帐户在执行 SAML SSO 时也将被删除。 有关自动程序和服务帐户的更多信息,请参阅“[使用 SAML 单点登录管理自动程序和服务帐户](/articles/managing-bots-and-service-accounts-with-saml-single-sign-on)”。 diff --git a/translations/zh-CN/content/organizations/managing-saml-single-sign-on-for-your-organization/managing-team-synchronization-for-your-organization.md b/translations/zh-CN/content/organizations/managing-saml-single-sign-on-for-your-organization/managing-team-synchronization-for-your-organization.md index 3cc1ed0377..ac145df40b 100644 --- a/translations/zh-CN/content/organizations/managing-saml-single-sign-on-for-your-organization/managing-team-synchronization-for-your-organization.md +++ b/translations/zh-CN/content/organizations/managing-saml-single-sign-on-for-your-organization/managing-team-synchronization-for-your-organization.md @@ -70,7 +70,7 @@ Okta team synchronization requires that SAML and SCIM with Okta have already bee To avoid potential team synchronization errors with Okta, we recommend that you confirm that SCIM linked identities are correctly set up for all organization members who are members of your chosen Okta groups, before enabling team synchronization on {% data variables.product.prodname_dotcom %}. -If an organization member does not have a linked SCIM identity, then team synchronization will not work as expected and the user may not be added or removed from teams as expected. If any of these users are missing a SCIM linked identity, you will need to reprovision them. +If an organization member does not have a linked SCIM identity, then team synchronization will not work as expected and the user may not be added or removed from teams as expected. If any of these users are missing a SCIM linked identity, you will need to re-provision them. For help on provisioning users that have missing a missing SCIM linked identity, see "[Troubleshooting identity and access management](/organizations/managing-saml-single-sign-on-for-your-organization/troubleshooting-identity-and-access-management)." diff --git a/translations/zh-CN/content/packages/learn-github-packages/introduction-to-github-packages.md b/translations/zh-CN/content/packages/learn-github-packages/introduction-to-github-packages.md index aa1182e2f8..8293c07bfb 100644 --- a/translations/zh-CN/content/packages/learn-github-packages/introduction-to-github-packages.md +++ b/translations/zh-CN/content/packages/learn-github-packages/introduction-to-github-packages.md @@ -119,7 +119,7 @@ You can configure webhooks to subscribe to package-related events, such as when ## Contacting support {% ifversion fpt or ghec %} -If you have feedback or feature requests for {% data variables.product.prodname_registry %}, use the [feedback form for {% data variables.product.prodname_registry %}](https://support.github.com/contact/feedback?contact%5Bcategory%5D=github-packages). +If you have feedback or feature requests for {% data variables.product.prodname_registry %}, use a [{% data variables.product.prodname_registry %} feedback discussion](https://github.com/github/feedback/discussions/categories/actions-and-packages-feedback). Contact {% data variables.contact.github_support %} about {% data variables.product.prodname_registry %} using [our contact form](https://support.github.com/contact?form%5Bsubject%5D=Re:%20GitHub%20Packages) if: diff --git a/translations/zh-CN/content/pull-requests/collaborating-with-pull-requests/incorporating-changes-from-a-pull-request/automatically-merging-a-pull-request.md b/translations/zh-CN/content/pull-requests/collaborating-with-pull-requests/incorporating-changes-from-a-pull-request/automatically-merging-a-pull-request.md index 83341c2f7c..c97f07dfcb 100644 --- a/translations/zh-CN/content/pull-requests/collaborating-with-pull-requests/incorporating-changes-from-a-pull-request/automatically-merging-a-pull-request.md +++ b/translations/zh-CN/content/pull-requests/collaborating-with-pull-requests/incorporating-changes-from-a-pull-request/automatically-merging-a-pull-request.md @@ -24,7 +24,7 @@ shortTitle: 自动合并 PR 对拉取请求启用自动合并后,如果没有仓库写入权限的人员将新更改推送到头部分支或切换拉取请求的基础分支,则自动合并将被禁用。 例如,如果维护者允许从复刻自动合并拉取请求,则在贡献者推送对拉取请求的新更改后,自动合并将被禁用。{% endif %} -您可以通过[联系我们](https://support.github.com/contact/feedback?category=prs-and-code-review&subject=Pull%20request%20auto-merge%20feedback)提供关于自动合并的反馈。 +You can provide feedback about auto-merge through a [{% data variables.product.product_name %} feedback discussion](https://github.com/github/feedback/discussions/categories/pull-requests-feedback). ## 启用自动合并 diff --git a/translations/zh-CN/content/repositories/archiving-a-github-repository/about-archiving-content-and-data-on-github.md b/translations/zh-CN/content/repositories/archiving-a-github-repository/about-archiving-content-and-data-on-github.md index 2f4d91d8ff..b991756b38 100644 --- a/translations/zh-CN/content/repositories/archiving-a-github-repository/about-archiving-content-and-data-on-github.md +++ b/translations/zh-CN/content/repositories/archiving-a-github-repository/about-archiving-content-and-data-on-github.md @@ -30,7 +30,7 @@ shortTitle: 存档内容和数据 负责任地使用存档包括尊重用户的隐私。 更多信息请参阅“[GitHub 上的公共信息](/free-pro-team@latest/github/site-policy/github-privacy-statement#public-information-on-github)”。 -您可以选择退出仓库的 {% data variables.product.prodname_archive %}。 更多信息请参阅“[选择加入或退出公共仓库的 {% data variables.product.prodname_archive %}](/github/understanding-how-github-uses-and-protects-your-data/opting-into-or-out-of-the-github-archive-program-for-your-public-repository)”。 +您可以选择退出仓库的 {% data variables.product.prodname_archive %}。 更多信息请参阅“[选择加入或退出公共仓库的 {% data variables.product.prodname_archive %}](/get-started/privacy-on-github/opting-into-or-out-of-the-github-archive-program-for-your-public-repository)”。 ## 添加开源许可以增强可存档性 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 79a455598c..af6ac1b89a 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 @@ -19,7 +19,7 @@ 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](/github/importing-your-projects-to-github/importing-source-code-to-github/about-github-importer)." +**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)." {% endnote %} @@ -100,6 +100,6 @@ Before you can push the original repository to your new copy, or _mirror_, of th * "[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 导入工具](/github/importing-your-projects-to-github/importing-source-code-to-github/about-github-importer)” +* “[关于 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/index.md b/translations/zh-CN/content/repositories/index.md index 388a6c2a89..f8e4c4db9a 100644 --- a/translations/zh-CN/content/repositories/index.md +++ b/translations/zh-CN/content/repositories/index.md @@ -1,6 +1,27 @@ --- title: 仓库 intro: Learn to use and manage the repositories that allow you to store and collaborate on your project's code. +introLinks: + quickstart: /get-started/quickstart/create-a-repo + overview: /repositories/creating-and-managing-repositories/about-repositories +featuredLinks: + guides: + - /repositories/creating-and-managing-repositories/cloning-a-repository + - /repositories/creating-and-managing-repositories/restoring-a-deleted-repository + - /repositories/working-with-files/managing-files/adding-a-file-to-a-repository + - /repositories/managing-your-repositorys-settings-and-features/customizing-your-repository/licensing-a-repository + popular: + - /repositories/configuring-branches-and-merges-in-your-repository/defining-the-mergeability-of-pull-requests/about-protected-branches + - /repositories/releasing-projects-on-github/about-releases + - /repositories/managing-your-repositorys-settings-and-features/customizing-your-repository/about-readmes + - /repositories/managing-your-repositorys-settings-and-features/customizing-your-repository/about-code-owners + guideCards: + - /repositories/creating-and-managing-repositories/deleting-a-repository + - /repositories/configuring-branches-and-merges-in-your-repository/defining-the-mergeability-of-pull-requests/managing-a-branch-protection-rule + - /repositories/managing-your-repositorys-settings-and-features/managing-repository-settings/setting-repository-visibility +changelog: + label: repos +layout: product-landing redirect_from: - /github/creating-cloning-and-archiving-repositories versions: diff --git a/translations/zh-CN/content/rest/guides/best-practices-for-integrators.md b/translations/zh-CN/content/rest/guides/best-practices-for-integrators.md index 45f3ac6d3b..bace83d38e 100644 --- a/translations/zh-CN/content/rest/guides/best-practices-for-integrators.md +++ b/translations/zh-CN/content/rest/guides/best-practices-for-integrators.md @@ -131,7 +131,7 @@ end 在此示例中,在调用 `process_closed` 方法之前会先检查 `closed` 操作。 任何未识别的操作都会被记录以供将来参考。 -{% ifversion fpt or ghec %} +{% ifversion fpt or ghec or ghae %} ## 处理速率限制 diff --git a/translations/zh-CN/content/rest/guides/getting-started-with-the-rest-api.md b/translations/zh-CN/content/rest/guides/getting-started-with-the-rest-api.md index b6516ee114..63df4bdb73 100644 --- a/translations/zh-CN/content/rest/guides/getting-started-with-the-rest-api.md +++ b/translations/zh-CN/content/rest/guides/getting-started-with-the-rest-api.md @@ -104,7 +104,7 @@ $ curl -i https://api.github.com/users/defunkt 任何以 `X-` 开头的标头都是自定义标头,不包含在 HTTP 规范中。 例如: * `X-GitHub-Media-Type` 的值为 `github.v3`。 这让我们知道响应的[媒体类型][media types]。 媒体类型帮助我们在 API v3 中对输出进行版本控制。 我们稍后再详细讨论。 -* 请注意 `X-RateLimit-Limit` 和 `X-RateLimit-Remaining` 标头。 这对标头指示在滚动时间段(通常为一小时)内[一个客户端可以发出多少个请求][rate-limiting],以及该客户端已使用多少个此类请求。 +* 请注意 `X-RateLimit-Limit` 和 `X-RateLimit-Remaining` 标头。 This pair of headers indicate [how many requests a client can make][rate-limiting] in a rolling time period (typically an hour) and how many of those requests the client has already spent. ## 身份验证 @@ -388,7 +388,7 @@ $ {% data variables.product.api_url_pre %}/users/defunkt > HTTP/2 304 ``` -`304` 状态表示该资源自上次请求以来没有发生改变,该响应将不包含任何正文。 另外,`304` 响应不计入您的[速率限制][rate-limiting]。 +`304` 状态表示该资源自上次请求以来没有发生改变,该响应将不包含任何正文。 As a bonus, `304` responses don't count against your [rate limit][rate-limiting]. 耶! 现在您了解 {% ifversion fpt or ghec %}{% data variables.product.prodname_dotcom %}{% else %}{% data variables.product.product_name %}{% endif %} API 的基础知识了! @@ -412,8 +412,8 @@ $ {% data variables.product.api_url_pre %}/users/defunkt [issues-api]: /rest/reference/issues [link-header]: https://www.w3.org/wiki/LinkHeader [conditional-requests]: /rest#conditional-requests -[rate-limiting]: /rest#rate-limiting -[rate-limiting]: /rest#rate-limiting +[rate-limiting]: /rest/overview/resources-in-the-rest-api#rate-limit-http-headers +[rate-limiting]: /rest/overview/resources-in-the-rest-api#rate-limit-http-headers [users api]: /rest/reference/users#get-a-user [defunkt github]: https://github.com/defunkt [defunkt github]: https://github.com/defunkt diff --git a/translations/zh-CN/content/rest/overview/resources-in-the-rest-api.md b/translations/zh-CN/content/rest/overview/resources-in-the-rest-api.md index 49c8175768..a909156e4c 100644 --- a/translations/zh-CN/content/rest/overview/resources-in-the-rest-api.md +++ b/translations/zh-CN/content/rest/overview/resources-in-the-rest-api.md @@ -8,6 +8,7 @@ versions: ghes: '*' ghae: '*' ghec: '*' +miniTocMaxHeadingLevel: 3 topics: - API --- @@ -123,7 +124,7 @@ Read [more about OAuth2](/apps/building-oauth-apps/). Note that OAuth2 tokens c curl -u my_client_id:my_client_secret '{% data variables.product.api_url_pre %}/user/repos' ``` -Using your `client_id` and `client_secret` does _not_ authenticate as a user, it will only identify your OAuth application to increase your rate limit. Permissions are only granted to users, not applications, and you will only get back data that an unauthenticated user would see. For this reason, you should only use the OAuth2 key/secret in server-to-server scenarios. Don't leak your OAuth application's client secret to your users. +Using your `client_id` and `client_secret` does _not_ authenticate as a user, it will only identify your OAuth App to increase your rate limit. Permissions are only granted to users, not applications, and you will only get back data that an unauthenticated user would see. For this reason, you should only use the OAuth2 key/secret in server-to-server scenarios. Don't leak your OAuth App's client secret to your users. {% ifversion ghes %} You will be unable to authenticate using your OAuth2 key and secret while in private mode, and trying to authenticate will return `401 Unauthorized`. For more information, see "[Enabling private mode](/admin/configuration/configuring-your-enterprise/enabling-private-mode)". @@ -356,21 +357,53 @@ Name | Description ## Rate limiting -For API requests using Basic Authentication or OAuth, you can make up to 5,000 requests per hour. Authenticated requests are associated with the authenticated user, regardless of whether [Basic Authentication](#basic-authentication) or [an OAuth token](#oauth2-token-sent-in-a-header) was used. This means that all OAuth applications authorized by a user share the same quota of 5,000 requests per hour when they authenticate with different tokens owned by the same user. +Different types of API requests to {% data variables.product.product_location %} are subject to different rate limits. -{% ifversion fpt or ghec %} - -For users that belong to a {% data variables.product.prodname_ghe_cloud %} account, requests made using an OAuth token to resources owned by the same {% data variables.product.prodname_ghe_cloud %} account have an increased limit of 15,000 requests per hour. - -{% endif %} - -When using the built-in `GITHUB_TOKEN` in GitHub Actions, the rate limit is 1,000 requests per hour per repository. For organizations that belong to a GitHub Enterprise Cloud account, this limit is 15,000 requests per hour per repository. - -For unauthenticated requests, the rate limit allows for up to 60 requests per hour. Unauthenticated requests are associated with the originating IP address, and not the user making requests. +Additionally, the Search API has dedicated limits. For more information, see "[Search](/rest/reference/search#rate-limit)" in the REST API documentation. {% data reusables.enterprise.rate_limit %} -Note that [the Search API has custom rate limit rules](/rest/reference/search#rate-limit). +{% data reusables.rest-api.always-check-your-limit %} + +### Requests from user accounts + +Direct API requests that you authenticate with a personal access token are user-to-server requests. An OAuth App or GitHub App can also make a user-to-server request on your behalf after you authorize the app. For more information, see "[Creating a personal access token](/authentication/keeping-your-account-and-data-secure/creating-a-personal-access-token)," "[Authorizing OAuth Apps](/authentication/keeping-your-account-and-data-secure/authorizing-oauth-apps)," and "[Authorizing GitHub Apps](/authentication/keeping-your-account-and-data-secure/authorizing-github-apps)." + +{% data variables.product.product_name %} associates all user-to-server requests with the authenticated user. For OAuth Apps and GitHub Apps, this is the user who authorized the app. All user-to-server requests count toward the authenticated user's rate limit. + +{% data reusables.apps.user-to-server-rate-limits %} + +{% ifversion fpt or ghec %} + +{% data reusables.apps.user-to-server-rate-limits-ghec %} + +{% ifversion fpt or ghec or ghes %} + +For unauthenticated requests, the rate limit allows for up to 60 requests per hour. Unauthenticated requests are associated with the originating IP address, and not the person making requests. + +{% endif %} + +{% endif %} + +### Requests from GitHub Apps + +Requests from a GitHub App may be either user-to-server or server-to-server requests. For more information about rate limits for GitHub Apps, see "[Rate limits for GitHub Apps](/developers/apps/building-github-apps/rate-limits-for-github-apps)." + +### Requests from GitHub Actions + +You can use the built-in `GITHUB_TOKEN` to authenticate requests in GitHub Actions workflows. For more information, see "[Automatic token authentication](/actions/security-guides/automatic-token-authentication)." + +When using `GITHUB_TOKEN`, the rate limit is 1,000 requests per hour per repository.{% ifversion fpt or ghec %} For requests to resources that belong to an enterprise account on {% data variables.product.product_location %}, {% data variables.product.prodname_ghe_cloud %}'s rate limit applies, and the limit is 15,000 requests per hour per repository.{% endif %} + +### Checking your rate limit status + +The Rate Limit API and a response's HTTP headers are authoritative sources for the current number of API calls available to you or your app at any given time. + +#### Rate Limit API + +You can use the Rate Limit API to check your rate limit status without incurring a hit to the current limit. For more information, see "[Rate limit](/rest/reference/rate-limit)." + +#### Rate limit HTTP headers The returned HTTP headers of any API request show your current rate limit status: @@ -411,11 +444,9 @@ If you exceed the rate limit, an error response returns: > } ``` -You can [check your rate limit status](/rest/reference/rate-limit) without incurring an API hit. +### Increasing the unauthenticated rate limit for OAuth Apps -### Increasing the unauthenticated rate limit for OAuth applications - -If your OAuth application needs to make unauthenticated calls with a higher rate limit, you can pass your app's client ID and secret before the endpoint route. +If your OAuth App needs to make unauthenticated calls with a higher rate limit, you can pass your app's client ID and secret before the endpoint route. ```shell $ curl -u my_client_id:my_client_secret {% data variables.product.api_url_pre %}/user/repos diff --git a/translations/zh-CN/content/rest/reference/rate-limit.md b/translations/zh-CN/content/rest/reference/rate-limit.md index 607237c3b5..d3bb10238c 100644 --- a/translations/zh-CN/content/rest/reference/rate-limit.md +++ b/translations/zh-CN/content/rest/reference/rate-limit.md @@ -30,6 +30,6 @@ REST API 概述文档描述了[速率限制规则](/rest/overview/resources-in-t * `integration_manifest` 对象提供 [GitHub 应用程序清单代码转换](/apps/building-github-apps/creating-github-apps-from-a-manifest/#3-you-exchange-the-temporary-code-to-retrieve-the-app-configuration)端点的速率限制状态。 -有关速率限制响应中标头和值的更多信息,请参阅“[速率限制](/rest#rate-limiting)”。 +For more information on the headers and values in the rate limit response, see "[Resources in the REST API](/rest/overview/resources-in-the-rest-api#rate-limit-http-headers)." {% include rest_operations_at_current_path %} diff --git a/translations/zh-CN/content/rest/reference/search.md b/translations/zh-CN/content/rest/reference/search.md index 5aac9dc08b..1f196902aa 100644 --- a/translations/zh-CN/content/rest/reference/search.md +++ b/translations/zh-CN/content/rest/reference/search.md @@ -23,10 +23,10 @@ miniTocMaxHeadingLevel: 3 ### 速率限制 -搜索 API 有自定义速率限制。 对于使用[基本身份验证](/rest#authentication)、[OAuth](/rest#authentication) 或[客户端 ID 和密码](/rest#increasing-the-unauthenticated-rate-limit-for-oauth-applications)的请求,您每分钟最多可以提出 30 个请求。 对于未经身份验证的请求,速率限制允许您每分钟最多提出 10 个请求。 - {% data reusables.enterprise.rate_limit %} +搜索 API 有自定义速率限制。 对于使用[基本身份验证](/rest#authentication)、[OAuth](/rest#authentication) 或[客户端 ID 和密码](/rest#increasing-the-unauthenticated-rate-limit-for-oauth-applications)的请求,您每分钟最多可以提出 30 个请求。 对于未经身份验证的请求,速率限制允许您每分钟最多提出 10 个请求。 + 请参阅[速率限制文档](/rest/reference/rate-limit),以详细了解如何确定您的当前速率限制状态。 ### 构造搜索查询 diff --git a/translations/zh-CN/content/search-github/searching-on-github/searching-issues-and-pull-requests.md b/translations/zh-CN/content/search-github/searching-on-github/searching-issues-and-pull-requests.md index c7051b174a..1e808b5920 100644 --- a/translations/zh-CN/content/search-github/searching-on-github/searching-issues-and-pull-requests.md +++ b/translations/zh-CN/content/search-github/searching-on-github/searching-issues-and-pull-requests.md @@ -176,7 +176,7 @@ shortTitle: 搜索议题和 PR ## 按提交状态搜索 -您可以基于提交的状态过滤拉取请求。 这在使用 [Status API](/rest/reference/repos#statuses) 或 CI 服务时特别有用。 +您可以基于提交的状态过滤拉取请求。 This is especially useful if you are using [the Status API](/rest/reference/repos#statuses) or a CI service. | 限定符 | 示例 | | ---------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | diff --git a/translations/zh-CN/data/learning-tracks/code-security.yml b/translations/zh-CN/data/learning-tracks/code-security.yml index 9fda1a8f8f..47c9ad1a0d 100644 --- a/translations/zh-CN/data/learning-tracks/code-security.yml +++ b/translations/zh-CN/data/learning-tracks/code-security.yml @@ -56,18 +56,19 @@ secret_scanning: title: '扫描密码' description: '设置秘密扫描以防意外检入令牌、密码和其他密钥到您的仓库。' guides: - - /code-security/secret-security/about-secret-scanning - - /code-security/secret-security/configuring-secret-scanning-for-your-repositories - - /code-security/secret-security/managing-alerts-from-secret-scanning + - /code-security/secret-scanning/about-secret-scanning + - /code-security/secret-scanning/configuring-secret-scanning-for-your-repositories + - /code-security/secret-scanning/defining-custom-patterns-for-secret-scanning + - /code-security/secret-scanning/managing-alerts-from-secret-scanning #Security overview feature available only on dotcom currently, so other articles hidden to hide the learning path in other versions security_alerts: title: '探索和管理安全警报' description: '了解在哪里可以查找和解决安全警报。' guides: - /code-security/security-overview/about-the-security-overview - - '{% ifversion fpt %}/code-security/secret-security/managing-alerts-from-secret-scanning {% endif %}' - - '{% ifversion fpt %}/code-security/secure-coding/automatically-scanning-your-code-for-vulnerabilities-and-errors/managing-code-scanning-alerts-for-your-repository{% endif %}' - - '{% ifversion fpt %}/code-security/secure-coding/automatically-scanning-your-code-for-vulnerabilities-and-errors/triaging-code-scanning-alerts-in-pull-requests{% endif %}' + - '{% ifversion fpt %}/code-security/secret-scanning/managing-alerts-from-secret-scanning {% endif %}' + - '{% ifversion fpt %}/code-security/code-scanning/automatically-scanning-your-code-for-vulnerabilities-and-errors/managing-code-scanning-alerts-for-your-repository{% endif %}' + - '{% ifversion fpt %}/code-security/code-scanning/automatically-scanning-your-code-for-vulnerabilities-and-errors/triaging-code-scanning-alerts-in-pull-requests{% endif %}' - '{% ifversion fpt %}/code-security/supply-chain-security/managing-vulnerabilities-in-your-projects-dependencies/viewing-and-updating-vulnerable-dependencies-in-your-repository{% endif %}' #Feature available in all versions from GHES 2.22 up code_security_actions: @@ -75,29 +76,29 @@ code_security_actions: description: '检查默认分支和每个拉取请求,以排除仓库中的漏洞和错误。' featured_track: '{% ifversion ghae or ghes > 2.22 %}true{% else %}false{% endif %}' guides: - - /code-security/secure-coding/automatically-scanning-your-code-for-vulnerabilities-and-errors/about-code-scanning - - /code-security/secure-coding/automatically-scanning-your-code-for-vulnerabilities-and-errors/setting-up-code-scanning-for-a-repository - - /code-security/secure-coding/automatically-scanning-your-code-for-vulnerabilities-and-errors/configuring-code-scanning - - /code-security/secure-coding/automatically-scanning-your-code-for-vulnerabilities-and-errors/configuring-the-codeql-workflow-for-compiled-languages - - /code-security/secure-coding/automatically-scanning-your-code-for-vulnerabilities-and-errors/running-codeql-code-scanning-in-a-container - - /code-security/secure-coding/automatically-scanning-your-code-for-vulnerabilities-and-errors/troubleshooting-the-codeql-workflow + - /code-security/code-scanning/automatically-scanning-your-code-for-vulnerabilities-and-errors/about-code-scanning + - /code-security/code-scanning/automatically-scanning-your-code-for-vulnerabilities-and-errors/setting-up-code-scanning-for-a-repository + - /code-security/code-scanning/automatically-scanning-your-code-for-vulnerabilities-and-errors/configuring-code-scanning + - /code-security/code-scanning/automatically-scanning-your-code-for-vulnerabilities-and-errors/configuring-the-codeql-workflow-for-compiled-languages + - /code-security/code-scanning/automatically-scanning-your-code-for-vulnerabilities-and-errors/running-codeql-code-scanning-in-a-container + - /code-security/code-scanning/automatically-scanning-your-code-for-vulnerabilities-and-errors/troubleshooting-the-codeql-workflow #Feature available in all versions from GHES 2.22 up code_security_integration: title: '与代码扫描集成' description: '使用 SARIF 将分析结果从第三方系统上传到 GitHub。' guides: - - /code-security/secure-coding/integrating-with-code-scanning/about-integration-with-code-scanning - - /code-security/secure-coding/integrating-with-code-scanning/uploading-a-sarif-file-to-github - - /code-security/secure-coding/integrating-with-code-scanning/sarif-support-for-code-scanning + - /code-security/code-scanning/integrating-with-code-scanning/about-integration-with-code-scanning + - /code-security/code-scanning/integrating-with-code-scanning/uploading-a-sarif-file-to-github + - /code-security/code-scanning/integrating-with-code-scanning/sarif-support-for-code-scanning - /rest/reference/code-scanning #Feature available in all versions from GHES 2.22 up code_security_ci: title: '在 CI 中运行 CodeQL 代码扫描' description: '在您现有的 CI 中设置CodeQL并将结果上传到 GitHub 代码扫描。' guides: - - /code-security/secure-coding/using-codeql-code-scanning-with-your-existing-ci-system/about-codeql-code-scanning-in-your-ci-system - - /code-security/secure-coding/using-codeql-code-scanning-with-your-existing-ci-system/installing-codeql-cli-in-your-ci-system - - /code-security/secure-coding/using-codeql-code-scanning-with-your-existing-ci-system/configuring-codeql-cli-in-your-ci-system - - /code-security/secure-coding/using-codeql-code-scanning-with-your-existing-ci-system/running-codeql-runner-in-your-ci-system - - /code-security/secure-coding/using-codeql-code-scanning-with-your-existing-ci-system/configuring-codeql-runner-in-your-ci-system - - /code-security/secure-coding/using-codeql-code-scanning-with-your-existing-ci-system/troubleshooting-codeql-runner-in-your-ci-system + - /code-security/code-scanning/using-codeql-code-scanning-with-your-existing-ci-system/about-codeql-code-scanning-in-your-ci-system + - /code-security/code-scanning/using-codeql-code-scanning-with-your-existing-ci-system/installing-codeql-cli-in-your-ci-system + - /code-security/code-scanning/using-codeql-code-scanning-with-your-existing-ci-system/configuring-codeql-cli-in-your-ci-system + - /code-security/code-scanning/using-codeql-code-scanning-with-your-existing-ci-system/running-codeql-runner-in-your-ci-system + - /code-security/code-scanning/using-codeql-code-scanning-with-your-existing-ci-system/configuring-codeql-runner-in-your-ci-system + - /code-security/code-scanning/using-codeql-code-scanning-with-your-existing-ci-system/troubleshooting-codeql-runner-in-your-ci-system diff --git a/translations/zh-CN/data/reusables/actions/jobs/section-using-concurrency.md b/translations/zh-CN/data/reusables/actions/jobs/section-using-concurrency.md index be26f755fc..8ad1f19aa2 100644 --- a/translations/zh-CN/data/reusables/actions/jobs/section-using-concurrency.md +++ b/translations/zh-CN/data/reusables/actions/jobs/section-using-concurrency.md @@ -1,4 +1,4 @@ -Use `concurrency` to ensure that only a single job or workflow using the same concurrency group will run at a time. 并发组可以是任何字符串或表达式。 并发组可以是任何字符串或表达式。 The expression can only use the [`github` context](/actions/learn-github-actions/contexts#github-context). For more information about expressions, see "[Expressions](/actions/learn-github-actions/expressions)." +Use `concurrency` to ensure that only a single job or workflow using the same concurrency group will run at a time. 并发组可以是任何字符串或表达式。 The expression can only use the [`github` context](/actions/learn-github-actions/contexts#github-context). For more information about expressions, see "[Expressions](/actions/learn-github-actions/expressions)." 您也可以在作业级别指定 `concurrency`。 更多信息请参阅 [`jobs..concurrency`](/actions/using-workflows/workflow-syntax-for-github-actions#jobsjob_idconcurrency)。 diff --git a/translations/zh-CN/data/reusables/actions/perform-blob-storage-precheck.md b/translations/zh-CN/data/reusables/actions/perform-blob-storage-precheck.md new file mode 100644 index 0000000000..3cc4721219 --- /dev/null +++ b/translations/zh-CN/data/reusables/actions/perform-blob-storage-precheck.md @@ -0,0 +1 @@ +1. Run the `ghe-actions-precheck` command to test your blob storage configuration. 更多信息请参阅“[命令行实用程序](/admin/configuration/configuring-your-enterprise/command-line-utilities#ghe-actions-precheck)”。 \ No newline at end of file diff --git a/translations/zh-CN/data/reusables/actions/reusable-workflow-calling-syntax.md b/translations/zh-CN/data/reusables/actions/reusable-workflow-calling-syntax.md new file mode 100644 index 0000000000..2c464b1540 --- /dev/null +++ b/translations/zh-CN/data/reusables/actions/reusable-workflow-calling-syntax.md @@ -0,0 +1,4 @@ +* `{owner}/{repo}/{path}/{filename}@{ref}`{% ifversion fpt or ghec or ghes > 3.4 or ghae-issue-6000 %} for reusable workflows in public {% ifversion ghes or ghec or ghae %}or internal{% endif %} repositories. +* `./{path}/{filename}` for reusable workflows in the same repository.{% endif %} + +`{ref}` can be a SHA, a release tag, or a branch name. Using the commit SHA is the safest for stability and security. 更多信息请参阅“[GitHub Actions 的安全性增强](/actions/learn-github-actions/security-hardening-for-github-actions#reusing-third-party-workflows)”。 {% ifversion fpt or ghec or ghes > 3.4 or ghae-issue-6000 %}If you use the second syntax option (without `{owner}/{repo}` and `@{ref}`) the called workflow is from the same commit as the caller workflow.{% endif %} \ No newline at end of file diff --git a/translations/zh-CN/data/reusables/actions/uses-keyword-example.md b/translations/zh-CN/data/reusables/actions/uses-keyword-example.md index bfa3b8ef31..10a967722f 100644 --- a/translations/zh-CN/data/reusables/actions/uses-keyword-example.md +++ b/translations/zh-CN/data/reusables/actions/uses-keyword-example.md @@ -1,7 +1,11 @@ ```yaml jobs: - call-workflow-1: + call-workflow-1-in-local-repo: uses: octo-org/this-repo/.github/workflows/workflow-1.yml@172239021f7ba04fe7327647b213799853a9eb89 - call-workflow-2: - uses: octo-org/another-repo/.github/workflows/workflow-2.yml@v1 +{%- ifversion fpt or ghec or ghes > 3.4 or ghae-issue-6000 %} + call-workflow-2-in-local-repo: + uses: ./.github/workflows/workflow-2.yml +{%- endif %} + call-workflow-in-another-repo: + uses: octo-org/another-repo/.github/workflows/workflow.yml@v1 ``` diff --git a/translations/zh-CN/data/reusables/actions/workflows/section-triggering-a-workflow-paths.md b/translations/zh-CN/data/reusables/actions/workflows/section-triggering-a-workflow-paths.md index 3d584fe037..bcf62c40c4 100644 --- a/translations/zh-CN/data/reusables/actions/workflows/section-triggering-a-workflow-paths.md +++ b/translations/zh-CN/data/reusables/actions/workflows/section-triggering-a-workflow-paths.md @@ -5,7 +5,7 @@ Use the `paths` filter when you want to include file path patterns or when you w If you define both `branches`/`branches-ignore` and `paths`, the workflow will only run when both filters are satisfied. -The `paths` and `paths-ignore` keywords accept glob patterns that use the `*` and `**` wildcard characters to match more than one path name. For more information, see the "[Filter pattern cheat sheet]/actions/using-workflows/workflow-syntax-for-github-actions#filter-pattern-cheat-sheet)." +The `paths` and `paths-ignore` keywords accept glob patterns that use the `*` and `**` wildcard characters to match more than one path name. 更多信息请参阅“[过滤器模式备忘清单](/actions/using-workflows/workflow-syntax-for-github-actions#filter-pattern-cheat-sheet)”。 #### 示例:包括路径 diff --git a/translations/zh-CN/data/reusables/apps/api-rate-limits-non-ghec.md b/translations/zh-CN/data/reusables/apps/api-rate-limits-non-ghec.md deleted file mode 100644 index f94a67abb8..0000000000 --- a/translations/zh-CN/data/reusables/apps/api-rate-limits-non-ghec.md +++ /dev/null @@ -1 +0,0 @@ -发出服务器-服务器请求的 {% data variables.product.prodname_github_apps %} 使用安装的最低速率限制为每小时 5,000 个请求。 具有 20 个以上用户的组织安装每小时每个用户将再收到 50 个请求。 具有 20 个以上仓库的安装每小时会为每个仓库再接收 50 个请求。 安装的最大速率限制为每小时 12,500 个请求。 diff --git a/translations/zh-CN/data/reusables/apps/user-to-server-rate-limits-ghec.md b/translations/zh-CN/data/reusables/apps/user-to-server-rate-limits-ghec.md new file mode 100644 index 0000000000..1d6190588e --- /dev/null +++ b/translations/zh-CN/data/reusables/apps/user-to-server-rate-limits-ghec.md @@ -0,0 +1,4 @@ +User-to-server requests are subject to a higher limit of 15,000 requests per hour and per authenticated user in the following scenarios. + +- The request is from a {% data variables.product.prodname_github_app %} that's owned by a {% data variables.product.prodname_ghe_cloud %} organization. +- The request is from an {% data variables.product.prodname_oauth_app %} that's owned or approved by a {% data variables.product.prodname_ghe_cloud %} organization. diff --git a/translations/zh-CN/data/reusables/apps/user-to-server-rate-limits.md b/translations/zh-CN/data/reusables/apps/user-to-server-rate-limits.md new file mode 100644 index 0000000000..81551fa1d4 --- /dev/null +++ b/translations/zh-CN/data/reusables/apps/user-to-server-rate-limits.md @@ -0,0 +1 @@ +{% ifversion ghes %}By default, user-to-server{% else %}User-to-server{% endif %} requests are limited to {% ifversion ghae %}15,000{% elsif fpt or ghec or ghes %}5,000{% endif %} requests per hour and per authenticated user. All requests from OAuth applications authorized by a user or a personal access token owned by the user, and requests authenticated with any of the user's authentication credentials, share the same quota of {% ifversion ghae %}15,000{% elsif fpt or ghec or ghes %}5,000{% endif %} requests per hour for that user. \ No newline at end of file diff --git a/translations/zh-CN/data/reusables/enterprise-accounts/user-provisioning-release-stage.md b/translations/zh-CN/data/reusables/enterprise-accounts/user-provisioning-release-stage.md deleted file mode 100644 index a2bd07e0dc..0000000000 --- a/translations/zh-CN/data/reusables/enterprise-accounts/user-provisioning-release-stage.md +++ /dev/null @@ -1,5 +0,0 @@ -{% note %} - -**注:**企业帐户中的组织的用户预配目前仅支持 Okta,正在私有测试版中,可能会更改。 要申请使用测试版,[请联系我们的客户管理团队](https://enterprise.github.com/contact)。 - -{% endnote %} diff --git a/translations/zh-CN/data/reusables/enterprise/rate_limit.md b/translations/zh-CN/data/reusables/enterprise/rate_limit.md index 18b145eff2..a79474a3b3 100644 --- a/translations/zh-CN/data/reusables/enterprise/rate_limit.md +++ b/translations/zh-CN/data/reusables/enterprise/rate_limit.md @@ -1,4 +1,9 @@ -{% ifversion ghes or ghae %} -请注意,上述限制是 -{% data variables.product.product_name %} 上编辑、删除或创建文件或者合并拉取请求时,可以选择将作者更改提交到哪个经验证的电子邮件地址。 请与站点管理员联系,确认是否启用了速率限制以及如何配置它们。 +{% ifversion ghes %} + +{% note %} + +**Note**: The following rate limits are the default rate limits for {% data variables.product.product_name %}. Contact your site administrator to confirm the rate limits for {% data variables.product.product_location %}. + +{% endnote %} + {% endif %} diff --git a/translations/zh-CN/data/reusables/enterprise_installation/hotpatching-explanation.md b/translations/zh-CN/data/reusables/enterprise_installation/hotpatching-explanation.md index 5654fec012..2ec1ebc1d0 100644 --- a/translations/zh-CN/data/reusables/enterprise_installation/hotpatching-explanation.md +++ b/translations/zh-CN/data/reusables/enterprise_installation/hotpatching-explanation.md @@ -1 +1,3 @@ -您可以使用热更新将 {% data variables.product.prodname_ghe_server %} 升级为最新的补丁版本,它不需要维护时间窗,通常不需要重启。 您可以使用热更新来升级到更新的补丁版本,但不能升级到功能版本。 例如,您可以从 `2.10.1` 升级到 `2.10.5`,因为它们属于相同的功能系列,但不能从 `2. 0.9` 升级到 `2.11.0`,因为它们处于不同的功能系列中。 +您可以使用热更新将 {% data variables.product.prodname_ghe_server %} 升级为最新的补丁版本,它不需要维护时间窗,通常不需要重启。 + +您可以使用热更新来升级到更新的补丁版本,但不能升级到功能版本。 例如,您可以从 `2.10.1` 升级到 `2.10.5`,因为它们属于相同的功能系列,但不能从 `2. 0.9` 升级到 `2.11.0`,因为它们处于不同的功能系列中。 diff --git a/translations/zh-CN/data/reusables/gated-features/secret-scanning.md b/translations/zh-CN/data/reusables/gated-features/secret-scanning.md index 1a9c416d10..c758a8dace 100644 --- a/translations/zh-CN/data/reusables/gated-features/secret-scanning.md +++ b/translations/zh-CN/data/reusables/gated-features/secret-scanning.md @@ -1,6 +1,13 @@ -{% ifversion fpt or ghec %}{% data variables.product.prodname_secret_scanning_caps %} 适用于所有公共仓库以及启用了 {% data variables.product.prodname_GH_advanced_security %} 的组织拥有的私有仓库。 -{%- elsif ghes > 3.0 or ghae %}{% data variables.product.prodname_secret_scanning_caps %} 适用于启用了 {% data variables.product.prodname_GH_advanced_security %} 的组织拥有的仓库。 +{%- ifversion fpt %} +{% data variables.product.prodname_secret_scanning_caps %} is enabled on public repositories in all products. {% data variables.product.prodname_secret_scanning_caps %} is also available in private repositories owned by organizations that use {% data variables.product.prodname_ghe_cloud %} and have a license for {% data variables.product.prodname_GH_advanced_security %}. + +{%- elsif ghec %} +{% data variables.product.prodname_secret_scanning_caps %} is included in {% data variables.product.product_name %} for public repositories. To use {% data variables.product.prodname_secret_scanning %} in private repositories owned by organizations, you must have a license for {% data variables.product.prodname_GH_advanced_security %}. + +{%- elsif ghes %} +{% data variables.product.prodname_secret_scanning_caps %} is available for organization-owned repositories in {% data variables.product.product_name %} if your enterprise has a license for {% data variables.product.prodname_GH_advanced_security %}. + {%- elsif ghae %} -{% data variables.product.prodname_secret_scanning_caps %} 可用作 {% data variables.product.prodname_GH_advanced_security %} 的一部分,在测试期间免费使用。 -{%- else %} -{% data variables.product.prodname_secret_scanning_caps %} 在您拥有 {% data variables.product.prodname_GH_advanced_security %} 的许可证时可用。{% endif %} {% data reusables.advanced-security.more-info-ghas %} +{% data variables.product.prodname_secret_scanning_caps %} is available for organization-owned repositories in {% data variables.product.product_name %}. This is a {% data variables.product.prodname_GH_advanced_security %} feature (free during the beta release). + +{%- endif %} {% ifversion not ghae %}For more information, see "[GitHub's products](/articles/githubs-products)."{% endif %} diff --git a/translations/zh-CN/data/reusables/rest-api/always-check-your-limit.md b/translations/zh-CN/data/reusables/rest-api/always-check-your-limit.md new file mode 100644 index 0000000000..f16b1bcb0b --- /dev/null +++ b/translations/zh-CN/data/reusables/rest-api/always-check-your-limit.md @@ -0,0 +1,5 @@ +{% note %} + +**Note**: You can confirm your current rate limit status at any time. For more information, see "[Checking your rate limit status](/rest/overview/resources-in-the-rest-api#checking-your-rate-limit-status)." + +{% endnote %} diff --git a/translations/zh-CN/data/reusables/saml/add-okta-application.md b/translations/zh-CN/data/reusables/saml/add-okta-application.md deleted file mode 100644 index ac80ba0bc9..0000000000 --- a/translations/zh-CN/data/reusables/saml/add-okta-application.md +++ /dev/null @@ -1 +0,0 @@ -2. 单击 **Add application(添加应用程序)**。 ![Okta 仪表板的 Applications(应用程序)选项卡中的"Add application(添加应用程序)"按钮](/assets/images/help/saml/okta-add-application.png) diff --git a/translations/zh-CN/data/reusables/saml/okta-admin-button.md b/translations/zh-CN/data/reusables/saml/okta-admin-button.md deleted file mode 100644 index 2da52806ca..0000000000 --- a/translations/zh-CN/data/reusables/saml/okta-admin-button.md +++ /dev/null @@ -1 +0,0 @@ -1. 在 Okta 中的右上角,单击 **Admin(管理员)**。 ![Okta 中的管理员按钮](/assets/images/help/saml/okta-admin-button.png) diff --git a/translations/zh-CN/data/reusables/saml/okta-applications-click-ghec-application-label.md b/translations/zh-CN/data/reusables/saml/okta-applications-click-ghec-application-label.md index 6df7b6ef4a..b54e0bb9e3 100644 --- a/translations/zh-CN/data/reusables/saml/okta-applications-click-ghec-application-label.md +++ b/translations/zh-CN/data/reusables/saml/okta-applications-click-ghec-application-label.md @@ -1 +1 @@ -1. 在应用程序列表中,单击为使用 {% data variables.product.prodname_ghe_cloud %} 的组织所创建的应用程序的标签。 ![{% data variables.product.prodname_ghe_cloud %} 在 Okta 中的应用](/assets/images/help/saml/okta-ghec-application.png) +1. 在应用程序列表中,单击为使用 {% data variables.product.prodname_ghe_cloud %} 的组织所创建的应用程序的标签。 diff --git a/translations/zh-CN/data/reusables/saml/okta-configure-api-integration.md b/translations/zh-CN/data/reusables/saml/okta-configure-api-integration.md index eddb640163..5279d0bea6 100644 --- a/translations/zh-CN/data/reusables/saml/okta-configure-api-integration.md +++ b/translations/zh-CN/data/reusables/saml/okta-configure-api-integration.md @@ -1 +1 @@ -1. 单击 **Configure API Integration(配置 API 集成)**。 ![Okta 应用程序的"Configure API Integration(配置 API 集成)"按钮](/assets/images/help/saml/okta-configure-api-integration.png) +1. 单击 **Configure API Integration(配置 API 集成)**。 diff --git a/translations/zh-CN/data/reusables/saml/okta-dashboard-click-applications.md b/translations/zh-CN/data/reusables/saml/okta-dashboard-click-applications.md index ceaf4c2b8c..b875277236 100644 --- a/translations/zh-CN/data/reusables/saml/okta-dashboard-click-applications.md +++ b/translations/zh-CN/data/reusables/saml/okta-dashboard-click-applications.md @@ -1 +1 @@ -1. 在 Okta 仪表板中,单击 **Applications(应用程序)**。 ![Okta 仪表板导航栏中的"应用程序"项](/assets/images/help/saml/okta-applications.png) +1. In the left sidebar, use the **Applications** dropdown and click **Applications**. diff --git a/translations/zh-CN/data/reusables/saml/okta-edit-provisioning.md b/translations/zh-CN/data/reusables/saml/okta-edit-provisioning.md index 0ae5a8ae64..2fdaefc9de 100644 --- a/translations/zh-CN/data/reusables/saml/okta-edit-provisioning.md +++ b/translations/zh-CN/data/reusables/saml/okta-edit-provisioning.md @@ -1,6 +1,8 @@ -9. To avoid syncing errors and confirm that your users have SAML enabled and SCIM linked identities, we recommend you audit your organization's users. For more information, see "[Auditing users for missing SCIM metadata](/organizations/managing-saml-single-sign-on-for-your-organization/troubleshooting-identity-and-access-management#auditing-users-for-missing-scim-metadata)." -10. 在“Provisioning to App(配置到 App)”的右侧,单击 **Edit(编辑)**。 ![用于 Okta 应用程序配置选项的"Edit(编辑)"按钮](/assets/images/help/saml/okta-provisioning-to-app-edit-button.png) -11. 在“Create Users(创建用户)”的右侧,选择 **Enable(启用)**。 ![用于 Okta 应用程序"Create Users(创建用户)"选项的"Enable(启用)"复选框](/assets/images/help/saml/okta-provisioning-enable-create-users.png) -12. 在“Update User Attributes(更新用户属性)”的右侧,选择 **Enable(启用)**。 ![用于 Okta 应用程序"Update User Attributes(更新用户属性)"选项的"Enable(启用)"复选框](/assets/images/help/saml/okta-provisioning-enable-update-user-attributes.png) -13. 在“Deactivate Users(停用用户)”的右侧,选择 **Enable(启用)**。 ![用于 Okta 应用程序"Deactivate Users(停用用户)"选项的"Enable(启用)"复选框](/assets/images/help/saml/okta-provisioning-enable-deactivate-users.png) -14. 单击 **Save(保存)**。 ![用于 Okta 应用程序配置的"Save(保存)"按钮](/assets/images/help/saml/okta-provisioning-save.png) +1. To avoid syncing errors and confirm that your users have SAML enabled and SCIM linked identities, we recommend you audit your organization's users. For more information, see "[Auditing users for missing SCIM metadata](/organizations/managing-saml-single-sign-on-for-your-organization/troubleshooting-identity-and-access-management#auditing-users-for-missing-scim-metadata)." +1. 在“Provisioning to App(配置到 App)”的右侧,单击 **Edit(编辑)**。 + + ![Screenshot of "Edit" button for Okta application's provisioning options](/assets/images/help/saml/okta-provisioning-to-app-edit-button.png) +1. To the right of **Create Users**, **Update User Attributes**, and **Deactivate Users**, select **Enable**. + + ![Screenshot of "Enable" checkboxes for "Create Users", "Update User Attributes", and "Deactivate Users" options](/assets/images/help/saml/okta-provisioning-enable-options.png) +1. 单击 **Save(保存)**。 diff --git a/translations/zh-CN/data/reusables/saml/okta-enable-api-integration.md b/translations/zh-CN/data/reusables/saml/okta-enable-api-integration.md index 9eebde8c8c..2d92e08a65 100644 --- a/translations/zh-CN/data/reusables/saml/okta-enable-api-integration.md +++ b/translations/zh-CN/data/reusables/saml/okta-enable-api-integration.md @@ -1 +1 @@ -1. 选择 **Enable API integration(启用 API 集成)**。 ![Okta 应用程序的"Enable API integration(启用 API 集成)"复选框](/assets/images/help/saml/okta-enable-api-integration.png) +1. 选择 **Enable API integration(启用 API 集成)**。 diff --git a/translations/zh-CN/data/reusables/saml/okta-provisioning-tab.md b/translations/zh-CN/data/reusables/saml/okta-provisioning-tab.md index 3eaef656e0..b6b0fd2a0b 100644 --- a/translations/zh-CN/data/reusables/saml/okta-provisioning-tab.md +++ b/translations/zh-CN/data/reusables/saml/okta-provisioning-tab.md @@ -1 +1 @@ -1. 在应用程序名称下,单击 **Provisioning(预配)**。 ![Okta 应用程序的"Provisioning(配置)"选项卡](/assets/images/help/saml/okta-provisioning-tab.png) +1. 在应用程序名称下,单击 **Provisioning(预配)**。 ![Screenshot of "Provisioning" tab for Okta application](/assets/images/help/saml/okta-provisioning-tab.png) diff --git a/translations/zh-CN/data/reusables/saml/okta-save-provisioning.md b/translations/zh-CN/data/reusables/saml/okta-save-provisioning.md index 38b0df1637..10c96bf30f 100644 --- a/translations/zh-CN/data/reusables/saml/okta-save-provisioning.md +++ b/translations/zh-CN/data/reusables/saml/okta-save-provisioning.md @@ -1 +1 @@ -1. 单击 **Save(保存)**。 ![用于 Okta 应用程序配置的"Save(保存)"按钮](/assets/images/help/saml/okta-provisioning-tab-save.png) +1. 单击 **Save(保存)**。 diff --git a/translations/zh-CN/data/reusables/saml/okta-sign-into-your-account.md b/translations/zh-CN/data/reusables/saml/okta-sign-into-your-account.md new file mode 100644 index 0000000000..7ff8f1679f --- /dev/null +++ b/translations/zh-CN/data/reusables/saml/okta-sign-into-your-account.md @@ -0,0 +1 @@ +1. Sign into your [Okta account](https://login.okta.com/). diff --git a/translations/zh-CN/data/reusables/saml/okta-sign-on-tab.md b/translations/zh-CN/data/reusables/saml/okta-sign-on-tab.md index 8fe6c17497..5c28005e06 100644 --- a/translations/zh-CN/data/reusables/saml/okta-sign-on-tab.md +++ b/translations/zh-CN/data/reusables/saml/okta-sign-on-tab.md @@ -1 +1 @@ -1. 在应用程序名称下,单击 **Sign on(登录)**。 ![Okta 应用程序的"Sign on(登录)"选项卡](/assets/images/help/saml/okta-sign-on-tab.png) +1. 在应用程序名称下,单击 **Sign on(登录)**。 ![Screenshot of "Sign on" tab for Okta application](/assets/images/help/saml/okta-sign-on-tab.png) diff --git a/translations/zh-CN/data/reusables/saml/okta-view-setup-instructions.md b/translations/zh-CN/data/reusables/saml/okta-view-setup-instructions.md index 00afe2438d..73871fd973 100644 --- a/translations/zh-CN/data/reusables/saml/okta-view-setup-instructions.md +++ b/translations/zh-CN/data/reusables/saml/okta-view-setup-instructions.md @@ -1 +1 @@ -1. 在“SIGN ON METHODS(登录方式)”下,单击 **View Setup Instructions(查看设置说明)**。 ![Okta 应用程序的"Sign On(登录)"选项卡中的"View Setup Instructions(查看设置说明)"按钮](/assets/images/help/saml/okta-view-setup-instructions.png) +1. 在“SIGN ON METHODS(登录方式)”下,单击 **View Setup Instructions(查看设置说明)**。 diff --git a/translations/zh-CN/data/reusables/saml/removed-users-can-rejoin.md b/translations/zh-CN/data/reusables/saml/removed-users-can-rejoin.md new file mode 100644 index 0000000000..8bb5ff9b97 --- /dev/null +++ b/translations/zh-CN/data/reusables/saml/removed-users-can-rejoin.md @@ -0,0 +1 @@ +Any users removed due to SAML SSO enforcement can rejoin your organization by authenticating via SAML single sign-on. \ No newline at end of file diff --git a/translations/zh-CN/data/reusables/saml/search-ghec-okta.md b/translations/zh-CN/data/reusables/saml/search-ghec-okta.md deleted file mode 100644 index 09806ee6a9..0000000000 --- a/translations/zh-CN/data/reusables/saml/search-ghec-okta.md +++ /dev/null @@ -1 +0,0 @@ -3. 在搜索字段中键入"GitHub Enterprise Cloud"。 ![Okta 的 "Search for an application(搜索应用程序)"字段](/assets/images/help/saml/okta-search-for-an-application.png) diff --git a/translations/zh-CN/data/reusables/secret-scanning/about-secret-scanning.md b/translations/zh-CN/data/reusables/secret-scanning/about-secret-scanning.md deleted file mode 100644 index 287a8fa523..0000000000 --- a/translations/zh-CN/data/reusables/secret-scanning/about-secret-scanning.md +++ /dev/null @@ -1,2 +0,0 @@ -If someone checks a secret with a known pattern into a {% ifversion fpt or ghec %}public or private{% endif %} repository on {% data variables.product.product_name %}, {% data variables.product.prodname_secret_scanning %} catches the secret as it's checked in, and helps you mitigate the impact of the leak. -Repository administrators are notified about any commit that contains a secret, and they can quickly view all detected secrets in the Security tab for the repository. diff --git a/translations/zh-CN/data/reusables/secret-scanning/beta.md b/translations/zh-CN/data/reusables/secret-scanning/beta.md index 8d72698b14..b7064d4a0a 100644 --- a/translations/zh-CN/data/reusables/secret-scanning/beta.md +++ b/translations/zh-CN/data/reusables/secret-scanning/beta.md @@ -1,21 +1,8 @@ -{% ifversion ghes = 3.0 or ghae %} +{% ifversion ghae %} {% note %} **注意:**组织拥有的仓库的 {% data variables.product.prodname_secret_scanning_caps %} 目前处于公测阶段,可能会有变动。 -If you're using an earlier version of {% data variables.product.prodname_ghe_server %}, you'll have to upgrade to use {% data variables.product.prodname_secret_scanning %}. For more information about upgrading your {% data variables.product.prodname_ghe_server %} instance, see "[About upgrades to new releases](/admin/overview/about-upgrades-to-new-releases)" and refer to the [{% data variables.enterprise.upgrade_assistant %}](https://support.github.com/enterprise/server-upgrade) to find the upgrade path from your current release version. - - -{% endnote %} - -{% endif %} -{% ifversion ghes > 3.0 %} - -{% note %} - -**注:** {% data variables.product.prodname_secret_scanning_caps %} 是 {% data variables.product.prodname_ghe_server %} 3.0 中的测试版功能。 对于 {% data variables.product.prodname_secret_scanning %} 的一般可用版本,请升级到 {% data variables.product.prodname_ghe_server %} 的最新版本。 For more information about upgrading your {% data variables.product.prodname_ghe_server %} instance, see "[About upgrades to new releases](/admin/overview/about-upgrades-to-new-releases)" and refer to the [{% data variables.enterprise.upgrade_assistant %}](https://support.github.com/enterprise/server-upgrade) to find the upgrade path from your current release version. - - {% endnote %} {% endif %} diff --git a/translations/zh-CN/data/reusables/secret-scanning/partner-program-link.md b/translations/zh-CN/data/reusables/secret-scanning/partner-program-link.md new file mode 100644 index 0000000000..1cc8a58b7e --- /dev/null +++ b/translations/zh-CN/data/reusables/secret-scanning/partner-program-link.md @@ -0,0 +1,5 @@ +{% ifversion fpt or ghec %} +To find out about our partner program, see "[{% data variables.product.prodname_secret_scanning_caps %} partner program](/developers/overview/secret-scanning-partner-program)." +{% else %} +To find out about our partner program, see "[{% data variables.product.prodname_secret_scanning_caps %} partner program](/free-pro-team@latest/developers/overview/secret-scanning-partner-program)" in the {% data variables.product.prodname_ghe_cloud %} documentation +{% endif %} \ No newline at end of file diff --git a/translations/zh-CN/data/reusables/shortdesc/rate_limits_github_apps.md b/translations/zh-CN/data/reusables/shortdesc/rate_limits_github_apps.md index 2f1bb51ef0..8bbd3534fd 100644 --- a/translations/zh-CN/data/reusables/shortdesc/rate_limits_github_apps.md +++ b/translations/zh-CN/data/reusables/shortdesc/rate_limits_github_apps.md @@ -1 +1 @@ -GitHub 应用程序的速率限制有助于控制流量。 +Rate limits for {% data variables.product.prodname_github_apps %} and {% data variables.product.prodname_oauth_apps %} help control the rate of traffic to {% data variables.product.product_location %}. diff --git a/translations/zh-CN/data/reusables/two_fa/after-2fa-add-security-key.md b/translations/zh-CN/data/reusables/two_fa/after-2fa-add-security-key.md index f0e1d310ce..a0f626b40f 100644 --- a/translations/zh-CN/data/reusables/two_fa/after-2fa-add-security-key.md +++ b/translations/zh-CN/data/reusables/two_fa/after-2fa-add-security-key.md @@ -1 +1 @@ -使用手机应用程序{% ifversion fpt or ghec %}或通过短信{% endif %}配置 2FA 后,您可以添加一个安全密钥,如指纹识别器或 Windows Hello。 启用安全密钥身份验证的技术称为 WebAuthn。 WebAuthn 是 U2F 的继承者,适用于所有现代浏览器。 更多信息请参阅“[WebAuthn](https://webauthn.guide/)”和“[我可以使用](https://caniuse.com/#search=webauthn)”。 +After you configure 2FA, using a time-based one-time password (TOTP) mobile app{% ifversion fpt or ghec %}, or via text message{% endif %}, you can add a security key, like a fingerprint reader or Windows Hello. 启用安全密钥身份验证的技术称为 WebAuthn。 WebAuthn 是 U2F 的继承者,适用于所有现代浏览器。 更多信息请参阅“[WebAuthn](https://webauthn.guide/)”和“[我可以使用](https://caniuse.com/#search=webauthn)”。 diff --git a/translations/zh-CN/data/reusables/two_fa/send-invite-to-reinstate-user-before-2fa-is-enabled.md b/translations/zh-CN/data/reusables/two_fa/send-invite-to-reinstate-user-before-2fa-is-enabled.md index 4a8a6bd5a1..8b7e8842c6 100644 --- a/translations/zh-CN/data/reusables/two_fa/send-invite-to-reinstate-user-before-2fa-is-enabled.md +++ b/translations/zh-CN/data/reusables/two_fa/send-invite-to-reinstate-user-before-2fa-is-enabled.md @@ -1,3 +1,3 @@ {% ifversion fpt or ghec %} -在用户启用双重身份验证之前,您可以向他们发送邀请以恢复其权限和对组织的访问,但他们必须启用双重身份验证之后才能接受邀请以重新加入组织。 +If a user was removed from your organization because you required members and outside collaborators to enable 2FA, you can send an invitation to reinstate a user's privileges and access to the organization before they have enabled two-factor authentication, but they must enable 2FA before they can accept your invitation to rejoin the organization. {% endif %} diff --git a/translations/zh-CN/data/variables/contact.yml b/translations/zh-CN/data/variables/contact.yml index 8629f78a9b..42b04360d5 100644 --- a/translations/zh-CN/data/variables/contact.yml +++ b/translations/zh-CN/data/variables/contact.yml @@ -11,7 +11,7 @@ contact_dmca: >- contact_privacy: >- {% ifversion fpt or ghec %}[隐私联系表](https://github.com/contact/privacy){% endif %} contact_enterprise_sales: "[GitHub' 销售团队](https://github.com/enterprise/contact)" -contact_feedback_actions: '[GitHub 操作的反馈表](https://support.github.com/contact/feedback?contact[category]=actions)' +contact_feedback_actions: '[Feedback discussion for GitHub Actions](https://github.com/github/feedback/discussions/categories/actions-and-packages-feedback)' #The team that provides Standard Support enterprise_support: 'GitHub Enterprise 支持' #The larger team that includes Enterprise Support and Premium Support