From 06d818ee7c14b574228ad5f10c841c501e8dec0e Mon Sep 17 00:00:00 2001 From: Anil Seervi <61609033+AnilSeervi@users.noreply.github.com> Date: Sat, 1 Oct 2022 14:50:41 +0530 Subject: [PATCH 01/15] update keys according to guidelines and use proper keys --- data/reusables/command-palette/change-scope.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/data/reusables/command-palette/change-scope.md b/data/reusables/command-palette/change-scope.md index 4cf46c21a4..6d0f7c85b4 100644 --- a/data/reusables/command-palette/change-scope.md +++ b/data/reusables/command-palette/change-scope.md @@ -2,4 +2,4 @@ - To narrow the scope within a user or organization account, highlight a repository then use Tab to add it to the scope. - To expand the scope, highlight and remove an item in the scope using the Backspace or delete key. - - To clear the scope and text box, click **Clear** or use CtrlBackspace (Windows and Linux) or Backspace (Mac). + - To clear the scope and text box, click **Clear** or use Ctrl+Backspace (Windows and Linux) or Command+Delete (Mac). From 8f9847a3afaa7e7b3fef0c32f01ef16db74ba788 Mon Sep 17 00:00:00 2001 From: ethosdev <79124435+ethosdev@users.noreply.github.com> Date: Sat, 1 Oct 2022 09:05:34 -0700 Subject: [PATCH 02/15] Fix "git rm" syntax error The was missing so led to this syntax error: usage: git rm [] [--] ... --- .../creating-a-github-pages-site-with-jekyll.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/content/pages/setting-up-a-github-pages-site-with-jekyll/creating-a-github-pages-site-with-jekyll.md b/content/pages/setting-up-a-github-pages-site-with-jekyll/creating-a-github-pages-site-with-jekyll.md index 925365fc4d..06da87cd77 100644 --- a/content/pages/setting-up-a-github-pages-site-with-jekyll/creating-a-github-pages-site-with-jekyll.md +++ b/content/pages/setting-up-a-github-pages-site-with-jekyll/creating-a-github-pages-site-with-jekyll.md @@ -70,7 +70,7 @@ Before you can use Jekyll to create a {% data variables.product.prodname_pages % ```shell $ git checkout --orphan gh-pages # Creates a new branch, with no history or contents, called gh-pages, and switches to the gh-pages branch - $ git rm -rf + $ git rm -rf . # Removes the contents from your default branch from the working directory ``` 1. To create a new Jekyll site, use the `jekyll new` command: From b72f008d857ad3f3544585013ea78eee5ff7af87 Mon Sep 17 00:00:00 2001 From: Dev Prakash Sharma Date: Mon, 3 Oct 2022 00:21:32 +0530 Subject: [PATCH 03/15] Remove the emphasize tags and updated attributes style --- ...roubleshooting-commits-on-your-timeline.md | 8 +- ...membering-your-github-username-or-email.md | 8 +- .../setting-your-commit-email-address.md | 6 +- ...best-practices-for-leaving-your-company.md | 2 +- ...-on-macos-runners-for-xcode-development.md | 4 +- .../autoscaling-with-self-hosted-runners.md | 2 +- ...-hosted-runner-application-as-a-service.md | 2 +- ...and-troubleshooting-self-hosted-runners.md | 4 +- .../disabling-and-enabling-a-workflow.md | 4 +- .../downloading-workflow-artifacts.md | 8 +- .../manually-running-a-workflow.md | 4 +- .../re-running-workflows-and-jobs.md | 12 +- .../using-workflow-run-logs.md | 8 +- .../viewing-workflow-run-history.md | 10 +- .../security-guides/encrypted-secrets.md | 16 +-- .../accessing-the-administrative-shell-ssh.md | 4 +- .../command-line-utilities.md | 90 +++++++-------- .../configuring-rate-limits.md | 2 +- ...guring-ssh-connections-to-your-instance.md | 2 +- .../site-admin-dashboard.md | 2 +- ...-approving-a-domain-for-your-enterprise.md | 2 +- .../configuring-a-repository-cache.md | 6 +- ...-availability-replication-for-a-cluster.md | 62 +++++----- .../evacuating-a-cluster-node.md | 16 +-- .../monitoring-cluster-nodes.md | 16 +-- .../upgrading-a-cluster.md | 8 +- .../creating-a-high-availability-replica.md | 20 ++-- ...ng-a-failover-to-your-replica-appliance.md | 2 +- ...ering-a-high-availability-configuration.md | 6 +- .../monitoring-using-snmp.md | 14 +-- .../upgrading-github-enterprise-server.md | 4 +- .../using-a-staging-environment.md | 2 +- ...manually-syncing-actions-from-githubcom.md | 2 +- .../troubleshooting-saml-authentication.md | 2 +- ...talling-github-enterprise-server-on-aws.md | 16 +-- ...lling-github-enterprise-server-on-azure.md | 8 +- ...erprise-server-on-google-cloud-platform.md | 18 +-- ...ing-github-enterprise-server-on-hyper-v.md | 10 +- .../viewing-push-logs.md | 2 +- ...g-the-audit-log-api-for-your-enterprise.md | 4 +- ...inio-storage-bucket-for-github-packages.md | 2 +- .../creating-a-pre-receive-hook-script.md | 10 +- ...-large-file-storage-for-your-enterprise.md | 16 +-- .../auditing-ssh-keys.md | 4 +- ...moting-or-demoting-a-site-administrator.md | 4 +- .../suspending-and-unsuspending-users.md | 4 +- ...exporting-migration-data-from-githubcom.md | 18 +-- ...ing-migration-data-from-your-enterprise.md | 18 +-- ...rom-third-party-version-control-systems.md | 18 +-- .../migrating-data-to-your-enterprise.md | 17 +-- ...ring-to-migrate-data-to-your-enterprise.md | 14 +-- ...ng-a-new-ssh-key-to-your-github-account.md | 4 +- ...-ssh-key-and-adding-it-to-the-ssh-agent.md | 32 +++--- .../testing-your-ssh-connection.md | 2 +- .../working-with-ssh-key-passphrases.md | 14 +-- ...moving-sensitive-data-from-a-repository.md | 18 +-- .../reviewing-your-ssh-keys.md | 6 +- .../associating-an-email-with-your-gpg-key.md | 10 +- .../checking-for-existing-gpg-keys.md | 2 +- .../signing-commits.md | 2 +- .../signing-tags.md | 4 +- .../error-agent-admitted-failure-to-sign.md | 8 +- .../error-bad-file-number.md | 2 +- .../error-key-already-in-use.md | 6 +- .../error-permission-denied-publickey.md | 34 +++--- .../using-ssh-over-the-https-port.md | 4 +- ...running-codeql-runner-in-your-ci-system.md | 6 +- .../creating-a-codespace.md | 2 +- .../forwarding-ports-in-your-codespace.md | 4 +- .../renaming-a-codespace.md | 2 +- ...using-github-codespaces-with-github-cli.md | 24 ++-- .../adding-or-editing-wiki-pages.md | 2 +- .../authenticating-to-github.md | 2 +- ...ng-github-desktop-from-the-command-line.md | 8 +- .../authenticating-with-github-apps.md | 2 +- .../overview/using-ssh-agent-forwarding.md | 14 +-- .../webhooks/securing-your-webhooks.md | 2 +- .../about-remote-repositories.md | 2 +- .../ignoring-files.md | 2 +- .../managing-remote-repositories.md | 56 ++++----- .../setting-your-username-in-git.md | 4 +- ...ing-credentials-from-the-macos-keychain.md | 2 +- .../adding-locally-hosted-code-to-github.md | 6 +- ...a-git-repository-using-the-command-line.md | 8 +- .../support-for-subversion-clients.md | 12 +- .../quickstart/contributing-to-projects.md | 6 +- content/get-started/quickstart/fork-a-repo.md | 26 ++--- .../get-started/using-git/about-git-rebase.md | 2 +- .../using-git/about-git-subtree-merges.md | 2 +- .../dealing-with-non-fast-forward-errors.md | 6 +- ...etting-changes-from-a-remote-repository.md | 8 +- .../pushing-commits-to-a-remote-repository.md | 18 +-- ...g-a-subfolder-out-into-a-new-repository.md | 18 +-- .../creating-github-cli-extensions.md | 28 ++--- content/github-cli/github-cli/quickstart.md | 2 +- .../github-cli/using-github-cli-extensions.md | 6 +- .../guides/forming-calls-with-graphql.md | 8 +- .../graphql/guides/introduction-to-graphql.md | 4 +- .../graphql/guides/using-global-node-ids.md | 2 +- .../using-the-api-to-manage-projects.md | 106 +++++++++--------- ...sferring-an-issue-to-another-repository.md | 2 +- .../about-ssh-certificate-authorities.md | 6 +- ...pproving-a-domain-for-your-organization.md | 2 +- .../connecting-a-repository-to-a-package.md | 2 +- content/packages/quickstart.md | 12 +- .../working-with-the-docker-registry.md | 40 +++---- .../working-with-the-gradle-registry.md | 36 +++--- .../working-with-the-npm-registry.md | 34 +++--- .../working-with-the-nuget-registry.md | 2 +- .../working-with-the-rubygems-registry.md | 8 +- ...ustom-domain-for-your-github-pages-site.md | 40 +++---- ...-to-your-github-pages-site-using-jekyll.md | 10 +- ...reating-a-github-pages-site-with-jekyll.md | 12 +- .../about-merge-conflicts.md | 2 +- ...a-merge-conflict-using-the-command-line.md | 4 +- .../merging-a-pull-request.md | 2 +- ...pull-request-branch-created-from-a-fork.md | 12 +- .../checking-out-pull-requests-locally.md | 16 +-- .../configuring-a-remote-for-a-fork.md | 14 +-- .../working-with-forks/syncing-a-fork.md | 4 +- .../changing-a-commit-message.md | 4 +- ...g-a-commit-on-behalf-of-an-organization.md | 2 +- ...creating-a-commit-with-multiple-authors.md | 4 +- ...sts-on-github-but-not-in-my-local-clone.md | 2 +- .../renaming-a-branch.md | 4 +- .../cloning-a-repository.md | 5 +- .../duplicating-a-repository.md | 24 ++-- .../renaming-a-repository.md | 2 +- .../transferring-a-repository.md | 2 +- .../troubleshooting-cloning-errors.md | 10 +- .../managing-releases-in-a-repository.md | 4 +- .../moving-a-file-to-a-new-location.md | 8 +- .../managing-files/renaming-a-file.md | 6 +- .../about-large-files-on-github.md | 2 +- .../installing-git-large-file-storage.md | 4 +- .../working-with-non-code-files.md | 2 +- content/rest/enterprise-admin/index.md | 2 +- .../enterprise-admin/management-console.md | 4 +- .../getting-started-with-the-rest-api.md | 16 +-- .../overview/other-authentication-methods.md | 12 +- .../overview/resources-in-the-rest-api.md | 6 +- content/rest/quickstart.md | 2 +- .../providing-data-to-github-support.md | 10 +- contributing/content-markup-reference.md | 2 +- .../self-hosted-runner-check-mac-linux.md | 3 +- data/reusables/command_line/git-clone-url.md | 2 +- .../command_line/local-clone-created.md | 2 +- .../providing-token-as-password.md | 6 +- ...and-line-utilities-ghe-upgrade-rollback.md | 2 +- .../configuration-recognized.md | 2 +- .../download-package.md | 2 +- .../generate-replication-key-pair.md | 2 +- .../enterprise_installation/replica-ssh.md | 2 +- .../ssh-into-instance.md | 2 +- .../ssh-into-target-instance.md | 2 +- .../unlocking-on-instances.md | 2 +- data/reusables/git/git-push.md | 2 +- data/reusables/gpg/paste-gpg-key-id.md | 4 +- data/reusables/gpg/x-509-key.md | 10 +- .../create-npmrc-owner-step.md | 6 +- data/reusables/pages/remove-submodule.md | 8 +- 161 files changed, 777 insertions(+), 774 deletions(-) diff --git a/content/account-and-profile/setting-up-and-managing-your-github-profile/managing-contribution-settings-on-your-profile/troubleshooting-commits-on-your-timeline.md b/content/account-and-profile/setting-up-and-managing-your-github-profile/managing-contribution-settings-on-your-profile/troubleshooting-commits-on-your-timeline.md index 7e1305c133..32a51b6316 100644 --- a/content/account-and-profile/setting-up-and-managing-your-github-profile/managing-contribution-settings-on-your-profile/troubleshooting-commits-on-your-timeline.md +++ b/content/account-and-profile/setting-up-and-managing-your-github-profile/managing-contribution-settings-on-your-profile/troubleshooting-commits-on-your-timeline.md @@ -42,11 +42,11 @@ Most often, the author date and commit date are the same but you may notice that You can use the `git show` command with the `--pretty=fuller` flag to check if the commit author date and commit date are different. ```shell -$ git show Your commit SHA number --pretty=fuller -commit Your commit SHA number -Author: octocat user email +$ git show YOUR_COMMIT_SHA_NUMBER --pretty=fuller +commit YOUR_COMMIT_SHA_NUMBER +Author: octocat USER_EMAIL AuthorDate: Tue Apr 03 02:02:30 2018 +0900 -Commit: Sally Johnson user email +Commit: Sally Johnson USER_EMAIL CommitDate: Tue Apr 10 06:25:08 2018 +0900 ``` diff --git a/content/account-and-profile/setting-up-and-managing-your-personal-account-on-github/managing-email-preferences/remembering-your-github-username-or-email.md b/content/account-and-profile/setting-up-and-managing-your-personal-account-on-github/managing-email-preferences/remembering-your-github-username-or-email.md index 2d25c0f3c9..607592a402 100644 --- a/content/account-and-profile/setting-up-and-managing-your-personal-account-on-github/managing-email-preferences/remembering-your-github-username-or-email.md +++ b/content/account-and-profile/setting-up-and-managing-your-personal-account-on-github/managing-email-preferences/remembering-your-github-username-or-email.md @@ -46,7 +46,7 @@ During set up, you may have [set your username in Git](/github/getting-started-w ```shell $ git config user.name # View the setting -YOUR_USERNAME +YOUR_USERNAME ``` ## Finding your username in the URL of remote repositories @@ -60,11 +60,11 @@ If you have any local copies of personal repositories you have created or forked {% endtip %} ```shell -$ cd YOUR_REPOSITORY +$ cd YOUR_REPOSITORY # Change directories to the initialized Git repository $ git remote -v -origin https://{% data variables.command_line.codeblock %}/YOUR_USERNAME/YOUR_REPOSITORY.git (fetch) -origin https://{% data variables.command_line.codeblock %}/YOUR_USERNAME/YOUR_REPOSITORY.git (push) +origin https://{% data variables.command_line.codeblock %}/YOUR_USERNAME/YOUR_REPOSITORY.git (fetch) +origin https://{% data variables.command_line.codeblock %}/YOUR_USERNAME/YOUR_REPOSITORY.git (push) ``` Your user name is what immediately follows the `https://{% data variables.command_line.backticks %}/`. diff --git a/content/account-and-profile/setting-up-and-managing-your-personal-account-on-github/managing-email-preferences/setting-your-commit-email-address.md b/content/account-and-profile/setting-up-and-managing-your-personal-account-on-github/managing-email-preferences/setting-your-commit-email-address.md index 2a2c0f6284..ced0c6c3fb 100644 --- a/content/account-and-profile/setting-up-and-managing-your-personal-account-on-github/managing-email-preferences/setting-your-commit-email-address.md +++ b/content/account-and-profile/setting-up-and-managing-your-personal-account-on-github/managing-email-preferences/setting-your-commit-email-address.md @@ -51,7 +51,7 @@ To ensure that commits are attributed to you and appear in your contributions gr {% note %} -**Note:** If you created your account on {% data variables.product.product_location %} _after_ July 18, 2017, your `noreply` email address for {% data variables.product.product_name %} is a seven-digit ID number and your username in the form of ID+username@users.noreply.github.com. If you created your account on {% data variables.product.product_location %} _prior to_ July 18, 2017, your `noreply` email address from {% data variables.product.product_name %} is username@users.noreply.github.com. You can get an ID-based `noreply` email address for {% data variables.product.product_name %} by selecting (or deselecting and reselecting) **Keep my email address private** in your email settings. +**Note:** If you created your account on {% data variables.product.product_location %} _after_ July 18, 2017, your `noreply` email address for {% data variables.product.product_name %} is a seven-digit ID number and your username in the form of ID+username@users.noreply.github.com. If you created your account on {% data variables.product.product_location %} _prior to_ July 18, 2017, your `noreply` email address from {% data variables.product.product_name %} is username@users.noreply.github.com. You can get an ID-based `noreply` email address for {% data variables.product.product_name %} by selecting (or deselecting and reselecting) **Keep my email address private** in your email settings. {% endnote %} @@ -76,7 +76,7 @@ You can use the `git config` command to change the email address you associate w {% data reusables.command_line.open_the_multi_os_terminal %} 2. {% data reusables.user-settings.set_your_email_address_in_git %} ```shell - $ git config --global user.email "email@example.com" + $ git config --global user.email "YOUR_EMAIL" ``` 3. {% data reusables.user-settings.confirm_git_email_address_correct %} ```shell @@ -95,7 +95,7 @@ You can change the email address associated with commits you make in a single re 2. Change the current working directory to the local repository where you want to configure the email address that you associate with your Git commits. 3. {% data reusables.user-settings.set_your_email_address_in_git %} ```shell - $ git config user.email "email@example.com" + $ git config user.email "YOUR_EMAIL" ``` 4. {% data reusables.user-settings.confirm_git_email_address_correct %} ```shell diff --git a/content/account-and-profile/setting-up-and-managing-your-personal-account-on-github/managing-your-personal-account/best-practices-for-leaving-your-company.md b/content/account-and-profile/setting-up-and-managing-your-personal-account-on-github/managing-your-personal-account/best-practices-for-leaving-your-company.md index 155379d05f..c1a1597cdf 100644 --- a/content/account-and-profile/setting-up-and-managing-your-personal-account-on-github/managing-your-personal-account/best-practices-for-leaving-your-company.md +++ b/content/account-and-profile/setting-up-and-managing-your-personal-account-on-github/managing-your-personal-account/best-practices-for-leaving-your-company.md @@ -39,5 +39,5 @@ If you've been collaborating professionally with another person on repositories - Delete local copies of your forks that may exist on your computer: ```shell -$ rm -rf work_directory +$ rm -rf WORK_DIRECTORY ``` diff --git a/content/actions/deployment/deploying-xcode-applications/installing-an-apple-certificate-on-macos-runners-for-xcode-development.md b/content/actions/deployment/deploying-xcode-applications/installing-an-apple-certificate-on-macos-runners-for-xcode-development.md index 69702e405a..be5b750a87 100644 --- a/content/actions/deployment/deploying-xcode-applications/installing-an-apple-certificate-on-macos-runners-for-xcode-development.md +++ b/content/actions/deployment/deploying-xcode-applications/installing-an-apple-certificate-on-macos-runners-for-xcode-development.md @@ -49,7 +49,7 @@ Create secrets in your repository or organization for the following items: - Use the following command to convert your certificate to Base64 and copy it to your clipboard: ```shell - base64 build_certificate.p12 | pbcopy + base64 BUILD_CERTIFICATE.p12 | pbcopy ``` * The password for your Apple signing certificate. - In this example, the secret is named `P12_PASSWORD`. @@ -63,7 +63,7 @@ Create secrets in your repository or organization for the following items: - Use the following command to convert your provisioning profile to Base64 and copy it to your clipboard: ```shell - base64 provisioning_profile.mobileprovision | pbcopy + base64 provisioning_profile.mobileprovision | pbcopy ``` * A keychain password. diff --git a/content/actions/hosting-your-own-runners/autoscaling-with-self-hosted-runners.md b/content/actions/hosting-your-own-runners/autoscaling-with-self-hosted-runners.md index 31a5c4f94c..48c7e22e72 100644 --- a/content/actions/hosting-your-own-runners/autoscaling-with-self-hosted-runners.md +++ b/content/actions/hosting-your-own-runners/autoscaling-with-self-hosted-runners.md @@ -63,7 +63,7 @@ By default, self-hosted runners will automatically perform a software update whe To turn off automatic software updates and install software updates yourself, specify the `--disableupdate` flag when registering your runner using `config.sh`. For example: ```shell -./config.sh --url https://github.com/octo-org --token example-token --disableupdate +./config.sh --url https://github.com/octo-org --token EXAMPLE-TOKEN --disableupdate ``` If you disable automatic updates, you must still update your runner version regularly. New functionality in {% data variables.product.prodname_actions %} requires changes in both the {% data variables.product.prodname_actions %} service _and_ the runner software. The runner may not be able to correctly process jobs that take advantage of new features in {% data variables.product.prodname_actions %} without a software update. diff --git a/content/actions/hosting-your-own-runners/configuring-the-self-hosted-runner-application-as-a-service.md b/content/actions/hosting-your-own-runners/configuring-the-self-hosted-runner-application-as-a-service.md index f95896503d..7463d3c5df 100644 --- a/content/actions/hosting-your-own-runners/configuring-the-self-hosted-runner-application-as-a-service.md +++ b/content/actions/hosting-your-own-runners/configuring-the-self-hosted-runner-application-as-a-service.md @@ -77,7 +77,7 @@ You can manage the runner service in the Windows **Services** application, or yo 1. Alternatively, the command takes an optional `user` argument to install the service as a different user. ```shell - ./svc.sh install USERNAME + ./svc.sh install USERNAME ``` {% endlinux %} diff --git a/content/actions/hosting-your-own-runners/monitoring-and-troubleshooting-self-hosted-runners.md b/content/actions/hosting-your-own-runners/monitoring-and-troubleshooting-self-hosted-runners.md index b0c3fe73ee..26977610e6 100644 --- a/content/actions/hosting-your-own-runners/monitoring-and-troubleshooting-self-hosted-runners.md +++ b/content/actions/hosting-your-own-runners/monitoring-and-troubleshooting-self-hosted-runners.md @@ -58,7 +58,7 @@ For example: {% windows %} ```shell -run.cmd --check --url https://github.com/octo-org/octo-repo --pat ghp_abcd1234 +run.cmd --check --url https://github.com/octo-org/octo-repo --pat gcp_abcd1234 ``` {% endwindows %} @@ -78,7 +78,7 @@ To disable TLS certification verification in the self-hosted runner application, ```shell export GITHUB_ACTIONS_RUNNER_TLS_NO_VERIFY=1 -./config.sh --url https://github.com/octo-org/octo-repo --token +./config.sh --url https://github.com/octo-org/octo-repo --token ./run.sh ``` diff --git a/content/actions/managing-workflow-runs/disabling-and-enabling-a-workflow.md b/content/actions/managing-workflow-runs/disabling-and-enabling-a-workflow.md index 2d0cc5de22..874af25df8 100644 --- a/content/actions/managing-workflow-runs/disabling-and-enabling-a-workflow.md +++ b/content/actions/managing-workflow-runs/disabling-and-enabling-a-workflow.md @@ -53,7 +53,7 @@ The disabled workflow is marked {% octicon "stop" aria-label="The stop icon" %} To disable a workflow, use the `workflow disable` subcommand. Replace `workflow` with either the name, ID, or file name of the workflow you want to disable. For example, `"Link Checker"`, `1234567`, or `"link-check-test.yml"`. If you don't specify a workflow, {% data variables.product.prodname_cli %} returns an interactive menu for you to choose a workflow. ```shell -gh workflow disable workflow +gh workflow disable WORKFLOW ``` {% endcli %} @@ -78,7 +78,7 @@ You can re-enable a workflow that was previously disabled. To enable a workflow, use the `workflow enable` subcommand. Replace `workflow` with either the name, ID, or file name of the workflow you want to enable. For example, `"Link Checker"`, `1234567`, or `"link-check-test.yml"`. If you don't specify a workflow, {% data variables.product.prodname_cli %} returns an interactive menu for you to choose a workflow. ```shell -gh workflow enable workflow +gh workflow enable WORKFLOW ``` {% endcli %} diff --git a/content/actions/managing-workflow-runs/downloading-workflow-artifacts.md b/content/actions/managing-workflow-runs/downloading-workflow-artifacts.md index bcb6ba75e9..8956cc1660 100644 --- a/content/actions/managing-workflow-runs/downloading-workflow-artifacts.md +++ b/content/actions/managing-workflow-runs/downloading-workflow-artifacts.md @@ -38,25 +38,25 @@ By default, {% data variables.product.product_name %} stores build logs and arti To download all artifacts generated by a workflow run, use the `run download` subcommand. Replace `run-id` with the ID of the run that you want to download artifacts from. If you don't specify a `run-id`, {% data variables.product.prodname_cli %} returns an interactive menu for you to choose a recent run. ```shell -gh run download run-id +gh run download RUN_ID ``` To download a specific artifact from a run, use the `run download` subcommand. Replace `run-id` with the ID of the run that you want to download artifacts from. Replace `artifact-name` with the name of the artifact that you want to download. ```shell -gh run download run-id -n artifact-name +gh run download RUN_ID -n ARTIFACT_NAME ``` You can specify more than one artifact. ```shell -gh run download run-id -n artifact-name-1 -n artifact-name-2 +gh run download RUN_ID> -n ARTIFACT_NAME-1 -n ARTIFACT_NAME-2 ``` To download specific artifacts across all runs in a repository, use the `run download` subcommand. ```shell -gh run download -n artifact-name-1 -n artifact-name-2 +gh run download -n ARTIFACT_NAME-1 ARTIFACT_NAME-2 ``` {% endcli %} diff --git a/content/actions/managing-workflow-runs/manually-running-a-workflow.md b/content/actions/managing-workflow-runs/manually-running-a-workflow.md index c8fd986c66..f574fca54c 100644 --- a/content/actions/managing-workflow-runs/manually-running-a-workflow.md +++ b/content/actions/managing-workflow-runs/manually-running-a-workflow.md @@ -40,7 +40,7 @@ To run a workflow manually, the workflow must be configured to run on the `workf To run a workflow, use the `workflow run` subcommand. Replace the `workflow` parameter with either the name, ID, or file name of the workflow you want to run. For example, `"Link Checker"`, `1234567`, or `"link-check-test.yml"`. If you don't specify a workflow, {% data variables.product.prodname_cli %} returns an interactive menu for you to choose a workflow. ```shell -gh workflow run workflow +gh workflow run WORKFLOW ``` If your workflow accepts inputs, {% data variables.product.prodname_cli %} will prompt you to enter them. Alternatively, you can use `-f` or `-F` to add an input in `key=value` format. Use `-F` to read from a file. @@ -58,7 +58,7 @@ echo '{"name":"mona", "greeting":"hello"}' | gh workflow run greet.yml --json To run a workflow on a branch other than the repository's default branch, use the `--ref` flag. ```shell -gh workflow run workflow --ref branch-name +gh workflow run WORKFLOW --ref BRANCH ``` To view the progress of the workflow run, use the `run watch` subcommand and select the run from the interactive list. diff --git a/content/actions/managing-workflow-runs/re-running-workflows-and-jobs.md b/content/actions/managing-workflow-runs/re-running-workflows-and-jobs.md index 4fd7539fc3..15168b0658 100644 --- a/content/actions/managing-workflow-runs/re-running-workflows-and-jobs.md +++ b/content/actions/managing-workflow-runs/re-running-workflows-and-jobs.md @@ -48,14 +48,14 @@ Re-running a workflow{% ifversion re-run-jobs %} or jobs in a workflow{% endif % To re-run a failed workflow run, use the `run rerun` subcommand. Replace `run-id` with the ID of the failed run that you want to re-run. If you don't specify a `run-id`, {% data variables.product.prodname_cli %} returns an interactive menu for you to choose a recent failed run. ```shell -gh run rerun run-id +gh run rerun RUN_ID ``` {% ifversion debug-reruns %} {% data reusables.actions.enable-debug-logging-cli %} ```shell -gh run rerun run-id --debug +gh run rerun RUN_ID --debug ``` {% endif %} @@ -90,14 +90,14 @@ If any jobs in a workflow run failed, you can re-run just the jobs that failed. To re-run failed jobs in a workflow run, use the `run rerun` subcommand with the `--failed` flag. Replace `run-id` with the ID of the run for which you want to re-run failed jobs. If you don't specify a `run-id`, {% data variables.product.prodname_cli %} returns an interactive menu for you to choose a recent failed run. ```shell -gh run rerun run-id --failed +gh run rerun RUN_ID --failed ``` {% ifversion debug-reruns %} {% data reusables.actions.enable-debug-logging-cli %} ```shell -gh run rerun run-id --failed --debug +gh run rerun RUN_ID --failed --debug ``` {% endif %} @@ -127,14 +127,14 @@ When you re-run a specific job in a workflow, a new workflow run will start for To re-run a specific job in a workflow run, use the `run rerun` subcommand with the `--job` flag. Replace `job-id` with the ID of the job that you want to re-run. ```shell -gh run rerun --job job-id +gh run rerun --job JOB_ID ``` {% ifversion debug-reruns %} {% data reusables.actions.enable-debug-logging-cli %} ```shell -gh run rerun --job job-id --debug +gh run rerun --job JOB_ID --debug ``` {% endif %} diff --git a/content/actions/monitoring-and-troubleshooting-workflows/using-workflow-run-logs.md b/content/actions/monitoring-and-troubleshooting-workflows/using-workflow-run-logs.md index 2aee2b29f0..e246dcd3bb 100644 --- a/content/actions/monitoring-and-troubleshooting-workflows/using-workflow-run-logs.md +++ b/content/actions/monitoring-and-troubleshooting-workflows/using-workflow-run-logs.md @@ -98,23 +98,23 @@ After deleting logs, the **Delete all logs** button is removed to indicate that To view the log for a specific job, use the `run view` subcommand. Replace `run-id` with the ID of run that you want to view logs for. {% data variables.product.prodname_cli %} returns an interactive menu for you to choose a job from the run. If you don't specify `run-id`, {% data variables.product.prodname_cli %} returns an interactive menu for you to choose a recent run, and then returns another interactive menu for you to choose a job from the run. ```shell -gh run view run-id --log +gh run view RUN_ID --log ``` You can also use the `--job` flag to specify a job ID. Replace `job-id` with the ID of the job that you want to view logs for. ```shell -gh run view --job job-id --log +gh run view --job JOB_ID --log ``` You can use `grep` to search the log. For example, this command will return all log entries that contain the word `error`. ```shell -gh run view --job job-id --log | grep error +gh run view --job JOB_ID --log | grep error ``` To filter the logs for any failed steps, use `--log-failed` instead of `--log`. ```shell -gh run view --job job-id --log-failed +gh run view --job JOB_ID --log-failed ``` diff --git a/content/actions/monitoring-and-troubleshooting-workflows/viewing-workflow-run-history.md b/content/actions/monitoring-and-troubleshooting-workflows/viewing-workflow-run-history.md index f1e7af9ec9..c73a4583ed 100644 --- a/content/actions/monitoring-and-troubleshooting-workflows/viewing-workflow-run-history.md +++ b/content/actions/monitoring-and-troubleshooting-workflows/viewing-workflow-run-history.md @@ -46,7 +46,7 @@ gh run list --limit 5 To only return runs for the specified workflow, you can use the `-w` or `--workflow` flag. Replace `workflow` with either the workflow name, workflow ID, or workflow file name. For example, `"Link Checker"`, `1234567`, or `"link-check-test.yml"`. ```shell -gh run list --workflow workflow +gh run list --workflow WORKFLOW ``` ### Viewing details for a specific workflow run @@ -54,25 +54,25 @@ gh run list --workflow workflow To display details for a specific workflow run, use the `run view` subcommand. Replace `run-id` with the ID of the run that you want to view. If you don't specify a `run-id`, {% data variables.product.prodname_cli %} returns an interactive menu for you to choose a recent run. ```shell -gh run view run-id +gh run view RUN_ID ``` To include job steps in the output, use the `-v` or `--verbose` flag. ```shell -gh run view run-id --verbose +gh run view RUN_ID --verbose ``` To view details for a specific job in the run, use the `-j` or `--job` flag. Replace `job-id` with the ID of the job that you want to view. ```shell -gh run view --job job-id +gh run view --job JOB_ID ``` To view the full log for a job, use the `--log` flag. ```shell -gh run view --job job-id --log +gh run view --job JOB_ID --log ``` Use the `--exit-status` flag to exit with a non-zero status if the run failed. For example: diff --git a/content/actions/security-guides/encrypted-secrets.md b/content/actions/security-guides/encrypted-secrets.md index e76eb90e5f..6503eaaa2e 100644 --- a/content/actions/security-guides/encrypted-secrets.md +++ b/content/actions/security-guides/encrypted-secrets.md @@ -93,13 +93,13 @@ If your repository has environment secrets or can access secrets from the parent To add a repository secret, use the `gh secret set` subcommand. Replace `secret-name` with the name of your secret. ```shell -gh secret set secret-name +gh secret set SECRET_NAME ``` The CLI will prompt you to enter a secret value. Alternatively, you can read the value of the secret from a file. ```shell -gh secret set secret-name < secret.txt +gh secret set SECRET_NAME < secret.txt ``` To list all secrets for the repository, use the `gh secret list` subcommand. @@ -128,13 +128,13 @@ To list all secrets for the repository, use the `gh secret list` subcommand. To add a secret for an environment, use the `gh secret set` subcommand with the `--env` or `-e` flag followed by the environment name. ```shell -gh secret set --env environment-name secret-name +gh secret set --env ENV_NAME SECRET_NAME ``` To list all secrets for an environment, use the `gh secret list` subcommand with the `--env` or `-e` flag followed by the environment name. ```shell -gh secret list --env environment-name +gh secret list --env ENV_NAME ``` {% endcli %} @@ -173,25 +173,25 @@ gh auth login --scopes "admin:org" To add a secret for an organization, use the `gh secret set` subcommand with the `--org` or `-o` flag followed by the organization name. ```shell -gh secret set --org organization-name secret-name +gh secret set --org ORG_NAME SECRET_NAME ``` By default, the secret is only available to private repositories. To specify that the secret should be available to all repositories within the organization, use the `--visibility` or `-v` flag. ```shell -gh secret set --org organization-name secret-name --visibility all +gh secret set --org ORG_NAME SECRET_NAME --visibility all ``` To specify that the secret should be available to selected repositories within the organization, use the `--repos` or `-r` flag. ```shell -gh secret set --org organization-name secret-name --repos repo-name-1,repo-name-2" +gh secret set --org ORG_NAME SECRET_NAME --repos REPO-NAME-1, REPO-NAME-2" ``` To list all secrets for an organization, use the `gh secret list` subcommand with the `--org` or `-o` flag followed by the organization name. ```shell -gh secret list --org organization-name +gh secret list --org ORG_NAME ``` {% endcli %} diff --git a/content/admin/configuration/configuring-your-enterprise/accessing-the-administrative-shell-ssh.md b/content/admin/configuration/configuring-your-enterprise/accessing-the-administrative-shell-ssh.md index c0e8a764c7..007af7fb55 100644 --- a/content/admin/configuration/configuring-your-enterprise/accessing-the-administrative-shell-ssh.md +++ b/content/admin/configuration/configuring-your-enterprise/accessing-the-administrative-shell-ssh.md @@ -58,13 +58,13 @@ If you encounter the `Permission denied (publickey)` error when you try to conne To specify a private SSH key using the command line, run `ssh` with the `-i` argument. ```shell -ssh -i /path/to/ghe_private_key -p 122 admin@hostname +ssh -i /path/to/ghe_private_key -p 122 admin@HOSTNAME ``` You can also specify a private SSH key using the SSH configuration file (`~/.ssh/config`). ```shell -Host hostname +Host HOSTNAME IdentityFile /path/to/ghe_private_key User admin Port 122 diff --git a/content/admin/configuration/configuring-your-enterprise/command-line-utilities.md b/content/admin/configuration/configuring-your-enterprise/command-line-utilities.md index 5fa9384fb2..1fcaf9bf0e 100644 --- a/content/admin/configuration/configuring-your-enterprise/command-line-utilities.md +++ b/content/admin/configuration/configuring-your-enterprise/command-line-utilities.md @@ -69,11 +69,11 @@ With this command, you can also pause or resume jobs in the queue. ```shell $ ghe-aqueduct status # lists queues and the number of currently queued jobs for all queues -$ ghe-aqueduct queue_depth --queue QUEUE +$ ghe-aqueduct queue_depth --queue QUEUE # lists the number of currently queued jobs for the specified queue -$ ghe-aqueduct pause --queue QUEUE +$ ghe-aqueduct pause --queue QUEUE # pauses the specified queue -$ ghe-aqueduct resume --queue QUEUE +$ ghe-aqueduct resume --queue QUEUE # resumes the specified queue ``` {% endif %} @@ -112,24 +112,24 @@ ghe-cleanup-settings With this utility, you can both retrieve and modify the configuration settings of {% data variables.product.product_location %}. ```shell -$ ghe-config core.github-hostname +$ ghe-config core.github-hostname # Gets the configuration value of `core.github-hostname` -$ ghe-config core.github-hostname 'example.com' -# Sets the configuration value of `core.github-hostname` to `example.com` +$ ghe-config core.github-hostname URL +# Sets the configuration value of `core.github-hostname` to URL for example, `example.com` $ ghe-config -l # Lists all the configuration values ``` Allows you to find the universally unique identifier (UUID) of your node in `cluster.conf`. ```shell - $ ghe-config HOSTNAME.uuid + $ ghe-config HOSTNAME.uuid ``` {% ifversion ghes %} Allows you to exempt a list of users from REST API rate limits. A hard limit of 120,000 requests will still apply to these users. For more information, see "[Resources in the REST API](/rest/overview/resources-in-the-rest-api#rate-limiting)." ``` shell -$ ghe-config app.github.rate-limiting-exempt-users "hubot github-actions" +$ ghe-config app.github.rate-limiting-exempt-users "HUBOT GITHUB-ACTIONS" # Exempts the users hubot and github-actions from rate limits ``` {% endif %} @@ -240,7 +240,7 @@ ghe-motd This utility returns a repository's name and owner based on the repository ID. ```shell -ghe-nwo REPOSITORY_ID +ghe-nwo REPOSITORY_ID ``` ### ghe-org-admin-promote @@ -259,19 +259,19 @@ This utility cannot promote a non-site admin to be an owner of all organizations Give organization owner privileges in a specific organization to a specific site admin ```shell -ghe-org-admin-promote -u USERNAME -o ORGANIZATION +ghe-org-admin-promote -u USERNAME -o ORGANIZATION ``` Give organization owner privileges in all organizations to a specific site admin ```shell -ghe-org-admin-promote -u USERNAME +ghe-org-admin-promote -u USERNAME ``` Give organization owner privileges in a specific organization to all site admins ```shell -ghe-org-admin-promote -o ORGANIZATION +ghe-org-admin-promote -o ORGANIZATION ``` Give organization owner privileges in all organizations to all site admins @@ -452,7 +452,7 @@ You can use these additional options with the utility: - The `-h` flag displays more usage information. ```shell -ghe-ssl-ca-certificate-install -c /path/to/certificate +ghe-ssl-ca-certificate-install -c CERTIFICATE_PATH ``` ### ghe-ssl-certificate-setup @@ -502,24 +502,24 @@ ghe-webhook-logs To show all failed hook deliveries in the past day: {% ifversion ghes %} ```shell -ghe-webhook-logs -f -a YYYY-MM-DD +ghe-webhook-logs -f -a YYYY-MM-DD ``` The date format should be `YYYY-MM-DD`, `YYYY-MM-DD HH:MM:SS`, or `YYYY-MM-DD HH:MM:SS (+/-) HH:M`. {% else %} ```shell -ghe-webhook-logs -f -a YYYYMMDD +ghe-webhook-logs -f -a YYYYMMDD ``` {% endif %} To show the full hook payload, result, and any exceptions for the delivery: {% ifversion ghes %} ```shell -ghe-webhook-logs -g delivery-guid +ghe-webhook-logs -g DELIVERY_GUID ``` {% else %} ```shell -ghe-webhook-logs -g delivery-guid -v +ghe-webhook-logs -g DELIVERY_GUID -v ``` {% endif %} @@ -541,22 +541,22 @@ By default, the command creates the tarball in */tmp*, but you can also have it To create a standard bundle: ```shell -$ ssh -p 122 admin@hostname -- 'ghe-cluster-support-bundle -o' > cluster-support-bundle.tgz +$ ssh -p 122 admin@HOSTNAME -- 'ghe-cluster-support-bundle -o' > cluster-support-bundle.tgz ``` To create an extended bundle: ```shell -$ ssh -p 122 admin@hostname -- 'ghe-cluster-support-bundle -x -o' > cluster-support-bundle.tgz +$ ssh -p 122 admin@HOSTNAME -- 'ghe-cluster-support-bundle -x -o' > cluster-support-bundle.tgz ``` To send a bundle to {% data variables.contact.github_support %}: ```shell -$ ssh -p 122 admin@hostname -- 'ghe-cluster-support-bundle -u' +$ ssh -p 122 admin@HOSTNAME -- 'ghe-cluster-support-bundle -u' ``` To send a bundle to {% data variables.contact.github_support %} and associate the bundle with a ticket: ```shell -$ ssh -p 122 admin@hostname -- 'ghe-cluster-support-bundle -t ticket-id' +$ ssh -p 122 admin@HOSTNAME -- 'ghe-cluster-support-bundle -t TICKET_ID' ``` {% ifversion ghes %} @@ -584,7 +584,7 @@ ghe-dpages status To evacuate a {% data variables.product.prodname_pages %} storage service before evacuating a cluster node: ```shell -ghe-dpages evacuate pages-server-UUID +ghe-dpages evacuate pages-server-UUID ``` ### ghe-spokes @@ -610,7 +610,7 @@ ghe-spokes route To evacuate storage services on a cluster node: ```shell -ghe-spokes server evacuate git-server-UUID +ghe-spokes server evacuate git-server-UUID ``` ### ghe-storage @@ -618,7 +618,7 @@ ghe-spokes server evacuate git-server-UUID This utility allows you to evacuate all storage services before evacuating a cluster node. ```shell -ghe-storage evacuate storage-server-UUID +ghe-storage evacuate storage-server-UUID ``` ## Git @@ -661,7 +661,7 @@ Try ghe-governor --help for more information on the arguments each This utility allows you to change to a repository's directory and open an interactive shell as the `git` user. You can perform manual inspection or maintenance of a repository via commands like `git-*` or `git-nw-*`. ```shell -ghe-repo username/reponame +ghe-repo USERNAME/REPONAME ``` ### ghe-repo-gc @@ -677,7 +677,7 @@ You can add the optional `--prune` argument to remove unreachable Git objects th {% endwarning %} ```shell -ghe-repo-gc username/reponame +ghe-repo-gc USERNAME/REPONAME ``` ## {% data variables.product.prodname_actions %} @@ -697,7 +697,7 @@ This utility tests the blob storage configuration for {% data variables.product. 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"] +ghe-actions-precheck -p [PROVIDER] -cs ["CONNECTION-STRING"] ``` If your storage system is configured correctly, you'll see the following output. @@ -784,23 +784,23 @@ By default, the command creates the tarball in */tmp*, but you can also have it To create a standard bundle: ```shell -$ ssh -p 122 admin@hostname -- 'ghe-support-bundle -o' > support-bundle.tgz +$ ssh -p 122 admin@HOSTNAME -- 'ghe-support-bundle -o' > support-bundle.tgz ``` To create an extended bundle: ```shell -$ ssh -p 122 admin@hostname -- 'ghe-support-bundle -x -o' > support-bundle.tgz +$ ssh -p 122 admin@HOSTNAME -- 'ghe-support-bundle -x -o' > support-bundle.tgz ``` To send a bundle to {% data variables.contact.github_support %}: ```shell -$ ssh -p 122 admin@hostname -- 'ghe-support-bundle -u' +$ ssh -p 122 admin@HOSTNAME -- 'ghe-support-bundle -u' ``` To send a bundle to {% data variables.contact.github_support %} and associate the bundle with a ticket: ```shell -$ ssh -p 122 admin@hostname -- 'ghe-support-bundle -t ticket-id' +$ ssh -p 122 admin@HOSTNAME -- 'ghe-support-bundle -t TICKET_ID' ``` ### ghe-support-upload @@ -809,12 +809,12 @@ This utility sends information from your appliance to {% data variables.product. To send a file to {% data variables.contact.github_support %} and associate the file with a ticket: ```shell -ghe-support-upload -f path/to/your/file -t ticket-id +ghe-support-upload -f FILE_PATH -t TICKET_ID ``` To upload data via `STDIN` and associating the data with a ticket: ```shell -ghe-repl-status -vv | ghe-support-upload -t ticket-id -d "Verbose Replication Status" +ghe-repl-status -vv | ghe-support-upload -t TICKET_ID -d "Verbose Replication Status" ``` In this example, `ghe-repl-status -vv` sends verbose status information from a replica appliance. You should replace `ghe-repl-status -vv` with the specific data you'd like to stream to `STDIN`, and `Verbose Replication Status` with a brief description of the data. {% data reusables.enterprise_enterprise_support.support_will_ask_you_to_run_command %} @@ -827,12 +827,12 @@ This utility installs or verifies an upgrade package. You can also use this util To verify an upgrade package: ```shell -ghe-upgrade --verify UPGRADE-PACKAGE-FILENAME +ghe-upgrade --verify UPGRADE-PACKAGE-FILENAME ``` To install an upgrade package: ```shell -ghe-upgrade UPGRADE-PACKAGE-FILENAME +ghe-upgrade UPGRADE-PACKAGE-FILENAME ``` {% data reusables.enterprise_installation.command-line-utilities-ghe-upgrade-rollback %} @@ -843,18 +843,18 @@ This utility manages scheduled installation of upgrade packages. You can show, c To schedule a new installation for a package: ```shell -$ ghe-upgrade-scheduler -c "0 2 15 12 *" UPGRADE-PACKAGE-FILENAME +$ ghe-upgrade-scheduler -c "0 2 15 12 *" UPGRADE-PACKAGE-FILENAME ``` To show scheduled installations for a package: ```shell -$ ghe-upgrade-scheduler -s UPGRADE PACKAGE FILENAME -> 0 2 15 12 * /usr/local/bin/ghe-upgrade -y -s UPGRADE-PACKAGE-FILENAME > /data/user/common/UPGRADE-PACKAGE-FILENAME.log 2>&1 +$ ghe-upgrade-scheduler -s UPGRADE PACKAGE FILENAME +> 0 2 15 12 * /usr/local/bin/ghe-upgrade -y -s UPGRADE-PACKAGE-FILENAME > /data/user/common/UPGRADE-PACKAGE-FILENAME.log 2>&1 ``` To remove scheduled installations for a package: ```shell -$ ghe-upgrade-scheduler -r UPGRADE PACKAGE FILENAME +$ ghe-upgrade-scheduler -r UPGRADE PACKAGE FILENAME ``` ### ghe-update-check @@ -866,7 +866,7 @@ A file containing the status of the download is available at */var/lib/ghe-updat To check for the latest {% data variables.product.prodname_enterprise %} release, use the `-i` switch. ```shell -$ ssh -p 122 admin@hostname -- 'ghe-update-check' +$ ssh -p 122 admin@HOSTNAME -- 'ghe-update-check' ``` ## User management @@ -886,7 +886,7 @@ ghe-license-usage This utility will enforce the default organization membership visibility setting on all members in your instance. For more information, see "[Configuring visibility for organization membership](/enterprise/admin/guides/user-management/configuring-visibility-for-organization-membership)." Setting options are `public` or `private`. ```shell -ghe-org-membership-update --visibility=SETTING +ghe-org-membership-update --visibility=SETTING ``` ### `ghe-user-csv` @@ -902,7 +902,7 @@ ghe-user-csv -o > users.csv This utility demotes the specified user from admin status to that of a regular user. We recommend using the web UI to perform this action, but provide this utility in case the `ghe-user-promote` utility is run in error and you need to demote a user again from the CLI. ```shell -ghe-user-demote some-user-name +ghe-user-demote USERNAME ``` ### ghe-user-promote @@ -910,7 +910,7 @@ ghe-user-demote some-user-name This utility promotes the specified user account to a site administrator. ```shell -ghe-user-promote some-user-name +ghe-user-promote USERNAME ``` ### ghe-user-suspend @@ -918,7 +918,7 @@ ghe-user-promote some-user-name This utility suspends the specified user, preventing them from logging in, pushing, or pulling from your repositories. ```shell -ghe-user-suspend some-user-name +ghe-user-suspend USERNAME ``` ### ghe-user-unsuspend @@ -926,5 +926,5 @@ ghe-user-suspend some-user-name This utility unsuspends the specified user, granting them access to login, push, and pull from your repositories. ```shell -ghe-user-unsuspend some-user-name +ghe-user-unsuspend USERNAME ``` diff --git a/content/admin/configuration/configuring-your-enterprise/configuring-rate-limits.md b/content/admin/configuration/configuring-your-enterprise/configuring-rate-limits.md index 4f25b255f2..0c21853db6 100644 --- a/content/admin/configuration/configuring-your-enterprise/configuring-rate-limits.md +++ b/content/admin/configuration/configuring-your-enterprise/configuring-rate-limits.md @@ -87,7 +87,7 @@ By default, the rate limit for {% data variables.product.prodname_actions %} is ```shell ghe-config actions-rate-limiting.enabled true - ghe-config actions-rate-limiting.queue-runs-per-minute RUNS-PER-MINUTE + ghe-config actions-rate-limiting.queue-runs-per-minute RUNS-PER-MINUTE ``` 1. To disable the rate limit after it's been enabled, run the following command. diff --git a/content/admin/configuration/configuring-your-enterprise/configuring-ssh-connections-to-your-instance.md b/content/admin/configuration/configuring-your-enterprise/configuring-ssh-connections-to-your-instance.md index c87cbf91df..6506201697 100644 --- a/content/admin/configuration/configuring-your-enterprise/configuring-ssh-connections-to-your-instance.md +++ b/content/admin/configuration/configuring-your-enterprise/configuring-ssh-connections-to-your-instance.md @@ -42,7 +42,7 @@ For more information, see [{% data variables.product.prodname_blog %}](https://g 1. To configure a cutoff date after which {% data variables.product.product_location %} will deny connections from clients that use an RSA key uploaded after the date if the connection is signed by the SHA-1 hash function, enter the following command. Replace _**RFC-3399-UTC-TIMESTAMP**_ with a valid RFC 3399 UTC timestamp. For example, the default value, August 1, 2022, would be represented as `2022-08-01T00:00:00Z`. For more information, see [RFC 3339](https://datatracker.ietf.org/doc/html/rfc3339) on the IETF website.
-   $ ghe-config app.gitauth.rsa-sha1 RFC-3339-UTC-TIMESTAMP
+   $ ghe-config app.gitauth.rsa-sha1 RFC-3339-UTC-TIMESTAMP
    
1. Alternatively, to completely disable SSH connections using RSA keys that are signed with the SHA-1 hash function, enter the following command. diff --git a/content/admin/configuration/configuring-your-enterprise/site-admin-dashboard.md b/content/admin/configuration/configuring-your-enterprise/site-admin-dashboard.md index 5bd322dcae..ea742e0fc5 100644 --- a/content/admin/configuration/configuring-your-enterprise/site-admin-dashboard.md +++ b/content/admin/configuration/configuring-your-enterprise/site-admin-dashboard.md @@ -67,7 +67,7 @@ You can also access these reports programmatically via standard HTTP authenticat For example, here is how you would download the "all users" report using cURL: ```shell -curl -L -u username:token http(s)://hostname/stafftools/reports/all_users.csv +curl -L -u USERNAME:TOKEN http(s)://HOSTNAME/stafftools/reports/all_users.csv ``` To access the other reports programmatically, replace `all_users` with `active_users`, `dormant_users`, `suspended_users`, `all_organizations`, or `all_repositories`. diff --git a/content/admin/configuration/configuring-your-enterprise/verifying-or-approving-a-domain-for-your-enterprise.md b/content/admin/configuration/configuring-your-enterprise/verifying-or-approving-a-domain-for-your-enterprise.md index ef85e21629..2e66280677 100644 --- a/content/admin/configuration/configuring-your-enterprise/verifying-or-approving-a-domain-for-your-enterprise.md +++ b/content/admin/configuration/configuring-your-enterprise/verifying-or-approving-a-domain-for-your-enterprise.md @@ -64,7 +64,7 @@ To verify your enterprise account's domain, you must have access to modify domai {% data reusables.organizations.add-dns-txt-record %} 1. Wait for your DNS configuration to change, which may take up to 72 hours. You can confirm your DNS configuration has changed by running the `dig` command on the command line, replacing `ENTERPRISE-ACCOUNT` with the name of your enterprise account, and `example.com` with the domain you'd like to verify. You should see your new TXT record listed in the command output. ```shell - dig _github-challenge-ENTERPRISE-ACCOUNT.example.com +nostats +nocomments +nocmd TXT + dig _github-challenge-ENTERPRISE-ACCOUNT.DOMAIN-NAME +nostats +nocomments +nocmd TXT ``` 1. After confirming your TXT record is added to your DNS, follow steps one through four above to navigate to your enterprise account's approved and verified domains. {% data reusables.enterprise-accounts.continue-verifying-domain %} diff --git a/content/admin/enterprise-management/caching-repositories/configuring-a-repository-cache.md b/content/admin/enterprise-management/caching-repositories/configuring-a-repository-cache.md index ca4f7f0bfd..bc6312c9e2 100644 --- a/content/admin/enterprise-management/caching-repositories/configuring-a-repository-cache.md +++ b/content/admin/enterprise-management/caching-repositories/configuring-a-repository-cache.md @@ -45,7 +45,7 @@ Then, when told to fetch `https://github.example.com/myorg/myrepo`, Git will ins 1. Connect to the repository cache's IP address using SSH. ```shell - $ ssh -p 122 admin@REPLICA IP + $ ssh -p 122 admin@REPLICA IP ``` {%- ifversion ghes = 3.3 %} 1. On your cache replica, enable the feature flag for repository caching. @@ -59,13 +59,13 @@ Then, when told to fetch `https://github.example.com/myorg/myrepo`, Git will ins 1. To verify the connection to the primary and enable replica mode for the repository cache, run `ghe-repl-setup` again. ```shell - $ ghe-repl-setup PRIMARY IP + $ ghe-repl-setup PRIMARY IP ``` 1. Set a `cache_location` for the repository cache, replacing *CACHE-LOCATION* with an alphanumeric identifier, such as the region where the cache is deployed. Also set a datacenter name for this cache; new caches will attempt to seed from another cache in the same datacenter. ```shell - $ ghe-repl-node --cache CACHE-LOCATION --datacenter REPLICA-DC-NAME + $ ghe-repl-node --cache CACHE-LOCATION --datacenter REPLICA-DC-NAME ``` {% data reusables.enterprise_installation.replication-command %} diff --git a/content/admin/enterprise-management/configuring-clustering/configuring-high-availability-replication-for-a-cluster.md b/content/admin/enterprise-management/configuring-clustering/configuring-high-availability-replication-for-a-cluster.md index d7ffe82391..51b1594478 100644 --- a/content/admin/enterprise-management/configuring-clustering/configuring-high-availability-replication-for-a-cluster.md +++ b/content/admin/enterprise-management/configuring-clustering/configuring-high-availability-replication-for-a-cluster.md @@ -61,8 +61,8 @@ Before you define a secondary datacenter for your passive nodes, ensure that you ```shell [cluster] - mysql-master = HOSTNAME - redis-master = HOSTNAME + mysql-master = HOSTNAME + redis-master = HOSTNAME primary-datacenter = default ``` @@ -77,10 +77,10 @@ Before you define a secondary datacenter for your passive nodes, ensure that you When you're done, the section for each node in the cluster configuration file should look like the following example. {% data reusables.enterprise_clustering.key-value-pair-order-irrelevant %} ```shell - [cluster "HOSTNAME"] + [cluster "HOSTNAME"] datacenter = default - hostname = HOSTNAME - ipv4 = IP ADDRESS + hostname = HOSTNAME + ipv4 = IP ADDRESS ... ... ``` @@ -143,7 +143,7 @@ For an example configuration, see "[Example configuration](#example-configuratio 6. Decide on a name for the secondary datacenter where you provisioned your passive nodes, then update the temporary cluster configuration file with the new datacenter name. Replace `SECONDARY` with the name you choose. ```shell - sed -i 's/datacenter = default/datacenter = SECONDARY/g' ~/cluster-passive.conf + sed -i 's/datacenter = default/datacenter = SECONDARY/g' ~/cluster-passive.conf ``` 7. Decide on a pattern for the passive nodes' hostnames. @@ -167,10 +167,10 @@ For an example configuration, see "[Example configuration](#example-configuratio - Add a new key-value pair, `replica = enabled`. ```shell - [cluster "NEW PASSIVE NODE HOSTNAME"] + [cluster "NEW PASSIVE NODE HOSTNAME"] ... - hostname = NEW PASSIVE NODE HOSTNAME - ipv4 = NEW PASSIVE NODE IPV4 ADDRESS + hostname = NEW PASSIVE NODE HOSTNAME + ipv4 = NEW PASSIVE NODE IPV4 ADDRESS replica = enabled ... ... @@ -185,8 +185,8 @@ For an example configuration, see "[Example configuration](#example-configuratio 11. Designate the primary MySQL and Redis nodes in the secondary datacenter. Replace `REPLICA MYSQL PRIMARY HOSTNAME` and `REPLICA REDIS PRIMARY HOSTNAME` with the hostnames of the passives node that you provisioned to match your existing MySQL and Redis primaries. ```shell - git config -f /data/user/common/cluster.conf cluster.mysql-master-replica REPLICA MYSQL PRIMARY HOSTNAME - git config -f /data/user/common/cluster.conf cluster.redis-master-replica REPLICA REDIS PRIMARY HOSTNAME + git config -f /data/user/common/cluster.conf cluster.mysql-master-replica REPLICA MYSQL PRIMARY HOSTNAME + git config -f /data/user/common/cluster.conf cluster.redis-master-replica REPLICA REDIS PRIMARY HOSTNAME ``` {% warning %} @@ -194,7 +194,7 @@ For an example configuration, see "[Example configuration](#example-configuratio **Warning**: Review your cluster configuration file before proceeding. - In the top-level `[cluster]` section, ensure that the values for `mysql-master-replica` and `redis-master-replica` are the correct hostnames for the passive nodes in the secondary datacenter that will serve as the MySQL and Redis primaries after a failover. - - In each section for an active node named [cluster "ACTIVE NODE HOSTNAME"], double-check the following key-value pairs. + - In each section for an active node named [cluster "ACTIVE NODE HOSTNAME"], double-check the following key-value pairs. - `datacenter` should match the value of `primary-datacenter` in the top-level `[cluster]` section. - `consul-datacenter` should match the value of `datacenter`, which should be the same as the value for `primary-datacenter` in the top-level `[cluster]` section. - Ensure that for each active node, the configuration has **one** corresponding section for **one** passive node with the same roles. In each section for a passive node, double-check each key-value pair. @@ -235,11 +235,11 @@ The top-level `[cluster]` configuration should look like the following example. ```shell [cluster] - mysql-master = HOSTNAME OF ACTIVE MYSQL MASTER - redis-master = HOSTNAME OF ACTIVE REDIS MASTER - primary-datacenter = PRIMARY DATACENTER NAME - mysql-master-replica = HOSTNAME OF PASSIVE MYSQL MASTER - redis-master-replica = HOSTNAME OF PASSIVE REDIS MASTER + mysql-master = HOSTNAME OF ACTIVE MYSQL MASTER + redis-master = HOSTNAME OF ACTIVE REDIS MASTER + primary-datacenter = PRIMARY DATACENTER NAME + mysql-master-replica = HOSTNAME OF PASSIVE MYSQL MASTER + redis-master-replica = HOSTNAME OF PASSIVE REDIS MASTER mysql-auto-failover = false ... ``` @@ -248,10 +248,10 @@ The configuration for an active node in your cluster's storage tier should look ```shell ... -[cluster "UNIQUE ACTIVE NODE HOSTNAME"] +[cluster "UNIQUE ACTIVE NODE HOSTNAME"] datacenter = default - hostname = UNIQUE ACTIVE NODE HOSTNAME - ipv4 = IPV4 ADDRESS + hostname = UNIQUE ACTIVE NODE HOSTNAME + ipv4 = IPV4 ADDRESS consul-datacenter = default consul-server = true git-server = true @@ -262,9 +262,9 @@ The configuration for an active node in your cluster's storage tier should look memcache-server = true metrics-server = true storage-server = true - vpn = IPV4 ADDRESS SET AUTOMATICALLY - uuid = UUID SET AUTOMATICALLY - wireguard-pubkey = PUBLIC KEY SET AUTOMATICALLY + vpn = IPV4 ADDRESS SET AUTOMATICALLY + uuid = UUID SET AUTOMATICALLY + wireguard-pubkey = PUBLIC KEY SET AUTOMATICALLY ... ``` @@ -276,12 +276,12 @@ The configuration for the corresponding passive node in the storage tier should ```shell ... -[cluster "UNIQUE PASSIVE NODE HOSTNAME"] +[cluster "UNIQUE PASSIVE NODE HOSTNAME"] replica = enabled - ipv4 = IPV4 ADDRESS OF NEW VM WITH IDENTICAL RESOURCES - datacenter = SECONDARY DATACENTER NAME - hostname = UNIQUE PASSIVE NODE HOSTNAME - consul-datacenter = SECONDARY DATACENTER NAME + ipv4 = IPV4 ADDRESS OF NEW VM WITH IDENTICAL RESOURCES + datacenter = SECONDARY DATACENTER NAME + hostname = UNIQUE PASSIVE NODE HOSTNAME + consul-datacenter = SECONDARY DATACENTER NAME consul-server = true git-server = true pages-server = true @@ -291,9 +291,9 @@ The configuration for the corresponding passive node in the storage tier should memcache-server = true metrics-server = true storage-server = true - vpn = DO NOT DEFINE - uuid = DO NOT DEFINE - wireguard-pubkey = DO NOT DEFINE + vpn = DO NOT DEFINE + uuid = DO NOT DEFINE + wireguard-pubkey = DO NOT DEFINE ... ``` diff --git a/content/admin/enterprise-management/configuring-clustering/evacuating-a-cluster-node.md b/content/admin/enterprise-management/configuring-clustering/evacuating-a-cluster-node.md index 8eda999299..21bb5a51dc 100644 --- a/content/admin/enterprise-management/configuring-clustering/evacuating-a-cluster-node.md +++ b/content/admin/enterprise-management/configuring-clustering/evacuating-a-cluster-node.md @@ -37,49 +37,49 @@ If you plan to take a node offline and the node runs a data service role like `g 1. To find the UUID of the node to evacuate, run the following command. Replace `HOSTNAME` with the node's hostname. ```shell - $ ghe-config cluster.HOSTNAME.uuid + $ ghe-config cluster.HOSTNAME.uuid ``` 1. Monitor the node's status while {% data variables.product.product_name %} copies the data. Don't take the node offline until the copy is complete. To monitor the status of your node, run any of the following commands, replacing `UUID` with the UUID from step 2. - **Git**: ```shell - $ ghe-spokes evac-status git-server-UUID + $ ghe-spokes evac-status git-server-UUID ``` - **{% data variables.product.prodname_pages %}**: ```shell - $ echo "select count(*) from pages_replicas where host = 'pages-server-UUID'" | ghe-dbconsole -y + $ echo "select count(*) from pages_replicas where host = 'pages-server-UUID'" | ghe-dbconsole -y ``` - **Storage**: ```shell - $ ghe-storage evacuation-status storage-server-UUID + $ ghe-storage evacuation-status storage-server-UUID ``` 1. After the copy is complete, you can evacuate the node by running any of the following commands, replacing `UUID` with the UUID from step 2. - **Git**: ```shell - $ ghe-spokes server evacuate git-server-UUID \'REASON FOR EVACUATION\' + $ ghe-spokes server evacuate git-server-UUID \'REASON FOR EVACUATION\' ``` - **{% data variables.product.prodname_pages %}**: ```shell - $ ghe-dpages evacuate pages-server-UUID + $ ghe-dpages evacuate pages-server-UUID ``` - For **storage**, first take the node offline by running the following command. ```shell - $ ghe-storage offline storage-server-UUID + $ ghe-storage offline storage-server-UUID ``` After the storage node is offline, you can evacuate the node by running the following command. ```shell - $ ghe-storage evacuate storage-server-UUID + $ ghe-storage evacuate storage-server-UUID ``` diff --git a/content/admin/enterprise-management/configuring-clustering/monitoring-cluster-nodes.md b/content/admin/enterprise-management/configuring-clustering/monitoring-cluster-nodes.md index db08c5ea19..15dc0e2fa2 100644 --- a/content/admin/enterprise-management/configuring-clustering/monitoring-cluster-nodes.md +++ b/content/admin/enterprise-management/configuring-clustering/monitoring-cluster-nodes.md @@ -21,7 +21,7 @@ topics: {% data variables.product.prodname_ghe_server %} has a built-in command line utility for monitoring the health of the cluster. From the administrative shell, running the `ghe-cluster-status` command executes a series of health checks on each node including verification of connectivity and service status. The output shows all test results including the text `ok` or `error`. For example, to only display failing tests, run: ```shell -admin@ghe-data-node-0:~$ ghe-cluster-status | grep error +admin@ghe-data-node-0:~$ ghe-cluster-status | grep error > mysql-replication ghe-data-node-0: error Stopped > mysql cluster: error ``` @@ -42,11 +42,11 @@ You can configure [Nagios](https://www.nagios.org/) to monitor {% data variables ### Configuring the Nagios host 1. Generate an SSH key with a blank passphrase. Nagios uses this to authenticate to the {% data variables.product.prodname_ghe_server %} cluster. ```shell - nagiosuser@nagios:~$ ssh-keygen -t ed25519 + nagiosuser@nagios:~$ ssh-keygen -t ed25519 > Generating public/private ed25519 key pair. > Enter file in which to save the key (/home/nagiosuser/.ssh/id_ed25519): - > Enter passphrase (empty for no passphrase): leave blank by pressing enter - > Enter same passphrase again: press enter again + > Enter passphrase (empty for no passphrase): LEAVE BLANK BY PRESSING ENTER + > Enter same passphrase again: PRESS ENTER AGAIN > Your identification has been saved in /home/nagiosuser/.ssh/id_ed25519. > Your public key has been saved in /home/nagiosuser/.ssh/id_ed25519.pub. ``` @@ -65,8 +65,8 @@ You can configure [Nagios](https://www.nagios.org/) to monitor {% data variables {% endnote %} 2. Copy the private key (`id_ed25519`) to the `nagios` home folder and set the appropriate ownership. ```shell - nagiosuser@nagios:~$ sudo cp .ssh/id_ed25519 /var/lib/nagios/.ssh/ - nagiosuser@nagios:~$ sudo chown nagios:nagios /var/lib/nagios/.ssh/id_ed25519 + nagiosuser@nagios:~$ sudo cp .ssh/id_ed25519 /var/lib/nagios/.ssh/ + nagiosuser@nagios:~$ sudo chown nagios:nagios /var/lib/nagios/.ssh/id_ed25519 ``` 3. To authorize the public key to run *only* the `ghe-cluster-status -n` command, use a `command=` prefix in the `/data/user/common/authorized_keys` file. From the administrative shell on any node, modify this file to add the public key generated in step 1. For example: `command="/usr/local/bin/ghe-cluster-status -n" ssh-ed25519 AAAA....` @@ -74,7 +74,7 @@ You can configure [Nagios](https://www.nagios.org/) to monitor {% data variables 4. Validate and copy the configuration to each node in the cluster by running `ghe-cluster-config-apply` on the node where you modified the `/data/user/common/authorized_keys` file. ```shell - admin@ghe-data-node-0:~$ ghe-cluster-config-apply + admin@ghe-data-node-0:~$ ghe-cluster-config-apply > Validating configuration > ... > Finished cluster configuration @@ -82,7 +82,7 @@ You can configure [Nagios](https://www.nagios.org/) to monitor {% data variables 5. To test that the Nagios plugin can successfully execute the command, run it interactively from Nagios host. ```shell - nagiosuser@nagios:~$ /usr/lib/nagios/plugins/check_by_ssh -l admin -p 122 -H hostname -C "ghe-cluster-status -n" -t 30 + nagiosuser@nagios:~$ /usr/lib/nagios/plugins/check_by_ssh -l admin -p 122 -H HOSTNAME -C "ghe-cluster-status -n" -t 30 > OK - No errors detected ``` diff --git a/content/admin/enterprise-management/configuring-clustering/upgrading-a-cluster.md b/content/admin/enterprise-management/configuring-clustering/upgrading-a-cluster.md index 2bb8daaeba..557aa8988d 100644 --- a/content/admin/enterprise-management/configuring-clustering/upgrading-a-cluster.md +++ b/content/admin/enterprise-management/configuring-clustering/upgrading-a-cluster.md @@ -19,7 +19,7 @@ topics: 1. Back up your data with [{% data variables.product.prodname_enterprise_backup_utilities %}](https://github.com/github/backup-utils#readme). 2. From the administrative shell of any node, use the `ghe-cluster-hotpatch` command to install the latest hotpatch. You can provide a URL for a hotpatch, or manually download the hotpatch and specify a local filename. ```shell - $ ghe-cluster-hotpatch https://HOTPATCH-URL/FILENAME.hpkg + $ ghe-cluster-hotpatch https://HOTPATCH-URL/FILENAME.hpkg ``` ## Upgrading with an upgrade package @@ -33,7 +33,7 @@ Use an upgrade package to upgrade a {% data variables.product.prodname_ghe_serve 4. On the [{% data variables.product.prodname_ghe_server %} Download Page](https://enterprise.github.com/download), copy the URL for the upgrade *.pkg* file to the clipboard. 5. From the administrative shell of any node, use the `ghe-cluster-each` command combined with `curl` to download the release package to each node in a single step. Use the URL you copied in the previous step as an argument. ```shell - $ ghe-cluster-each -- "cd /home/admin && curl -L -O https://PACKAGE-URL.pkg" + $ ghe-cluster-each -- "cd /home/admin && curl -L -O https://PACKAGE-URL.pkg" > ghe-app-node-1: % Total % Received % Xferd Average Speed Time Time Time Current > ghe-app-node-1: Dload Upload Total Spent Left Speed > 100 496M 100 496M 0 0 24.2M 0 0:00:20 0:00:20 --:--:-- 27.4M @@ -58,7 +58,7 @@ Use an upgrade package to upgrade a {% data variables.product.prodname_ghe_serve 2. **With the exception of the primary MySQL node**, connect to the administrative shell of each of the {% data variables.product.prodname_ghe_server %} nodes. Run the `ghe-upgrade` command, providing the package file name you downloaded in Step 4 of [Preparing to upgrade](#preparing-to-upgrade): ```shell - $ ghe-upgrade PACKAGE-FILENAME.pkg + $ ghe-upgrade PACKAGE-FILENAME.pkg > *** verifying upgrade package signature... > 497MB 0:00:04 [ 117MB/s] [==========================================>] 100% > gpg: Signature made Fri 19 Feb 2016 02:33:50 PM UTC using RSA key ID 0D65D57A @@ -70,7 +70,7 @@ Run the `ghe-upgrade` command, providing the package file name you downloaded in 3. The upgrade process will reboot the node once it completes. Verify that you can `ping` each node after it reboots. 4. Connect to the administrative shell of the primary MySQL node. Run the `ghe-upgrade` command, providing the package file name you downloaded in Step 4 of [Preparing to upgrade](#preparing-to-upgrade): ```shell - $ ghe-upgrade PACKAGE-FILENAME.pkg + $ ghe-upgrade PACKAGE-FILENAME.pkg > *** verifying upgrade package signature... > 497MB 0:00:04 [ 117MB/s] [==========================================>] 100% > gpg: Signature made Fri 19 Feb 2016 02:33:50 PM UTC using RSA key ID 0D65D57A diff --git a/content/admin/enterprise-management/configuring-high-availability/creating-a-high-availability-replica.md b/content/admin/enterprise-management/configuring-high-availability/creating-a-high-availability-replica.md index c210522595..0f2952586c 100644 --- a/content/admin/enterprise-management/configuring-high-availability/creating-a-high-availability-replica.md +++ b/content/admin/enterprise-management/configuring-high-availability/creating-a-high-availability-replica.md @@ -24,13 +24,13 @@ shortTitle: Create HA replica {% data reusables.enterprise_installation.replica-steps %} 1. Connect to the replica appliance's IP address using SSH. ```shell - $ ssh -p 122 admin@REPLICA IP + $ ssh -p 122 admin@REPLICA_IP ``` {% data reusables.enterprise_installation.generate-replication-key-pair %} {% data reusables.enterprise_installation.add-ssh-key-to-primary %} 1. To verify the connection to the primary and enable replica mode for the new replica, run `ghe-repl-setup` again. ```shell - $ ghe-repl-setup PRIMARY IP + $ ghe-repl-setup PRIMARY_IP ``` {% data reusables.enterprise_installation.replication-command %} {% data reusables.enterprise_installation.verify-replication-channel %} @@ -41,27 +41,27 @@ This example configuration uses a primary and two replicas, which are located in 1. Create the first replica the same way you would for a standard two node configuration by running `ghe-repl-setup` on the first replica. ```shell - (replica1)$ ghe-repl-setup PRIMARY IP + (replica1)$ ghe-repl-setup PRIMARY_IP (replica1)$ ghe-repl-start ``` 2. Create a second replica and use the `ghe-repl-setup --add` command. The `--add` flag prevents it from overwriting the existing replication configuration and adds the new replica to the configuration. ```shell - (replica2)$ ghe-repl-setup --add PRIMARY IP + (replica2)$ ghe-repl-setup --add PRIMARY_IP (replica2)$ ghe-repl-start ``` 3. By default, replicas are configured to the same datacenter, and will now attempt to seed from an existing node in the same datacenter. Configure the replicas for different datacenters by setting a different value for the datacenter option. The specific values can be anything you would like as long as they are different from each other. Run the `ghe-repl-node` command on each node and specify the datacenter. On the primary: ```shell - (primary)$ ghe-repl-node --datacenter [PRIMARY DC NAME] + (primary)$ ghe-repl-node --datacenter [PRIMARY DC NAME] ``` On the first replica: ```shell - (replica1)$ ghe-repl-node --datacenter [FIRST REPLICA DC NAME] + (replica1)$ ghe-repl-node --datacenter [FIRST REPLICA DC NAME] ``` On the second replica: ```shell - (replica2)$ ghe-repl-node --datacenter [SECOND REPLICA DC NAME] + (replica2)$ ghe-repl-node --datacenter [SECOND REPLICA DC NAME] ``` {% tip %} @@ -90,9 +90,9 @@ Configure Geo DNS using the IP addresses of the primary and replica nodes. You c For testing, you can add entries to the local workstation's `hosts` file (for example, `/etc/hosts`). These example entries will resolve requests for `HOSTNAME` to `replica2`. You can target specific hosts by commenting out different lines. ``` -# HOSTNAME -# HOSTNAME - HOSTNAME +# HOSTNAME +# HOSTNAME + HOSTNAME ``` ## Further reading diff --git a/content/admin/enterprise-management/configuring-high-availability/initiating-a-failover-to-your-replica-appliance.md b/content/admin/enterprise-management/configuring-high-availability/initiating-a-failover-to-your-replica-appliance.md index f96aca87a5..9fd8429615 100644 --- a/content/admin/enterprise-management/configuring-high-availability/initiating-a-failover-to-your-replica-appliance.md +++ b/content/admin/enterprise-management/configuring-high-availability/initiating-a-failover-to-your-replica-appliance.md @@ -57,7 +57,7 @@ The time required to failover depends on how long it takes to manually promote t ``` - On the new primary, remove the UUIDs using `ghe-repl-teardown`. Please replace *`UUID`* with a UUID you retrieved in the previous step. ```shell - $ ghe-repl-teardown -u UUID + $ ghe-repl-teardown -u UUID ``` ## Further reading diff --git a/content/admin/enterprise-management/configuring-high-availability/recovering-a-high-availability-configuration.md b/content/admin/enterprise-management/configuring-high-availability/recovering-a-high-availability-configuration.md index a9c5eb633b..8b3d31a44a 100644 --- a/content/admin/enterprise-management/configuring-high-availability/recovering-a-high-availability-configuration.md +++ b/content/admin/enterprise-management/configuring-high-availability/recovering-a-high-availability-configuration.md @@ -29,16 +29,16 @@ You can use the former primary appliance as the new replica appliance if the fai 1. Connect to the former primary appliance's IP address using SSH. ```shell - $ ssh -p 122 admin@FORMER PRIMARY IP + $ ssh -p 122 admin@ FORMER_PRIMARY_IP ``` 1. Enable maintenance mode on the former primary appliance. For more information, see "[Enabling and scheduling maintenance mode](/admin/configuration/configuring-your-enterprise/enabling-and-scheduling-maintenance-mode)." 1. On the former primary appliance, run `ghe-repl-setup` with the IP address of the former replica. ```shell - $ ghe-repl-setup FORMER REPLICA IP + $ ghe-repl-setup FORMER_REPLICA_IP ``` {% data reusables.enterprise_installation.add-ssh-key-to-primary %} 1. To verify the connection to the new primary and enable replica mode for the new replica, run `ghe-repl-setup` again. ```shell - $ ghe-repl-setup FORMER REPLICA IP + $ ghe-repl-setup FORMER_REPLICA_IP ``` {% data reusables.enterprise_installation.replication-command %} diff --git a/content/admin/enterprise-management/monitoring-your-appliance/monitoring-using-snmp.md b/content/admin/enterprise-management/monitoring-your-appliance/monitoring-using-snmp.md index a4a2896b60..6d1ee8d6f6 100644 --- a/content/admin/enterprise-management/monitoring-your-appliance/monitoring-using-snmp.md +++ b/content/admin/enterprise-management/monitoring-your-appliance/monitoring-using-snmp.md @@ -32,7 +32,7 @@ SNMP is a common standard for monitoring devices over a network. We strongly rec ```shell # community-string is your community string # hostname is the IP or domain of your Enterprise instance - $ snmpget -v 2c -c community-string -O e hostname hrSystemDate.0 + $ snmpget -v 2c -c COMMUNITY-STRING -O e HOSTNAME hrSystemDate.0 ``` This should return the system time on {% data variables.product.product_location %} host. @@ -79,7 +79,7 @@ With SNMP v2c, only hardware-level information about your appliance is available ```shell # community-string is your community string # hostname is the IP or domain of your Enterprise instance -$ snmpwalk -v 2c -c community-string -O e hostname +$ snmpwalk -v 2c -c COMMUNITY-STRING -O e HOSTNAME ``` Of the available MIBs for SNMP, the most useful is `HOST-RESOURCES-MIB` (1.3.6.1.2.1.25). See the table below for some important objects in this MIB: @@ -99,17 +99,17 @@ For example, to query for `hrMemorySize` with SNMP v3, run the following command # auth password is the authentication password # privacy password is the privacy password # hostname is the IP or domain of your Enterprise instance -$ snmpget -v 3 -u username -l authPriv \ - -A "auth password" -a SHA \ - -X "privacy password" -x AES \ - -O e hostname HOST-RESOURCES-MIB::hrMemorySize.0 +$ snmpget -v 3 -u USERNAME -l authPriv \ + -A "AUTH PASSWORD" -a SHA \ + -X "PRIVACY PASSWORD" -x AES \ + -O e HOSTNAME HOST-RESOURCES-MIB::hrMemorySize.0 ``` With SNMP v2c, to query for `hrMemorySize`, run the following command on a separate workstation with SNMP support in your network: ```shell # community-string is your community string # hostname is the IP or domain of your Enterprise instance -snmpget -v 2c -c community-string hostname HOST-RESOURCES-MIB::hrMemorySize.0 +snmpget -v 2c -c COMMUNITY-STRING HOSTNAME HOST-RESOURCES-MIB::hrMemorySize.0 ``` {% tip %} diff --git a/content/admin/enterprise-management/updating-the-virtual-machine-and-physical-resources/upgrading-github-enterprise-server.md b/content/admin/enterprise-management/updating-the-virtual-machine-and-physical-resources/upgrading-github-enterprise-server.md index 19e110153b..4770717072 100644 --- a/content/admin/enterprise-management/updating-the-virtual-machine-and-physical-resources/upgrading-github-enterprise-server.md +++ b/content/admin/enterprise-management/updating-the-virtual-machine-and-physical-resources/upgrading-github-enterprise-server.md @@ -118,7 +118,7 @@ If the upgrade target you're presented with is a feature release instead of a pa {% data reusables.enterprise_installation.download-package %} 4. Run the `ghe-upgrade` command using the package file name: ```shell - admin@HOSTNAME:~$ ghe-upgrade GITHUB-UPGRADE.hpkg + admin@HOSTNAME:~$ ghe-upgrade GITHUB-UPGRADE.hpkg *** verifying upgrade package signature... ``` 5. If a reboot is required for updates for kernel, MySQL, Elasticsearch or other programs, the hotpatch upgrade script notifies you. @@ -170,7 +170,7 @@ While you can use a hotpatch to upgrade to the latest patch release within a fea 5. Run the `ghe-upgrade` command using the package file name: ```shell - admin@HOSTNAME:~$ ghe-upgrade GITHUB-UPGRADE.pkg + admin@HOSTNAME:~$ ghe-upgrade GITHUB-UPGRADE.pkg *** verifying upgrade package signature... ``` 6. Confirm that you'd like to continue with the upgrade and restart after the package signature verifies. The new root filesystem writes to the secondary partition and the instance automatically restarts in maintenance mode: diff --git a/content/admin/github-actions/advanced-configuration-and-troubleshooting/using-a-staging-environment.md b/content/admin/github-actions/advanced-configuration-and-troubleshooting/using-a-staging-environment.md index 673c08e87f..80e128920e 100644 --- a/content/admin/github-actions/advanced-configuration-and-troubleshooting/using-a-staging-environment.md +++ b/content/admin/github-actions/advanced-configuration-and-troubleshooting/using-a-staging-environment.md @@ -48,5 +48,5 @@ To more accurately mirror your production environment, you can optionally copy f * For Amazon S3 buckets, you can use [`aws s3 sync`](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/s3/sync.html). For example: ```shell - aws s3 sync s3://SOURCE-BUCKET s3://DESTINATION-BUCKET + aws s3 sync s3://SOURCE-BUCKET s3://DESTINATION-BUCKET ``` diff --git a/content/admin/github-actions/managing-access-to-actions-from-githubcom/manually-syncing-actions-from-githubcom.md b/content/admin/github-actions/managing-access-to-actions-from-githubcom/manually-syncing-actions-from-githubcom.md index 3f5f872968..ef7ce0c911 100644 --- a/content/admin/github-actions/managing-access-to-actions-from-githubcom/manually-syncing-actions-from-githubcom.md +++ b/content/admin/github-actions/managing-access-to-actions-from-githubcom/manually-syncing-actions-from-githubcom.md @@ -56,7 +56,7 @@ The `actions-sync` tool can only download actions from {% data variables.product Site administrators can use the `ghe-org-admin-promote` command in the administrative shell to promote a user to be an owner of the bundled `actions` organization. For more information, see "[Accessing the administrative shell (SSH)](/admin/configuration/accessing-the-administrative-shell-ssh)" and "[`ghe-org-admin-promote`](/admin/configuration/command-line-utilities#ghe-org-admin-promote)." ```shell - ghe-org-admin-promote -u USERNAME -o actions + ghe-org-admin-promote -u USERNAME -o actions ```{% endif %} ## Example: Using the `actions-sync` tool diff --git a/content/admin/identity-and-access-management/using-saml-for-enterprise-iam/troubleshooting-saml-authentication.md b/content/admin/identity-and-access-management/using-saml-for-enterprise-iam/troubleshooting-saml-authentication.md index 53e9571e63..c1547181f8 100644 --- a/content/admin/identity-and-access-management/using-saml-for-enterprise-iam/troubleshooting-saml-authentication.md +++ b/content/admin/identity-and-access-management/using-saml-for-enterprise-iam/troubleshooting-saml-authentication.md @@ -56,7 +56,7 @@ You can configure {% data variables.product.product_name %} to write verbose deb Some output in _auth.log_ may be Base64-encoded. You can access the administrative shell and use the `base64` utility on {% data variables.product.product_location %} to decode these responses. For more information, see "[Accessing the administrative shell (SSH)](/admin/configuration/configuring-your-enterprise/accessing-the-administrative-shell-ssh)." ```shell -$ base64 --decode ENCODED OUTPUT +$ base64 --decode ENCODED_OUTPUT ``` ## Error: "Another user already owns the account" diff --git a/content/admin/installation/setting-up-a-github-enterprise-server-instance/installing-github-enterprise-server-on-aws.md b/content/admin/installation/setting-up-a-github-enterprise-server-instance/installing-github-enterprise-server-on-aws.md index c680e16f4e..b241ff8178 100644 --- a/content/admin/installation/setting-up-a-github-enterprise-server-instance/installing-github-enterprise-server-on-aws.md +++ b/content/admin/installation/setting-up-a-github-enterprise-server-instance/installing-github-enterprise-server-on-aws.md @@ -70,7 +70,7 @@ AMIs for {% data variables.product.prodname_ghe_server %} are available in the A 1. Using the AWS CLI, get a list of {% data variables.product.prodname_ghe_server %} images published by {% data variables.product.prodname_dotcom %}'s AWS owner IDs (`025577942450` for GovCloud, and `895557238572` for other regions). For more information, see "[describe-images](http://docs.aws.amazon.com/cli/latest/reference/ec2/describe-images.html)" in the AWS documentation. ```shell aws ec2 describe-images \ - --owners OWNER ID \ + --owners OWNER_ID \ --query 'sort_by(Images,&Name)[*].{Name:Name,ImageID:ImageId}' \ --output=text ``` @@ -82,14 +82,14 @@ If you're setting up your AMI for the first time, you will need to create a secu 1. Using the AWS CLI, create a new security group. For more information, see "[create-security-group](http://docs.aws.amazon.com/cli/latest/reference/ec2/create-security-group.html)" in the AWS documentation. ```shell - $ aws ec2 create-security-group --group-name SECURITY_GROUP_NAME --description "SECURITY GROUP DESCRIPTION" + $ aws ec2 create-security-group --group-name SECURITY_GROUP_NAME --description "SECURITY GROUP DESCRIPTION" ``` 2. Take note of the security group ID (`sg-xxxxxxxx`) of your newly created security group. 3. Create a security group rule for each of the ports in the table below. For more information, see "[authorize-security-group-ingress](http://docs.aws.amazon.com/cli/latest/reference/ec2/authorize-security-group-ingress.html)" in the AWS documentation. ```shell - $ aws ec2 authorize-security-group-ingress --group-id SECURITY_GROUP_ID --protocol PROTOCOL --port PORT_NUMBER --cidr SOURCE IP RANGE + $ aws ec2 authorize-security-group-ingress --group-id SECURITY_GROUP_ID --protocol PROTOCOL --port PORT_NUMBER --cidr SOURCE IP RANGE ``` This table identifies what each port is used for. @@ -118,11 +118,11 @@ In the AWS CLI, launch an EC2 instance using your AMI and the security group you ```shell aws ec2 run-instances \ - --security-group-ids SECURITY_GROUP_ID \ - --instance-type INSTANCE_TYPE \ - --image-id AMI_ID \ - --block-device-mappings '[{"DeviceName":"/dev/xvdf","Ebs":{"VolumeSize":SIZE,"VolumeType":"TYPE"}}]' \ - --region REGION \ + --security-group-ids SECURITY_GROUP_ID \ + --instance-type INSTANCE_TYPE \ + --image-id AMI_ID \ + --block-device-mappings '[{"DeviceName":"/dev/xvdf","Ebs":{"VolumeSize":SIZE,"VolumeType":"TYPE"}}]' \ + --region REGION \ --ebs-optimized ``` diff --git a/content/admin/installation/setting-up-a-github-enterprise-server-instance/installing-github-enterprise-server-on-azure.md b/content/admin/installation/setting-up-a-github-enterprise-server-instance/installing-github-enterprise-server-on-azure.md index 44c202dd02..d852202880 100644 --- a/content/admin/installation/setting-up-a-github-enterprise-server-instance/installing-github-enterprise-server-on-azure.md +++ b/content/admin/installation/setting-up-a-github-enterprise-server-instance/installing-github-enterprise-server-on-azure.md @@ -50,13 +50,13 @@ Before launching {% data variables.product.product_location %} on Azure, you'll Pass in options for the name of your VM, the resource group, the size of your VM, the name of your preferred Azure region, the name of the appliance image VM you listed in the previous step, and the storage SKU for premium storage. For more information about resource groups, see "[Resource groups](https://docs.microsoft.com/azure/azure-resource-manager/resource-group-overview#resource-groups)" in the Microsoft documentation. ```shell - $ az vm create -n VM_NAME -g RESOURCE_GROUP --size VM_SIZE -l REGION --image APPLIANCE_IMAGE_NAME --storage-sku Premium_LRS + $ az vm create -n VM_NAME -g RESOURCE_GROUP --size VM_SIZE -l REGION --image APPLIANCE_IMAGE_NAME --storage-sku Premium_LRS ``` 3. Configure the security settings on your VM to open up required ports. For more information, see "[`az vm open-port`](https://docs.microsoft.com/cli/azure/vm?view=azure-cli-latest#az_vm_open_port)" in the Microsoft documentation. See the table below for a description of each port to determine what ports you need to open. ```shell - $ az vm open-port -n VM_NAME -g RESOURCE_GROUP --port PORT_NUMBER + $ az vm open-port -n VM_NAME -g RESOURCE_GROUP --port PORT_NUMBER ``` This table identifies what each port is used for. @@ -68,7 +68,7 @@ Before launching {% data variables.product.product_location %} on Azure, you'll Pass in options for the name of your VM (for example, `ghe-acme-corp`), the resource group, the premium storage SKU, the size of the disk (for example, `100`), and a name for the resulting VHD. ```shell - $ az vm disk attach --vm-name VM_NAME -g RESOURCE_GROUP --sku Premium_LRS --new -z SIZE_IN_GB --name ghe-data.vhd --caching ReadWrite + $ az vm disk attach --vm-name VM_NAME -g RESOURCE_GROUP --sku Premium_LRS --new -z SIZE_IN_GB --name ghe-data.vhd --caching ReadWrite ``` {% note %} @@ -81,7 +81,7 @@ Before launching {% data variables.product.product_location %} on Azure, you'll 1. Before configuring the VM, you must wait for it to enter ReadyRole status. Check the status of the VM with the `vm list` command. For more information, see "[`az vm list`](https://docs.microsoft.com/cli/azure/vm?view=azure-cli-latest#az_vm_list)" in the Microsoft documentation. ```shell - $ az vm list -d -g RESOURCE_GROUP -o table + $ az vm list -d -g RESOURCE_GROUP -o table > Name ResourceGroup PowerState PublicIps Fqdns Location Zones > ------ --------------- ------------ ------------ ------- ---------- ------- > VM_NAME RESOURCE_GROUP VM running 40.76.79.202 eastus diff --git a/content/admin/installation/setting-up-a-github-enterprise-server-instance/installing-github-enterprise-server-on-google-cloud-platform.md b/content/admin/installation/setting-up-a-github-enterprise-server-instance/installing-github-enterprise-server-on-google-cloud-platform.md index e8d6a0059e..421d13199a 100644 --- a/content/admin/installation/setting-up-a-github-enterprise-server-instance/installing-github-enterprise-server-on-google-cloud-platform.md +++ b/content/admin/installation/setting-up-a-github-enterprise-server-instance/installing-github-enterprise-server-on-google-cloud-platform.md @@ -48,12 +48,12 @@ GCE virtual machines are created as a member of a network, which has a firewall. 1. Using the gcloud compute command-line tool, create the network. For more information, see "[gcloud compute networks create](https://cloud.google.com/sdk/gcloud/reference/compute/networks/create)" in the Google documentation. ```shell - $ gcloud compute networks create NETWORK-NAME --subnet-mode auto + $ gcloud compute networks create NETWORK-NAME --subnet-mode auto ``` 2. Create a firewall rule for each of the ports in the table below. For more information, see "[gcloud compute firewall-rules](https://cloud.google.com/sdk/gcloud/reference/compute/firewall-rules/)" in the Google documentation. ```shell - $ gcloud compute firewall-rules create RULE-NAME \ - --network NETWORK-NAME \ + $ gcloud compute firewall-rules create RULE-NAME \ + --network NETWORK-NAME \ --allow tcp:22,tcp:25,tcp:80,tcp:122,udp:161,tcp:443,udp:1194,tcp:8080,tcp:8443,tcp:9418,icmp ``` This table identifies the required ports and what each port is used for. @@ -72,18 +72,18 @@ To create the {% data variables.product.prodname_ghe_server %} instance, you'll 1. Using the gcloud compute command-line tool, create a data disk to use as an attached storage volume for your instance data, and configure the size based on your user license count. For more information, see "[gcloud compute disks create](https://cloud.google.com/sdk/gcloud/reference/compute/disks/create)" in the Google documentation. ```shell - $ gcloud compute disks create DATA-DISK-NAME --size DATA-DISK-SIZE --type DATA-DISK-TYPE --zone ZONE + $ gcloud compute disks create DATA-DISK-NAME --size DATA-DISK-SIZE --type DATA-DISK-TYPE --zone ZONE ``` 2. Then create an instance using the name of the {% data variables.product.prodname_ghe_server %} image you selected, and attach the data disk. For more information, see "[gcloud compute instances create](https://cloud.google.com/sdk/gcloud/reference/compute/instances/create)" in the Google documentation. ```shell - $ gcloud compute instances create INSTANCE-NAME \ + $ gcloud compute instances create INSTANCE-NAME \ --machine-type n1-standard-8 \ - --image GITHUB-ENTERPRISE-IMAGE-NAME \ - --disk name=DATA-DISK-NAME \ + --image GITHUB-ENTERPRISE-IMAGE-NAME \ + --disk name=DATA-DISK-NAME \ --metadata serial-port-enable=1 \ - --zone ZONE \ - --network NETWORK-NAME \ + --zone ZONE \ + --network NETWORK-NAME \ --image-project github-enterprise-public ``` diff --git a/content/admin/installation/setting-up-a-github-enterprise-server-instance/installing-github-enterprise-server-on-hyper-v.md b/content/admin/installation/setting-up-a-github-enterprise-server-instance/installing-github-enterprise-server-on-hyper-v.md index 50f177838c..d1e063c828 100644 --- a/content/admin/installation/setting-up-a-github-enterprise-server-instance/installing-github-enterprise-server-on-hyper-v.md +++ b/content/admin/installation/setting-up-a-github-enterprise-server-instance/installing-github-enterprise-server-on-hyper-v.md @@ -38,23 +38,23 @@ shortTitle: Install on Hyper-V 1. In PowerShell, create a new Generation 1 virtual machine, configure the size based on your user license count, and attach the {% data variables.product.prodname_ghe_server %} image you downloaded. For more information, see "[New-VM](https://docs.microsoft.com/powershell/module/hyper-v/new-vm?view=win10-ps)" in the Microsoft documentation. ```shell - PS C:\> New-VM -Generation 1 -Name VM_NAME -MemoryStartupBytes MEMORY_SIZE -BootDevice VHD -VHDPath PATH_TO_VHD + PS C:\> New-VM -Generation 1 -Name VM_NAME -MemoryStartupBytes MEMORY_SIZE -BootDevice VHD -VHDPath PATH_TO_VHD ``` {% data reusables.enterprise_installation.create-attached-storage-volume %} Replace `PATH_TO_DATA_DISK` with the path to the location where you create the disk. For more information, see "[New-VHD](https://docs.microsoft.com/powershell/module/hyper-v/new-vhd?view=win10-ps)" in the Microsoft documentation. ```shell - PS C:\> New-VHD -Path PATH_TO_DATA_DISK -SizeBytes DISK_SIZE + PS C:\> New-VHD -Path PATH_TO_DATA_DISK -SizeBytes DISK_SIZE ``` 3. Attach the data disk to your instance. For more information, see "[Add-VMHardDiskDrive](https://docs.microsoft.com/powershell/module/hyper-v/add-vmharddiskdrive?view=win10-ps)" in the Microsoft documentation. ```shell - PS C:\> Add-VMHardDiskDrive -VMName VM_NAME -Path PATH_TO_DATA_DISK + PS C:\> Add-VMHardDiskDrive -VMName VM_NAME -Path PATH_TO_DATA_DISK ``` 4. Start the VM. For more information, see "[Start-VM](https://docs.microsoft.com/powershell/module/hyper-v/start-vm?view=win10-ps)" in the Microsoft documentation. ```shell - PS C:\> Start-VM -Name VM_NAME + PS C:\> Start-VM -Name VM_NAME ``` 5. Get the IP address of your VM. For more information, see "[Get-VMNetworkAdapter](https://docs.microsoft.com/powershell/module/hyper-v/get-vmnetworkadapter?view=win10-ps)" in the Microsoft documentation. ```shell - PS C:\> (Get-VMNetworkAdapter -VMName VM_NAME).IpAddresses + PS C:\> (Get-VMNetworkAdapter -VMName VM_NAME).IpAddresses ``` 6. Copy the VM's IP address and paste it into a web browser. diff --git a/content/admin/monitoring-activity-in-your-enterprise/exploring-user-activity/viewing-push-logs.md b/content/admin/monitoring-activity-in-your-enterprise/exploring-user-activity/viewing-push-logs.md index b8301bed38..f59cbd659d 100644 --- a/content/admin/monitoring-activity-in-your-enterprise/exploring-user-activity/viewing-push-logs.md +++ b/content/admin/monitoring-activity-in-your-enterprise/exploring-user-activity/viewing-push-logs.md @@ -43,6 +43,6 @@ Push log entries show: {% data reusables.enterprise_installation.ssh-into-instance %} 1. In the appropriate Git repository, open the audit log file: ```shell - ghe-repo owner/repository -c "cat audit_log" + ghe-repo OWNER/REPOSITORY -c "cat audit_log" ``` {% endif %} diff --git a/content/admin/monitoring-activity-in-your-enterprise/reviewing-audit-logs-for-your-enterprise/using-the-audit-log-api-for-your-enterprise.md b/content/admin/monitoring-activity-in-your-enterprise/reviewing-audit-logs-for-your-enterprise/using-the-audit-log-api-for-your-enterprise.md index c16e6c9f88..f5234fb040 100644 --- a/content/admin/monitoring-activity-in-your-enterprise/reviewing-audit-logs-for-your-enterprise/using-the-audit-log-api-for-your-enterprise.md +++ b/content/admin/monitoring-activity-in-your-enterprise/reviewing-audit-logs-for-your-enterprise/using-the-audit-log-api-for-your-enterprise.md @@ -121,7 +121,7 @@ For more information about the audit log REST API, see "[Enterprise administrati The query below searches for audit log events created on Jan 1st, 2022 in the `avocado-corp` enterprise, and return the first page with a maximum of 100 items per page using [REST API pagination](/rest/overview/resources-in-the-rest-api#pagination): ```shell -curl -H "Authorization: Bearer TOKEN" \ +curl -H "Authorization: Bearer TOKEN" \ --request GET \ "https://api.github.com/enterprises/avocado-corp/audit-log?phrase=created:2022-01-01&page=1&per_page=100" ``` @@ -133,7 +133,7 @@ You can specify multiple search phrases, such as `created` and `actor`, by separ The query below searches for audit log events for pull requests, where the event occurred on or after Jan 1st, 2022 in the `avocado-corp` enterprise, and the action was performed by the `octocat` user: ```shell -curl -H "Authorization: Bearer TOKEN" \ +curl -H "Authorization: Bearer TOKEN" \ --request GET \ "https://api.github.com/enterprises/avocado-corp/audit-log?phrase=action:pull_request+created:>=2022-01-01+actor:octocat" ``` diff --git a/content/admin/packages/quickstart-for-configuring-your-minio-storage-bucket-for-github-packages.md b/content/admin/packages/quickstart-for-configuring-your-minio-storage-bucket-for-github-packages.md index a08d317d75..562a02d159 100644 --- a/content/admin/packages/quickstart-for-configuring-your-minio-storage-bucket-for-github-packages.md +++ b/content/admin/packages/quickstart-for-configuring-your-minio-storage-bucket-for-github-packages.md @@ -121,7 +121,7 @@ Other modes of MinIO remain available with standard support. ```shell $ export MC_HOST_minio="http://${MINIO_ACCESS_KEY}:${MINIO_SECRET_KEY} @localhost:9000" - $ docker run minio/mc BUCKET-NAME + $ docker run minio/mc BUCKET-NAME ``` This example can be used for MinIO standalone or MinIO as a NAS gateway. diff --git a/content/admin/policies/enforcing-policy-with-pre-receive-hooks/creating-a-pre-receive-hook-script.md b/content/admin/policies/enforcing-policy-with-pre-receive-hooks/creating-a-pre-receive-hook-script.md index 07184c4299..ff1340ce66 100644 --- a/content/admin/policies/enforcing-policy-with-pre-receive-hooks/creating-a-pre-receive-hook-script.md +++ b/content/admin/policies/enforcing-policy-with-pre-receive-hooks/creating-a-pre-receive-hook-script.md @@ -69,7 +69,7 @@ The following variables are always available in the pre-receive hook environment | :- | :- | :- | |
$GIT_DIR
| Path to the remote repository on the instance | /data/user/repositories/a/ab/
a1/b2/34/100001234/1234.git | |
$GIT_PUSH_OPTION_COUNT
| The number of push options that were sent by the client with `--push-option`. For more information, see "[git-push](https://git-scm.com/docs/git-push#Documentation/git-push.txt---push-optionltoptiongt)" in the Git documentation. | 1 | -|
$GIT\_PUSH\_OPTION\_N
| Where _N_ is an integer starting at 0, this variable contains the push option string that was sent by the client. The first option that was sent is stored in `GIT_PUSH_OPTION_0`, the second option that was sent is stored in `GIT_PUSH_OPTION_1`, and so on. For more information about push options, see "[git-push](https://git-scm.com/docs/git-push#git-push---push-optionltoptiongt)" in the Git documentation. | abcd |{% ifversion ghes %} +|
$GIT\_PUSH\_OPTION\_N
| Where _N_ is an integer starting at 0, this variable contains the push option string that was sent by the client. The first option that was sent is stored in `GIT_PUSH_OPTION_0`, the second option that was sent is stored in `GIT_PUSH_OPTION_1`, and so on. For more information about push options, see "[git-push](https://git-scm.com/docs/git-push#git-push---push-optionltoptiongt)" in the Git documentation. | abcd |{% ifversion ghes %} |
$GIT_USER_AGENT
| User-agent string sent by the Git client that pushed the changes | git/2.0.0{% endif %} |
$GITHUB_REPO_NAME
| Name of the repository being updated in _NAME_/_OWNER_ format | octo-org/hello-enterprise | |
$GITHUB_REPO_PUBLIC
| Boolean representing whether the repository being updated is public |
  • true: Repository's visibility is public
  • false: Repository's visibility is private or internal
@@ -102,7 +102,7 @@ The `$GITHUB_VIA` variable is available in the pre-receive hook environment when |
releases delete button
| Deletion of a release | "[Managing releases in a repository](/github/administering-a-repository/managing-releases-in-a-repository#deleting-a-release)" | |
stafftools branch restore
| Restoration of a branch from the site admin dashboard | "[Site admin dashboard](/admin/configuration/site-admin-dashboard#repositories)" | |
tag create api
| Creation of a tag via the API | "[Git database](/rest/reference/git#create-a-tag-object)" in the REST API documentation | -|
slumlord (#SHA)
| Commit via Subversion | "[Support for Subversion clients](/github/importing-your-projects-to-github/support-for-subversion-clients#making-commits-to-subversion)" | +|
slumlord (#SHA)
| Commit via Subversion | "[Support for Subversion clients](/github/importing-your-projects-to-github/support-for-subversion-clients#making-commits-to-subversion)" | |
web branch create
| Creation of a branch via the web interface | "[Creating and deleting branches within your repository](/github/collaborating-with-issues-and-pull-requests/creating-and-deleting-branches-within-your-repository#creating-a-branch)" | #### Available for pull request merges @@ -130,18 +130,18 @@ We recommend consolidating hooks to a single repository. If the consolidated hoo 1. For Mac users, ensure the scripts have execute permissions: ```shell - $ sudo chmod +x SCRIPT_FILE.sh + $ sudo chmod +x SCRIPT_FILE.sh ``` For Windows users, ensure the scripts have execute permissions: ```shell - git update-index --chmod=+x SCRIPT_FILE.sh + git update-index --chmod=+x SCRIPT_FILE.sh ``` 2. Commit and push to the designated repository for pre-receive hooks on {% data variables.product.product_location %}. ```shell - $ git commit -m "YOUR COMMIT MESSAGE" + $ git commit -m "YOUR COMMIT MESSAGE" $ git push ``` diff --git a/content/admin/user-management/managing-repositories-in-your-enterprise/configuring-git-large-file-storage-for-your-enterprise.md b/content/admin/user-management/managing-repositories-in-your-enterprise/configuring-git-large-file-storage-for-your-enterprise.md index 96c09af594..8bb124b1e6 100644 --- a/content/admin/user-management/managing-repositories-in-your-enterprise/configuring-git-large-file-storage-for-your-enterprise.md +++ b/content/admin/user-management/managing-repositories-in-your-enterprise/configuring-git-large-file-storage-for-your-enterprise.md @@ -82,20 +82,20 @@ For more information, see "[About {% data variables.large_files.product_name_lon > git-lfs/1.1.0 (GitHub; darwin amd64; go 1.5.1; git 94d356c) > git version 2.7.4 (Apple Git-66)   - > Endpoint=https://GITHUB-ENTERPRISE-HOST/path/to/repo/info/lfs (auth=basic) + > Endpoint=https://GITHUB-ENTERPRISE-HOST/path/to/repo/info/lfs (auth=basic)   # Create .lfsconfig that points to third party server. - $ git config -f .lfsconfig remote.origin.lfsurl https://THIRD-PARTY-LFS-SERVER/path/to/repo + $ git config -f .lfsconfig remote.origin.lfsurl https://THIRD-PARTY-LFS-SERVER/path/to/repo $ git lfs env > git-lfs/1.1.0 (GitHub; darwin amd64; go 1.5.1; git 94d356c) > git version 2.7.4 (Apple Git-66)   - > Endpoint=https://THIRD-PARTY-LFS-SERVER/path/to/repo/info/lfs (auth=none) + > Endpoint=https://THIRD-PARTY-LFS-SERVER/path/to/repo/info/lfs (auth=none)   # Show the contents of .lfsconfig $ cat .lfsconfig [remote "origin"] - lfsurl = https://THIRD-PARTY-LFS-SERVER/path/to/repo + lfsurl = https://THIRD-PARTY-LFS-SERVER/path/to/repo ``` 3. To keep the same {% data variables.large_files.product_name_short %} configuration for each user, commit a custom `.lfsconfig` file to the repository. @@ -111,14 +111,14 @@ Before migrating to a different {% data variables.large_files.product_name_long 1. Configure the repository with a second remote. ```shell - $ git remote add NEW-REMOTE https://NEW-REMOTE-HOSTNAME/path/to/repo + $ git remote add NEW-REMOTE https://NEW-REMOTE-HOSTNAME/path/to/repo   $ git lfs env > git-lfs/1.1.0 (GitHub; darwin amd64; go 1.5.1; git 94d356c) > git version 2.7.4 (Apple Git-66)   - > Endpoint=https://GITHUB-ENTERPRISE-HOST/path/to/repo/info/lfs (auth=basic) - > Endpoint (NEW-REMOTE)=https://NEW-REMOTE-HOSTNAME/path/to/repo/info/lfs (auth=none) + > Endpoint=https://GITHUB-ENTERPRISE-HOST/path/to/repo/info/lfs (auth=basic) + > Endpoint (NEW-REMOTE)=https://NEW-REMOTE-HOSTNAME/path/to/repo/info/lfs (auth=none) ``` 2. Fetch all objects from the old remote. @@ -132,7 +132,7 @@ Before migrating to a different {% data variables.large_files.product_name_long 3. Push all objects to the new remote. ```shell - $ git lfs push NEW-REMOTE --all + $ git lfs push NEW-REMOTE --all > Scanning for all objects ever referenced... > ✔ 16 objects found > Pushing objects... diff --git a/content/admin/user-management/managing-users-in-your-enterprise/auditing-ssh-keys.md b/content/admin/user-management/managing-users-in-your-enterprise/auditing-ssh-keys.md index a97d601b64..8659abaad8 100644 --- a/content/admin/user-management/managing-users-in-your-enterprise/auditing-ssh-keys.md +++ b/content/admin/user-management/managing-users-in-your-enterprise/auditing-ssh-keys.md @@ -34,8 +34,8 @@ After you click the "Begin audit" button, all SSH keys are invalidated and will If a user attempts to perform any git operation over SSH, it will fail and provide them with the following message: ```shell -ERROR: Hi username. We're doing an SSH key audit. -Please visit http(s)://hostname/settings/ssh/audit/2 +ERROR: Hi USERNAME. We're doing an SSH key audit. +Please visit http(s)://HOSTNAME/settings/ssh/audit/2 to approve this key so we know it's safe. Fingerprint: ed:21:60:64:c0:dc:2b:16:0f:54:5f:2b:35:2a:94:91 fatal: The remote end hung up unexpectedly diff --git a/content/admin/user-management/managing-users-in-your-enterprise/promoting-or-demoting-a-site-administrator.md b/content/admin/user-management/managing-users-in-your-enterprise/promoting-or-demoting-a-site-administrator.md index 2ca2fcfec5..2d9780c082 100644 --- a/content/admin/user-management/managing-users-in-your-enterprise/promoting-or-demoting-a-site-administrator.md +++ b/content/admin/user-management/managing-users-in-your-enterprise/promoting-or-demoting-a-site-administrator.md @@ -50,7 +50,7 @@ For information about promoting a user to an organization owner, see the `ghe-or 1. [SSH](/enterprise/admin/guides/installation/accessing-the-administrative-shell-ssh/) into your appliance. 2. Run [ghe-user-promote](/enterprise/admin/guides/installation/command-line-utilities#ghe-user-promote) with the username to promote. ```shell - $ ghe-user-promote username + $ ghe-user-promote USERNAME ``` ## Demoting a site administrator from the command line @@ -58,5 +58,5 @@ For information about promoting a user to an organization owner, see the `ghe-or 1. [SSH](/enterprise/admin/guides/installation/accessing-the-administrative-shell-ssh/) into your appliance. 2. Run [ghe-user-demote](/enterprise/admin/guides/installation/command-line-utilities#ghe-user-demote) with the username to demote. ```shell - $ ghe-user-demote username + $ ghe-user-demote USERNAME ``` diff --git a/content/admin/user-management/managing-users-in-your-enterprise/suspending-and-unsuspending-users.md b/content/admin/user-management/managing-users-in-your-enterprise/suspending-and-unsuspending-users.md index eee374e9ef..d40afec9e0 100644 --- a/content/admin/user-management/managing-users-in-your-enterprise/suspending-and-unsuspending-users.md +++ b/content/admin/user-management/managing-users-in-your-enterprise/suspending-and-unsuspending-users.md @@ -71,7 +71,7 @@ As when suspending a user, unsuspending a user takes effect immediately. The use {% data reusables.enterprise_installation.ssh-into-instance %} 2. Run [ghe-user-suspend](/enterprise/admin/guides/installation/command-line-utilities#ghe-user-suspend) with the username to suspend. ```shell - $ ghe-user-suspend username + $ ghe-user-suspend USERNAME ``` ## Creating a custom message for suspended users @@ -96,7 +96,7 @@ You can create a custom message that suspended users will see when attempting to {% data reusables.enterprise_installation.ssh-into-instance %} 2. Run [ghe-user-unsuspend](/enterprise/admin/guides/installation/command-line-utilities#ghe-user-unsuspend) with the username to unsuspend. ```shell - $ ghe-user-unsuspend username + $ ghe-user-unsuspend USERNAME ``` ## Further reading diff --git a/content/admin/user-management/migrating-data-to-and-from-your-enterprise/exporting-migration-data-from-githubcom.md b/content/admin/user-management/migrating-data-to-and-from-your-enterprise/exporting-migration-data-from-githubcom.md index d3757186db..26fcb214f2 100644 --- a/content/admin/user-management/migrating-data-to-and-from-your-enterprise/exporting-migration-data-from-githubcom.md +++ b/content/admin/user-management/migrating-data-to-and-from-your-enterprise/exporting-migration-data-from-githubcom.md @@ -44,11 +44,11 @@ The Migrations API is currently in a preview period, which means that the endpoi * Your access token for authentication. * A [list of the repositories](/free-pro-team@latest/rest/repos#list-organization-repositories) you want to migrate: ```shell - curl -H "Authorization: Bearer GITHUB_ACCESS_TOKEN" \ + curl -H "Authorization: Bearer GITHUB_ACCESS_TOKEN" \ -X POST \ -H "Accept: application/vnd.github+json" \ - -d'{"lock_repositories":true,"repositories":["orgname/reponame", "orgname/reponame"]}' \ - https://api.github.com/orgs/orgname/migrations + -d'{"lock_repositories":true,"repositories":["ORG_NAME/REPO_NAME", "ORG_NAME/REPO_NAME"]}' \ + https://api.github.com/orgs/ORG_NAME/migrations ``` * If you want to lock the repositories before migrating them, make sure `lock_repositories` is set to `true`. This is highly recommended. * You can exclude file attachments by passing `exclude_attachments: true` to the endpoint. {% data reusables.enterprise_migrations.exclude-file-attachments %} The final archive size must be less than 20 GB. @@ -59,9 +59,9 @@ The Migrations API is currently in a preview period, which means that the endpoi * Your access token for authentication. * The unique `id` of the migration: ```shell - curl -H "Authorization: Bearer GITHUB_ACCESS_TOKEN" \ + curl -H "Authorization: Bearer GITHUB_ACCESS_TOKEN" \ -H "Accept: application/vnd.github+json" \ - https://api.github.com/orgs/orgname/migrations/id + https://api.github.com/orgs/ORG_NAME/migrations/ID ``` A migration can be in one of the following states: @@ -74,19 +74,19 @@ The Migrations API is currently in a preview period, which means that the endpoi * Your access token for authentication. * The unique `id` of the migration: ```shell - curl -H "Authorization: Bearer GITHUB_ACCESS_TOKEN" \ + curl -H "Authorization: Bearer GITHUB_ACCESS_TOKEN" \ -H "Accept: application/vnd.github+json" \ -L -o migration_archive.tar.gz \ - https://api.github.com/orgs/orgname/migrations/id/archive + https://api.github.com/orgs/ORG_NAME/migrations/ID/archive ``` 5. The migration archive is automatically deleted after seven days. If you would prefer to delete it sooner, you can send a `DELETE` request to [the migration archive delete endpoint](/free-pro-team@latest/rest/migrations#delete-an-organization-migration-archive). You'll need: * Your access token for authentication. * The unique `id` of the migration: ```shell - curl -H "Authorization: Bearer GITHUB_ACCESS_TOKEN" \ + curl -H "Authorization: Bearer GITHUB_ACCESS_TOKEN" \ -X DELETE \ -H "Accept: application/vnd.github+json" \ - https://api.github.com/orgs/orgname/migrations/id/archive + https://api.github.com/orgs/ORG_NAME/migrations/ID/archive ``` {% data reusables.enterprise_migrations.ready-to-import-migrations %} diff --git a/content/admin/user-management/migrating-data-to-and-from-your-enterprise/exporting-migration-data-from-your-enterprise.md b/content/admin/user-management/migrating-data-to-and-from-your-enterprise/exporting-migration-data-from-your-enterprise.md index 689660934f..bb0d2cde06 100644 --- a/content/admin/user-management/migrating-data-to-and-from-your-enterprise/exporting-migration-data-from-your-enterprise.md +++ b/content/admin/user-management/migrating-data-to-and-from-your-enterprise/exporting-migration-data-from-your-enterprise.md @@ -35,12 +35,12 @@ shortTitle: Export from your enterprise 2. To prepare a repository for export, use the `ghe-migrator add` command with the repository's URL: * If you're locking the repository, append the command with `--lock`. If you're performing a trial run, `--lock` is not needed. ```shell - $ ghe-migrator add https://hostname/username/reponame --lock + $ ghe-migrator add https://HOSTNAME/USERNAME/REPO-NAME --lock ``` * You can exclude file attachments by appending `--exclude_attachments` to the command. {% data reusables.enterprise_migrations.exclude-file-attachments %} * To prepare multiple repositories at once for export, create a text file listing each repository URL on a separate line, and run the `ghe-migrator add` command with the `-i` flag and the path to your text file. ```shell - $ ghe-migrator add -i PATH/TO/YOUR/REPOSITORY_URLS.txt + $ ghe-migrator add -i PATH/TO/YOUR/REPOSITORY_URL.txt ``` 3. When prompted, enter your {% data variables.product.prodname_ghe_server %} username: @@ -54,7 +54,7 @@ shortTitle: Export from your enterprise 5. When `ghe-migrator add` has finished it will print the unique "Migration GUID" that it generated to identify this export as well as a list of the resources that were added to the export. You will use the Migration GUID that it generated in subsequent `ghe-migrator add` and `ghe-migrator export` steps to tell `ghe-migrator` to continue operating on the same export. ```shell > 101 models added to export - > Migration GUID: example-migration-guid + > Migration GUID: EXAMPLE-MIGRATION-GUID > Number of records in this migration: > users | 5 > organizations | 1 @@ -78,17 +78,17 @@ shortTitle: Export from your enterprise 3. If you locked the source repository, you can use the `ghe-migrator target_url` command to set a custom lock message on the repository page that links to the repository's new location. Pass the source repository URL, the target repository URL, and the Migration GUID from Step 5: ```shell - $ ghe-migrator target_url https://hostname/username/reponame https://target_hostname/target_username/target_reponame -g MIGRATION_GUID + $ ghe-migrator target_url https://HOSTNAME/USERNAME/REPO-NAME https://TARGET-HOSTNAME/TARGET-USER-NAME/TARGET-REPO-NAME -g MIGRATION-GUID ``` 6. To add more repositories to the same export, use the `ghe-migrator add` command with the `-g` flag. You'll pass in the new repository URL and the Migration GUID from Step 5: ```shell - $ ghe-migrator add https://hostname/username/other_reponame -g MIGRATION_GUID --lock + $ ghe-migrator add https://HOSTNAME/USERNAME/OTHER-REPO-NAME -g MIGRATION-GUID --lock ``` 7. When you've finished adding repositories, generate the migration archive using the `ghe-migrator export` command with the `-g` flag and the Migration GUID from Step 5: ```shell - $ ghe-migrator export -g MIGRATION_GUID - > Archive saved to: /data/github/current/tmp/MIGRATION_GUID.tar.gz + $ ghe-migrator export -g MIGRATION-GUID + > Archive saved to: /data/github/current/tmp/MIGRATION-GUID.tar.gz ``` * {% data reusables.enterprise_migrations.specify-staging-path %} @@ -96,10 +96,10 @@ shortTitle: Export from your enterprise ```shell $ exit > logout - > Connection to hostname closed. + > Connection to HOSTNAME closed. ``` 9. Copy the migration archive to your computer using the [`scp`](https://acloudguru.com/blog/engineering/ssh-and-scp-howto-tips-tricks#scp) command. The archive file will be named with the Migration GUID: ```shell - $ scp -P 122 admin@hostname:/data/github/current/tmp/MIGRATION_GUID.tar.gz ~/Desktop + $ scp -P 122 admin@HOSTNAME:/data/github/current/tmp/MIGRATION-GUID.tar.gz ~/Desktop ``` {% data reusables.enterprise_migrations.ready-to-import-migrations %} diff --git a/content/admin/user-management/migrating-data-to-and-from-your-enterprise/importing-data-from-third-party-version-control-systems.md b/content/admin/user-management/migrating-data-to-and-from-your-enterprise/importing-data-from-third-party-version-control-systems.md index 8dc2956555..7810210a3a 100644 --- a/content/admin/user-management/migrating-data-to-and-from-your-enterprise/importing-data-from-third-party-version-control-systems.md +++ b/content/admin/user-management/migrating-data-to-and-from-your-enterprise/importing-data-from-third-party-version-control-systems.md @@ -18,19 +18,19 @@ shortTitle: Import from another VCS {% data reusables.enterprise_installation.ssh-into-instance %} 2. Make a raw clone of the project using the command below, specifying the URL of the source project, and a path to a temporary repository: ```shell - $ git-import-hg-raw HG-CLONE-URL /PATH/REPO-NAME.git + $ git-import-hg-raw HG-CLONE-URL/PATH/REPO-NAME.git # Creates a new repository with one or more Git refs in "refs/import/" in the specified path. ``` {% data reusables.enterprise_migrations.review-the-import-csv %} 4. Rewrite the authors and branches using the CSV file: ```shell - $ git-import-rewrite --flavor hg --authors /PATH/AUTHORS-MAP-FILE.csv /PATH/REPO-NAME.git + $ git-import-rewrite --flavor hg --authors /PATH/AUTHORS-MAP-FILE.csv /PATH/REPO-NAME.git ``` 5. If you haven't yet, [create a new empty repository on {% data variables.product.prodname_ghe_server %}](/enterprise/user/articles/creating-a-new-repository). {% data reusables.command_line.switching_directories_procedural %} 7. Push the imported repository to {% data variables.product.prodname_ghe_server %}: ```shell - $ git push --mirror PUSH-URL-ON-GITHUB-ENTERPRISE + $ git push --mirror PUSH-URL-ON-GITHUB-ENTERPRISE ``` ## Importing projects from Subversion @@ -38,19 +38,19 @@ shortTitle: Import from another VCS {% data reusables.enterprise_installation.ssh-into-instance %} 2. Make a raw clone of the project using the command below, specifying the URL of the source project, and a path to a temporary repository: ```shell - $ git-import-svn-raw SVN-CLONE-URL /PATH/REPO-NAME.git + $ git-import-svn-raw SVN-CLONE-URL /PATH/REPO-NAME.git # Creates a new repository with one or more Git refs in "refs/import/" in the specified path. ``` {% data reusables.enterprise_migrations.review-the-import-csv %} 4. Rewrite the authors and branches using the CSV file: ```shell - $ git-import-rewrite --flavor svn --authors /PATH/AUTHORS-MAP-FILE.csv /PATH/REPO-NAME.git + $ git-import-rewrite --flavor svn --authors /PATH/AUTHORS-MAP-FILE.csv /PATH/REPO-NAME.git ``` 5. If you haven't yet, [create a new empty repository on {% data variables.product.prodname_ghe_server %}](/enterprise/user/articles/creating-a-new-repository). {% data reusables.command_line.switching_directories_procedural %} 7. Push the imported repository to {% data variables.product.prodname_ghe_server %}: ```shell - $ git push --mirror PUSH-URL-ON-GITHUB-ENTERPRISE + $ git push --mirror PUSH-URL-ON-GITHUB-ENTERPRISE ``` ## Importing projects from Team Foundation Version Control @@ -58,19 +58,19 @@ shortTitle: Import from another VCS {% data reusables.enterprise_installation.ssh-into-instance %} 2. Make a raw clone of the project using the command below, specifying the URL of the source project, and a path to a temporary repository: ```shell - $ git-import-tfs-raw TEAM-FOUNDATION-CLONE-URL /PATH/REPO-NAME.git + $ git-import-tfs-raw TEAM-FOUNDATION-CLONE-URL /PATH/REPO-NAME.git # Creates a new repository with one or more Git refs in "refs/import/" in the specified path. ``` {% data reusables.enterprise_migrations.review-the-import-csv %} 4. Rewrite the authors and branches using the CSV file: ```shell - $ git-import-rewrite --flavor tfs --authors /PATH/AUTHORS-MAP-FILE.csv /PATH/REPO-NAME.git + $ git-import-rewrite --flavor tfs --authors /PATH/AUTHORS-MAP-FILE.csv /PATH/REPO_NAME.git ``` 5. If you haven't yet, [create a new empty repository on {% data variables.product.prodname_ghe_server %}](/enterprise/user/articles/creating-a-new-repository). {% data reusables.command_line.switching_directories_procedural %} 7. Push the imported repository to {% data variables.product.prodname_ghe_server %}: ```shell - $ git push --mirror PUSH-URL-ON-GITHUB-ENTERPRISE + $ git push --mirror PUSH-URL-ON-GITHUB-ENTERPRISE ``` ## Further reading diff --git a/content/admin/user-management/migrating-data-to-and-from-your-enterprise/migrating-data-to-your-enterprise.md b/content/admin/user-management/migrating-data-to-and-from-your-enterprise/migrating-data-to-your-enterprise.md index c614ef94ce..753a7fae66 100644 --- a/content/admin/user-management/migrating-data-to-and-from-your-enterprise/migrating-data-to-your-enterprise.md +++ b/content/admin/user-management/migrating-data-to-and-from-your-enterprise/migrating-data-to-your-enterprise.md @@ -33,7 +33,7 @@ After you prepare the data and resolve conflicts, you can apply the imported dat * Your personal access token for authentication. The personal access token that you use is only for authentication as a site administrator, and does not require any specific scope. For more information, see "[Creating a personal access token](/github/authenticating-to-github/creating-a-personal-access-token)." ```shell - $ ghe-migrator import /home/admin/MIGRATION_GUID.tar.gz -g MIGRATION_GUID -u username -p TOKEN + $ ghe-migrator import /home/admin/MIGRATION-GUID.tar.gz -g MIGRATION-GUID -u USERNAME -p TOKEN > Starting GitHub::Migrator > Import 100% complete / @@ -95,19 +95,19 @@ The record types match those found in the [migrated data](/enterprise/admin/guid With the `ghe-migrator audit` command, you can filter based on the record type using the `-m` flag. Similarly, you can filter on the import state using the `-s` flag. The command looks like this: ```shell -$ ghe-migrator audit -m RECORD_TYPE -s STATE -g MIGRATION_GUID +$ ghe-migrator audit -m RECORD_TYPE -s STATE -g MIGRATION-GUID ``` For example, to view every successfully imported organization and team, you would enter: ```shell -$ ghe-migrator audit -m organization,team -s mapped,renamed -g MIGRATION_GUID +$ ghe-migrator audit -m organization,team -s mapped,renamed -g MIGRATION-GUID > model_name,source_url,target_url,state > organization,https://gh.source/octo-org/,https://ghe.target/octo-org/,renamed ``` **We strongly recommend auditing every import that failed.** To do that, you will enter: ```shell -$ ghe-migrator audit -s failed_import,failed_map,failed_rename,failed_merge -g MIGRATION_GUID +$ ghe-migrator audit -s failed_import,failed_map,failed_rename,failed_merge -g MIGRATION-GUID > model_name,source_url,target_url,state > user,https://gh.source/octocat,https://gh.target/octocat,failed > repository,https://gh.source/octo-org/octo-project,https://ghe.target/octo-org/octo-project,failed @@ -132,18 +132,19 @@ To unlock the repositories on a {% data variables.product.prodname_dotcom_the_we * Your access token for authentication * The unique `id` of the migration * The name of the repository to unlock + ```shell -curl -H "Authorization: Bearer GITHUB_ACCESS_TOKEN" -X DELETE \ +curl -H "Authorization: Bearer GITHUB_ACCESS_TOKEN" -X DELETE \ -H "Accept: application/vnd.github.wyandotte-preview+json" \ - https://api.github.com/orgs/orgname/migrations/id/repos/repo_name/lock + https://api.github.com/orgs/ORG-NAME/migrations/ID/repos/REPO_NAME/lock ``` ### Deleting repositories from an organization on {% data variables.product.prodname_dotcom_the_website %} After unlocking the {% data variables.product.prodname_dotcom_the_website %} organization's repositories, you should delete every repository you previously migrated using [the repository delete endpoint](/rest/repos/#delete-a-repository). You'll need your access token for authentication: ```shell -curl -H "Authorization: Bearer GITHUB_ACCESS_TOKEN" -X DELETE \ - https://api.github.com/repos/orgname/repo_name +curl -H "Authorization: Bearer GITHUB_ACCESS_TOKEN" -X DELETE \ + https://api.github.com/repos/ORG-NAME/REPO_NAME ``` ### Unlocking repositories from a {% data variables.product.prodname_ghe_server %} instance diff --git a/content/admin/user-management/migrating-data-to-and-from-your-enterprise/preparing-to-migrate-data-to-your-enterprise.md b/content/admin/user-management/migrating-data-to-and-from-your-enterprise/preparing-to-migrate-data-to-your-enterprise.md index 177d878409..f2f285ece1 100644 --- a/content/admin/user-management/migrating-data-to-and-from-your-enterprise/preparing-to-migrate-data-to-your-enterprise.md +++ b/content/admin/user-management/migrating-data-to-and-from-your-enterprise/preparing-to-migrate-data-to-your-enterprise.md @@ -22,7 +22,7 @@ shortTitle: Prepare to migrate data 1. Using the [`scp`](https://acloudguru.com/blog/engineering/ssh-and-scp-howto-tips-tricks#scp) command, copy the migration archive generated from your source instance or organization to your {% data variables.product.prodname_ghe_server %} target: ```shell - $ scp -P 122 /path/to/archive/MIGRATION_GUID.tar.gz admin@hostname:/home/admin/ + $ scp -P 122 PATH-TO-MIGRATION-GUID.tar.gz admin@HOSTNAME:/home/admin/ ``` {% data reusables.enterprise_installation.ssh-into-target-instance %} @@ -30,7 +30,7 @@ shortTitle: Prepare to migrate data 3. Use the `ghe-migrator prepare` command to prepare the archive for import on the target instance and generate a new Migration GUID for you to use in subsequent steps: ```shell - ghe-migrator prepare /home/admin/MIGRATION_GUID.tar.gz + ghe-migrator prepare /home/admin/MIGRATION_GUID.tar.gz ``` * To start a new import attempt, run `ghe-migrator prepare` again and get a new Migration GUID. @@ -40,12 +40,12 @@ shortTitle: Prepare to migrate data 1. Using the `ghe-migrator conflicts` command with the Migration GUID, generate a *conflicts.csv* file: ```shell - $ ghe-migrator conflicts -g MIGRATION_GUID > conflicts.csv + $ ghe-migrator conflicts -g MIGRATION_GUID > conflicts.csv ``` - If no conflicts are reported, you can safely import the data by following the steps in "[Migrating data to your enterprise](/enterprise/admin/guides/migrations/applying-the-imported-data-on-github-enterprise-server/)". 2. If there are conflicts, using the [`scp`](https://acloudguru.com/blog/engineering/ssh-and-scp-howto-tips-tricks#scp) command, copy *conflicts.csv* to your local computer: ```shell - $ scp -P 122 admin@hostname:conflicts.csv ~/Desktop + $ scp -P 122 admin@HOSTNAME:conflicts.csv ~/Desktop ``` 3. Continue to "[Resolving migration conflicts or setting up custom mappings](#resolving-migration-conflicts-or-setting-up-custom-mappings)". @@ -118,7 +118,7 @@ Given a list of usernames from the source and a list of usernames on the target, You can quickly generate a CSV of users being migrated in the CSV format needed to apply custom mappings by using the [`ghe-migrator audit`](/enterprise/admin/guides/migrations/reviewing-migration-data) command: ```shell -$ ghe-migrator audit -m user -g MIGRATION_GUID > users.csv +$ ghe-migrator audit -m user -g MIGRATION_GUID > users.csv ``` Now, you can edit that CSV and enter the new URL for each user you would like to map or rename, and then update the fourth column to have `map` or `rename` as appropriate. @@ -136,13 +136,13 @@ The same process can be used to create mappings for each record that supports cu 1. After making changes, use the [`scp`](https://acloudguru.com/blog/engineering/ssh-and-scp-howto-tips-tricks#scp) command to apply your modified *conflicts.csv* (or any other mapping *.csv* file in the correct format) to the target instance: ```shell - $ scp -P 122 ~/Desktop/conflicts.csv admin@hostname:/home/admin/ + $ scp -P 122 ~/Desktop/conflicts.csv admin@HOSTNAME:/home/admin/ ``` 2. Re-map the migration data using the `ghe-migrator map` command, passing in the path to your modified *.csv* file and the Migration GUID: ```shell - $ ghe-migrator map -i conflicts.csv -g MIGRATION_GUID + $ ghe-migrator map -i conflicts.csv -g MIGRATION_GUID ``` 3. If the `ghe-migrator map -i conflicts.csv -g MIGRATION_GUID` command reports that conflicts still exist, run through the migration conflict resolution process again. diff --git a/content/authentication/connecting-to-github-with-ssh/adding-a-new-ssh-key-to-your-github-account.md b/content/authentication/connecting-to-github-with-ssh/adding-a-new-ssh-key-to-your-github-account.md index a4569d589d..eabcedfe38 100644 --- a/content/authentication/connecting-to-github-with-ssh/adding-a-new-ssh-key-to-your-github-account.md +++ b/content/authentication/connecting-to-github-with-ssh/adding-a-new-ssh-key-to-your-github-account.md @@ -74,13 +74,13 @@ Before you can use the {% data variables.product.prodname_cli %} to add an SSH k To add an SSH authentication key to your GitHub account, use the `ssh-key add` subcommand, specifying your public key. ```shell -gh ssh-key add key-file +gh ssh-key add KEY-FILE ``` To include a title for the new key, use the `-t` or `--title` flag. ```shell -gh ssh-key add key-file --title "personal laptop" +gh ssh-key add KEY-FILE --title "personal laptop" ``` If you generated your SSH key by following the instructions in "[Generating a new SSH key](/authentication/connecting-to-github-with-ssh/generating-a-new-ssh-key-and-adding-it-to-the-ssh-agent)", you can add the key to your account with this command. diff --git a/content/authentication/connecting-to-github-with-ssh/generating-a-new-ssh-key-and-adding-it-to-the-ssh-agent.md b/content/authentication/connecting-to-github-with-ssh/generating-a-new-ssh-key-and-adding-it-to-the-ssh-agent.md index 6f75638fa1..a8acd4cffb 100644 --- a/content/authentication/connecting-to-github-with-ssh/generating-a-new-ssh-key-and-adding-it-to-the-ssh-agent.md +++ b/content/authentication/connecting-to-github-with-ssh/generating-a-new-ssh-key-and-adding-it-to-the-ssh-agent.md @@ -38,17 +38,17 @@ You can generate a new SSH key on your local machine. After you generate the key {%- ifversion ghae %} ```shell - $ ssh-keygen -t rsa -b 4096 -C "your_email@example.com" + $ ssh-keygen -t rsa -b 4096 -C "your_email@example.com" ``` {%- else %} ```shell - $ ssh-keygen -t ed25519 -C "your_email@example.com" + $ ssh-keygen -t ed25519 -C "your_email@example.com" ``` {% note %} **Note:** If you are using a legacy system that doesn't support the Ed25519 algorithm, use: ```shell - $ ssh-keygen -t rsa -b 4096 -C "your_email@example.com" + $ ssh-keygen -t rsa -b 4096 -C "your_email@example.com" ``` {% endnote %} @@ -56,14 +56,14 @@ You can generate a new SSH key on your local machine. After you generate the key This creates a new SSH key, using the provided email as a label. ```shell - > Generating public/private algorithm key pair. + > Generating public/private ALGORITHM key pair. ``` 3. When you're prompted to "Enter a file in which to save the key," press Enter. This accepts the default file location. {% mac %} ```shell - > Enter a file in which to save the key (/Users/you/.ssh/id_algorithm): [Press enter] + > Enter a file in which to save the key (/Users/YOU/.ssh/id_ALGORITHM: [Press enter] ``` {% endmac %} @@ -71,7 +71,7 @@ You can generate a new SSH key on your local machine. After you generate the key {% windows %} ```shell - > Enter a file in which to save the key (/c/Users/you/.ssh/id_algorithm):[Press enter] + > Enter a file in which to save the key (/c/Users/YOU/.ssh/id_ALGORITHM):[Press enter] ``` {% endwindows %} @@ -79,15 +79,15 @@ You can generate a new SSH key on your local machine. After you generate the key {% linux %} ```shell - > Enter a file in which to save the key (/home/you/.ssh/algorithm): [Press enter] + > Enter a file in which to save the key (/home/YOU/.ssh/ALGORITHM):[Press enter] ``` {% endlinux %} 4. At the prompt, type a secure passphrase. For more information, see ["Working with SSH key passphrases](/articles/working-with-ssh-key-passphrases)." ```shell - > Enter passphrase (empty for no passphrase): [Type a passphrase] - > Enter same passphrase again: [Type passphrase again] + > Enter passphrase (empty for no passphrase): [Type a passphrase] + > Enter same passphrase again: [Type passphrase again] ``` ## Adding your SSH key to the ssh-agent @@ -104,7 +104,7 @@ Before adding a new SSH key to the ssh-agent to manage your keys, you should hav ```shell $ open ~/.ssh/config - > The file /Users/you/.ssh/config does not exist. + > The file /Users/YOU/.ssh/config does not exist. ``` * If the file doesn't exist, create the file. @@ -191,7 +191,7 @@ If you are using macOS or Linux, you may need to update your SSH client or insta {% data reusables.command_line.open_the_multi_os_terminal %} 3. Paste the text below, substituting in the email address for your account on {% data variables.product.product_name %}. ```shell - $ ssh-keygen -t {% ifversion ghae %}ecdsa{% else %}ed25519{% endif %}-sk -C "your_email@example.com" + $ ssh-keygen -t {% ifversion ghae %}ecdsa{% else %}ed25519{% endif %}-sk -C "YOUR_EMAIL" ``` {%- ifversion not ghae %} @@ -210,7 +210,7 @@ If you are using macOS or Linux, you may need to update your SSH client or insta {% mac %} ```shell - > Enter a file in which to save the key (/Users/you/.ssh/id_{% ifversion ghae %}ecdsa{% else %}ed25519{% endif %}_sk): [Press enter] + > Enter a file in which to save the key (/Users/YOU/.ssh/id_{% ifversion ghae %}ecdsa{% else %}ed25519{% endif %}_sk): [Press enter] ``` {% endmac %} @@ -218,7 +218,7 @@ If you are using macOS or Linux, you may need to update your SSH client or insta {% windows %} ```shell - > Enter a file in which to save the key (/c/Users/you/.ssh/id_{% ifversion ghae %}ecdsa{% else %}ed25519{% endif %}_sk):[Press enter] + > Enter a file in which to save the key (/c/Users/YOU/.ssh/id_{% ifversion ghae %}ecdsa{% else %}ed25519{% endif %}_sk):[Press enter] ``` {% endwindows %} @@ -226,14 +226,14 @@ If you are using macOS or Linux, you may need to update your SSH client or insta {% linux %} ```shell - > Enter a file in which to save the key (/home/you/.ssh/id_{% ifversion ghae %}ecdsa{% else %}ed25519{% endif %}_sk): [Press enter] + > Enter a file in which to save the key (/home/YOU/.ssh/id_{% ifversion ghae %}ecdsa{% else %}ed25519{% endif %}_sk):[Press enter] ``` {% endlinux %} 6. When you are prompted to type a passphrase, press **Enter**. ```shell - > Enter passphrase (empty for no passphrase): [Type a passphrase] - > Enter same passphrase again: [Type passphrase again] + > Enter passphrase (empty for no passphrase): [Type a passphrase] + > Enter same passphrase again: [Type passphrase again] ``` 7. Add the SSH key to your account on {% data variables.product.prodname_dotcom %}. For more information, see "[Adding a new SSH key to your {% data variables.product.prodname_dotcom %} account](/github/authenticating-to-github/adding-a-new-ssh-key-to-your-github-account)." diff --git a/content/authentication/connecting-to-github-with-ssh/testing-your-ssh-connection.md b/content/authentication/connecting-to-github-with-ssh/testing-your-ssh-connection.md index 23ba5f9d05..b5cfcc8a3f 100644 --- a/content/authentication/connecting-to-github-with-ssh/testing-your-ssh-connection.md +++ b/content/authentication/connecting-to-github-with-ssh/testing-your-ssh-connection.md @@ -38,7 +38,7 @@ When you test your connection, you'll need to authenticate this action using you 3. Verify that the fingerprint in the message you see matches {% ifversion fpt or ghec %}[{% data variables.product.prodname_dotcom %}'s public key fingerprint](/github/authenticating-to-github/githubs-ssh-key-fingerprints){% else %} your enterprise's public key fingerprint{% endif %}. If it does, then type `yes`: ```shell - > Hi username! You've successfully authenticated, but GitHub does not + > Hi USERNAME! You've successfully authenticated, but GitHub does not > provide shell access. ``` diff --git a/content/authentication/connecting-to-github-with-ssh/working-with-ssh-key-passphrases.md b/content/authentication/connecting-to-github-with-ssh/working-with-ssh-key-passphrases.md index 4368919675..516200a5b0 100644 --- a/content/authentication/connecting-to-github-with-ssh/working-with-ssh-key-passphrases.md +++ b/content/authentication/connecting-to-github-with-ssh/working-with-ssh-key-passphrases.md @@ -27,10 +27,10 @@ You can change the passphrase for an existing private key without regenerating t ```shell $ ssh-keygen -p -f ~/.ssh/id_{% ifversion ghae %}rsa{% else %}ed25519{% endif %} -> Enter old passphrase: [Type old passphrase] -> Key has comment 'your_email@example.com' -> Enter new passphrase (empty for no passphrase): [Type new passphrase] -> Enter same passphrase again: [Repeat the new passphrase] +> Enter old passphrase: [Type old passphrase] +> Key has comment 'your_email@example.com' +> Enter new passphrase (empty for no passphrase): [Type new passphrase] +> Enter same passphrase again: [Repeat the new passphrase] > Your identification has been saved with the new passphrase. ``` @@ -79,9 +79,9 @@ Now, when you first run Git Bash, you are prompted for your passphrase: ```shell > Initializing new SSH agent... > succeeded -> Enter passphrase for /c/Users/you/.ssh/id_rsa: -> Identity added: /c/Users/you/.ssh/id_rsa (/c/Users/you/.ssh/id_rsa) -> Welcome to Git (version 1.6.0.2-preview20080923) +> Enter passphrase for /c/Users/YOU/.ssh/id_rsa: +> Identity added: /c/Users/YOU/.ssh/id_rsa (/c/Users/YOU/.ssh/id_rsa) +> Welcome to Git (version 1.6.0.2-preview20080923) > > Run 'git help git' to display the help index. > Run 'git help ' to display help for specific commands. diff --git a/content/authentication/keeping-your-account-and-data-secure/removing-sensitive-data-from-a-repository.md b/content/authentication/keeping-your-account-and-data-secure/removing-sensitive-data-from-a-repository.md index d706fb6c7b..1c747e37d5 100644 --- a/content/authentication/keeping-your-account-and-data-secure/removing-sensitive-data-from-a-repository.md +++ b/content/authentication/keeping-your-account-and-data-secure/removing-sensitive-data-from-a-repository.md @@ -41,7 +41,7 @@ The [BFG Repo-Cleaner](https://rtyley.github.io/bfg-repo-cleaner/) is a tool tha For example, to remove your file with sensitive data and leave your latest commit untouched, run: ```shell -$ bfg --delete-files YOUR-FILE-WITH-SENSITIVE-DATA +$ bfg --delete-files YOUR-FILE-WITH-SENSITIVE-DATA ``` To replace all text listed in `passwords.txt` wherever it can be found in your repository's history, run: @@ -76,8 +76,8 @@ To illustrate how `git filter-repo` works, we'll show you how to remove your fil 2. If you don't already have a local copy of your repository with sensitive data in its history, [clone the repository](/articles/cloning-a-repository/) to your local computer. ```shell - $ git clone https://{% data variables.command_line.codeblock %}/YOUR-USERNAME/YOUR-REPOSITORY - > Initialized empty Git repository in /Users/YOUR-FILE-PATH/YOUR-REPOSITORY/.git/ + $ git clone https://{% data variables.command_line.codeblock %}/YOUR-USERNAME/YOUR-REPOSITORY + > Initialized empty Git repository in /Users/YOUR-FILE-PATH/YOUR-REPOSITORY/.git/ > remote: Counting objects: 1301, done. > remote: Compressing objects: 100% (769/769), done. > remote: Total 1301 (delta 724), reused 910 (delta 522) @@ -86,7 +86,7 @@ To illustrate how `git filter-repo` works, we'll show you how to remove your fil ``` 3. Navigate into the repository's working directory. ```shell - $ cd YOUR-REPOSITORY + $ cd YOUR-REPOSITORY ``` 4. Run the following command, replacing `PATH-TO-YOUR-FILE-WITH-SENSITIVE-DATA` with the **path to the file you want to remove, not just its filename**. These arguments will: - Force Git to process, but not check out, the entire history of every branch and tag @@ -117,10 +117,10 @@ To illustrate how `git filter-repo` works, we'll show you how to remove your fil 5. Add your file with sensitive data to `.gitignore` to ensure that you don't accidentally commit it again. ```shell - $ echo "YOUR-FILE-WITH-SENSITIVE-DATA" >> .gitignore + $ echo "YOUR-FILE-WITH-SENSITIVE-DATA" >> .gitignore $ git add .gitignore - $ git commit -m "Add YOUR-FILE-WITH-SENSITIVE-DATA to .gitignore" - > [main 051452f] Add YOUR-FILE-WITH-SENSITIVE-DATA to .gitignore + $ git commit -m "Add YOUR-FILE-WITH-SENSITIVE-DATA to .gitignore" + > [main 051452f] Add YOUR-FILE-WITH-SENSITIVE-DATA to .gitignore > 1 files changed, 1 insertions(+), 0 deletions(-) ``` 6. Double-check that you've removed everything you wanted to from your repository's history, and that all of your branches are checked out. @@ -132,7 +132,7 @@ To illustrate how `git filter-repo` works, we'll show you how to remove your fil > Compressing objects: 100% (677/677), done. > Writing objects: 100% (1058/1058), 148.85 KiB, done. > Total 1058 (delta 590), reused 602 (delta 378) - > To https://{% data variables.command_line.codeblock %}/YOUR-USERNAME/YOUR-REPOSITORY.git + > To https://{% data variables.command_line.codeblock %}/YOUR-USERNAME.YOUR-REPOSITORY.git > + 48dc599...051452f main -> main (forced update) ``` 8. In order to remove the sensitive file from [your tagged releases](/articles/about-releases), you'll also need to force-push against your Git tags: @@ -143,7 +143,7 @@ To illustrate how `git filter-repo` works, we'll show you how to remove your fil > Compressing objects: 100% (166/166), done. > Writing objects: 100% (321/321), 331.74 KiB | 0 bytes/s, done. > Total 321 (delta 124), reused 269 (delta 108) - > To https://{% data variables.command_line.codeblock %}/YOUR-USERNAME/YOUR-REPOSITORY.git + > To https://{% data variables.command_line.codeblock %}/YOUR-USERNAME/YOUR-REPOSITORY.git > + 48dc599...051452f main -> main (forced update) ``` diff --git a/content/authentication/keeping-your-account-and-data-secure/reviewing-your-ssh-keys.md b/content/authentication/keeping-your-account-and-data-secure/reviewing-your-ssh-keys.md index 9a579574e8..52ee56a2d1 100644 --- a/content/authentication/keeping-your-account-and-data-secure/reviewing-your-ssh-keys.md +++ b/content/authentication/keeping-your-account-and-data-secure/reviewing-your-ssh-keys.md @@ -38,7 +38,7 @@ You can delete unauthorized (or possibly compromised) SSH keys to ensure that an 6. Find and take a note of your public key fingerprint. ```shell $ ssh-add -l -E sha256 - > 2048 SHA256:274ffWxgaxq/tSINAykStUL7XWyRNcRTlcST1Ei7gBQ /Users/USERNAME/.ssh/id_rsa (RSA) + > 2048 SHA256:274ffWxgaxq/tSINAykStUL7XWyRNcRTlcST1Ei7gBQ /Users/USERNAME/.ssh/id_rsa (RSA) ``` 7. The SSH keys on {% data variables.product.product_name %} *should* match the same keys on your computer. @@ -67,7 +67,7 @@ You can delete unauthorized (or possibly compromised) SSH keys to ensure that an 6. Find and take a note of your public key fingerprint. ```shell $ ssh-add -l -E sha256 - > 2048 SHA256:274ffWxgaxq/tSINAykStUL7XWyRNcRTlcST1Ei7gBQ /Users/USERNAME/.ssh/id_rsa (RSA) + > 2048 SHA256:274ffWxgaxq/tSINAykStUL7XWyRNcRTlcST1Ei7gBQ /Users/USERNAME/.ssh/id_rsa (RSA) ``` 7. The SSH keys on {% data variables.product.product_name %} *should* match the same keys on your computer. @@ -94,7 +94,7 @@ You can delete unauthorized (or possibly compromised) SSH keys to ensure that an 6. Find and take a note of your public key fingerprint. ```shell $ ssh-add -l -E sha256 - > 2048 SHA256:274ffWxgaxq/tSINAykStUL7XWyRNcRTlcST1Ei7gBQ /Users/USERNAME/.ssh/id_rsa (RSA) + > 2048 SHA256:274ffWxgaxq/tSINAykStUL7XWyRNcRTlcST1Ei7gBQ /Users/USERNAME/.ssh/id_rsa (RSA) ``` 7. The SSH keys on {% data variables.product.product_name %} *should* match the same keys on your computer. diff --git a/content/authentication/managing-commit-signature-verification/associating-an-email-with-your-gpg-key.md b/content/authentication/managing-commit-signature-verification/associating-an-email-with-your-gpg-key.md index 21813267dc..b8394eca60 100644 --- a/content/authentication/managing-commit-signature-verification/associating-an-email-with-your-gpg-key.md +++ b/content/authentication/managing-commit-signature-verification/associating-an-email-with-your-gpg-key.md @@ -26,7 +26,7 @@ If you're using a GPG key that matches your committer identity and your verified {% data reusables.gpg.copy-gpg-key-id %} 4. Enter `gpg --edit-key GPG key ID`, substituting in the GPG key ID you'd like to use. In the following example, the GPG key ID is `3AA5C34371567BD2`: ```shell - $ gpg --edit-key 3AA5C34371567BD2 + $ gpg --edit-key 3AA5C34371567BD2 ``` 5. Enter `gpg> adduid` to add the user ID details. ```shell @@ -34,9 +34,9 @@ If you're using a GPG key that matches your committer identity and your verified ``` 6. Follow the prompts to supply your real name, email address, and any comments. You can modify your entries by choosing `N`, `C`, or `E`. {% data reusables.gpg.private-email %} {% ifversion fpt or ghec %} For more information, see "[Setting your commit email address](/articles/setting-your-commit-email-address)."{% endif %} ```shell - Real Name: Octocat - Email address: octocat@github.com - Comment: GitHub key + Real Name: OCTOCAT + Email address: "octocat@github.com" + Comment: GITHUB-KEY Change (N)ame, (C)omment, (E)mail or (O)kay/(Q)uit? ``` 7. Enter `O` to confirm your selections. @@ -47,7 +47,7 @@ If you're using a GPG key that matches your committer identity and your verified ``` 10. Enter `gpg --armor --export GPG key ID`, substituting in the GPG key ID you'd like to use. In the following example, the GPG key ID is `3AA5C34371567BD2`: ```shell - $ gpg --armor --export 3AA5C34371567BD2 + $ gpg --armor --export 3AA5C34371567BD2 # Prints the GPG key, in ASCII armor format ``` 11. Upload the GPG key by [adding it to your GitHub account](/articles/adding-a-gpg-key-to-your-github-account). diff --git a/content/authentication/managing-commit-signature-verification/checking-for-existing-gpg-keys.md b/content/authentication/managing-commit-signature-verification/checking-for-existing-gpg-keys.md index 6b2b466979..ff7662595c 100644 --- a/content/authentication/managing-commit-signature-verification/checking-for-existing-gpg-keys.md +++ b/content/authentication/managing-commit-signature-verification/checking-for-existing-gpg-keys.md @@ -29,7 +29,7 @@ shortTitle: Existing GPG keys * If there are no GPG key pairs or you don't want to use any that are available for signing commits and tags, then [generate a new GPG key](/articles/generating-a-new-gpg-key). * If there's an existing GPG key pair and you want to use it to sign commits and tags, you can display the public key using the following command, substituting in the GPG key ID you'd like to use. In this example, the GPG key ID is `3AA5C34371567BD2`: ```shell - $ gpg --armor --export 3AA5C34371567BD2 + $ gpg --armor --export 3AA5C34371567BD2 # Prints the GPG key ID, in ASCII armor format ``` You can then [add your GPG key to your GitHub account](/articles/adding-a-gpg-key-to-your-github-account). diff --git a/content/authentication/managing-commit-signature-verification/signing-commits.md b/content/authentication/managing-commit-signature-verification/signing-commits.md index cf7d059042..faeeb878b6 100644 --- a/content/authentication/managing-commit-signature-verification/signing-commits.md +++ b/content/authentication/managing-commit-signature-verification/signing-commits.md @@ -36,7 +36,7 @@ If you have multiple keys or are attempting to sign commits or tags with a key t 1. When committing changes in your local branch, add the -S flag to the git commit command: ```shell - $ git commit -S -m "your commit message" + $ git commit -S -m YOUR_COMMIT_MESSAGE # Creates a signed commit ``` 2. If you're using GPG, after you create your commit, provide the passphrase you set up when you [generated your GPG key](/articles/generating-a-new-gpg-key). diff --git a/content/authentication/managing-commit-signature-verification/signing-tags.md b/content/authentication/managing-commit-signature-verification/signing-tags.md index fac18fab40..e5371adbc6 100644 --- a/content/authentication/managing-commit-signature-verification/signing-tags.md +++ b/content/authentication/managing-commit-signature-verification/signing-tags.md @@ -19,12 +19,12 @@ topics: 1. To sign a tag, add `-s` to your `git tag` command. ```shell - $ git tag -s mytag + $ git tag -s MYTAG # Creates a signed tag ``` 2. Verify your signed tag by running `git tag -v [tag-name]`. ```shell - $ git tag -v mytag + $ git tag -v MYTAG # Verifies the signed tag ``` diff --git a/content/authentication/troubleshooting-ssh/error-agent-admitted-failure-to-sign.md b/content/authentication/troubleshooting-ssh/error-agent-admitted-failure-to-sign.md index 1f852e1bcf..2f300729e3 100644 --- a/content/authentication/troubleshooting-ssh/error-agent-admitted-failure-to-sign.md +++ b/content/authentication/troubleshooting-ssh/error-agent-admitted-failure-to-sign.md @@ -36,8 +36,8 @@ You should be able to fix this error by loading your keys into your SSH agent wi $ eval "$(ssh-agent -s)" > Agent pid 59566 $ ssh-add -> Enter passphrase for /home/you/.ssh/id_rsa: [tippy tap] -> Identity added: /home/you/.ssh/id_rsa (/home/you/.ssh/id_rsa) +> Enter passphrase for /home/YOU/.ssh/id_rsa: [tippy tap] +> Identity added: /home/YOU/.ssh/id_rsa (/home/YOU/.ssh/id_rsa) ``` If your key does not have the default filename (`/.ssh/id_rsa`), you'll have to pass that path to `ssh-add`: @@ -47,6 +47,6 @@ If your key does not have the default filename (`/.ssh/id_rsa`), you'll have to $ eval "$(ssh-agent -s)" > Agent pid 59566 $ ssh-add ~/.ssh/my_other_key -> Enter passphrase for /home/you/.ssh/my_other_key: [tappity tap tap] -> Identity added: /home/you/.ssh/my_other_key (/home/you/.ssh/my_other_key) +> Enter passphrase for /home/YOU/.ssh/my_other_key: [tappity tap tap] +> Identity added: /home/YOU/.ssh/my_other_key (/home/YOU/.ssh/my_other_key) ``` diff --git a/content/authentication/troubleshooting-ssh/error-bad-file-number.md b/content/authentication/troubleshooting-ssh/error-bad-file-number.md index 5232b994dc..2e65c8b6e4 100644 --- a/content/authentication/troubleshooting-ssh/error-bad-file-number.md +++ b/content/authentication/troubleshooting-ssh/error-bad-file-number.md @@ -31,7 +31,7 @@ $ ssh -vT git@{% data variables.command_line.codeblock %} Often, the simplest solution is to simply avoid SSH entirely. Most firewalls and proxies allow HTTPS traffic without issue. To take advantage of this, change [the remote URL](/github/getting-started-with-github/about-remote-repositories) you're using: ```shell -$ git clone https://{% data variables.command_line.codeblock %}/username/reponame.git +$ git clone https://{% data variables.command_line.codeblock %}/USERNAME/REPO-NAME.git > Cloning into 'reponame'... > remote: Counting objects: 84, done. > remote: Compressing objects: 100% (45/45), done. diff --git a/content/authentication/troubleshooting-ssh/error-key-already-in-use.md b/content/authentication/troubleshooting-ssh/error-key-already-in-use.md index 90df343c3c..cc1ace2c70 100644 --- a/content/authentication/troubleshooting-ssh/error-key-already-in-use.md +++ b/content/authentication/troubleshooting-ssh/error-key-already-in-use.md @@ -18,9 +18,9 @@ topics: To determine where the key has already been used, open a terminal and type the `ssh` command. Use the `-i` flag to provide the path to the key you want to check: ```shell -$ ssh -T -ai ~/.ssh/id_rsa git@{% data variables.command_line.codeblock %} +$ ssh -T -ai ~/.ssh/id_rsa git@{% data variables.command_line.codeblock %} # Connect to {% data variables.product.product_location %} using a specific ssh key -> Hi username! You've successfully authenticated, but GitHub does not +> Hi USERNAME! You've successfully authenticated, but GitHub does not > provide shell access. ``` @@ -30,7 +30,7 @@ The *username* in the response is the account on {% ifversion ghae %}{% data var To force SSH to use only the key provided on the command line, use `-o` to add the `IdentitiesOnly=yes` option: ```shell -$ ssh -v -o "IdentitiesOnly=yes" -i ~/.ssh/id_rsa git@{% data variables.command_line.codeblock %} +$ ssh -v -o "IdentitiesOnly=yes" -i ~/.ssh/id_rsa git@{% data variables.command_line.codeblock %} ``` ## Fixing the issue diff --git a/content/authentication/troubleshooting-ssh/error-permission-denied-publickey.md b/content/authentication/troubleshooting-ssh/error-permission-denied-publickey.md index 7c01367bc9..3d5aad0bd1 100644 --- a/content/authentication/troubleshooting-ssh/error-permission-denied-publickey.md +++ b/content/authentication/troubleshooting-ssh/error-permission-denied-publickey.md @@ -27,7 +27,7 @@ To make sure you are connecting to the right domain, you can enter the following ```shell $ ssh -vT git@{% data variables.command_line.codeblock %} > OpenSSH_8.1p1, LibreSSL 2.7.3 -> debug1: Reading configuration data /Users/you/.ssh/config +> debug1: Reading configuration data /Users/YOU/.ssh/config > debug1: Reading configuration data /etc/ssh/ssh_config > debug1: /etc/ssh/ssh_config line 47: Applying options for * > debug1: Connecting to {% data variables.command_line.codeblock %} port 22. @@ -40,7 +40,7 @@ The connection should be made on port 22{% ifversion fpt or ghec %}, unless you' All connections, including those for remote URLs, must be made as the "git" user. If you try to connect with your {% data variables.product.product_name %} username, it will fail: ```shell -$ ssh -T GITHUB-USERNAME@{% data variables.command_line.codeblock %} +$ ssh -T GITHUB-USERNAME@{% data variables.command_line.codeblock %} > Permission denied (publickey). ``` If your connection failed and you're using a remote URL with your {% data variables.product.product_name %} username, you can [change the remote URL to use the "git" user](/github/getting-started-with-github/managing-remote-repositories). @@ -49,7 +49,7 @@ You should verify your connection by typing: ```shell $ ssh -T git@{% data variables.command_line.codeblock %} -> Hi username! You've successfully authenticated... +> Hi USERNAME! You've successfully authenticated... ``` ## Make sure you have a key that is being used @@ -63,7 +63,7 @@ $ ssh -T git@{% data variables.command_line.codeblock %} $ eval "$(ssh-agent -s)" > Agent pid 59566 $ ssh-add -l -E sha256 - > 2048 SHA256:274ffWxgaxq/tSINAykStUL7XWyRNcRTlcST1Ei7gBQ /Users/USERNAME/.ssh/id_rsa (RSA) + > 2048 SHA256:274ffWxgaxq/tSINAykStUL7XWyRNcRTlcST1Ei7gBQ /Users/USERNAME/.ssh/id_rsa (RSA) ``` {% endmac %} @@ -78,7 +78,7 @@ $ ssh -T git@{% data variables.command_line.codeblock %} 2. Verify that you have a private key generated and loaded into SSH. ```shell $ ssh-add -l -E sha256 - > 2048 SHA256:274ffWxgaxq/tSINAykStUL7XWyRNcRTlcST1Ei7gBQ /Users/USERNAME/.ssh/id_rsa (RSA) + > 2048 SHA256:274ffWxgaxq/tSINAykStUL7XWyRNcRTlcST1Ei7gBQ /Users/USERNAME/.ssh/id_rsa (RSA) ``` {% endwindows %} @@ -110,15 +110,15 @@ You can also check that the key is being used by trying to connect to `git@{% da ```shell $ ssh -vT git@{% data variables.command_line.codeblock %} > ... -> debug1: identity file /Users/you/.ssh/id_rsa type -1 -> debug1: identity file /Users/you/.ssh/id_rsa-cert type -1 -> debug1: identity file /Users/you/.ssh/id_dsa type -1 -> debug1: identity file /Users/you/.ssh/id_dsa-cert type -1 +> debug1: identity file /Users/YOU/.ssh/id_rsa type -1 +> debug1: identity file /Users/YOU/.ssh/id_rsa-cert type -1 +> debug1: identity file /Users/YOU/.ssh/id_dsa type -1 +> debug1: identity file /Users/YOU/.ssh/id_dsa-cert type -1 > ... > debug1: Authentications that can continue: publickey > debug1: Next authentication method: publickey -> debug1: Trying private key: /Users/you/.ssh/id_rsa -> debug1: Trying private key: /Users/you/.ssh/id_dsa +> debug1: Trying private key: /Users/YOU/.ssh/id_rsa +> debug1: Trying private key: /Users/YOU/.ssh/id_dsa > debug1: No more authentication methods to try. > Permission denied (publickey). ``` @@ -128,11 +128,11 @@ In that example, we did not have any keys for SSH to use. The "-1" at the end of ```shell $ ssh -vT git@{% data variables.command_line.codeblock %} > ... -> debug1: identity file /Users/you/.ssh/id_rsa type 1 +> debug1: identity file /Users/YOU/.ssh/id_rsa type 1 > ... > debug1: Authentications that can continue: publickey > debug1: Next authentication method: publickey -> debug1: Offering RSA public key: /Users/you/.ssh/id_rsa +> debug1: Offering RSA public key: /Users/YOU/.ssh/id_rsa ``` ## Verify the public key is attached to your account @@ -150,7 +150,7 @@ You must provide your public key to {% data variables.product.product_name %} to 3. Find and take a note of your public key fingerprint. ```shell $ ssh-add -l -E sha256 - > 2048 SHA256:274ffWxgaxq/tSINAykStUL7XWyRNcRTlcST1Ei7gBQ /Users/USERNAME/.ssh/id_rsa (RSA) + > 2048 SHA256:274ffWxgaxq/tSINAykStUL7XWyRNcRTlcST1Ei7gBQ /Users/USERNAME/.ssh/id_rsa (RSA) ``` {% data reusables.user-settings.access_settings %} @@ -171,7 +171,7 @@ You must provide your public key to {% data variables.product.product_name %} to 3. Find and take a note of your public key fingerprint. ```shell $ ssh-add -l -E sha256 - > 2048 SHA256:274ffWxgaxq/tSINAykStUL7XWyRNcRTlcST1Ei7gBQ /Users/USERNAME/.ssh/id_rsa (RSA) + > 2048 SHA256:274ffWxgaxq/tSINAykStUL7XWyRNcRTlcST1Ei7gBQ /Users/USERNAME/.ssh/id_rsa (RSA) ``` {% data reusables.user-settings.access_settings %} @@ -192,13 +192,13 @@ You must provide your public key to {% data variables.product.product_name %} to 3. Find and take a note of your public key fingerprint. If you're using OpenSSH 6.7 or older: ```shell $ ssh-add -l - > 2048 a0:dd:42:3c:5a:9d:e4:2a:21:52:4e:78:07:6e:c8:4d /Users/USERNAME/.ssh/id_rsa (RSA) + > 2048 a0:dd:42:3c:5a:9d:e4:2a:21:52:4e:78:07:6e:c8:4d /Users/USERNAME/.ssh/id_rsa (RSA) ``` If you're using OpenSSH 6.8 or newer: ```shell $ ssh-add -l -E md5 - > 2048 MD5:a0:dd:42:3c:5a:9d:e4:2a:21:52:4e:78:07:6e:c8:4d /Users/USERNAME/.ssh/id_rsa (RSA) + > 2048 MD5:a0:dd:42:3c:5a:9d:e4:2a:21:52:4e:78:07:6e:c8:4d /Users/USERNAME/.ssh/id_rsa (RSA) ``` {% data reusables.user-settings.access_settings %} diff --git a/content/authentication/troubleshooting-ssh/using-ssh-over-the-https-port.md b/content/authentication/troubleshooting-ssh/using-ssh-over-the-https-port.md index 9b50fabb3a..aac4adfcdd 100644 --- a/content/authentication/troubleshooting-ssh/using-ssh-over-the-https-port.md +++ b/content/authentication/troubleshooting-ssh/using-ssh-over-the-https-port.md @@ -22,7 +22,7 @@ To test if SSH over the HTTPS port is possible, run this SSH command: ```shell $ ssh -T -p 443 git@ssh.github.com -> Hi username! You've successfully authenticated, but GitHub does not +> Hi USERNAME! You've successfully authenticated, but GitHub does not > provide shell access. ``` @@ -45,6 +45,6 @@ You can test that this works by connecting once more to {% data variables.produc ```shell $ ssh -T git@{% data variables.command_line.codeblock %} -> Hi username! You've successfully authenticated, but GitHub does not +> Hi USERNAME! You've successfully authenticated, but GitHub does not > provide shell access. ``` diff --git a/content/code-security/code-scanning/using-codeql-code-scanning-with-your-existing-ci-system/running-codeql-runner-in-your-ci-system.md b/content/code-security/code-scanning/using-codeql-code-scanning-with-your-existing-ci-system/running-codeql-runner-in-your-ci-system.md index 38ef4ef62b..499c760985 100644 --- a/content/code-security/code-scanning/using-codeql-code-scanning-with-your-existing-ci-system/running-codeql-runner-in-your-ci-system.md +++ b/content/code-security/code-scanning/using-codeql-code-scanning-with-your-existing-ci-system/running-codeql-runner-in-your-ci-system.md @@ -60,7 +60,7 @@ For more information, see "[{% data variables.product.prodname_codeql_cli %}](ht ## Downloading the {% data variables.product.prodname_codeql_runner %} -You can download the {% data variables.product.prodname_codeql_runner %} from https://{% ifversion fpt or ghec %}github.com{% else %}HOSTNAME{% endif %}/github/codeql-action/releases. On some operating systems, you may need to change permissions for the downloaded file before you can run it. +You can download the {% data variables.product.prodname_codeql_runner %} from https://{% ifversion fpt or ghec %}github.com{% else %}HOSTNAME{% endif %}/github/codeql-action/releases. On some operating systems, you may need to change permissions for the downloaded file before you can run it. On Linux: @@ -82,7 +82,7 @@ On Windows, the `codeql-runner-win.exe` file usually requires no change to permi Once you download the {% data variables.product.prodname_codeql_runner %} and verify that it can be executed, you should make the runner available to each CI server that you intend to use for {% data variables.product.prodname_code_scanning %}. For example, you might configure each server to copy the runner from a central, internal location. Alternatively, you could use the REST API to get the runner directly from {% data variables.product.prodname_dotcom %}, for example: ```shell -wget https://{% ifversion fpt or ghec %}github.com{% else %}HOSTNAME{% endif %}/github/codeql-action/releases/latest/download/codeql-runner-linux +wget https://{% ifversion fpt or ghec %}github.com{% else %}HOSTNAME{% endif %}/github/codeql-action/releases/latest/download/codeql-runner-linux chmod +x codeql-runner-linux ``` @@ -93,7 +93,7 @@ In addition to this, each CI server also needs: The options for providing access to the {% data variables.product.prodname_codeql %} bundle are: -1. Allow the CI servers access to https://{% ifversion fpt or ghec %}github.com{% else %}HOSTNAME{% endif %}/github/codeql-action so that the {% data variables.product.prodname_codeql_runner %} can download the bundle automatically. +1. Allow the CI servers access to https://{% ifversion fpt or ghec %}github.com{% else %}HOSTNAME{% endif %}/github/codeql-action so that the {% data variables.product.prodname_codeql_runner %} can download the bundle automatically. 1. Manually download/extract the bundle, store it with other central resources, and use the `--codeql-path` flag to specify the location of the bundle in calls to initialize the {% data variables.product.prodname_codeql_runner %}. ## Calling the {% data variables.product.prodname_codeql_runner %} diff --git a/content/codespaces/developing-in-codespaces/creating-a-codespace.md b/content/codespaces/developing-in-codespaces/creating-a-codespace.md index 35c6b67654..37e5f02d6c 100644 --- a/content/codespaces/developing-in-codespaces/creating-a-codespace.md +++ b/content/codespaces/developing-in-codespaces/creating-a-codespace.md @@ -136,7 +136,7 @@ You are prompted to choose a repository, a branch, a dev container configuration Alternatively, you can use flags to specify some or all of the options: ```shell -gh codespace create -r owner/repo -b branch --devcontainer-path path -m machine-type +gh codespace create -r OWNER/REPO -b BRANCH --devcontainer-path PATH -m MACHINE-TYPE ``` In this example, replace `owner/repo` with the repository identifier. Replace `branch` with the name of the branch, or the full SHA hash of the commit, that you want to be initially checked out in the codespace. If you use the `-r` flag without the `b` flag, the codespace is created from the default branch. diff --git a/content/codespaces/developing-in-codespaces/forwarding-ports-in-your-codespace.md b/content/codespaces/developing-in-codespaces/forwarding-ports-in-your-codespace.md index 4b2ca313ca..42e2d0f244 100644 --- a/content/codespaces/developing-in-codespaces/forwarding-ports-in-your-codespace.md +++ b/content/codespaces/developing-in-codespaces/forwarding-ports-in-your-codespace.md @@ -78,7 +78,7 @@ By default, {% data variables.product.prodname_codespaces %} forwards ports usin To forward a port use the `gh codespace ports forward` subcommand. Replace `codespace-port:local-port` with the remote and local ports that you want to connect. After entering the command choose from the list of codespaces that's displayed. ```shell -gh codespace ports forward codespace-port:local-port +gh codespace ports forward CODESPACE-PORT:LOCAL-PORT ``` For more information about this command, see [the {% data variables.product.prodname_cli %} manual](https://cli.github.com/manual/gh_codespace_ports_forward). @@ -132,7 +132,7 @@ To change the visibility of a forwarded port, use the `gh codespace ports visibi Replace `codespace-port` with the forwarded port number. Replace `setting` with `private`, `org`, or `public`. After entering the command choose from the list of codespaces that's displayed. ```shell -gh codespace ports visibility codespace-port:setting +gh codespace ports visibility CODESPACE-PORT:SETTINGS ``` You can set the visibility for multiple ports with one command. For example: diff --git a/content/codespaces/developing-in-codespaces/renaming-a-codespace.md b/content/codespaces/developing-in-codespaces/renaming-a-codespace.md index b296745717..e27f565ffc 100644 --- a/content/codespaces/developing-in-codespaces/renaming-a-codespace.md +++ b/content/codespaces/developing-in-codespaces/renaming-a-codespace.md @@ -50,7 +50,7 @@ Changing the display name of a codespace can be useful if you have multiple code To rename a codespace, use the `gh codespace edit` subcommand: ```shell -gh codespace edit -c permanent name of the codespace -d new display name +gh codespace edit -c PERMANENT-NAME-OF-CODESPACE -d NEW-DISPLAY-NAME ``` In this example, replace `permanent name of the codespace` with the permanent name of the codespace. Replace `new display name` with the desired display name. \ No newline at end of file diff --git a/content/codespaces/developing-in-codespaces/using-github-codespaces-with-github-cli.md b/content/codespaces/developing-in-codespaces/using-github-codespaces-with-github-cli.md index 37e405f2eb..b0657c032e 100644 --- a/content/codespaces/developing-in-codespaces/using-github-codespaces-with-github-cli.md +++ b/content/codespaces/developing-in-codespaces/using-github-codespaces-with-github-cli.md @@ -61,7 +61,7 @@ For a complete reference of `gh` commands for {% data variables.product.prodname {% note %} -**Note**: The `-c codespace-name` flag, used with many commands, is optional. If you omit it a list of codespaces is displayed for you to choose from. +**Note**: The `-c CODESPACE_NAME` flag, used with many commands, is optional. If you omit it a list of codespaces is displayed for you to choose from. {% endnote %} @@ -76,7 +76,7 @@ The list includes the unique name of each codespace, which you can use in other ### Create a new codespace ```shell -gh codespace create -r owner/repository [-b branch] +gh codespace create -r OWNER/REPO_NAME [-b BRANCH] ``` For more information, see "[Creating a codespace](/codespaces/developing-in-codespaces/creating-a-codespace)." @@ -84,7 +84,7 @@ For more information, see "[Creating a codespace](/codespaces/developing-in-code ### Stop a codespace ```shell -gh codespace stop -c codespace-name +gh codespace stop -c CODESPACE-NAME ``` For more information, see "[Deep dive into {% data variables.product.prodname_github_codespaces %}](/codespaces/getting-started/deep-dive#closing-or-stopping-your-codespace)." @@ -92,7 +92,7 @@ For more information, see "[Deep dive into {% data variables.product.prodname_gi ### Delete a codespace ```shell -gh codespace delete -c codespace-name +gh codespace delete -c CODESPACE-NAME ``` For more information, see "[Deleting a codespace](/codespaces/developing-in-codespaces/deleting-a-codespace)." @@ -102,7 +102,7 @@ For more information, see "[Deleting a codespace](/codespaces/developing-in-code To run commands on the remote codespace machine, from your terminal, you can SSH into the codespace. ```shell -gh codespace ssh -c codespace-name +gh codespace ssh -c CODESPACE-NAME ``` {% data variables.product.prodname_github_codespaces %} copies your GitHub SSH keys into the codespace on creation for a seamless authentication experience. You may be asked to enter the passphrase for your SSH key, after which you will get a command prompt from the remote codespace machine. @@ -112,7 +112,7 @@ If you don't have any SSH keys, follow the instructions in "[Generating a new SS ### Open a codespace in {% data variables.product.prodname_vscode %} ```shell -gh codespace code -c codespace-name +gh codespace code -c CODESPACE-NAME ``` For more information, see "[Using {% data variables.product.prodname_codespaces %} in {% data variables.product.prodname_vscode %}](/codespaces/developing-in-codespaces/using-codespaces-in-visual-studio-code)." @@ -120,13 +120,13 @@ For more information, see "[Using {% data variables.product.prodname_codespaces ### Open a codespace in JupyterLab ```shell -gh codespace jupyter -c codespace-name +gh codespace jupyter -c CODESPACE-NAME ``` ### Copy a file to/from a codespace ```shell -gh codespace cp [-r] source(s) destination +gh codespace cp [-r] SOURCE(S) DESTINATION ``` Use the prefix `remote:` on a file or directory name to indicate that it's on the codespace. As with the UNIX `cp` command, the first argument specifies the source and the last specifies the destination. If the destination is a directory, you can specify multiple sources. Use the `-r` (recursive) flag if any of the sources is a directory. @@ -170,7 +170,7 @@ For more information about the `gh codespace cp` command, including additional f You can forward a port on a codespace to a local port. The port remains forwarded as long as the process is running. To stop forwarding the port, press Control+C. ```shell -gh codespace ports forward codespace-port-number:local-port-number -c codespace-name +gh codespace ports forward CODESPACE-PORT_NAME:LOCAL-PORT-NAME -c CODESPACE-NAME ``` To see details of forwarded ports enter `gh codespace ports` and then choose a codespace. @@ -178,13 +178,13 @@ To see details of forwarded ports enter `gh codespace ports` and then choose a c You can set the visibility of a forwarded port. {% data reusables.codespaces.port-visibility-settings %} ```shell -gh codespace ports visibility codespace-port:private|org|public -c codespace-name +gh codespace ports visibility CODESPACE-PORT:private|org|public -c CODESPACE-NAME ``` You can set the visibility for multiple ports with one command. For example: ```shell -gh codespace ports visibility 80:private 3000:public 3306:org -c codespace-name +gh codespace ports visibility 80:private 3000:public 3306:org -c CODESPACE-NAME ``` For more information, see "[Forwarding ports in your codespace](/codespaces/developing-in-codespaces/forwarding-ports-in-your-codespace)." @@ -194,7 +194,7 @@ For more information, see "[Forwarding ports in your codespace](/codespaces/deve You can see the creation log for a codespace. After entering this command you will be asked to enter the passphrase for your SSH key. ```shell -gh codespace logs -c codespace-name +gh codespace logs -c CODESPACE-NAME ``` For more information about the creation log, see "[{% data variables.product.prodname_github_codespaces %} logs](/codespaces/troubleshooting/github-codespaces-logs#creation-logs)." diff --git a/content/communities/documenting-your-project-with-wikis/adding-or-editing-wiki-pages.md b/content/communities/documenting-your-project-with-wikis/adding-or-editing-wiki-pages.md index 82a0d99505..88fb8ca013 100644 --- a/content/communities/documenting-your-project-with-wikis/adding-or-editing-wiki-pages.md +++ b/content/communities/documenting-your-project-with-wikis/adding-or-editing-wiki-pages.md @@ -55,7 +55,7 @@ Every wiki provides an easy way to clone its contents down to your computer. Once you've created an initial page on {% data variables.product.product_name %}, you can clone the repository to your computer with the provided URL: ```shell -$ git clone https://github.com/YOUR_USERNAME/YOUR_REPOSITORY.wiki.git +$ git clone https://github.com/YOUR_USERNAME/YOUR_REPOSITORY.wiki.git # Clones the wiki locally ``` diff --git a/content/desktop/installing-and-configuring-github-desktop/installing-and-authenticating-to-github-desktop/authenticating-to-github.md b/content/desktop/installing-and-configuring-github-desktop/installing-and-authenticating-to-github-desktop/authenticating-to-github.md index 4130690cea..0bda3e62d6 100644 --- a/content/desktop/installing-and-configuring-github-desktop/installing-and-authenticating-to-github-desktop/authenticating-to-github.md +++ b/content/desktop/installing-and-configuring-github-desktop/installing-and-authenticating-to-github-desktop/authenticating-to-github.md @@ -113,7 +113,7 @@ To troubleshoot, sign out of your account on {% data variables.product.prodname_ ### Empty token ```shell -info: [ui] [AppStore.withAuthenticatingUser] account found for repository: node - (empty token) +info: [ui] [AppStore.withAuthenticatingUser] account found for repository: node - USERNAME (empty token) ``` This error means that {% data variables.product.prodname_desktop %} is unable to find the access token that it created in the system keychain. diff --git a/content/desktop/installing-and-configuring-github-desktop/overview/launching-github-desktop-from-the-command-line.md b/content/desktop/installing-and-configuring-github-desktop/overview/launching-github-desktop-from-the-command-line.md index c0f1fec257..b0f93f2234 100644 --- a/content/desktop/installing-and-configuring-github-desktop/overview/launching-github-desktop-from-the-command-line.md +++ b/content/desktop/installing-and-configuring-github-desktop/overview/launching-github-desktop-from-the-command-line.md @@ -16,13 +16,13 @@ versions: 3. {% data reusables.desktop.launch-desktop-from-command-line %} ```shell - $ github /path/to/repo + $ github /path/to/repo ``` You can also change to your repository path and then type `github .` to open that repository. ```shell - $ cd /path/to/repo + $ cd /path/to/repo [repo]$ github . ``` @@ -34,13 +34,13 @@ versions: 2. {% data reusables.desktop.launch-desktop-from-command-line %} ```shell - C:\Users\octocat> github path\to\repo + C:\Users\octocat> github path\to\repo ``` You can also change to your repository path and then type `github .` to open that repository. ```shell - C:\Users\octocat> cd repo\myrepo + C:\Users\octocat> cd repo\myrepo C:\Users\octocat\repo\myrepo> github . ``` diff --git a/content/developers/apps/building-github-apps/authenticating-with-github-apps.md b/content/developers/apps/building-github-apps/authenticating-with-github-apps.md index e25b98006d..a8274a92fa 100644 --- a/content/developers/apps/building-github-apps/authenticating-with-github-apps.md +++ b/content/developers/apps/building-github-apps/authenticating-with-github-apps.md @@ -48,7 +48,7 @@ To verify a private key: ![Private key fingerprint](/assets/images/github-apps/github_apps_private_key_fingerprint.png) 2. Generate the fingerprint of your private key (PEM) locally by using the following command: ```shell - $ openssl rsa -in PATH_TO_PEM_FILE -pubout -outform DER | openssl sha256 -binary | openssl base64 + $ openssl rsa -in PATH_TO_PEM_FILE -pubout -outform DER | openssl sha256 -binary | openssl base64 ``` 3. Compare the results of the locally generated fingerprint to the fingerprint you see in {% data variables.product.product_name %}. diff --git a/content/developers/overview/using-ssh-agent-forwarding.md b/content/developers/overview/using-ssh-agent-forwarding.md index cb7a2ce912..a0f3e4dfa2 100644 --- a/content/developers/overview/using-ssh-agent-forwarding.md +++ b/content/developers/overview/using-ssh-agent-forwarding.md @@ -32,7 +32,7 @@ You can test that your local key works by entering `ssh -T git@{% ifversion ghes ```shell $ ssh -T git@{% ifversion ghes or ghae %}hostname{% else %}github.com{% endif %} # Attempt to SSH in to github -> Hi username! You've successfully authenticated, but GitHub does not provide +> Hi USERNAME! You've successfully authenticated, but GitHub does not provide > shell access. ``` @@ -68,7 +68,7 @@ If the variable is not set, it means that agent forwarding is not working: ```shell $ echo "$SSH_AUTH_SOCK" # Print out the SSH_AUTH_SOCK variable -> [No output] +> [No output] $ ssh -T git@{% ifversion ghes or ghae %}hostname{% else %}github.com{% endif %} # Try to SSH to github > Permission denied (publickey). @@ -84,7 +84,7 @@ SSH forwarding only works with SSH URLs, not HTTP(s) URLs. Check the `.git/confi ```shell [remote "origin"] - url = git@{% ifversion ghes or ghae %}hostname{% else %}github.com{% endif %}:yourAccount/yourProject.git + url = git@{% ifversion ghes or ghae %}hostname{% else %}github.com{% endif %}:YOUR_ACCOUNT/YOUR_PROJECT.git fetch = +refs/heads/*:refs/remotes/origin/* ``` @@ -97,10 +97,10 @@ Before you can make your keys work through agent forwarding, they must work loca Sometimes, system configurations disallow SSH agent forwarding. You can check if a system configuration file is being used by entering the following command in the terminal: ```shell -$ ssh -v example.com +$ ssh -v "example.com" # Connect to example.com with verbose debug output > OpenSSH_8.1p1, LibreSSL 2.7.3 -> debug1: Reading configuration data /Users/you/.ssh/config +> debug1: Reading configuration data /Users/YOU/.ssh/config > debug1: Applying options for example.com > debug1: Reading configuration data /etc/ssh_config > debug1: Applying options for * @@ -147,7 +147,7 @@ ssh-add -L If the command says that no identity is available, you'll need to add your key: ```shell -$ ssh-add yourkey +$ ssh-add YOUR-KEY ``` {% tip %} @@ -155,7 +155,7 @@ $ ssh-add yourkey On macOS, `ssh-agent` will "forget" this key, once it gets restarted during reboots. But you can import your SSH keys into Keychain using this command: ```shell -$ ssh-add -K yourkey +$ ssh-add -K YOUR-KEY ``` {% endtip %} diff --git a/content/developers/webhooks-and-events/webhooks/securing-your-webhooks.md b/content/developers/webhooks-and-events/webhooks/securing-your-webhooks.md index 4bfb12f6f5..d4828309cd 100644 --- a/content/developers/webhooks-and-events/webhooks/securing-your-webhooks.md +++ b/content/developers/webhooks-and-events/webhooks/securing-your-webhooks.md @@ -30,7 +30,7 @@ To set your token on GitHub: Next, set up an environment variable on your server that stores this token. Typically, this is as simple as running: ```shell -$ export SECRET_TOKEN=your_token +$ export SECRET_TOKEN=YOUR-TOKEN ``` **Never** hardcode the token into your app! diff --git a/content/get-started/getting-started-with-git/about-remote-repositories.md b/content/get-started/getting-started-with-git/about-remote-repositories.md index 612bb78690..3eb395163b 100644 --- a/content/get-started/getting-started-with-git/about-remote-repositories.md +++ b/content/get-started/getting-started-with-git/about-remote-repositories.md @@ -34,7 +34,7 @@ You can use the `git remote add` command to match a remote URL with a name. For example, you'd type the following in the command line: ```shell -git remote add origin <REMOTE_URL> +git remote add origin <REMOTE_URL> ``` This associates the name `origin` with the `REMOTE_URL`. diff --git a/content/get-started/getting-started-with-git/ignoring-files.md b/content/get-started/getting-started-with-git/ignoring-files.md index 72d4b8d668..6e098c14d2 100644 --- a/content/get-started/getting-started-with-git/ignoring-files.md +++ b/content/get-started/getting-started-with-git/ignoring-files.md @@ -35,7 +35,7 @@ For an example *.gitignore* file, see "[Some common .gitignore configurations](h If you want to ignore a file that is already checked in, you must untrack the file before you add a rule to ignore it. From your terminal, untrack the file. ```shell -$ git rm --cached FILENAME +$ git rm --cached FILENAME ``` ## Configuring ignored files for all repositories on your computer diff --git a/content/get-started/getting-started-with-git/managing-remote-repositories.md b/content/get-started/getting-started-with-git/managing-remote-repositories.md index 57047746e8..3799d2d88a 100644 --- a/content/get-started/getting-started-with-git/managing-remote-repositories.md +++ b/content/get-started/getting-started-with-git/managing-remote-repositories.md @@ -36,13 +36,13 @@ The `git remote add` command takes two arguments: For example: ```shell -$ git remote add origin https://{% data variables.command_line.codeblock %}/user/repo.git +$ git remote add origin https://{% data variables.command_line.codeblock %}/USER/REPO>.git # Set a new remote $ git remote -v # Verify new remote -> origin https://{% data variables.command_line.codeblock %}/user/repo.git (fetch) -> origin https://{% data variables.command_line.codeblock %}/user/repo.git (push) +> origin https://{% data variables.command_line.codeblock %}/USER/REPO.git (fetch) +> origin https://{% data variables.command_line.codeblock %}/USER/REPO.git (push) ``` For more information on which URL to use, see "[About remote repositories](/github/getting-started-with-github/about-remote-repositories)." @@ -77,11 +77,11 @@ The `git remote set-url` command takes two arguments: * A new URL for the remote. For example: * If you're updating to use HTTPS, your URL might look like: ```shell -https://{% data variables.command_line.backticks %}/USERNAME/REPOSITORY.git +https://{% data variables.command_line.backticks %}/USERNAME/REPOSITORY.git ``` * If you're updating to use SSH, your URL might look like: ```shell -git@{% data variables.command_line.codeblock %}:USERNAME/REPOSITORY.git +git@{% data variables.command_line.codeblock %}:USERNAME/REPOSITORY.git ``` ### Switching remote URLs from SSH to HTTPS @@ -91,19 +91,19 @@ git@{% data variables.command_line.codeblock %}:USERNAME/REPOSITORY 3. List your existing remotes in order to get the name of the remote you want to change. ```shell $ git remote -v - > origin git@{% data variables.command_line.codeblock %}:USERNAME/REPOSITORY.git (fetch) - > origin git@{% data variables.command_line.codeblock %}:USERNAME/REPOSITORY.git (push) + > origin git@{% data variables.command_line.codeblock %}:USERNAME/REPOSITORY.git (fetch) + > origin git@{% data variables.command_line.codeblock %}:USERNAME/REPOSITORY.git (push) ``` 4. Change your remote's URL from SSH to HTTPS with the `git remote set-url` command. ```shell - $ git remote set-url origin https://{% data variables.command_line.codeblock %}/USERNAME/REPOSITORY.git + $ git remote set-url origin https://{% data variables.command_line.codeblock %}/USERNAME/REPOSITORY.git ``` 5. Verify that the remote URL has changed. ```shell $ git remote -v # Verify new remote URL - > origin https://{% data variables.command_line.codeblock %}/USERNAME/REPOSITORY.git (fetch) - > origin https://{% data variables.command_line.codeblock %}/USERNAME/REPOSITORY.git (push) + > origin https://{% data variables.command_line.codeblock %}/USERNAME/REPOSITORY.git (fetch) + > origin https://{% data variables.command_line.codeblock %}/USERNAME/REPOSITORY.git (push) ``` The next time you `git fetch`, `git pull`, or `git push` to the remote repository, you'll be asked for your GitHub username and password. {% data reusables.user-settings.password-authentication-deprecation %} @@ -117,19 +117,19 @@ You can [use a credential helper](/github/getting-started-with-github/caching-yo 3. List your existing remotes in order to get the name of the remote you want to change. ```shell $ git remote -v - > origin https://{% data variables.command_line.codeblock %}/USERNAME/REPOSITORY.git (fetch) - > origin https://{% data variables.command_line.codeblock %}/USERNAME/REPOSITORY.git (push) + > origin https://{% data variables.command_line.codeblock %}/USERNAME/REPOSITORY.git (fetch) + > origin https://{% data variables.command_line.codeblock %}/USERNAME/REPOSITORY.git (push) ``` 4. Change your remote's URL from HTTPS to SSH with the `git remote set-url` command. ```shell - $ git remote set-url origin git@{% data variables.command_line.codeblock %}:USERNAME/REPOSITORY.git + $ git remote set-url origin git@{% data variables.command_line.codeblock %}:USERNAME/REPOSITORY.git ``` 5. Verify that the remote URL has changed. ```shell $ git remote -v # Verify new remote URL - > origin git@{% data variables.command_line.codeblock %}:USERNAME/REPOSITORY.git (fetch) - > origin git@{% data variables.command_line.codeblock %}:USERNAME/REPOSITORY.git (push) + > origin git@{% data variables.command_line.codeblock %}: USERNAME/REPOSITORY.git (fetch) + > origin git@{% data variables.command_line.codeblock %}: USERNAME/REPOSITORY.git (push) ``` ### Troubleshooting: No such remote '[name]' @@ -158,16 +158,16 @@ These examples assume you're [cloning using HTTPS](/github/getting-started-with- ```shell $ git remote -v # View existing remotes -> origin https://{% data variables.command_line.codeblock %}/OWNER/REPOSITORY.git (fetch) -> origin https://{% data variables.command_line.codeblock %}/OWNER/REPOSITORY.git (push) +> origin https://{% data variables.command_line.codeblock %}/OWNER/REPOSITORY.git (fetch) +> origin https://{% data variables.command_line.codeblock %}/OWNER/REPOSITORY.git (push) $ git remote rename origin destination # Change remote name from 'origin' to 'destination' $ git remote -v # Verify remote's new name -> destination https://{% data variables.command_line.codeblock %}/OWNER/REPOSITORY.git (fetch) -> destination https://{% data variables.command_line.codeblock %}/OWNER/REPOSITORY.git (push) +> destination https://{% data variables.command_line.codeblock %}/OWNER/REPOSITORY.git (fetch) +> destination https://{% data variables.command_line.codeblock %}/OWNER/REPOSITORY.git (push) ``` ### Troubleshooting: Could not rename config section 'remote.[old name]' to 'remote.[new name]' @@ -179,8 +179,8 @@ You can check which remotes currently exist with the `git remote -v` command: ```shell $ git remote -v # View existing remotes -> origin https://{% data variables.command_line.codeblock %}/OWNER/REPOSITORY.git (fetch) -> origin https://{% data variables.command_line.codeblock %}/OWNER/REPOSITORY.git (push) +> origin https://{% data variables.command_line.codeblock %}/OWNER/REPOSITORY.git (fetch) +> origin https://{% data variables.command_line.codeblock %}/OWNER/REPOSITORY.git (push) ``` ### Troubleshooting: Remote [new name] already exists @@ -203,22 +203,22 @@ These examples assume you're [cloning using HTTPS](/github/getting-started-with- ```shell $ git remote -v # View current remotes -> origin https://{% data variables.command_line.codeblock %}/OWNER/REPOSITORY.git (fetch) -> origin https://{% data variables.command_line.codeblock %}/OWNER/REPOSITORY.git (push) -> destination https://{% data variables.command_line.codeblock %}/FORKER/REPOSITORY.git (fetch) -> destination https://{% data variables.command_line.codeblock %}/FORKER/REPOSITORY.git (push) +> origin https://{% data variables.command_line.codeblock %}/OWNER/REPOSITORY.git (fetch) +> origin https://{% data variables.command_line.codeblock %}/OWNER/REPOSITORY.git (push) +> destination https://{% data variables.command_line.codeblock %}/FORKER/REPOSITORY.git (fetch) +> destination https://{% data variables.command_line.codeblock %}/FORKER/REPOSITORY.git (push) $ git remote rm destination # Remove remote $ git remote -v # Verify it's gone -> origin https://{% data variables.command_line.codeblock %}/OWNER/REPOSITORY.git (fetch) -> origin https://{% data variables.command_line.codeblock %}/OWNER/REPOSITORY.git (push) +> origin https://{% data variables.command_line.codeblock %}/ OWNER/REPOSITORY.git (fetch) +> origin https://{% data variables.command_line.codeblock %}/ OWNER/REPOSITORY.git (push) ``` {% warning %} -**Note**: `git remote rm` does not delete the remote repository from the server. It simply +**Note**: `git remote rm` does not delete the remote repository from the server. It simply removes the remote and its references from your local repository. {% endwarning %} diff --git a/content/get-started/getting-started-with-git/setting-your-username-in-git.md b/content/get-started/getting-started-with-git/setting-your-username-in-git.md index 76e3656c32..d4c7186cad 100644 --- a/content/get-started/getting-started-with-git/setting-your-username-in-git.md +++ b/content/get-started/getting-started-with-git/setting-your-username-in-git.md @@ -24,7 +24,7 @@ Changing the name associated with your Git commits using `git config` will only 2. {% data reusables.user-settings.set_your_git_username %} ```shell - $ git config --global user.name "Mona Lisa" + $ git config --global user.name "Mona Lisa" ``` 3. {% data reusables.user-settings.confirm_git_username_correct %} @@ -41,7 +41,7 @@ Changing the name associated with your Git commits using `git config` will only 3. {% data reusables.user-settings.set_your_git_username %} ```shell - $ git config user.name "Mona Lisa" + $ git config user.name "Mona Lisa" ``` 3. {% data reusables.user-settings.confirm_git_username_correct %} diff --git a/content/get-started/getting-started-with-git/updating-credentials-from-the-macos-keychain.md b/content/get-started/getting-started-with-git/updating-credentials-from-the-macos-keychain.md index e206e73052..38ccb5ee1c 100644 --- a/content/get-started/getting-started-with-git/updating-credentials-from-the-macos-keychain.md +++ b/content/get-started/getting-started-with-git/updating-credentials-from-the-macos-keychain.md @@ -40,7 +40,7 @@ Through the command line, you can use the credential helper directly to erase th $ git credential-osxkeychain erase host={% data variables.command_line.codeblock %} protocol=https -> [Press Return] +> [Press Return] ``` If it's successful, nothing will print out. To test that it works, try and clone a private repository from {% data variables.product.product_location %}. If you are prompted for a password, the keychain entry was deleted. diff --git a/content/get-started/importing-your-projects-to-github/importing-source-code-to-github/adding-locally-hosted-code-to-github.md b/content/get-started/importing-your-projects-to-github/importing-source-code-to-github/adding-locally-hosted-code-to-github.md index eb649b3f6c..2e04cd85a8 100644 --- a/content/get-started/importing-your-projects-to-github/importing-source-code-to-github/adding-locally-hosted-code-to-github.md +++ b/content/get-started/importing-your-projects-to-github/importing-source-code-to-github/adding-locally-hosted-code-to-github.md @@ -86,7 +86,7 @@ If you have existing source code or repositories stored locally on your computer ![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> + $ git remote add origin <REMOTE_URL> # Sets the new remote $ git remote -v # Verifies the new remote URL @@ -132,7 +132,7 @@ If you have existing source code or repositories stored locally on your computer ![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> + $ git remote add origin <REMOTE_URL> # Sets the new remote $ git remote -v # Verifies the new remote URL @@ -178,7 +178,7 @@ If you have existing source code or repositories stored locally on your computer ![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> + $ git remote add origin <REMOTE_URL> # Sets the new remote $ git remote -v # Verifies the new remote URL diff --git a/content/get-started/importing-your-projects-to-github/importing-source-code-to-github/importing-a-git-repository-using-the-command-line.md b/content/get-started/importing-your-projects-to-github/importing-source-code-to-github/importing-a-git-repository-using-the-command-line.md index 1ded6370dc..15aceafdb9 100644 --- a/content/get-started/importing-your-projects-to-github/importing-source-code-to-github/importing-a-git-repository-using-the-command-line.md +++ b/content/get-started/importing-your-projects-to-github/importing-source-code-to-github/importing-a-git-repository-using-the-command-line.md @@ -31,17 +31,17 @@ For purposes of demonstration, we'll use: 1. [Create a new repository on {% data variables.product.product_name %}](/articles/creating-a-new-repository). You'll import your external Git repository to this new repository. 2. On the command line, make a "bare" clone of the repository using the external clone URL. This creates a full copy of the data, but without a working directory for editing files, and ensures a clean, fresh export of all the old data. ```shell - $ git clone --bare https://external-host.com/extuser/repo.git + $ git clone --bare https://external-host.com/EXTUSER/REPO.git # Makes a bare clone of the external repository in a local directory ``` 3. Push the locally cloned repository to {% data variables.product.product_name %} using the "mirror" option, which ensures that all references, such as branches and tags, are copied to the imported repository. ```shell - $ cd repo.git - $ git push --mirror https://{% data variables.command_line.codeblock %}/ghuser/repo.git + $ 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. Remove the temporary local repository. ```shell $ cd .. - $ rm -rf repo.git + $ rm -rf REPO.git ``` diff --git a/content/get-started/importing-your-projects-to-github/working-with-subversion-on-github/support-for-subversion-clients.md b/content/get-started/importing-your-projects-to-github/working-with-subversion-on-github/support-for-subversion-clients.md index 2192e4a51b..de2b2a2489 100644 --- a/content/get-started/importing-your-projects-to-github/working-with-subversion-on-github/support-for-subversion-clients.md +++ b/content/get-started/importing-your-projects-to-github/working-with-subversion-on-github/support-for-subversion-clients.md @@ -26,9 +26,9 @@ Subversion checkouts are different: they mix the repository data in the working 3. Make an empty checkout of the repository: ```shell - $ svn co --depth empty https://github.com/user/repo + $ svn co --depth empty https://github.com/USER/REPO > Checked out revision 1. - $ cd repo + $ cd REPO ``` 4. Get the `trunk` branch. The Subversion bridge maps trunk to the Git HEAD branch. @@ -74,7 +74,7 @@ You can also confirm the new branch via the command line: ```shell $ git fetch -> From https://github.com/user/repo/ +> From https://github.com/USER/REPO/ > * [new branch] more_awesome -> origin/more_awesome ``` @@ -107,13 +107,13 @@ $ svn commit -m 'Test coverage for problems' To switch between branches, you'll probably want to start with a checkout of `trunk`: ```shell -$ svn co --depth empty https://github.com/user/repo/trunk +$ svn co --depth empty https://github.com/USER/REPO/trunk ``` Then, you can switch to another branch: ```shell -$ svn switch https://github.com/user/repo/branches/more_awesome +$ svn switch https://github.com/USER/REPO/branches/more_awesome ``` ## Finding the Git commit SHA for a Subversion commit @@ -123,7 +123,7 @@ GitHub's Subversion server exposes the Git commit sha for each Subversion commit To see the commit SHA, you should ask for the `git-commit` unversioned remote property. ```shell -$ svn propget git-commit --revprop -r HEAD https://github.com/user/repo +$ svn propget git-commit --revprop -r HEAD https://github.com/USER/REPO 05fcc584ed53d7b0c92e116cb7e64d198b13c4e3 ``` diff --git a/content/get-started/quickstart/contributing-to-projects.md b/content/get-started/quickstart/contributing-to-projects.md index 3e9ad2b298..70a08fbc3a 100644 --- a/content/get-started/quickstart/contributing-to-projects.md +++ b/content/get-started/quickstart/contributing-to-projects.md @@ -58,12 +58,12 @@ You can clone your fork with the command line, {% data variables.product.prodnam {% data reusables.command_line.change-current-directory-clone %} 4. Type `git clone`, and then paste the URL you copied earlier. It will look like this, with your {% data variables.product.product_name %} username instead of `YOUR-USERNAME`: ```shell - $ git clone https://{% data variables.command_line.codeblock %}/YOUR-USERNAME/Spoon-Knife + $ git clone https://{% data variables.command_line.codeblock %}/YOUR-USERNAME/Spoon-Knife ``` 5. Press **Enter**. Your local clone will be created. ```shell - $ git clone https://{% data variables.command_line.codeblock %}/YOUR-USERNAME/Spoon-Knife + $ git clone https://{% data variables.command_line.codeblock %}/YOUR-USERNAME/Spoon-Knife > Cloning into `Spoon-Knife`... > remote: Counting objects: 10, done. > remote: Compressing objects: 100% (8/8), done. @@ -80,7 +80,7 @@ You can clone your fork with the command line, {% data variables.product.prodnam To create a clone of your fork, use the `--clone` flag. ```shell -gh repo fork repository --clone=true +gh repo fork REPOSITORY --clone=true ``` {% endcli %} diff --git a/content/get-started/quickstart/fork-a-repo.md b/content/get-started/quickstart/fork-a-repo.md index 9d3c9526b6..52f7e2ba26 100644 --- a/content/get-started/quickstart/fork-a-repo.md +++ b/content/get-started/quickstart/fork-a-repo.md @@ -83,13 +83,13 @@ You might fork a project to propose changes to the upstream, or original, reposi To create a fork of a repository, use the `gh repo fork` subcommand. ```shell -gh repo fork repository +gh repo fork REPOSITORY ``` To create the fork in an organization, use the `--org` flag. ```shell -gh repo fork repository --org "octo-org" +gh repo fork REPOSITORY --org "octo-org" ``` {% endcli %} @@ -109,12 +109,12 @@ Right now, you have a fork of the Spoon-Knife repository, but you do not have th {% data reusables.command_line.change-current-directory-clone %} 4. Type `git clone`, and then paste the URL you copied earlier. It will look like this, with your {% data variables.product.product_name %} username instead of `YOUR-USERNAME`: ```shell - $ git clone https://{% data variables.command_line.codeblock %}/YOUR-USERNAME/Spoon-Knife + $ git clone https://{% data variables.command_line.codeblock %}/YOUR-USERNAME/Spoon-Knife ``` 5. Press **Enter**. Your local clone will be created. ```shell - $ git clone https://{% data variables.command_line.codeblock %}/YOUR-USERNAME/Spoon-Knife + $ git clone https://{% data variables.command_line.codeblock %}/YOUR-USERNAME/Spoon-Knife > Cloning into `Spoon-Knife`... > remote: Counting objects: 10, done. > remote: Compressing objects: 100% (8/8), done. @@ -131,7 +131,7 @@ Right now, you have a fork of the Spoon-Knife repository, but you do not have th To create a clone of your fork, use the `--clone` flag. ```shell -gh repo fork repository --clone=true +gh repo fork REPOSITORY --clone=true ``` {% endcli %} @@ -163,8 +163,8 @@ When you fork a project in order to propose changes to the original repository, 5. Type `git remote -v` and press **Enter**. You will see the current configured remote repository for your fork. ```shell $ git remote -v - > origin https://{% data variables.command_line.codeblock %}/YOUR_USERNAME/YOUR_FORK.git (fetch) - > origin https://{% data variables.command_line.codeblock %}/YOUR_USERNAME/YOUR_FORK.git (push) + > origin https://{% data variables.command_line.codeblock %}/YOUR_USERNAME/YOUR_FORK.git (fetch) + > origin https://{% data variables.command_line.codeblock %}/YOUR_USERNAME/YOUR_FORK.git (push) ``` 6. Type `git remote add upstream`, and then paste the URL you copied in Step 3 and press **Enter**. It will look like this: @@ -175,10 +175,10 @@ When you fork a project in order to propose changes to the original repository, 7. To verify the new upstream repository you have specified for your fork, type `git remote -v` again. You should see the URL for your fork as `origin`, and the URL for the original repository as `upstream`. ```shell $ git remote -v - > origin https://{% data variables.command_line.codeblock %}/YOUR_USERNAME/YOUR_FORK.git (fetch) - > origin https://{% data variables.command_line.codeblock %}/YOUR_USERNAME/YOUR_FORK.git (push) - > upstream https://{% data variables.command_line.codeblock %}/ORIGINAL_OWNER/ORIGINAL_REPOSITORY.git (fetch) - > upstream https://{% data variables.command_line.codeblock %}/ORIGINAL_OWNER/ORIGINAL_REPOSITORY.git (push) + > origin https://{% data variables.command_line.codeblock %}/YOUR_USERNAME/ YOUR_FORK.git (fetch) + > origin https://{% data variables.command_line.codeblock %}/YOUR_USERNAME/YOUR_FORK.git (push) + > upstream https://{% data variables.command_line.codeblock %}/ORIGINAL_OWNER/ ORIGINAL_REPOSITORY.git (fetch) + > upstream https://{% data variables.command_line.codeblock %}/ORIGINAL_OWNER/ ORIGINAL_REPOSITORY.git (push) ``` Now, you can keep your fork synced with the upstream repository with a few Git commands. For more information, see "[Syncing a fork](/pull-requests/collaborating-with-pull-requests/working-with-forks/syncing-a-fork)." @@ -192,13 +192,13 @@ Now, you can keep your fork synced with the upstream repository with a few Git c To configure a remote repository for the forked repository, use the `--remote` flag. ```shell -gh repo fork repository --remote=true +gh repo fork REPOSITORY --remote=true ``` To specify the remote repository's name, use the `--remote-name` flag. ```shell -gh repo fork repository --remote-name "main-remote-repo" +gh repo fork REPOSITORY --remote-name "main-remote-repo" ``` {% endcli %} diff --git a/content/get-started/using-git/about-git-rebase.md b/content/get-started/using-git/about-git-rebase.md index 008dcea289..8c091ebe3b 100644 --- a/content/get-started/using-git/about-git-rebase.md +++ b/content/get-started/using-git/about-git-rebase.md @@ -31,7 +31,7 @@ Typically, you would use `git rebase` to: To rebase all the commits between another branch and the current branch state, you can enter the following command in your shell (either the command prompt for Windows, or the terminal for Mac and Linux): ```shell -$ git rebase --interactive other_branch_name +$ git rebase --interactive OTHER-BRANCH-NAME ``` ## Rebasing commits against a point in time diff --git a/content/get-started/using-git/about-git-subtree-merges.md b/content/get-started/using-git/about-git-subtree-merges.md index 3fdd7bdf1d..fc56e8aadb 100644 --- a/content/get-started/using-git/about-git-subtree-merges.md +++ b/content/get-started/using-git/about-git-subtree-merges.md @@ -99,7 +99,7 @@ Although we've only added one subproject, any number of subprojects can be incor When a subproject is added, it is not automatically kept in sync with the upstream changes. You will need to update the subproject with the following command: ```shell -$ git pull -s subtree remotename branchname +$ git pull -s subtree REMOTE-NAME BRANCH-NAME ``` For the example above, this would be: diff --git a/content/get-started/using-git/dealing-with-non-fast-forward-errors.md b/content/get-started/using-git/dealing-with-non-fast-forward-errors.md index 46e0c1673e..9852f9064a 100644 --- a/content/get-started/using-git/dealing-with-non-fast-forward-errors.md +++ b/content/get-started/using-git/dealing-with-non-fast-forward-errors.md @@ -17,7 +17,7 @@ If another person has pushed to the same branch as you, Git won't be able to pus ```shell $ git push origin main -> To https://{% data variables.command_line.codeblock %}/USERNAME/REPOSITORY.git +> To https://{% data variables.command_line.codeblock %}/USERNAME/REPOSITORY.git > ! [rejected] main -> main (non-fast-forward) > error: failed to push some refs to 'https://{% data variables.command_line.codeblock %}/USERNAME/REPOSITORY.git' > To prevent you from losing history, non-fast-forward updates were rejected @@ -30,13 +30,13 @@ You can fix this by [fetching and merging](/github/getting-started-with-github/g ```shell $ git fetch origin # Fetches updates made to an online repository -$ git merge origin YOUR_BRANCH_NAME +$ git merge origin YOUR_BRANCH_NAME # Merges updates made online with your local work ``` Or, you can simply use `git pull` to perform both commands at once: ```shell -$ git pull origin YOUR_BRANCH_NAME +$ git pull origin YOUR_BRANCH_NAME # Grabs online updates and merges them with your local work ``` diff --git a/content/get-started/using-git/getting-changes-from-a-remote-repository.md b/content/get-started/using-git/getting-changes-from-a-remote-repository.md index 63fa47a4cd..a37185cd69 100644 --- a/content/get-started/using-git/getting-changes-from-a-remote-repository.md +++ b/content/get-started/using-git/getting-changes-from-a-remote-repository.md @@ -23,7 +23,7 @@ These commands are very useful when interacting with [a remote repository](/gith To grab a complete copy of another user's repository, use `git clone` like this: ```shell -$ git clone https://{% data variables.command_line.codeblock %}/USERNAME/REPOSITORY.git +$ git clone https://{% data variables.command_line.codeblock %}/USERNAME/REPOSITORY.git # Clones a repository to your computer ``` @@ -49,7 +49,7 @@ Use `git fetch` to retrieve new work done by other people. Fetching from a repos If you already have a local repository with a remote URL set up for the desired project, you can grab all the new information by using `git fetch *remotename*` in the terminal: ```shell -$ git fetch remotename +$ git fetch REMOTE-NAME # Fetches updates made to a remote repository ``` @@ -62,7 +62,7 @@ Merging combines your local changes with changes made by others. Typically, you'd merge a remote-tracking branch (i.e., a branch fetched from a remote repository) with your local branch: ```shell -$ git merge remotename/branchname +$ git merge REMOTE-NAME/BRANCH-NAME # Merges updates made online with your local work ``` @@ -71,7 +71,7 @@ $ git merge remotename/branchname `git pull` is a convenient shortcut for completing both `git fetch` and `git merge `in the same command: ```shell -$ git pull remotename branchname +$ git pull REMOTE-NAME BRANCH-NAME # Grabs online updates and merges them with your local work ``` diff --git a/content/get-started/using-git/pushing-commits-to-a-remote-repository.md b/content/get-started/using-git/pushing-commits-to-a-remote-repository.md index b5c8c33262..fdf805447f 100644 --- a/content/get-started/using-git/pushing-commits-to-a-remote-repository.md +++ b/content/get-started/using-git/pushing-commits-to-a-remote-repository.md @@ -23,7 +23,7 @@ The `git push` command takes two arguments: For example: ```shell -git push <REMOTENAME> <BRANCHNAME> +git push REMOTE-NAME BRANCH-NAME ``` As an example, you usually run `git push origin main` to push your local changes @@ -35,10 +35,10 @@ To rename a branch, you'd use the same `git push` command, but you would add one more argument: the name of the new branch. For example: ```shell -git push <REMOTENAME> <LOCALBRANCHNAME>:<REMOTEBRANCHNAME> +git push REMOTE-NAME LOCAL-BRANCH-NAME:REMOTE-BRANCH-NAME ``` -This pushes the `LOCALBRANCHNAME` to your `REMOTENAME`, but it is renamed to `REMOTEBRANCHNAME`. +This pushes the `LOCAL-BRANCH-NAME` to your `REMOTE-NAME`, but it is renamed to `REMOTE-BRANCH-NAME`. ## Dealing with "non-fast-forward" errors @@ -57,13 +57,13 @@ that have the same names as remote branches. To push a single tag, you can issue the same command as pushing a branch: ```shell -git push <REMOTENAME> <TAGNAME> +git push REMOTE-NAME TAG-NAME ``` To push all your tags, you can type the command: ```shell -git push <REMOTENAME> --tags +git push REMOTE-NAME --tags ``` ## Deleting a remote branch or tag @@ -71,12 +71,12 @@ git push <REMOTENAME> --tags The syntax to delete a branch is a bit arcane at first glance: ```shell -git push <REMOTENAME> :<BRANCHNAME> +git push REMOTE-NAME:BRANCH-NAME ``` Note that there is a space before the colon. The command resembles the same steps you'd take to rename a branch. However, here, you're telling Git to push _nothing_ -into `BRANCHNAME` on `REMOTENAME`. Because of this, `git push` deletes the branch +into `BRANCH-NAME` on `REMOTE-NAME`. Because of this, `git push` deletes the branch on the remote repository. ## Remotes and forks @@ -89,7 +89,7 @@ repository, you'd add a new remote URL, typically called `upstream`, to your local Git clone: ```shell -git remote add upstream <THEIR_REMOTE_URL> +git remote add upstream THEIR_REMOTE_URL ``` Now, you can fetch updates and branches from *their* fork: @@ -101,7 +101,7 @@ git fetch upstream > remote: Compressing objects: 100% (53/53), done. > remote: Total 62 (delta 27), reused 44 (delta 9) > Unpacking objects: 100% (62/62), done. -> From https://{% data variables.command_line.codeblock %}/octocat/repo +> From https://{% data variables.command_line.codeblock %}/OCTOCAT/REPO > * [new branch] main -> upstream/main ``` diff --git a/content/get-started/using-git/splitting-a-subfolder-out-into-a-new-repository.md b/content/get-started/using-git/splitting-a-subfolder-out-into-a-new-repository.md index 49eef30c38..53ae26156a 100644 --- a/content/get-started/using-git/splitting-a-subfolder-out-into-a-new-repository.md +++ b/content/get-started/using-git/splitting-a-subfolder-out-into-a-new-repository.md @@ -22,12 +22,12 @@ If you create a new clone of the repository, you won't lose any of your Git hist 4. Clone the repository that contains the subfolder. ```shell - $ git clone https://{% data variables.command_line.codeblock %}/USERNAME/REPOSITORY-NAME + $ git clone https://{% data variables.command_line.codeblock %}/USERNAME/REPOSITORY-NAME ``` 4. Change the current working directory to your cloned repository. ```shell - $ cd REPOSITORY-NAME + $ cd REPOSITORY-NAME ``` 5. To filter out the subfolder from the rest of the files in the repository, run [`git filter-repo`](https://github.com/newren/git-filter-repo), supplying this information: @@ -47,7 +47,7 @@ If you create a new clone of the repository, you won't lose any of your Git hist $ git filter-repo --path FOLDER-NAME1/ --path FOLDER-NAME2/ # Filter the specified branch in your directory and remove empty commits > Rewrite 48dc599c80e20527ed902928085e7861e6b3cbe6 (89/89) - > Ref 'refs/heads/BRANCH-NAME' was rewritten + > Ref 'refs/heads/BRANCH-NAME' was rewritten ``` The repository should now only contain the files that were in your subfolder(s). @@ -67,24 +67,24 @@ If you create a new clone of the repository, you won't lose any of your Git hist 8. Check the existing remote name for your repository. For example, `origin` or `upstream` are two common choices. ```shell $ git remote -v - > origin https://{% data variables.command_line.codeblock %}/USERNAME/REPOSITORY-NAME.git (fetch) - > origin https://{% data variables.command_line.codeblock %}/USERNAME/REPOSITORY-NAME.git (push) + > origin https://{% data variables.command_line.codeblock %}/USERNAME/REPOSITORY-NAME.git (fetch) + > origin https://{% data variables.command_line.codeblock %}/USERNAME/REPOSITORY-NAME.git (push) ``` 9. Set up a new remote URL for your new repository using the existing remote name and the remote repository URL you copied in step 7. ```shell - git remote set-url origin https://{% data variables.command_line.codeblock %}/USERNAME/NEW-REPOSITORY-NAME.git + git remote set-url origin https://{% data variables.command_line.codeblock %}/USERNAME/NEW-REPOSITORY-NAME.git ``` 10. Verify that the remote URL has changed with your new repository name. ```shell $ git remote -v # Verify new remote URL - > origin https://{% data variables.command_line.codeblock %}/USERNAME/NEW-REPOSITORY-NAME.git (fetch) - > origin https://{% data variables.command_line.codeblock %}/USERNAME/NEW-REPOSITORY-NAME.git (push) + > origin https://{% data variables.command_line.codeblock %}/USERNAME/NEW-REPOSITORY-NAME.git (fetch) + > origin https://{% data variables.command_line.codeblock %}/USERNAME/NEW-REPOSITORY-NAME.git (push) ``` 11. Push your changes to the new repository on {% data variables.product.product_name %}. ```shell - git push -u origin BRANCH-NAME + git push -u origin BRANCH-NAME ``` diff --git a/content/github-cli/github-cli/creating-github-cli-extensions.md b/content/github-cli/github-cli/creating-github-cli-extensions.md index e51a8bd6a9..7c0a984b0e 100644 --- a/content/github-cli/github-cli/creating-github-cli-extensions.md +++ b/content/github-cli/github-cli/creating-github-cli-extensions.md @@ -35,7 +35,7 @@ You can use the `gh extension create` command to create a project for your exten 1. Set up a new extension by using the `gh extension create` subcommand. Replace `EXTENSION-NAME` with the name of your extension. ```shell - gh extension create EXTENSION-NAME + gh extension create EXTENSION-NAME ``` 1. Follow the printed instructions to finalize and optionally publish your extension. @@ -47,7 +47,7 @@ You can use the `--precompiled=go` argument to create a Go-based project for you 1. Set up a new extension by using the `gh extension create` subcommand. Replace `EXTENSION-NAME` with the name of your extension and specify `--precompiled=go`. ```shell - gh extension create --precompiled=go EXTENSION-NAME + gh extension create --precompiled=go EXTENSION-NAME ``` 1. Follow the printed instructions to finalize and optionally publish your extension. @@ -59,7 +59,7 @@ You can use the `--precompiled=other` argument to create a project for your non- 1. Set up a new extension by using the `gh extension create` subcommand. Replace `EXTENSION-NAME` with the name of your extension and specify `--precompiled=other`. ```shell - gh extension create --precompiled=other EXTENSION-NAME + gh extension create --precompiled=other EXTENSION-NAME ``` 1. Add some initial code for your extension in your compiled language of choice. @@ -97,7 +97,7 @@ You can use the `--precompiled=other` argument to create a project for your non- 1. Verify that your extension works. Replace `EXTENSION-NAME` with the name of your extension. For example, `whoami`. ```shell - gh EXTENSION-NAME + gh EXTENSION-NAME ``` 1. From your directory, create a repository to publish your extension. Replace `EXTENSION-NAME` with the name of your extension. @@ -105,7 +105,7 @@ You can use the `--precompiled=other` argument to create a project for your non- ```shell git init -b main git add . && git commit -m "initial commit" - gh repo create gh-EXTENSION-NAME --source=. --public --push + gh repo create gh-EXTENSION-NAME --source=. --public --push ``` 1. Optionally, to help other users discover your extension, add the repository topic `gh-extension`. This will make the extension appear on the [`gh-extension` topic page](https://github.com/topics/gh-extension). For more information about how to add a repository topic, see "[Classifying your repository with topics](/github/administering-a-repository/managing-repository-settings/classifying-your-repository-with-topics)." @@ -217,7 +217,7 @@ For more information, see [`gh help formatting`](https://cli.github.com/manual/g 1. Build your code. For example, with Go, replacing `YOUR-USERNAME` with your GitHub username: ```shell - go mod init github.com/YOUR-USERNAME/gh-whoami + go mod init github.com/YOUR-USERNAME/gh-whoami go mod tidy go build ``` @@ -225,7 +225,7 @@ For more information, see [`gh help formatting`](https://cli.github.com/manual/g 1. Verify that your extension works. Replace `EXTENSION-NAME` with the name of your extension. For example, `whoami`. ```shell - gh EXTENSION-NAME + gh EXTENSION-NAME ``` 1. From your directory, create a repository to publish your extension. Replace `EXTENSION-NAME` with the name of your extension. @@ -238,12 +238,12 @@ For more information, see [`gh help formatting`](https://cli.github.com/manual/g ```shell git init -b main - echo "gh-EXTENSION-NAME" >> .gitignore - git add main.go go.* .gitignore && git commit -m'Initial commit' - gh repo create "gh-EXTENSION-NAME" + echo "gh-EXTENSION-NAME" >> .gitignore + git add main.go go.* .gitignore && git commit -m 'Initial commit' + gh repo create "gh-EXTENSION-NAME" ``` -1. Create a release to share your precompiled extension with others. Compile for each platform you want to support, attaching each binary to a release as an asset. Binary executables attached to releases must follow a naming convention and have a suffix of OS-ARCHITECTURE\[EXTENSION\]. +1. Create a release to share your precompiled extension with others. Compile for each platform you want to support, attaching each binary to a release as an asset. Binary executables attached to releases must follow a naming convention and have a suffix of OS-ARCHITECTURE\[EXTENSION\]. For example, an extension named `whoami` compiled for Windows 64bit would have the name `gh-whoami-windows-amd64.exe` while the same extension compiled for Linux 32bit would have the name `gh-whoami-linux-386`. To see an exhaustive list of OS and architecture combinations recognized by `gh`, see [this source code](https://github.com/cli/cli/blob/14f704fd0da58cc01413ee4ba16f13f27e33d15e/pkg/cmd/extension/manager.go#L696). @@ -258,9 +258,9 @@ For more information, see [`gh help formatting`](https://cli.github.com/manual/g ```shell git tag v1.0.0 git push origin v1.0.0 - GOOS=windows GOARCH=amd64 go build -o gh-EXTENSION-NAME-windows-amd64.exe - GOOS=linux GOARCH=amd64 go build -o gh-EXTENSION-NAME-linux-amd64 - GOOS=darwin GOARCH=amd64 go build -o gh-EXTENSION-NAME-darwin-amd64 + GOOS=windows GOARCH=amd64 go build -o gh-EXTENSION-NAME-windows-amd64.exe + GOOS=linux GOARCH=amd64 go build -o gh-EXTENSION-NAME-linux-amd64 + GOOS=darwin GOARCH=amd64 go build -o gh-EXTENSION-NAME-darwin-amd64 gh release create v1.0.0 ./*amd64* 1. Optionally, to help other users discover your extension, add the repository topic `gh-extension`. This will make the extension appear on the [`gh-extension` topic page](https://github.com/topics/gh-extension). For more information about how to add a repository topic, see "[Classifying your repository with topics](/github/administering-a-repository/managing-repository-settings/classifying-your-repository-with-topics)." diff --git a/content/github-cli/github-cli/quickstart.md b/content/github-cli/github-cli/quickstart.md index 5cc3ec7b96..845ab25fda 100644 --- a/content/github-cli/github-cli/quickstart.md +++ b/content/github-cli/github-cli/quickstart.md @@ -30,7 +30,7 @@ shortTitle: Quickstart To authenticate to {% data variables.product.product_location %}, use the `--hostname` flag. ```shell - gh auth login --hostname hostname + gh auth login --hostname HOSTNAME ``` {% endif %} diff --git a/content/github-cli/github-cli/using-github-cli-extensions.md b/content/github-cli/github-cli/using-github-cli-extensions.md index c0f6c663f2..ebf804b607 100644 --- a/content/github-cli/github-cli/using-github-cli-extensions.md +++ b/content/github-cli/github-cli/using-github-cli-extensions.md @@ -35,7 +35,7 @@ If the owner and repository are used, `gh` will install the extension using the To install an extension in development from the current directory, use `.` as the value for the `repo` parameter. ```shell -gh extension install repo +gh extension install REPO ``` If you already have an extension by the same name installed, the command will fail. For example, if you have installed `octocat/gh-whoami`, you must uninstall it before installing `hubot/gh-whoami`. @@ -53,7 +53,7 @@ gh extension list To update an extension, use the `extensions upgrade` subcommand. Replace the `extension` parameter with the name of the extension. ```shell -gh extension upgrade extension +gh extension upgrade EXTENSION ``` To update all installed extensions, use the `--all` flag. @@ -67,5 +67,5 @@ gh extension upgrade --all To uninstall an extension, use the `extensions remove` subcommand. Replace the `extension` parameter with the name of the extension. ```shell -gh extension remove extension +gh extension remove EXTENSION ``` diff --git a/content/graphql/guides/forming-calls-with-graphql.md b/content/graphql/guides/forming-calls-with-graphql.md index 5526810b97..e086d40fb2 100644 --- a/content/graphql/guides/forming-calls-with-graphql.md +++ b/content/graphql/guides/forming-calls-with-graphql.md @@ -62,7 +62,7 @@ In REST, [HTTP verbs](/rest#http-verbs) determine the operation performed. In Gr To query GraphQL using cURL, make a `POST` request with a JSON payload. The payload must contain a string called `query`: ```shell -curl -H "Authorization: bearer token" -X POST -d " \ +curl -H "Authorization: bearer TOKEN" -X POST -d " \ { \ \"query\": \"query { viewer { login }}\" \ } \ @@ -90,7 +90,7 @@ GraphQL queries return only the data you specify. To form a query, you must spec Queries are structured like this:
query {
-  JSON objects to return
+  JSON-OBJECT-TO-RETURN
 }
For a real-world example, see "[Example query](#example-query)." @@ -106,8 +106,8 @@ To form a mutation, you must specify three things: Mutations are structured like this:
mutation {
-  mutationName(input: {MutationNameInput!}) {
-    MutationNamePayload
+  mutationName(input: {MutationNameInput!}) {
+    MutationNamePayload
   }
 }
diff --git a/content/graphql/guides/introduction-to-graphql.md b/content/graphql/guides/introduction-to-graphql.md index 573b706e45..e3da852ff3 100644 --- a/content/graphql/guides/introduction-to-graphql.md +++ b/content/graphql/guides/introduction-to-graphql.md @@ -116,7 +116,7 @@ GraphQL is [introspective](https://graphql.github.io/learn/introspection/). This * You can also run an _introspection query_ of the schema via a `GET` request: ```shell - $ curl -H "Authorization: bearer token" {% data variables.product.graphql_url_pre %} + $ curl -H "Authorization: bearer TOKEN" {% data variables.product.graphql_url_pre %} ``` {% note %} @@ -130,7 +130,7 @@ GraphQL is [introspective](https://graphql.github.io/learn/introspection/). This Alternatively, you can pass the `idl` media type to return the results in IDL format, which is a condensed version of the schema: ```shell - $ curl -H "Authorization: bearer token" -H "Accept: application/vnd.github.v4.idl" \ + $ curl -H "Authorization: bearer TOKEN" -H "Accept: application/vnd.github.v4.idl" \ {% data variables.product.graphql_url_pre %} ``` diff --git a/content/graphql/guides/using-global-node-ids.md b/content/graphql/guides/using-global-node-ids.md index 5dadcb4e95..ff9e2ee892 100644 --- a/content/graphql/guides/using-global-node-ids.md +++ b/content/graphql/guides/using-global-node-ids.md @@ -35,7 +35,7 @@ Let's walk through an example. If you [request the authenticated user](/rest/reference/users#get-the-authenticated-user): ```shell -$ curl -i -u username:token {% data variables.product.api_url_pre %}/user +$ curl -i -u USERNAME:TOKEN {% data variables.product.api_url_pre %}/user ``` you'll get a response that includes the `node_id` of the authenticated user: diff --git a/content/issues/planning-and-tracking-with-projects/automating-your-project/using-the-api-to-manage-projects.md b/content/issues/planning-and-tracking-with-projects/automating-your-project/using-the-api-to-manage-projects.md index 3e15a0797b..0b598b4900 100644 --- a/content/issues/planning-and-tracking-with-projects/automating-your-project/using-the-api-to-manage-projects.md +++ b/content/issues/planning-and-tracking-with-projects/automating-your-project/using-the-api-to-manage-projects.md @@ -70,8 +70,8 @@ You can find the node ID of an organization project if you know the organization ```shell curl --request POST \ --url https://api.github.com/graphql \ - --header 'Authorization: Bearer TOKEN' \ - --data '{"query":"query{organization(login: \"ORGANIZATION\") {projectV2(number: NUMBER){id}}}"}' + --header 'Authorization: Bearer TOKEN' \ + --data '{"query":"query{organization(login: \"ORGANIZATION\") {projectV2(number: NUMBER){id}}}"}' ``` {% endcurl %} @@ -79,8 +79,8 @@ curl --request POST \ ```shell gh api graphql -f query=' query{ - organization(login: "ORGANIZATION"){ - projectV2(number: NUMBER) { + organization(login: "ORGANIZATION"){ + projectV2(number: NUMBER) { id } } @@ -94,8 +94,8 @@ You can also find the node ID of all projects in your organization. The followin ```shell curl --request POST \ --url https://api.github.com/graphql \ - --header 'Authorization: Bearer TOKEN' \ - --data '{"query":"{organization(login: \"ORGANIZATION\") {projectsV2(first: 20) {nodes {id title}}}}"}' + --header 'Authorization: Bearer TOKEN' \ + --data '{"query":"{organization(login: \"ORGANIZATION") {projectsV2(first: 20) {nodes {id title}}}}"}' ``` {% endcurl %} @@ -103,7 +103,7 @@ curl --request POST \ ```shell gh api graphql -f query=' query{ - organization(login: "ORGANIZATION") { + organization(login: "ORGANIZATION") { projectsV2(first: 20) { nodes { id @@ -125,8 +125,8 @@ You can find the node ID of a user project if you know the project number. Repla ```shell curl --request POST \ --url https://api.github.com/graphql \ - --header 'Authorization: Bearer TOKEN' \ - --data '{"query":"query{user(login: \"USER\") {projectV2(number: NUMBER){id}}}"}' + --header 'Authorization: Bearer TOKEN' \ + --data '{"query":"query{user(login: \"USER\") {projectV2(number: NUMBER){id}}}"}' ``` {% endcurl %} @@ -134,8 +134,8 @@ curl --request POST \ ```shell gh api graphql -f query=' query{ - user(login: "USER"){ - projectV2(number: NUMBER) { + user(login: "USER"){ + projectV2(number: NUMBER) { id } } @@ -149,8 +149,8 @@ You can also find the node ID for all of your projects. The following example wi ```shell curl --request POST \ --url https://api.github.com/graphql \ - --header 'Authorization: Bearer TOKEN' \ - --data '{"query":"{user(login: \"USER\") {projectsV2(first: 20) {nodes {id title}}}}"}' + --header 'Authorization: Bearer TOKEN' \ + --data '{"query":"{user(login: \"USER\") {projectsV2(first: 20) {nodes {id title}}}}"}' ``` {% endcurl %} @@ -158,7 +158,7 @@ curl --request POST \ ```shell gh api graphql -f query=' query{ - user(login: "USER") { + user(login: "USER") { projectsV2(first: 20) { nodes { id @@ -180,8 +180,8 @@ The following example will return the ID, name, settings, and configuration for ```shell curl --request POST \ --url https://api.github.com/graphql \ - --header 'Authorization: Bearer TOKEN' \ - --data '{"query":"query{ node(id: \"PROJECT_ID\") { ... on ProjectV2 { fields(first: 20) { nodes { ... on ProjectV2Field { id name } ... on ProjectV2IterationField { id name configuration { iterations { startDate id }}} ... on ProjectV2SingleSelectField { id name options { id name }}}}}}}"}' + --header 'Authorization: Bearer TOKEN' \ + --data '{"query":"query{ node(id: \"PROJECT_ID\") { ... on ProjectV2 { fields(first: 20) { nodes { ... on ProjectV2Field { id name } ... on ProjectV2IterationField { id name configuration { iterations { startDate id }}} ... on ProjectV2SingleSelectField { id name options { id name }}}}}}}"}' ``` {% endcurl %} @@ -189,7 +189,7 @@ curl --request POST \ ```shell gh api graphql -f query=' query{ - node(id: "PROJECT_ID") { + node(id: "PROJECT_ID") { ... on ProjectV2 { fields(first: 20) { nodes { @@ -284,8 +284,8 @@ If you just need the name and ID of a field, and do not need information about i ```shell curl --request POST \ --url https://api.github.com/graphql \ - --header 'Authorization: Bearer TOKEN' \ - --data '{"query":"query{ node(id: \"PROJECT_ID\") { ... on ProjectV2 { fields(first: 20) { nodes { ... on ProjectV2FieldCommon { id name }}}}}}"}' + --header 'Authorization: Bearer TOKEN' \ + --data '{"query":"query{ node(id: \"PROJECT_ID\") { ... on ProjectV2 { fields(first: 20) { nodes { ... on ProjectV2FieldCommon { id name }}}}}}"}' ``` {% endcurl %} @@ -293,7 +293,7 @@ curl --request POST \ ```shell gh api graphql -f query=' query{ - node(id: "PROJECT_ID") { + node(id: "PROJECT_ID") { ... on ProjectV2 { fields(first: 20) { nodes { @@ -354,8 +354,8 @@ The following example will return the first 20 issues, pull requests, and draft ```shell curl --request POST \ --url https://api.github.com/graphql \ - --header 'Authorization: Bearer TOKEN' \ - --data '{"query":"query{ node(id: \"PROJECT_ID\") { ... on ProjectV2 { items(first: 20) { nodes{ id fieldValues(first: 8) { nodes{ ... on ProjectV2ItemFieldTextValue { text field { ... on ProjectV2FieldCommon { name }}} ... on ProjectV2ItemFieldDateValue { date field { ... on ProjectV2FieldCommon { name } } } ... on ProjectV2ItemFieldSingleSelectValue { name field { ... on ProjectV2FieldCommon { name }}}}} content{ ... on DraftIssue { title body } ...on Issue { title assignees(first: 10) { nodes{ login }}} ...on PullRequest { title assignees(first: 10) { nodes{ login }}}}}}}}}"}' + --header 'Authorization: Bearer TOKEN' \ + --data '{"query":"query{ node(id: \"PROJECT_ID\") { ... on ProjectV2 { items(first: 20) { nodes{ id fieldValues(first: 8) { nodes{ ... on ProjectV2ItemFieldTextValue { text field { ... on ProjectV2FieldCommon { name }}} ... on ProjectV2ItemFieldDateValue { date field { ... on ProjectV2FieldCommon { name } } } ... on ProjectV2ItemFieldSingleSelectValue { name field { ... on ProjectV2FieldCommon { name }}}}} content{ ... on DraftIssue { title body } ...on Issue { title assignees(first: 10) { nodes{ login }}} ...on PullRequest { title assignees(first: 10) { nodes{ login }}}}}}}}}"}' ``` {% endcurl %} @@ -363,7 +363,7 @@ curl --request POST \ ```shell gh api graphql -f query=' query{ - node(id: "PROJECT_ID") { + node(id: "PROJECT_ID") { ... on ProjectV2 { items(first: 20) { nodes{ @@ -446,8 +446,8 @@ The following example will add an issue or pull request to your project. Replace ```shell curl --request POST \ --url https://api.github.com/graphql \ - --header 'Authorization: Bearer TOKEN' \ - --data '{"query":"mutation {addProjectV2ItemById(input: {projectId: \"PROJECT_ID\" contentId: \"CONTENT_ID\"}) {item {id}}}"}' + --header 'Authorization: Bearer TOKEN' \ + --data '{"query":"mutation {addProjectV2ItemById(input: {projectId: \"PROJECT_ID\" contentId: \"CONTENT_ID\"}) {item {id}}}"}' ``` {% endcurl %} @@ -455,7 +455,7 @@ curl --request POST \ ```shell gh api graphql -f query=' mutation { - addProjectV2ItemById(input: {projectId: "PROJECT_ID" contentId: "CONTENT_ID"}) { + addProjectV2ItemById(input: {projectId: "PROJECT_ID" contentId: "CONTENT_ID"}) { item { id } @@ -488,8 +488,8 @@ The following example will add a draft issue to your project. Replace `PROJECT_I ```shell curl --request POST \ --url https://api.github.com/graphql \ - --header 'Authorization: Bearer TOKEN' \ - --data '{"query":"mutation {addProjectV2DraftIssue(input: {projectId: "PROJECT_ID" title: "TITLE" body: "BODY"}) {projectItem {id}}}"}' + --header 'Authorization: Bearer TOKEN' \ + --data '{"query":"mutation {addProjectV2DraftIssue(input: {projectId: "PROJECT_ID" title: "TITLE" body: "BODY"}) {projectItem {id}}}"}' ``` {% endcurl %} @@ -497,7 +497,7 @@ curl --request POST \ ```shell gh api graphql -f query=' mutation { - addProjectV2DraftIssue(input: {projectId: "PROJECT_ID" title: "TITLE" body: "BODY"}) { + addProjectV2DraftIssue(input: {projectId: "PROJECT_ID" title: "TITLE" body: "BODY"}) { projectItem { id } @@ -528,8 +528,8 @@ The following example will update your project's settings. Replace `PROJECT_ID` ```shell curl --request POST \ --url https://api.github.com/graphql \ ---header 'Authorization: Bearer TOKEN' \ ---data '{"query":"mutation { updateProjectV2(input: { projectId: \"PROJECT_ID\", title: \"Project title\", public: false, readme: \"# Project README\n\nA long description\", shortDescription: \"A short description\"}) { projectV2 { id, title, readme, shortDescription }}}"}' +--header 'Authorization: Bearer TOKEN' \ +--data '{"query":"mutation { updateProjectV2(input: { projectId: \"PROJECT_ID\", title: \"Project title\", public: false, readme: \"# Project README\n\nA long description\", shortDescription: \"A short description\"}) { projectV2 { id, title, readme, shortDescription }}}"}' ``` {% endcurl %} @@ -539,7 +539,7 @@ gh api graphql -f query=' mutation { updateProjectV2( input: { - projectId: "PROJECT_ID", + projectId: "PROJECT_ID", title: "Project title", public: false, readme: "# Project README\n\nA long description", @@ -565,8 +565,8 @@ The following example will update the value of a text field for an item. Replace ```shell curl --request POST \ --url https://api.github.com/graphql \ - --header 'Authorization: Bearer TOKEN' \ - --data '{"query":"mutation {updateProjectV2ItemFieldValue( input: { projectId: "PROJECT_ID" itemId: "ITEM_ID" fieldId: "FIELD_ID" value: { text: "Updated text" }}) { projectV2Item { id }}}"}' + --header 'Authorization: Bearer TOKEN' \ + --data '{"query":"mutation {updateProjectV2ItemFieldValue( input: { projectId: "PROJECT_ID" itemId: "ITEM_ID" fieldId: "FIELD_ID" value: { text: "Updated text" }}) { projectV2Item { id }}}"}' ``` {% endcurl %} @@ -576,9 +576,9 @@ gh api graphql -f query=' mutation { updateProjectV2ItemFieldValue( input: { - projectId: "PROJECT_ID" - itemId: "ITEM_ID" - fieldId: "FIELD_ID" + projectId: "PROJECT_ID" + itemId: "ITEM_ID" + fieldId: "FIELD_ID" value: { text: "Updated text" } @@ -619,8 +619,8 @@ The following example will update the value of a single select field for an item ```shell curl --request POST \ --url https://api.github.com/graphql \ - --header 'Authorization: Bearer TOKEN' \ - --data '{"query":"mutation {updateProjectV2ItemFieldValue( input: { projectId: "PROJECT_ID" itemId: "ITEM_ID" fieldId: "FIELD_ID" value: { singleSelectOptionId: "OPTION_ID" }}) { projectV2Item { id }}}"}' + --header 'Authorization: Bearer TOKEN' \ + --data '{"query":"mutation {updateProjectV2ItemFieldValue( input: { projectId: "PROJECT_ID" itemId: "ITEM_ID" fieldId: "FIELD_ID" value: { singleSelectOptionId: "OPTION_ID" }}) { projectV2Item { id }}}"}' ``` {% endcurl %} @@ -630,11 +630,11 @@ gh api graphql -f query=' mutation { updateProjectV2ItemFieldValue( input: { - projectId: "PROJECT_ID" - itemId: "ITEM_ID" - fieldId: "FIELD_ID" + projectId: "PROJECT_ID" + itemId: "ITEM_ID" + fieldId: "FIELD_ID" value: { - singleSelectOptionId: "OPTION_ID" + singleSelectOptionId: "OPTION_ID" } } ) { @@ -659,8 +659,8 @@ The following example will update the value of an iteration field for an item. ```shell curl --request POST \ --url https://api.github.com/graphql \ - --header 'Authorization: Bearer TOKEN' \ - --data '{"query":"mutation {updateProjectV2ItemFieldValue( input: { projectId: "PROJECT_ID" itemId: "ITEM_ID" fieldId: "FIELD_ID" value: { singleSelectOptionId: "OPTION_ID" }}) { projectV2Item { id }}}"}' + --header 'Authorization: Bearer TOKEN' \ + --data '{"query":"mutation {updateProjectV2ItemFieldValue( input: { projectId: "PROJECT_ID" itemId: "ITEM_ID" fieldId: "FIELD_ID" value: { singleSelectOptionId: "OPTION_ID" }}) { projectV2Item { id }}}"}' ``` {% endcurl %} @@ -670,11 +670,11 @@ gh api graphql -f query=' mutation { updateProjectV2ItemFieldValue( input: { - projectId: "PROJECT_ID" - itemId: "ITEM_ID" - fieldId: "FIELD_ID" + projectId: "PROJECT_ID" + itemId: "ITEM_ID" + fieldId: "FIELD_ID" value: { - iterationId: "ITERATION_ID" + iterationId: "ITERATION_ID" } } ) { @@ -694,8 +694,8 @@ The following example will delete an item from a project. Replace `PROJECT_ID` w ```shell curl --request POST \ --url https://api.github.com/graphql \ - --header 'Authorization: Bearer TOKEN' \ - --data '{"query":"mutation {deleteProjectV2Item(input: {projectId: \"PROJECT_ID\" itemId: \"ITEM_ID\"}) {deletedItemId}}"}' + --header 'Authorization: Bearer TOKEN' \ + --data '{"query":"mutation {deleteProjectV2Item(input: {projectId: \"PROJECT_ID\" itemId: \"ITEM_ID\"}) {deletedItemId}}"}' ``` {% endcurl %} @@ -705,8 +705,8 @@ gh api graphql -f query=' mutation { deleteProjectV2Item( input: { - projectId: "PROJECT_ID" - itemId: "ITEM_ID" + projectId: "PROJECT_ID" + itemId: "ITEM_ID" } ) { deletedItemId diff --git a/content/issues/tracking-your-work-with-issues/transferring-an-issue-to-another-repository.md b/content/issues/tracking-your-work-with-issues/transferring-an-issue-to-another-repository.md index cfd6821b28..846d43cd1c 100644 --- a/content/issues/tracking-your-work-with-issues/transferring-an-issue-to-another-repository.md +++ b/content/issues/tracking-your-work-with-issues/transferring-an-issue-to-another-repository.md @@ -50,7 +50,7 @@ People or teams who are mentioned in the issue will receive a notification letti To transfer an issue, use the `gh issue transfer` subcommand. Replace the `issue` parameter with the number or URL of the issue. Replace the `{% ifversion ghes %}hostname/{% endif %}owner/repo` parameter with the {% ifversion ghes %}URL{% else %}name{% endif %} of the repository that you want to transfer the issue to, such as `{% ifversion ghes %}https://ghe.io/{% endif %}octocat/octo-repo`. ```shell -gh issue transfer issue {% ifversion ghes %}hostname/{% endif %}owner/repo +gh issue transfer ISSUE {% ifversion ghes %}HOSTNAME/{% endif %}OWNER/REPO ``` {% endcli %} diff --git a/content/organizations/managing-git-access-to-your-organizations-repositories/about-ssh-certificate-authorities.md b/content/organizations/managing-git-access-to-your-organizations-repositories/about-ssh-certificate-authorities.md index 4a6d44a2fa..c9ebf87a04 100644 --- a/content/organizations/managing-git-access-to-your-organizations-repositories/about-ssh-certificate-authorities.md +++ b/content/organizations/managing-git-access-to-your-organizations-repositories/about-ssh-certificate-authorities.md @@ -49,7 +49,7 @@ When you issue each certificate, you must include an extension that specifies wh {% endnote %} ```shell -$ ssh-keygen -s ./ca-key -V '+1d' -I KEY-IDENTITY -O extension:login@{% data variables.product.product_url %}=USERNAME ./user-key.pub +$ ssh-keygen -s ./ca-key -V '+1d' -I KEY-IDENTITY -O extension:login@{% data variables.product.product_url %}=USERNAME ./user-key.pub ``` {% warning %} @@ -61,11 +61,11 @@ $ ssh-keygen -s ./ca-key -V '+1d' -I KEY-IDENTITY -O extension:login@{% To issue a certificate for someone who uses SSH to access multiple {% data variables.product.company_short %} products, you can include two login extensions to specify the username for each product. For example, the following command would issue a certificate for _USERNAME-1_ for the user's account for {% data variables.product.prodname_ghe_cloud %}, and _USERNAME-2_ for the user's account on {% data variables.product.prodname_ghe_managed %} or {% data variables.product.prodname_ghe_server %} at _HOSTNAME_. ```shell -$ ssh-keygen -s ./ca-key -V '+1d' -I KEY-IDENTITY -O extension:login@github.com=USERNAME-1 extension:login@HOSTNAME=USERNAME-2 ./user-key.pub +$ ssh-keygen -s ./ca-key -V '+1d' -I KEY-IDENTITY -O extension:login@github.com=USERNAME-1 extension:login@HOSTNAME=USERNAME-2 ./user-key.pub ``` You can restrict the IP addresses from which an organization member can access your organization's resources by using a `source-address` extension. The extension accepts a specific IP address or a range of IP addresses using CIDR notation. You can specify multiple addresses or ranges by separating the values with commas. For more information, see "[Classless Inter-Domain Routing](https://en.wikipedia.org/wiki/Classless_Inter-Domain_Routing#CIDR_notation)" on Wikipedia. ```shell -$ ssh-keygen -s ./ca-key -V '+1d' -I KEY-IDENTITY -O extension:login@{% data variables.product.product_url %}=USERNAME -O source-address=COMMA-SEPARATED-LIST-OF-IP-ADDRESSES-OR-RANGES ./user-key.pub +$ ssh-keygen -s ./ca-key -V '+1d' -I KEY-IDENTITY -O extension:login@{% data variables.product.product_url %}=USERNAME -O source-address=COMMA-SEPARATED-LIST-OF-IP-ADDRESSES-OR-RANGES ./user-key.pub ``` diff --git a/content/organizations/managing-organization-settings/verifying-or-approving-a-domain-for-your-organization.md b/content/organizations/managing-organization-settings/verifying-or-approving-a-domain-for-your-organization.md index a31fe1399b..76524a2ce0 100644 --- a/content/organizations/managing-organization-settings/verifying-or-approving-a-domain-for-your-organization.md +++ b/content/organizations/managing-organization-settings/verifying-or-approving-a-domain-for-your-organization.md @@ -65,7 +65,7 @@ To verify a domain, you must have access to modify domain records with your doma {% data reusables.organizations.add-dns-txt-record %} 1. Wait for your DNS configuration to change, which may take up to 72 hours. You can confirm your DNS configuration has changed by running the `dig` command on the command line, replacing `ORGANIZATION` with the name of your organization and `example.com` with the domain you'd like to verify. You should see your new TXT record listed in the command output. ```shell - $ dig _github-challenge-ORGANIZATION.example.com +nostats +nocomments +nocmd TXT + $ dig _github-challenge-ORGANIZATION.example.com +nostats +nocomments +nocmd TXT ``` 1. After confirming your TXT record is added to your DNS, follow steps one through three above to navigate to your organization's approved and verified domains. {% data reusables.organizations.continue-verifying-domain %} diff --git a/content/packages/learn-github-packages/connecting-a-repository-to-a-package.md b/content/packages/learn-github-packages/connecting-a-repository-to-a-package.md index 938cf7933b..fcdeb9ed53 100644 --- a/content/packages/learn-github-packages/connecting-a-repository-to-a-package.md +++ b/content/packages/learn-github-packages/connecting-a-repository-to-a-package.md @@ -36,7 +36,7 @@ By connecting a repository to a package, the package landing page will show info 1. In your Dockerfile, add this line, replacing {% ifversion ghes %}`HOSTNAME`, {% endif %}`OWNER` and `REPO` with your details: ```shell - LABEL org.opencontainers.image.source=https://{% ifversion fpt or ghec %}github.com{% else %}HOSTNAME{% endif %}/OWNER/REPO + LABEL org.opencontainers.image.source=https://{% ifversion fpt or ghec %}github.com{% else %}HOSTNAME{% endif %}/OWNER/REPO ``` For example, if you're the user `monalisa` and own `my-repo`, and {% data variables.product.product_location %} hostname is `github.companyname.com`, you would add this line to your Dockerfile: ```shell diff --git a/content/packages/quickstart.md b/content/packages/quickstart.md index 839256b3ce..367b54eb17 100644 --- a/content/packages/quickstart.md +++ b/content/packages/quickstart.md @@ -21,8 +21,8 @@ In this guide, you'll create a {% data variables.product.prodname_actions %} wor 1. Create a new repository on {% data variables.product.prodname_dotcom %}, adding the `.gitignore` for Node. For more information, see "[Creating a new repository](/github/creating-cloning-and-archiving-repositories/creating-a-new-repository)." 2. Clone the repository to your local machine. ```shell - $ git clone https://{% ifversion ghes or ghae %}YOUR-HOSTNAME{% else %}github.com{% endif %}/YOUR-USERNAME/YOUR-REPOSITORY.git - $ cd YOUR-REPOSITORY + $ git clone https://{% ifversion ghes or ghae %}YOUR-HOSTNAME{% else %}github.com{% endif %}/YOUR-USERNAME/YOUR-REPOSITORY.git + $ cd YOUR-REPOSITORY ``` 3. Create an `index.js` file and add a basic alert to say "Hello world!" {% raw %} @@ -35,9 +35,9 @@ In this guide, you'll create a {% data variables.product.prodname_actions %} wor ```shell $ npm init ... - package name: @YOUR-USERNAME/YOUR-REPOSITORY + package name: @YOUR-USERNAME/YOUR-REPOSITORY ... - test command: exit 0 + test command: exit 0 ... ``` {% endraw %} @@ -89,7 +89,7 @@ In this guide, you'll create a {% data variables.product.prodname_actions %} wor - Add an NPM configuration file for the repository by creating a `.npmrc` file in the root directory with the contents: {% raw %} ```shell - @YOUR-USERNAME:registry=https://npm.pkg.github.com + @YOUR-USERNAME:registry=https://npm.pkg.github.com ``` {% endraw %} - Edit the `package.json` file and specify the `publishConfig` key: @@ -104,7 +104,7 @@ In this guide, you'll create a {% data variables.product.prodname_actions %} wor ```shell $ git add .github/workflows/release-package.yml # Also add the file you created or edited in the previous step. - $ git add .npmrc or package.json + $ git add .npmrc or package.json $ git commit -m "workflow to publish package" $ git push ``` diff --git a/content/packages/working-with-a-github-packages-registry/working-with-the-docker-registry.md b/content/packages/working-with-a-github-packages-registry/working-with-the-docker-registry.md index dc433c384c..86d916e35e 100644 --- a/content/packages/working-with-a-github-packages-registry/working-with-the-docker-registry.md +++ b/content/packages/working-with-a-github-packages-registry/working-with-the-docker-registry.md @@ -53,7 +53,7 @@ To keep your credentials secure, we recommend you save your personal access toke {% ifversion fpt or ghec %} {% raw %} ```shell - $ cat ~/TOKEN.txt | docker login https://docker.pkg.github.com -u USERNAME --password-stdin + $ cat ~/TOKEN.txt | docker login https://docker.pkg.github.com -u USERNAME --password-stdin ``` {% endraw %} {% endif %} @@ -64,7 +64,7 @@ If your instance has subdomain isolation enabled: {% endif %} {% raw %} ```shell - $ cat ~/TOKEN.txt | docker login docker.HOSTNAME -u USERNAME --password-stdin + $ cat ~/TOKEN.txt | docker login docker.HOSTNAME -u USERNAME --password-stdin ``` {% endraw %} {% ifversion ghes %} @@ -72,7 +72,7 @@ If your instance has subdomain isolation disabled: {% raw %} ```shell - $ cat ~/TOKEN.txt | docker login HOSTNAME -u USERNAME --password-stdin + $ cat ~/TOKEN.txt | docker login HOSTNAME -u USERNAME --password-stdin ``` {% endraw %} {% endif %} @@ -102,62 +102,62 @@ For more information, see "[Docker login](https://docs.docker.com/engine/referen $ docker images > < > > REPOSITORY TAG IMAGE ID CREATED SIZE - > IMAGE_NAME VERSION IMAGE_ID 4 weeks ago 1.11MB + > IMAGE_NAME VERSION IMAGE_ID 4 weeks ago 1.11MB ``` 2. Using the Docker image ID, tag the docker image, replacing *OWNER* with the name of the user or organization account that owns the repository, *REPOSITORY* with the name of the repository containing your project, *IMAGE_NAME* with name of the package or image,{% ifversion ghes or ghae %} *HOSTNAME* with the hostname of {% data variables.product.product_location %},{% endif %} and *VERSION* with package version at build time. {% ifversion fpt or ghec %} ```shell - $ docker tag IMAGE_ID docker.pkg.github.com/OWNER/REPOSITORY/IMAGE_NAME:VERSION + $ docker tag IMAGE_ID docker.pkg.github.com/OWNER/REPOSITORY/IMAGE_NAME:VERSION ``` {% else %} {% ifversion ghes %} If your instance has subdomain isolation enabled: {% endif %} ```shell - $ docker tag IMAGE_ID docker.HOSTNAME/OWNER/REPOSITORY/IMAGE_NAME:VERSION + $ docker tag IMAGE_ID docker.HOSTNAME/OWNER/REPOSITORY/IMAGE_NAME:VERSION ``` {% ifversion ghes %} If your instance has subdomain isolation disabled: ```shell - $ docker tag IMAGE_ID HOSTNAME/OWNER/REPOSITORY/IMAGE_NAME:VERSION + $ docker tag IMAGE_ID HOSTNAME/OWNER/REPOSITORY/IMAGE_NAME:VERSION ``` {% endif %} {% endif %} 3. If you haven't already built a docker image for the package, build the image, replacing *OWNER* with the name of the user or organization account that owns the repository, *REPOSITORY* with the name of the repository containing your project, *IMAGE_NAME* with name of the package or image, *VERSION* with package version at build time,{% ifversion ghes or ghae %} *HOSTNAME* with the hostname of {% data variables.product.product_location %},{% endif %} and *PATH* to the image if it isn't in the current working directory. {% ifversion fpt or ghec %} ```shell - $ docker build -t docker.pkg.github.com/OWNER/REPOSITORY/IMAGE_NAME:VERSION PATH + $ docker build -t docker.pkg.github.com/OWNER/REPOSITORY/IMAGE_NAME:VERSION PATH ``` {% else %} {% ifversion ghes %} If your instance has subdomain isolation enabled: {% endif %} ```shell - $ docker build -t docker.HOSTNAME/OWNER/REPOSITORY/IMAGE_NAME:VERSION PATH + $ docker build -t docker.HOSTNAME/OWNER/REPOSITORY/IMAGE_NAME:VERSION PATH ``` {% ifversion ghes %} If your instance has subdomain isolation disabled: ```shell - $ docker build -t HOSTNAME/OWNER/REPOSITORY/IMAGE_NAME:VERSION PATH + $ docker build -t HOSTNAME/OWNER/REPOSITORY/IMAGE_NAME:VERSION PATH ``` {% endif %} {% endif %} 4. Publish the image to {% data variables.product.prodname_registry %}. {% ifversion fpt or ghec %} ```shell - $ docker push docker.pkg.github.com/OWNER/REPOSITORY/IMAGE_NAME:VERSION + $ docker push docker.pkg.github.com/OWNER/REPOSITORY/IMAGE_NAME:VERSION ``` {% else %} {% ifversion ghes %} If your instance has subdomain isolation enabled: {% endif %} ```shell - $ docker push docker.HOSTNAME/OWNER/REPOSITORY/IMAGE_NAME:VERSION + $ docker push docker.HOSTNAME/OWNER/REPOSITORY/IMAGE_NAME:VERSION ``` {% ifversion ghes %} If your instance has subdomain isolation disabled: ```shell - $ docker push HOSTNAME/OWNER/REPOSITORY/IMAGE_NAME:VERSION + $ docker push HOSTNAME/OWNER/REPOSITORY/IMAGE_NAME:VERSION ``` {% endif %} {% endif %} @@ -198,10 +198,10 @@ $ docker images > monalisa 1.0 c75bebcdd211 4 weeks ago 1.11MB # Tag the image with OWNER/REPO/IMAGE_NAME -$ docker tag c75bebcdd211 docker.HOSTNAME/octocat/octo-app/monalisa:1.0 +$ docker tag c75bebcdd211 docker.HOSTNAME/octocat/octo-app/monalisa:1.0 # Push the image to {% data variables.product.prodname_registry %} -$ docker push docker.HOSTNAME/octocat/octo-app/monalisa:1.0 +$ docker push docker.HOSTNAME/octocat/octo-app/monalisa:1.0 ``` {% endif %} @@ -222,10 +222,10 @@ $ docker push docker.pkg.github.com/octocat/octo-app/monalisa:1.0 ```shell # Build the image with docker.HOSTNAME/OWNER/REPOSITORY/IMAGE_NAME:VERSION # Assumes Dockerfile resides in the current working directory (.) -$ docker build -t docker.HOSTNAME/octocat/octo-app/monalisa:1.0 . +$ docker build -t docker.HOSTNAME/octocat/octo-app/monalisa:1.0 . # Push the image to {% data variables.product.prodname_registry %} -$ docker push docker.HOSTNAME/octocat/octo-app/monalisa:1.0 +$ docker push docker.HOSTNAME/octocat/octo-app/monalisa:1.0 ``` {% endif %} @@ -237,7 +237,7 @@ You can use the `docker pull` command to install a docker image from {% data var {% ifversion fpt or ghec %} ```shell -$ docker pull docker.pkg.github.com/OWNER/REPOSITORY/IMAGE_NAME:TAG_NAME +$ docker pull docker.pkg.github.com/OWNER/REPOSITORY/IMAGE_NAME:TAG_NAME ``` {% else %} @@ -245,12 +245,12 @@ $ docker pull docker.pkg.github.com/OWNER/REPOSITORY/IMAGE_NAME:TAG_NAMEHOSTNAME/OWNER/REPOSITORY/IMAGE_NAME:TAG_NAME +$ docker pull docker.HOSTNAME/OWNER/REPOSITORY/IMAGE_NAME:TAG_NAME ``` {% ifversion ghes %} If your instance has subdomain isolation disabled: ```shell -$ docker pull HOSTNAME/OWNER/REPOSITORY/IMAGE_NAME:TAG_NAME +$ docker pull HOSTNAME/OWNER/REPOSITORY/IMAGE_NAME:TAG_NAME ``` {% endif %} {% endif %} diff --git a/content/packages/working-with-a-github-packages-registry/working-with-the-gradle-registry.md b/content/packages/working-with-a-github-packages-registry/working-with-the-gradle-registry.md index 7ff16231a5..dc5f62a139 100644 --- a/content/packages/working-with-a-github-packages-registry/working-with-the-gradle-registry.md +++ b/content/packages/working-with-a-github-packages-registry/working-with-the-gradle-registry.md @@ -57,10 +57,10 @@ publishing { repositories { maven { name = "GitHubPackages" - url = uri("https://{% ifversion fpt or ghec %}maven.pkg.github.com{% else %}REGISTRY-URL{% endif %}/OWNER/REPOSITORY") + url = uri("https://{% ifversion fpt or ghec %}maven.pkg.github.com{% else %}REGISTRY-URL{% endif %}/OWNER/REPOSITORY") credentials { - username = project.findProperty("gpr.user") ?: System.getenv("USERNAME") - password = project.findProperty("gpr.key") ?: System.getenv("TOKEN") + username = project.findProperty("gpr.user") ?: System.getenv("USERNAME") + password = project.findProperty("gpr.key") ?: System.getenv("TOKEN") } } } @@ -84,10 +84,10 @@ subprojects { repositories { maven { name = "GitHubPackages" - url = uri("https://{% ifversion fpt or ghec %}maven.pkg.github.com{% else %}REGISTRY-URL{% endif %}/OWNER/REPOSITORY") + url = uri("https://{% ifversion fpt or ghec %}maven.pkg.github.com{% else %}REGISTRY-URL{% endif %}/OWNER/REPOSITORY") credentials { - username = project.findProperty("gpr.user") ?: System.getenv("USERNAME") - password = project.findProperty("gpr.key") ?: System.getenv("TOKEN") + username = project.findProperty("gpr.user") ?: System.getenv("USERNAME") + password = project.findProperty("gpr.key") ?: System.getenv("TOKEN") } } } @@ -110,10 +110,10 @@ publishing { repositories { maven { name = "GitHubPackages" - url = uri("https://{% ifversion fpt or ghec %}maven.pkg.github.com{% else %}REGISTRY-URL{% endif %}/OWNER/REPOSITORY") + url = uri("https://{% ifversion fpt or ghec %}maven.pkg.github.com{% else %}REGISTRY-URL{% endif %}/OWNER/REPOSITORY") credentials { - username = project.findProperty("gpr.user") as String? ?: System.getenv("USERNAME") - password = project.findProperty("gpr.key") as String? ?: System.getenv("TOKEN") + username = project.findProperty("gpr.user") as String? ?: System.getenv("USERNAME") + password = project.findProperty("gpr.key") as String? ?: System.getenv("TOKEN") } } } @@ -137,10 +137,10 @@ subprojects { repositories { maven { name = "GitHubPackages" - url = uri("https://{% ifversion fpt or ghec %}maven.pkg.github.com{% else %}REGISTRY-URL{% endif %}/OWNER/REPOSITORY") + url = uri("https://{% ifversion fpt or ghec %}maven.pkg.github.com{% else %}REGISTRY-URL{% endif %}/OWNER/REPOSITORY") credentials { - username = project.findProperty("gpr.user") as String? ?: System.getenv("USERNAME") - password = project.findProperty("gpr.key") as String? ?: System.getenv("TOKEN") + username = project.findProperty("gpr.user") as String? ?: System.getenv("USERNAME") + password = project.findProperty("gpr.key") as String? ?: System.getenv("TOKEN") } } } @@ -192,10 +192,10 @@ To use a published package from {% data variables.product.prodname_registry %}, ```shell repositories { maven { - url = uri("https://{% ifversion fpt or ghec %}maven.pkg.github.com{% else %}REGISTRY-URL{% endif %}/OWNER/REPOSITORY") + url = uri("https://{% ifversion fpt or ghec %}maven.pkg.github.com{% else % REGISTRY-URL{% endif %}/OWNER/REPOSITORY") credentials { - username = project.findProperty("gpr.user") ?: System.getenv("USERNAME") - password = project.findProperty("gpr.key") ?: System.getenv("TOKEN") + username = project.findProperty("gpr.user") ?: System.getenv("USERNAME") + password = project.findProperty("gpr.key") ?: System.getenv("TOKEN") } } } @@ -204,10 +204,10 @@ To use a published package from {% data variables.product.prodname_registry %}, ```shell repositories { maven { - url = uri("https://{% ifversion fpt or ghec %}maven.pkg.github.com{% else %}REGISTRY-URL{% endif %}/OWNER/REPOSITORY") + url = uri("https://{% ifversion fpt or ghec %}maven.pkg.github.com{% else %}REGISTRY-URL{% endif %}/OWNER/REPOSITORY") credentials { - username = project.findProperty("gpr.user") as String? ?: System.getenv("USERNAME") - password = project.findProperty("gpr.key") as String? ?: System.getenv("TOKEN") + username = project.findProperty("gpr.user") as String? ?: System.getenv("USERNAME") + password = project.findProperty("gpr.key") as String? ?: System.getenv("TOKEN") } } } diff --git a/content/packages/working-with-a-github-packages-registry/working-with-the-npm-registry.md b/content/packages/working-with-a-github-packages-registry/working-with-the-npm-registry.md index 8007cd2b6f..cc0d74151d 100644 --- a/content/packages/working-with-a-github-packages-registry/working-with-the-npm-registry.md +++ b/content/packages/working-with-a-github-packages-registry/working-with-the-npm-registry.md @@ -55,14 +55,14 @@ If your instance has subdomain isolation enabled: {% endif %} ```shell -//{% ifversion fpt or ghec %}npm.pkg.github.com{% else %}npm.HOSTNAME/{% endif %}/:_authToken=TOKEN +//{% ifversion fpt or ghec %}npm.pkg.github.com{% else %}npm.HOSTNAME/{% endif %}/:_authToken=TOKEN ``` {% ifversion ghes %} If your instance has subdomain isolation disabled: ```shell -//HOSTNAME/_registry/npm/:_authToken=TOKEN +//HOSTNAME/_registry/npm/:_authToken=TOKEN ``` {% endif %} @@ -75,21 +75,21 @@ If your instance has subdomain isolation enabled: {% endif %} ```shell -$ npm login --scope=@OWNER --registry=https://{% ifversion fpt or ghec %}npm.pkg.github.com{% else %}npm.HOSTNAME/{% endif %} +$ npm login --scope=@OWNER --registry=https://{% ifversion fpt or ghec %}npm.pkg.github.com{% else %}npm.HOSTNAME/{% endif %} -> Username: USERNAME -> Password: TOKEN -> Email: PUBLIC-EMAIL-ADDRESS +> Username: USERNAME +> Password: TOKEN +> Email: PUBLIC-EMAIL-ADDRESS ``` {% ifversion ghes %} If your instance has subdomain isolation disabled: ```shell -$ npm login --scope=@OWNER --registry=https://HOSTNAME/_registry/npm/ -> Username: USERNAME -> Password: TOKEN -> Email: PUBLIC-EMAIL-ADDRESS +$ npm login --scope=@OWNER --registry=https://HOSTNAME/_registry/npm/ +> Username: USERNAME +> Password: TOKEN +> Email: PUBLIC-EMAIL-ADDRESS ``` {% endif %} @@ -142,14 +142,14 @@ You can use `publishConfig` element in the *package.json* file to specify the re {% endif %} ```shell "publishConfig": { - "registry":"https://{% ifversion fpt or ghec %}npm.pkg.github.com{% else %}npm.HOSTNAME/{% endif %}" + "registry":"https://{% ifversion fpt or ghec %}npm.pkg.github.com{% else %}npm.HOSTNAME/{% endif %}" }, ``` {% ifversion ghes %} If your instance has subdomain isolation disabled: ```shell "publishConfig": { - "registry":"https://HOSTNAME/_registry/npm/" + "registry":"https://HOSTNAME/_registry/npm/" }, ``` {% endif %} @@ -165,7 +165,7 @@ To ensure the repository's URL is correct, replace REPOSITORY with the name of t {% data variables.product.prodname_registry %} will match the repository based on the URL, instead of based on the package name. ```shell -"repository":"https://{% ifversion fpt or ghec %}github.com{% else %}HOSTNAME{% endif %}/OWNER/REPOSITORY", +"repository":"https://{% ifversion fpt or ghec %}github.com{% else %}HOSTNAME{% endif %}/OWNER/REPOSITORY", ``` ## Installing a package @@ -213,16 +213,16 @@ If your instance has subdomain isolation enabled: {% endif %} ```shell -@OWNER:registry=https://{% ifversion fpt or ghec %}npm.pkg.github.com{% else %}npm.HOSTNAME{% endif %} -@OWNER:registry=https://{% ifversion fpt or ghec %}npm.pkg.github.com{% else %}npm.HOSTNAME{% endif %} +@OWNER:registry=https://{% ifversion fpt or ghec %}npm.pkg.github.com{% else %}npm.HOSTNAME{% endif %} +@OWNER:registry=https://{% ifversion fpt or ghec %}npm.pkg.github.com{% else %}npm.HOSTNAME{% endif %} ``` {% ifversion ghes %} If your instance has subdomain isolation disabled: ```shell -@OWNER:registry=https://HOSTNAME/_registry/npm -@OWNER:registry=https://HOSTNAME/_registry/npm +@OWNER:registry=https://HOSTNAME/_registry/npm +@OWNER:registry=https://HOSTNAME/_registry/npm ``` {% endif %} diff --git a/content/packages/working-with-a-github-packages-registry/working-with-the-nuget-registry.md b/content/packages/working-with-a-github-packages-registry/working-with-the-nuget-registry.md index fc4326ab48..2693ca8d8b 100644 --- a/content/packages/working-with-a-github-packages-registry/working-with-the-nuget-registry.md +++ b/content/packages/working-with-a-github-packages-registry/working-with-the-nuget-registry.md @@ -106,7 +106,7 @@ If you don't already have a PAT to use for your account on {% ifversion ghae %}{ 3. Publish the package using your PAT as the API key. ```shell - dotnet nuget push "bin/Release/OctocatApp.1.0.0.nupkg" --api-key YOUR_GITHUB_PAT --source "github" + dotnet nuget push "bin/Release/OctocatApp.1.0.0.nupkg" --api-key YOUR_GITHUB_PAT --source "github" ``` {% data reusables.package_registry.viewing-packages %} diff --git a/content/packages/working-with-a-github-packages-registry/working-with-the-rubygems-registry.md b/content/packages/working-with-a-github-packages-registry/working-with-the-rubygems-registry.md index 22800bd5c6..533df4844e 100644 --- a/content/packages/working-with-a-github-packages-registry/working-with-the-rubygems-registry.md +++ b/content/packages/working-with-a-github-packages-registry/working-with-the-rubygems-registry.md @@ -60,7 +60,7 @@ For example, you would create or edit a *~/.gem/credentials* to include the foll ```shell --- -:github: Bearer TOKEN +:github: Bearer TOKEN ``` To install gems, you need to authenticate to {% data variables.product.prodname_registry %} by editing the *~/.gemrc* file for your project to include `https://USERNAME:TOKEN@{% ifversion fpt or ghec %}rubygems.pkg.github.com{% else %}REGISTRY-URL{% endif %}/OWNER/`. You must replace: @@ -89,7 +89,7 @@ If you don't have a *~/.gemrc* file, create a new *~/.gemrc* file using this exa To authenticate with Bundler, configure Bundler to use your personal access token, replacing *USERNAME* with your {% data variables.product.prodname_dotcom %} username, *TOKEN* with your personal access token, and *OWNER* with the name of the user or organization account that owns the repository containing your project.{% ifversion ghes %} Replace `REGISTRY-URL` with the URL for your instance's RubyGems registry. If your instance has subdomain isolation enabled, use `rubygems.HOSTNAME`. If your instance has subdomain isolation disabled, use `HOSTNAME/_registry/rubygems`. In either case, replace *HOSTNAME* with the hostname of your {% data variables.product.prodname_ghe_server %} instance.{% elsif ghae %}Replace `REGISTRY-URL` with the URL for your instance's Rubygems registry, `rubygems.HOSTNAME`. Replace *HOSTNAME* with the hostname of {% data variables.product.product_location %}.{% endif %} ```shell -$ bundle config https://{% ifversion fpt or ghec %}rubygems.pkg.github.com{% else %}REGISTRY-URL{% endif %}/OWNER USERNAME:TOKEN +$ bundle config https://{% ifversion fpt or ghec %}rubygems.pkg.github.com{% else %}REGISTRY-URL{% endif %}/OWNER USERNAME:TOKEN ``` ## Publishing a package @@ -107,8 +107,8 @@ $ bundle config https://{% ifversion fpt or ghec %}rubygems.pkg.github.com{% els ```shell $ gem push --key github \ - --host https://{% ifversion fpt or ghec %}rubygems.pkg.github.com{% else %}REGISTRY-URL{% endif %}/OWNER \ - OCTO-GEM-0.0.1.gem + --host https://{% ifversion fpt or ghec %}rubygems.pkg.github.com{% else %}REGISTRY-URL{% endif %}/OWNER \ + OCTO-GEM-0.0.1.gem ``` ## Publishing multiple packages to the same repository diff --git a/content/pages/configuring-a-custom-domain-for-your-github-pages-site/managing-a-custom-domain-for-your-github-pages-site.md b/content/pages/configuring-a-custom-domain-for-your-github-pages-site/managing-a-custom-domain-for-your-github-pages-site.md index 05e0b384b9..ff6270317a 100644 --- a/content/pages/configuring-a-custom-domain-for-your-github-pages-site/managing-a-custom-domain-for-your-github-pages-site.md +++ b/content/pages/configuring-a-custom-domain-for-your-github-pages-site/managing-a-custom-domain-for-your-github-pages-site.md @@ -53,11 +53,11 @@ To set up a `www` or custom subdomain, such as `www.example.com` or `blog.exampl {% data reusables.command_line.open_the_multi_os_terminal %} 6. To confirm that your DNS record configured correctly, use the `dig` command, replacing _WWW.EXAMPLE.COM_ with your subdomain. ```shell - $ dig WWW.EXAMPLE.COM +nostats +nocomments +nocmd - > ;WWW.EXAMPLE.COM. IN A - > WWW.EXAMPLE.COM. 3592 IN CNAME YOUR-USERNAME.github.io. - > YOUR-USERNAME.github.io. 43192 IN CNAME GITHUB-PAGES-SERVER . - > GITHUB-PAGES-SERVER . 22 IN A 192.0.2.1 + $ dig WWW.EXAMPLE.COM +nostats +nocomments +nocmd + > ;WWW.EXAMPLE.COM. IN A + > WWW.EXAMPLE.COM. 3592 IN CNAME YOUR-USERNAME.github.io. + > YOUR-USERNAME.github.io. 43192 IN CNAME GITHUB-PAGES-SERVER . + > GITHUB-PAGES-SERVER . 22 IN A 192.0.2.1 ``` {% data reusables.pages.build-locally-download-cname %} {% data reusables.pages.enforce-https-custom-domain %} @@ -95,19 +95,19 @@ To set up an apex domain, such as `example.com`, you must configure a custom dom 6. To confirm that your DNS record configured correctly, use the `dig` command, replacing _EXAMPLE.COM_ with your apex domain. Confirm that the results match the IP addresses for {% data variables.product.prodname_pages %} above. - For `A` records. ```shell - $ dig EXAMPLE.COM +noall +answer -t A - > EXAMPLE.COM 3600 IN A 185.199.108.153 - > EXAMPLE.COM 3600 IN A 185.199.109.153 - > EXAMPLE.COM 3600 IN A 185.199.110.153 - > EXAMPLE.COM 3600 IN A 185.199.111.153 + $ dig EXAMPLE.COM +noall +answer -t A + > EXAMPLE.COM 3600 IN A 185.199.108.153 + > EXAMPLE.COM 3600 IN A 185.199.109.153 + > EXAMPLE.COM 3600 IN A 185.199.110.153 + > EXAMPLE.COM 3600 IN A 185.199.111.153 ``` - For `AAAA` records. ```shell - $ dig EXAMPLE.COM +noall +answer -t AAAA - > EXAMPLE.COM 3600 IN AAAA 2606:50c0:8000::153 - > EXAMPLE.COM 3600 IN AAAA 2606:50c0:8001::153 - > EXAMPLE.COM 3600 IN AAAA 2606:50c0:8002::153 - > EXAMPLE.COM 3600 IN AAAA 2606:50c0:8003::153 + $ dig EXAMPLE.COM +noall +answer -t AAAA + > EXAMPLE.COM 3600 IN AAAA 2606:50c0:8000::153 + > EXAMPLE.COM 3600 IN AAAA 2606:50c0:8001::153 + > EXAMPLE.COM 3600 IN AAAA 2606:50c0:8002::153 + > EXAMPLE.COM 3600 IN AAAA 2606:50c0:8003::153 ``` {% data reusables.pages.build-locally-download-cname %} {% data reusables.pages.enforce-https-custom-domain %} @@ -123,11 +123,11 @@ After you configure the apex domain, you must configure a CNAME record with your 1. Navigate to your DNS provider and create a `CNAME` record that points `www.example.com` to the default domain for your site: `.github.io` or `.github.io`. Do not include the repository name. {% data reusables.pages.contact-dns-provider %} {% data reusables.pages.default-domain-information %} 2. To confirm that your DNS record configured correctly, use the `dig` command, replacing _WWW.EXAMPLE.COM_ with your `www` subdomain variant. ```shell - $ dig WWW.EXAMPLE.COM +nostats +nocomments +nocmd - > ;WWW.EXAMPLE.COM. IN A - > WWW.EXAMPLE.COM. 3592 IN CNAME YOUR-USERNAME.github.io. - > YOUR-USERNAME.github.io. 43192 IN CNAME GITHUB-PAGES-SERVER . - > GITHUB-PAGES-SERVER . 22 IN A 192.0.2.1 + $ dig WWW.EXAMPLE.COM +nostats +nocomments +nocmd + > ;WWW.EXAMPLE.COM IN A + > WWW.EXAMPLE.COM. 3592 IN CNAME YOUR-USERNAME.github.io. + > YOUR-USERNAME.github.io. 43192 IN CNAME GITHUB-PAGES-SERVER. + > GITHUB-PAGES-SERVER. 22 IN A 192.0.2.1 ``` ## Removing a custom domain diff --git a/content/pages/setting-up-a-github-pages-site-with-jekyll/adding-content-to-your-github-pages-site-using-jekyll.md b/content/pages/setting-up-a-github-pages-site-with-jekyll/adding-content-to-your-github-pages-site-using-jekyll.md index d651bc8152..1cc2c09500 100644 --- a/content/pages/setting-up-a-github-pages-site-with-jekyll/adding-content-to-your-github-pages-site-using-jekyll.md +++ b/content/pages/setting-up-a-github-pages-site-with-jekyll/adding-content-to-your-github-pages-site-using-jekyll.md @@ -39,8 +39,8 @@ Your theme includes default layouts, includes, and stylesheets that will automat 4. Add the following YAML frontmatter to the top of the file, replacing _PAGE TITLE_ with the page's title and _URL-PATH_ with a path you want for the page's URL. For example, if the base URL of your site is `https://octocat.github.io` and your _URL-PATH_ is `/about/contact/`, your page will be located at `https://octocat.github.io/about/contact`. ```shell layout: page - title: "PAGE TITLE" - permalink: /URL-PATH/ + title: "PAGE-TITLE" + permalink: /URL-PATH ``` 5. Below the frontmatter, add content for your page. {% data reusables.files.write_commit_message %} @@ -62,9 +62,9 @@ Your theme includes default layouts, includes, and stylesheets that will automat 4. Add the following YAML frontmatter to the top of the file, replacing _POST TITLE_ with the post's title, _YYYY-MM-DD hh:mm:ss -0000_ with the date and time for the post, and _CATEGORY-1_ and _CATEGORY-2_ with as many categories you want for your post. ```shell layout: post - title: "POST TITLE" - date: YYYY-MM-DD hh:mm:ss -0000 - categories: CATEGORY-1 CATEGORY-2 + title: "POST-TITLE" + date: YYYY-MM-DD hh:mm:ss -0000 + categories: CATEGORY-1 CATEGORY-2 ``` 5. Below the frontmatter, add content for your post. {% data reusables.files.write_commit_message %} diff --git a/content/pages/setting-up-a-github-pages-site-with-jekyll/creating-a-github-pages-site-with-jekyll.md b/content/pages/setting-up-a-github-pages-site-with-jekyll/creating-a-github-pages-site-with-jekyll.md index 925365fc4d..685799724c 100644 --- a/content/pages/setting-up-a-github-pages-site-with-jekyll/creating-a-github-pages-site-with-jekyll.md +++ b/content/pages/setting-up-a-github-pages-site-with-jekyll/creating-a-github-pages-site-with-jekyll.md @@ -45,17 +45,17 @@ Before you can use Jekyll to create a {% data variables.product.prodname_pages % {% data reusables.command_line.open_the_multi_os_terminal %} 1. If you don't already have a local copy of your repository, navigate to the location where you want to store your site's source files, replacing _PARENT-FOLDER_ with the folder you want to contain the folder for your repository. ```shell - $ cd PARENT-FOLDER + $ cd PARENT-FOLDER ``` 1. If you haven't already, initialize a local Git repository, replacing _REPOSITORY-NAME_ with the name of your repository. ```shell - $ git init REPOSITORY-NAME + $ git init REPOSITORY-NAME > Initialized empty Git repository in /Users/octocat/my-site/.git/ # Creates a new folder on your computer, initialized as a Git repository ``` 4. Change directories to the repository. ```shell - $ cd REPOSITORY-NAME + $ cd REPOSITORY-NAME # Changes the working directory ``` {% data reusables.pages.decide-publishing-source %} @@ -106,14 +106,14 @@ git commit -m 'Initial GitHub pages site with Jekyll' 1. Add your repository on {% ifversion ghae %}{% data variables.product.product_name %}{% else %}{% data variables.product.product_location %}{% endif %} as a remote, replacing {% ifversion ghes or ghae %}_HOSTNAME_ with your enterprise's hostname,{% endif %} _USER_ with the account that owns the repository{% ifversion ghes or ghae %},{% endif %} and _REPOSITORY_ with the name of the repository. ```shell {% ifversion fpt or ghec %} -$ git remote add origin https://github.com/USER/REPOSITORY.git +$ git remote add origin https://github.com/USER/REPOSITORY.git {% else %} -$ git remote add origin https://HOSTNAME/USER/REPOSITORY.git +$ git remote add origin https://HOSTNAME/USER/REPOSITORY.git {% endif %} ``` 1. Push the repository to {% data variables.product.product_name %}, replacing _BRANCH_ with the name of the branch you're working on. ```shell - $ git push -u origin BRANCH + $ git push -u origin BRANCH ``` {% data reusables.pages.configure-publishing-source %} {% data reusables.pages.navigate-site-repo %} diff --git a/content/pull-requests/collaborating-with-pull-requests/addressing-merge-conflicts/about-merge-conflicts.md b/content/pull-requests/collaborating-with-pull-requests/addressing-merge-conflicts/about-merge-conflicts.md index 46fd83c6c2..10630f1a54 100644 --- a/content/pull-requests/collaborating-with-pull-requests/addressing-merge-conflicts/about-merge-conflicts.md +++ b/content/pull-requests/collaborating-with-pull-requests/addressing-merge-conflicts/about-merge-conflicts.md @@ -30,7 +30,7 @@ To resolve a merge conflict, you must manually edit the conflicted file to selec If you have a merge conflict on the command line, you cannot push your local changes to {% data variables.product.product_name %} until you resolve the merge conflict locally on your computer. If you try merging branches on the command line that have a merge conflict, you'll get an error message. For more information, see "[Resolving a merge conflict using the command line](/articles/resolving-a-merge-conflict-using-the-command-line/)." ```shell -$ git merge BRANCH-NAME +$ git merge BRANCH-NAME > Auto-merging styleguide.md > CONFLICT (content): Merge conflict in styleguide.md > Automatic merge failed; fix conflicts and then commit the result diff --git a/content/pull-requests/collaborating-with-pull-requests/addressing-merge-conflicts/resolving-a-merge-conflict-using-the-command-line.md b/content/pull-requests/collaborating-with-pull-requests/addressing-merge-conflicts/resolving-a-merge-conflict-using-the-command-line.md index 7354246bea..dbd648bfc3 100644 --- a/content/pull-requests/collaborating-with-pull-requests/addressing-merge-conflicts/resolving-a-merge-conflict-using-the-command-line.md +++ b/content/pull-requests/collaborating-with-pull-requests/addressing-merge-conflicts/resolving-a-merge-conflict-using-the-command-line.md @@ -33,7 +33,7 @@ For example, if you and another person both edited the file _styleguide.md_ on t {% data reusables.command_line.open_the_multi_os_terminal %} 2. Navigate into the local Git repository that has the merge conflict. ```shell - cd REPOSITORY-NAME + cd REPOSITORY-NAME ``` 3. Generate a list of the files affected by the merge conflict. In this example, the file *styleguide.md* has a merge conflict. ```shell @@ -85,7 +85,7 @@ For example, if you edited a file, such as *README.md*, and another person remov {% data reusables.command_line.open_the_multi_os_terminal %} 2. Navigate into the local Git repository that has the merge conflict. ```shell - cd REPOSITORY-NAME + cd REPOSITORY-NAME ``` 2. Generate a list of the files affected by the merge conflict. In this example, the file *README.md* has a merge conflict. ```shell diff --git a/content/pull-requests/collaborating-with-pull-requests/incorporating-changes-from-a-pull-request/merging-a-pull-request.md b/content/pull-requests/collaborating-with-pull-requests/incorporating-changes-from-a-pull-request/merging-a-pull-request.md index 881c4b1c19..6b0e4a5418 100644 --- a/content/pull-requests/collaborating-with-pull-requests/incorporating-changes-from-a-pull-request/merging-a-pull-request.md +++ b/content/pull-requests/collaborating-with-pull-requests/incorporating-changes-from-a-pull-request/merging-a-pull-request.md @@ -83,7 +83,7 @@ If you decide you don't want the changes in a topic branch to be merged to the u To merge a pull request, use the `gh pr merge` subcommand. Replace `pull-request` with the number, URL, or head branch of the pull request. ```shell -gh pr merge pull-request +gh pr merge PULL-REQUEST ``` Follow the interactive prompts to complete the merge. For more information about the merge methods that you can choose, see "[About pull request merges](/github/collaborating-with-pull-requests/incorporating-changes-from-a-pull-request/about-pull-request-merges)." diff --git a/content/pull-requests/collaborating-with-pull-requests/proposing-changes-to-your-work-with-pull-requests/committing-changes-to-a-pull-request-branch-created-from-a-fork.md b/content/pull-requests/collaborating-with-pull-requests/proposing-changes-to-your-work-with-pull-requests/committing-changes-to-a-pull-request-branch-created-from-a-fork.md index 6dc332b6d9..0480d3a39c 100644 --- a/content/pull-requests/collaborating-with-pull-requests/proposing-changes-to-your-work-with-pull-requests/committing-changes-to-a-pull-request-branch-created-from-a-fork.md +++ b/content/pull-requests/collaborating-with-pull-requests/proposing-changes-to-your-work-with-pull-requests/committing-changes-to-a-pull-request-branch-created-from-a-fork.md @@ -43,11 +43,11 @@ Only the user who created the pull request can give you permission to push commi ``` 5. Type `git clone`, and then paste the URL you copied in Step 3. ```shell - $ git clone https://{% data variables.command_line.codeblock %}/USERNAME/FORK-OF-THE-REPOSITORY + $ git clone https://{% data variables.command_line.codeblock %}/USERNAME/FORK-OF-THE-REPOSITORY ``` 6. Press **Enter**. Your local clone will be created. ```shell - $ git clone https://{% data variables.command_line.codeblock %}/USERNAME/FORK-OF-THE-REPOSITORY + $ git clone https://{% data variables.command_line.codeblock %}/USERNAME/FORK-OF-THE-REPOSITORY > Cloning into `FORK-OF-THE-REPOSITORY`... > remote: Counting objects: 10, done. > remote: Compressing objects: 100% (8/8), done. @@ -61,13 +61,13 @@ Only the user who created the pull request can give you permission to push commi {% endtip %} 7. Navigate into your new cloned repository. ```shell - $ cd FORK-OF-THE-REPOSITORY + $ cd FORK-OF-THE-REPOSITORY ``` 7. Switch branches to the compare branch of the pull request where the original changes were made. If you navigate to the original pull request, you'll see the compare branch at the top of the pull request. ![compare-branch-example](/assets/images/help/pull_requests/compare-branch-example.png) In this example, the compare branch is `test-branch`: ```shell - $ git checkout test-branch + $ git checkout TEST-BRANCH ``` {% tip %} @@ -84,8 +84,8 @@ Only the user who created the pull request can give you permission to push commi > Compressing objects: 100% (26/26), done. > Writing objects: 100% (29/29), 74.94 KiB | 0 bytes/s, done. > Total 29 (delta 8), reused 0 (delta 0) - > To https://{% data variables.command_line.codeblock %}/USERNAME/FORK-OF-THE-REPOSITORY.git - > 12da2e9..250e946 test-branch -> test-branch + > To https://{% data variables.command_line.codeblock %}/USERNAME/FORK-OF-THE-REPOSITORY.git + > 12da2e9..250e946 TEST-BRANCH -> TEST-BRANCH ``` Your new commits will be reflected on the original pull request on {% data variables.product.product_location %}. diff --git a/content/pull-requests/collaborating-with-pull-requests/reviewing-changes-in-pull-requests/checking-out-pull-requests-locally.md b/content/pull-requests/collaborating-with-pull-requests/reviewing-changes-in-pull-requests/checking-out-pull-requests-locally.md index cbfc7e4cab..a2f42020f0 100644 --- a/content/pull-requests/collaborating-with-pull-requests/reviewing-changes-in-pull-requests/checking-out-pull-requests-locally.md +++ b/content/pull-requests/collaborating-with-pull-requests/reviewing-changes-in-pull-requests/checking-out-pull-requests-locally.md @@ -44,7 +44,7 @@ shortTitle: Check out a PR locally To check out a pull request locally, use the `gh pr checkout` subcommand. Replace `pull-request` with the number, URL, or head branch of the pull request. ```shell -gh pr checkout pull-request +gh pr checkout PULL-REQUEST ``` {% endcli %} @@ -64,24 +64,24 @@ Anyone can work with a previously opened pull request to continue working on it, {% data reusables.command_line.open_the_multi_os_terminal %} 5. Fetch the reference to the pull request based on its ID number, creating a new branch in the process. ```shell - $ git fetch origin pull/ID/head:BRANCHNAME + $ git fetch origin pull/ID/head:BRANCH_NAME ``` 6. Switch to the new branch that's based on this pull request: ```shell - [main] $ git checkout BRANCHNAME - > Switched to a new branch 'BRANCHNAME' + [main] $ git checkout BRANCH_NAME + > Switched to a new branch 'BRANCH_NAME' ``` 7. At this point, you can do anything you want with this branch. You can run some local tests, or merge other branches into the branch. 8. When you're ready, you can push the new branch up: ```shell - [pull-inactive-pull-request] $ git push origin BRANCHNAME + [pull-inactive-pull-request] $ git push origin BRANCHNAME > Counting objects: 32, done. > Delta compression using up to 8 threads. > Compressing objects: 100% (26/26), done. > Writing objects: 100% (29/29), 74.94 KiB | 0 bytes/s, done. > Total 29 (delta 8), reused 0 (delta 0) - > To https://{% data variables.command_line.codeblock %}/username/repository.git - > * [new branch] BRANCHNAME -> BRANCHNAME + > To https://{% data variables.command_line.codeblock %}/USERNAME/REPOSITORY.git + > * [new branch] BRANCH_NAME -> BRANCH_NAME ``` 9. [Create a new pull request](/articles/creating-a-pull-request) with your new branch. @@ -90,7 +90,7 @@ Anyone can work with a previously opened pull request to continue working on it, The remote `refs/pull/` namespace is *read-only*. If you try to push any commits there, you'll see this error: ```shell ! [remote rejected] HEAD -> refs/pull/1/head (deny updating a hidden ref) -error: failed to push some refs to 'git@github.local:USERNAME/REPOSITORY.git' +error: failed to push some refs to 'git@github.local:USERNAME/REPOSITORY.git' ``` {% tip %} diff --git a/content/pull-requests/collaborating-with-pull-requests/working-with-forks/configuring-a-remote-for-a-fork.md b/content/pull-requests/collaborating-with-pull-requests/working-with-forks/configuring-a-remote-for-a-fork.md index 38e4a7e7d4..00882c58ed 100644 --- a/content/pull-requests/collaborating-with-pull-requests/working-with-forks/configuring-a-remote-for-a-fork.md +++ b/content/pull-requests/collaborating-with-pull-requests/working-with-forks/configuring-a-remote-for-a-fork.md @@ -19,18 +19,18 @@ shortTitle: Configure a remote 2. List the current configured remote repository for your fork. ```shell $ git remote -v - > origin https://{% data variables.command_line.codeblock %}/YOUR_USERNAME/YOUR_FORK.git (fetch) - > origin https://{% data variables.command_line.codeblock %}/YOUR_USERNAME/YOUR_FORK.git (push) + > origin https://{% data variables.command_line.codeblock %}/YOUR_USERNAME/YOUR_FORK.git (fetch) + > origin https://{% data variables.command_line.codeblock %}/YOUR_USERNAME/YOUR_FORK.git (push) ``` 3. Specify a new remote *upstream* repository that will be synced with the fork. ```shell - $ git remote add upstream https://{% data variables.command_line.codeblock %}/ORIGINAL_OWNER/ORIGINAL_REPOSITORY.git + $ git remote add upstream https://{% data variables.command_line.codeblock %}/ORIGINAL_OWNER/ORIGINAL_REPOSITORY.git ``` 4. Verify the new upstream repository you've specified for your fork. ```shell $ git remote -v - > origin https://{% data variables.command_line.codeblock %}/YOUR_USERNAME/YOUR_FORK.git (fetch) - > origin https://{% data variables.command_line.codeblock %}/YOUR_USERNAME/YOUR_FORK.git (push) - > upstream https://{% data variables.command_line.codeblock %}/ORIGINAL_OWNER/ORIGINAL_REPOSITORY.git (fetch) - > upstream https://{% data variables.command_line.codeblock %}/ORIGINAL_OWNER/ORIGINAL_REPOSITORY.git (push) + > origin https://{% data variables.command_line.codeblock %}/YOUR_USERNAME/YOUR_FORK.git (fetch) + > origin https://{% data variables.command_line.codeblock %}/YOUR_USERNAME/YOUR_FORK.git (push) + > upstream https://{% data variables.command_line.codeblock %}/ORIGINAL_OWNER/ORIGINAL_REPOSITORY.git (fetch) + > upstream https://{% data variables.command_line.codeblock %}/ORIGINAL_OWNER/ORIGINAL_REPOSITORY.git (push) ``` diff --git a/content/pull-requests/collaborating-with-pull-requests/working-with-forks/syncing-a-fork.md b/content/pull-requests/collaborating-with-pull-requests/working-with-forks/syncing-a-fork.md index b1b70872ec..4916aeb3cd 100644 --- a/content/pull-requests/collaborating-with-pull-requests/working-with-forks/syncing-a-fork.md +++ b/content/pull-requests/collaborating-with-pull-requests/working-with-forks/syncing-a-fork.md @@ -45,7 +45,7 @@ If the changes from the upstream repository cause conflicts, {% data variables.p To update the remote fork from its parent, use the `gh repo sync -b BRANCHNAME` subcommand and supply your fork and branch name as arguments. ```shell -$ gh repo sync owner/cli-fork -b BRANCHNAME +$ gh repo sync owner/cli-fork -b BRANCH_NAME ``` If the changes from the upstream repository cause conflict then the {% data variables.product.prodname_cli %} can't sync. You can set the `-force` flag to overwrite the destination branch. @@ -64,7 +64,7 @@ Before you can sync your fork with an upstream repository, you must [configure a > remote: Compressing objects: 100% (53/53), done. > remote: Total 62 (delta 27), reused 44 (delta 9) > Unpacking objects: 100% (62/62), done. - > From https://{% data variables.command_line.codeblock %}/ORIGINAL_OWNER/ORIGINAL_REPOSITORY + > From https://{% data variables.command_line.codeblock %}/ORIGINAL_OWNER/ORIGINAL_REPOSITORY > * [new branch] main -> upstream/main ``` diff --git a/content/pull-requests/committing-changes-to-your-project/creating-and-editing-commits/changing-a-commit-message.md b/content/pull-requests/committing-changes-to-your-project/creating-and-editing-commits/changing-a-commit-message.md index 520fd34daa..aade27112e 100644 --- a/content/pull-requests/committing-changes-to-your-project/creating-and-editing-commits/changing-a-commit-message.md +++ b/content/pull-requests/committing-changes-to-your-project/creating-and-editing-commits/changing-a-commit-message.md @@ -53,7 +53,7 @@ We strongly discourage force pushing, since this changes the history of your rep 1. Follow the [steps above](/articles/changing-a-commit-message#commit-has-not-been-pushed-online) to amend the commit message. 2. Use the `push --force-with-lease` command to force push over the old commit. ```shell - $ git push --force-with-lease origin example-branch + $ git push --force-with-lease origin EXAMPLE-BRANCH ``` **Changing the message of older or multiple commit messages** @@ -102,7 +102,7 @@ If you need to amend the message for multiple commits or an older commit, you ca 5. In each resulting commit file, type the new commit message, save the file, and close it. 6. When you're ready to push your changes to GitHub, use the push --force command to force push over the old commit. ```shell -$ git push --force origin example-branch +$ git push --force origin EXAMPLE-BRANCH ``` For more information on interactive rebase, see "[Interactive mode](https://git-scm.com/docs/git-rebase#_interactive_mode)" in the Git manual. diff --git a/content/pull-requests/committing-changes-to-your-project/creating-and-editing-commits/creating-a-commit-on-behalf-of-an-organization.md b/content/pull-requests/committing-changes-to-your-project/creating-and-editing-commits/creating-a-commit-on-behalf-of-an-organization.md index a7082678b8..e25a47c844 100644 --- a/content/pull-requests/committing-changes-to-your-project/creating-and-editing-commits/creating-a-commit-on-behalf-of-an-organization.md +++ b/content/pull-requests/committing-changes-to-your-project/creating-and-editing-commits/creating-a-commit-on-behalf-of-an-organization.md @@ -47,7 +47,7 @@ Organizations can use the `name@organization.com` email as a public point of con $ git commit -m "Refactor usability tests. > > - on-behalf-of: @org <name@organization.com>" + on-behalf-of: @ORG NAME@ORGANIZATION.COM" ``` The new commit, message, and badge will appear on {% data variables.product.product_location %} the next time you push. For more information, see "[Pushing changes to a remote repository](/github/getting-started-with-github/pushing-commits-to-a-remote-repository/)." diff --git a/content/pull-requests/committing-changes-to-your-project/creating-and-editing-commits/creating-a-commit-with-multiple-authors.md b/content/pull-requests/committing-changes-to-your-project/creating-and-editing-commits/creating-a-commit-with-multiple-authors.md index 75eca09a64..97444af18d 100644 --- a/content/pull-requests/committing-changes-to-your-project/creating-and-editing-commits/creating-a-commit-with-multiple-authors.md +++ b/content/pull-requests/committing-changes-to-your-project/creating-and-editing-commits/creating-a-commit-with-multiple-authors.md @@ -61,8 +61,8 @@ You can use {% data variables.product.prodname_desktop %} to create a commit wit $ git commit -m "Refactor usability tests. > > - Co-authored-by: name <name@example.com> - Co-authored-by: another-name <another-name@example.com>" + Co-authored-by: NAME NAME@EXAMPLE.COM + Co-authored-by: AUTHOR-NAME ANOTHER-NAME@EXAMPLE.COM" ``` The new commit and message will appear on {% data variables.product.product_location %} the next time you push. For more information, see "[Pushing changes to a remote repository](/github/getting-started-with-github/pushing-commits-to-a-remote-repository/)." diff --git a/content/pull-requests/committing-changes-to-your-project/troubleshooting-commits/commit-exists-on-github-but-not-in-my-local-clone.md b/content/pull-requests/committing-changes-to-your-project/troubleshooting-commits/commit-exists-on-github-but-not-in-my-local-clone.md index 613caee543..24834a7df7 100644 --- a/content/pull-requests/committing-changes-to-your-project/troubleshooting-commits/commit-exists-on-github-but-not-in-my-local-clone.md +++ b/content/pull-requests/committing-changes-to-your-project/troubleshooting-commits/commit-exists-on-github-but-not-in-my-local-clone.md @@ -36,7 +36,7 @@ There are several possible explanations: Your local repository may not have the commit yet. To get information from your remote repository to your local clone, use `git fetch`: ```shell -$ git fetch remote +$ git fetch REMOTE ``` This safely copies information from the remote repository to your local clone without making any changes to the files you have checked out. diff --git a/content/repositories/configuring-branches-and-merges-in-your-repository/managing-branches-in-your-repository/renaming-a-branch.md b/content/repositories/configuring-branches-and-merges-in-your-repository/managing-branches-in-your-repository/renaming-a-branch.md index 1abc2a6e87..5ec69c8950 100644 --- a/content/repositories/configuring-branches-and-merges-in-your-repository/managing-branches-in-your-repository/renaming-a-branch.md +++ b/content/repositories/configuring-branches-and-merges-in-your-repository/managing-branches-in-your-repository/renaming-a-branch.md @@ -41,9 +41,9 @@ After you rename a branch in a repository on {% data variables.product.product_n From the local clone of the repository on a computer, run the following commands to update the name of the default branch. ```shell -$ git branch -m OLD-BRANCH-NAME NEW-BRANCH-NAME +$ git branch -m OLD-BRANCH-NAME NEW-BRANCH-NAME $ git fetch origin -$ git branch -u origin/NEW-BRANCH-NAME NEW-BRANCH-NAME +$ git branch -u origin/NEW-BRANCH-NAME NEW-BRANCH-NAME $ git remote set-head origin -a ``` diff --git a/content/repositories/creating-and-managing-repositories/cloning-a-repository.md b/content/repositories/creating-and-managing-repositories/cloning-a-repository.md index 0fb1ff7c56..c8bf281fc9 100644 --- a/content/repositories/creating-and-managing-repositories/cloning-a-repository.md +++ b/content/repositories/creating-and-managing-repositories/cloning-a-repository.md @@ -42,14 +42,15 @@ You can clone your existing repository or clone another person's existing reposi To clone a repository locally, use the `repo clone` subcommand. Replace the `repository` parameter with the repository name. For example, `octo-org/octo-repo`, `monalisa/octo-repo`, or `octo-repo`. If the `OWNER/` portion of the `OWNER/REPO` repository argument is omitted, it defaults to the name of the authenticating user. ```shell -gh repo clone repository +gh repo clone REPOSITORY ``` You can also use the GitHub URL to clone a repository. ```shell -gh repo clone https://github.com/cli/cli +gh repo clone URL ``` +Replace URL with the URL of a GitHub repository. For example, `https://github.com/cli/cli` {% endcli %} diff --git a/content/repositories/creating-and-managing-repositories/duplicating-a-repository.md b/content/repositories/creating-and-managing-repositories/duplicating-a-repository.md index 133488a738..ea41e01734 100644 --- a/content/repositories/creating-and-managing-repositories/duplicating-a-repository.md +++ b/content/repositories/creating-and-managing-repositories/duplicating-a-repository.md @@ -31,17 +31,17 @@ Before you can push the original repository to your new copy, or _mirror_, of th {% data reusables.command_line.open_the_multi_os_terminal %} 2. Create a bare clone of the repository. ```shell - $ git clone --bare https://{% data variables.command_line.codeblock %}/exampleuser/old-repository.git + $ git clone --bare https://{% data variables.command_line.codeblock %}/OLD-REPOSITORY.git/OLD-REPOSITORY.git ``` 3. Mirror-push to the new repository. ```shell - $ cd old-repository.git - $ git push --mirror https://{% data variables.command_line.codeblock %}/exampleuser/new-repository.git + $ cd OLD-REPOSITORY.git + $ git push --mirror https://{% data variables.command_line.codeblock %}/EXAMPLE-USER/NEW-REPOSITORY.git ``` 4. Remove the temporary local repository you created earlier. ```shell $ cd .. - $ rm -rf old-repository.git + $ rm -rf OLD-REPOSITORY.git ``` ## Mirroring a repository that contains {% data variables.large_files.product_name_long %} objects @@ -49,11 +49,11 @@ Before you can push the original repository to your new copy, or _mirror_, of th {% data reusables.command_line.open_the_multi_os_terminal %} 2. Create a bare clone of the repository. Replace the example username with the name of the person or organization who owns the repository, and replace the example repository name with the name of the repository you'd like to duplicate. ```shell - $ git clone --bare https://{% data variables.command_line.codeblock %}/exampleuser/old-repository.git + $ git clone --bare https://{% data variables.command_line.codeblock %}/OLD-REPOSITORY.git/OLD-REPOSITORY.git ``` 3. Navigate to the repository you just cloned. ```shell - $ cd old-repository.git + $ cd OLD-REPOSITORY.git ``` 4. Pull in the repository's {% data variables.large_files.product_name_long %} objects. ```shell @@ -61,16 +61,16 @@ Before you can push the original repository to your new copy, or _mirror_, of th ``` 5. Mirror-push to the new repository. ```shell - $ git push --mirror https://{% data variables.command_line.codeblock %}/exampleuser/new-repository.git + $ git push --mirror https://{% data variables.command_line.codeblock %}/OLD-REPOSITORY.git/NEW-REPOSITORY.git ``` 6. Push the repository's {% data variables.large_files.product_name_long %} objects to your mirror. ```shell - $ git lfs push --all https://github.com/exampleuser/new-repository.git + $ git lfs push --all https://github.com/EXAMPLE-USER/NEW-REPOSITORY.git ``` 7. Remove the temporary local repository you created earlier. ```shell $ cd .. - $ rm -rf old-repository.git + $ rm -rf OLD-REPOSITORY.git ``` ## Mirroring a repository in another location @@ -80,12 +80,12 @@ If you want to mirror a repository in another location, including getting update {% data reusables.command_line.open_the_multi_os_terminal %} 2. Create a bare mirrored clone of the repository. ```shell - $ git clone --mirror https://{% data variables.command_line.codeblock %}/exampleuser/repository-to-mirror.git + $ git clone --mirror https://{% data variables.command_line.codeblock %}/EXAMPLE-USER/REPOSITORY-TO-MIRROR.git ``` 3. Set the push location to your mirror. ```shell - $ cd repository-to-mirror - $ git remote set-url --push origin https://{% data variables.command_line.codeblock %}/exampleuser/mirrored + $ cd REPOSITORY-TO-MIRROR + $ git remote set-url --push origin https://{% data variables.command_line.codeblock %}/EXAMPLE-USER/MIRRORED ``` As with a bare clone, a mirrored clone includes all remote branches and tags, but all local references will be overwritten each time you fetch, so it will always be the same as the original repository. Setting the URL for pushes simplifies pushing to your mirror. diff --git a/content/repositories/creating-and-managing-repositories/renaming-a-repository.md b/content/repositories/creating-and-managing-repositories/renaming-a-repository.md index 7d86a30d4d..0d3f8b8abf 100644 --- a/content/repositories/creating-and-managing-repositories/renaming-a-repository.md +++ b/content/repositories/creating-and-managing-repositories/renaming-a-repository.md @@ -25,7 +25,7 @@ For more information on project sites, see "[About {% data variables.product.pro In addition to redirecting web traffic, all `git clone`, `git fetch`, or `git push` operations targeting the previous location will continue to function as if made on the new location. However, to reduce confusion, we strongly recommend updating any existing local clones to point to the new repository URL. You can do this by using `git remote` on the command line: ```shell -$ git remote set-url origin new_url +$ git remote set-url origin NEW_URL ``` For more information, see "[Managing remote repositories](/github/getting-started-with-github/managing-remote-repositories)." diff --git a/content/repositories/creating-and-managing-repositories/transferring-a-repository.md b/content/repositories/creating-and-managing-repositories/transferring-a-repository.md index 74666a44c8..f005ae776d 100644 --- a/content/repositories/creating-and-managing-repositories/transferring-a-repository.md +++ b/content/repositories/creating-and-managing-repositories/transferring-a-repository.md @@ -48,7 +48,7 @@ When you transfer a repository, its issues, pull requests, wiki, stars, and watc - All links to the previous repository location are automatically redirected to the new location. When you use `git clone`, `git fetch`, or `git push` on a transferred repository, these commands will redirect to the new repository location or URL. However, to avoid confusion, we strongly recommend updating any existing local clones to point to the new repository URL. You can do this by using `git remote` on the command line: ```shell - $ git remote set-url origin new_url + $ git remote set-url origin NEW_URL ``` - When you transfer a repository from an organization to a personal account, the repository's read-only collaborators will not be transferred. This is because collaborators can't have read-only access to repositories owned by a personal account. For more information about repository permission levels, see "[Permission levels for a personal account repository](/github/setting-up-and-managing-your-github-user-account/permission-levels-for-a-user-account-repository)" and "[Repository roles for an organization](/organizations/managing-access-to-your-organizations-repositories/repository-roles-for-an-organization)."{% ifversion fpt or ghec %} diff --git a/content/repositories/creating-and-managing-repositories/troubleshooting-cloning-errors.md b/content/repositories/creating-and-managing-repositories/troubleshooting-cloning-errors.md index 4f8d39702e..9d85d13f7f 100644 --- a/content/repositories/creating-and-managing-repositories/troubleshooting-cloning-errors.md +++ b/content/repositories/creating-and-managing-repositories/troubleshooting-cloning-errors.md @@ -29,18 +29,18 @@ Here's an example of an HTTPS error you might receive: ```shell > error: The requested URL returned error: 401 while accessing -> https://{% data variables.command_line.codeblock %}/user/repo.git/info/refs?service=git-receive-pack +> https://{% data variables.command_line.codeblock %}/USER/REPO.git/info/refs?service=git-receive-pack > fatal: HTTP request failed ``` ```shell > Error: The requested URL returned error: 403 while accessing -> https://{% data variables.command_line.codeblock %}/user/repo.git/info/refs +> https://{% data variables.command_line.codeblock %}/USER/REPO.git/info/refs > fatal: HTTP request failed ``` ```shell -> Error: https://{% data variables.command_line.codeblock %}/user/repo.git/info/refs not found: did you run git +> Error: https://{% data variables.command_line.codeblock %}/USER/REPO.git/info/refs not found: did you run git > update-server-info on the server? ``` @@ -124,7 +124,7 @@ the following into the command line: ```shell $ ssh -T git@{% data variables.command_line.codeblock %} -> Hi username! You've successfully authenticated, but GitHub does not +> Hi USERNAME! You've successfully authenticated, but GitHub does not > provide shell access. ``` @@ -152,7 +152,7 @@ This error occurs if the default branch of a repository has been deleted on {% d Detecting this error is simple; Git will warn you when you try to clone the repository: ```shell -$ git clone https://{% data variables.command_line.codeblock %}/user/repo.git +$ git clone https://{% data variables.command_line.codeblock %}/USER/REPO.git # Clone a repo > Cloning into 'repo'... > remote: Counting objects: 66179, done. diff --git a/content/repositories/releasing-projects-on-github/managing-releases-in-a-repository.md b/content/repositories/releasing-projects-on-github/managing-releases-in-a-repository.md index 3c3716db6f..5e3d777840 100644 --- a/content/repositories/releasing-projects-on-github/managing-releases-in-a-repository.md +++ b/content/repositories/releasing-projects-on-github/managing-releases-in-a-repository.md @@ -90,7 +90,7 @@ You can choose whether {% data variables.large_files.product_name_long %} ({% da 1. To create a release, use the `gh release create` subcommand. Replace `tag` with the desired tag for the release. ```shell - gh release create tag + gh release create TAG ``` 2. Follow the interactive prompts. Alternatively, you can specify arguments to skip these prompts. For more information about possible arguments, see [the {% data variables.product.prodname_cli %} manual](https://cli.github.com/manual/gh_release_create). For example, this command creates a prerelease with the specified title and notes. @@ -153,7 +153,7 @@ Releases cannot currently be edited with {% data variables.product.prodname_cli 1. To delete a release, use the `gh release delete` subcommand. Replace `tag` with the tag of the release to delete. Use the `-y` flag to skip confirmation. ```shell - gh release delete tag -y + gh release delete TAG -y ``` {% endcli %} diff --git a/content/repositories/working-with-files/managing-files/moving-a-file-to-a-new-location.md b/content/repositories/working-with-files/managing-files/moving-a-file-to-a-new-location.md index fc6581d184..8f0f3eca5c 100644 --- a/content/repositories/working-with-files/managing-files/moving-a-file-to-a-new-location.md +++ b/content/repositories/working-with-files/managing-files/moving-a-file-to-a-new-location.md @@ -55,17 +55,17 @@ Many files can be [moved directly on {% data variables.product.product_name %}]( 3. Use `git status` to check the old and new file locations. ```shell $ git status - > # On branch your-branch + > # On branch YOUR-BRANCH > # Changes not staged for commit: > # (use "git add/rm ..." to update what will be committed) > # (use "git checkout -- ..." to discard changes in working directory) > # - > # deleted: /old-folder/image.png + > # deleted: /OLD-FOLDER/IMAGE.PNG > # > # Untracked files: > # (use "git add ..." to include in what will be committed) > # - > # /new-folder/image.png + > # /NEW-FOLDER/IMAGE.PNG > # > # no changes added to commit (use "git add" and/or "git commit -a") ``` @@ -78,7 +78,7 @@ Many files can be [moved directly on {% data variables.product.product_name %}]( 5. Use `git status` to check the changes staged for commit. ```shell $ git status - > # On branch your-branch + > # On branch YOUR-BRANCH > # Changes to be committed: > # (use "git reset HEAD ..." to unstage) > # diff --git a/content/repositories/working-with-files/managing-files/renaming-a-file.md b/content/repositories/working-with-files/managing-files/renaming-a-file.md index 66bf319c27..03b7e8130f 100644 --- a/content/repositories/working-with-files/managing-files/renaming-a-file.md +++ b/content/repositories/working-with-files/managing-files/renaming-a-file.md @@ -52,16 +52,16 @@ Many files can be [renamed directly on {% data variables.product.product_name %} {% data reusables.command_line.switching_directories_procedural %} 3. Rename the file, specifying the old file name and the new name you'd like to give the file. This will stage your change for commit. ```shell - $ git mv old_filename new_filename + $ git mv OLD-FILENAME NEW-FILENAME ``` 4. Use `git status` to check the old and new file names. ```shell $ git status - > # On branch your-branch + > # On branch YOUR-BRANCH > # Changes to be committed: > # (use "git reset HEAD ..." to unstage) > # - > # renamed: old_filename -> new_filename + > # renamed: OLD-FILENAME -> NEW-FILENAME > # ``` {% data reusables.git.commit-file %} diff --git a/content/repositories/working-with-files/managing-large-files/about-large-files-on-github.md b/content/repositories/working-with-files/managing-large-files/about-large-files-on-github.md index 02fbcd36ad..ff023cdbc8 100644 --- a/content/repositories/working-with-files/managing-large-files/about-large-files-on-github.md +++ b/content/repositories/working-with-files/managing-large-files/about-large-files-on-github.md @@ -74,7 +74,7 @@ If the file was added with your most recent commit, and you have not pushed to { {% data reusables.command_line.switching_directories_procedural %} 3. To remove the file, enter `git rm --cached`: ```shell - $ git rm --cached giant_file + $ git rm --cached GIANT_FILE # Stage our giant file for removal, but leave it on disk ``` 4. Commit this change using `--amend -CHEAD`: diff --git a/content/repositories/working-with-files/managing-large-files/installing-git-large-file-storage.md b/content/repositories/working-with-files/managing-large-files/installing-git-large-file-storage.md index 744ea932b5..91b7f2d948 100644 --- a/content/repositories/working-with-files/managing-large-files/installing-git-large-file-storage.md +++ b/content/repositories/working-with-files/managing-large-files/installing-git-large-file-storage.md @@ -25,7 +25,7 @@ shortTitle: Install Git LFS {% data reusables.command_line.open_the_multi_os_terminal %} 3. Change the current working directory into the folder you downloaded and unzipped. ```shell - $ cd ~/Downloads/git-lfs-1.X.X + $ cd ~/Downloads/git-lfs-1.X.X ``` {% note %} @@ -85,7 +85,7 @@ shortTitle: Install Git LFS {% data reusables.command_line.open_the_multi_os_terminal %} 3. Change the current working directory into the folder you downloaded and unzipped. ```shell - $ cd ~/Downloads/git-lfs-1.X.X + $ cd ~/Downloads/git-lfs-1.X.X ``` {% note %} diff --git a/content/repositories/working-with-files/using-files/working-with-non-code-files.md b/content/repositories/working-with-files/using-files/working-with-non-code-files.md index 412797926e..e5ed8d281d 100644 --- a/content/repositories/working-with-files/using-files/working-with-non-code-files.md +++ b/content/repositories/working-with-files/using-files/working-with-non-code-files.md @@ -340,7 +340,7 @@ To view a fully interactive version of your Jupyter Notebook, you can set up a n If you're having trouble rendering Jupyter Notebook files in static HTML, you can convert the file locally on the command line by using the [`nbconvert` command](https://github.com/jupyter/nbconvert): ```shell -$ jupyter nbconvert --to html NOTEBOOK-NAME.ipynb +$ jupyter nbconvert --to html NOTEBOOK-NAME.ipynb ``` ### Further reading diff --git a/content/rest/enterprise-admin/index.md b/content/rest/enterprise-admin/index.md index 4221451d7a..3350cf559d 100644 --- a/content/rest/enterprise-admin/index.md +++ b/content/rest/enterprise-admin/index.md @@ -59,7 +59,7 @@ When endpoints include `{enterprise}`, replace `{enterprise}` with the handle fo [Management Console](#management-console) API endpoints are only prefixed with a hostname: ```shell -http(s)://hostname/ +http(s)://HOSTNAME/ ``` {% endif %} {% ifversion ghae or ghes %} diff --git a/content/rest/enterprise-admin/management-console.md b/content/rest/enterprise-admin/management-console.md index 83bb465f04..0f1095eb85 100644 --- a/content/rest/enterprise-admin/management-console.md +++ b/content/rest/enterprise-admin/management-console.md @@ -25,11 +25,11 @@ You need to pass your [Management Console password](/enterprise/admin/articles/a Use the `api_key` parameter to send this token with each request. For example: ```shell -$ curl -L 'https://hostname:admin_port/setup/api?api_key=your-amazing-password' +$ curl -L 'https://HOSTNAME:ADMIN-PORT/setup/api?api_key=YOUR_AMAZING_PASSWORD' ``` You can also use standard HTTP authentication to send this token. For example: ```shell -$ curl -L -u "api_key:your-amazing-password" 'https://hostname:admin_port/setup/api' +$ curl -L -u "api_key:YOUR_AMAZING_PASSWORD" 'https://HOSTNAME:ADMIN-PORT/setup/api' ``` diff --git a/content/rest/guides/getting-started-with-the-rest-api.md b/content/rest/guides/getting-started-with-the-rest-api.md index 8c54d89f60..880881e256 100644 --- a/content/rest/guides/getting-started-with-the-rest-api.md +++ b/content/rest/guides/getting-started-with-the-rest-api.md @@ -161,7 +161,7 @@ With cURL, you will send an `Authorization` header with your token. Replace `YOU ```shell curl --request GET \ --url "https://api.github.com/octocat" \ ---header "Authorization: Bearer YOUR-TOKEN" +--header "Authorization: Bearer YOUR-TOKEN" ``` {% note %} @@ -324,7 +324,7 @@ To send a header with cURL, use the `--header` or `-H` flag followed by the head curl --request GET \ --url "https://api.github.com/octocat" \ --header "Accept: application/vnd.github.v3+json" \ ---header "Authorization: Bearer YOUR-TOKEN" +--header "Authorization: Bearer YOUR-TOKEN" ``` {% endcurl %} @@ -388,7 +388,7 @@ To get issues from the `octocat/Spoon-Knife` repository, replace `{owner}` with curl --request GET \ --url "https://api.github.com/repos/octocat/Spoon-Knife/issues" \ --header "Accept: application/vnd.github.v3+json" \ ---header "Authorization: Bearer YOUR-TOKEN" +--header "Authorization: Bearer YOUR-TOKEN" ``` {% endcurl %} @@ -441,7 +441,7 @@ For cURL, add a `?` to the end of the path, then append your query parameter nam curl --request GET \ --url "https://api.github.com/repos/octocat/Spoon-Knife/issues?per_page=2&sort=updated&direction=asc" \ --header "Accept: application/vnd.github.v3+json" \ ---header "Authorization: Bearer YOUR-TOKEN" +--header "Authorization: Bearer YOUR-TOKEN" ``` {% endcurl %} @@ -493,7 +493,7 @@ For cURL, use the `--data` flag to pass the body parameters in a JSON object. curl --request POST \ --url "https://api.github.com/repos/octocat/Spoon-Knife/issues" \ --header "Accept: application/vnd.github.v3+json" \ ---header "Authorization: Bearer YOUR-TOKEN" \ +--header "Authorization: Bearer YOUR-TOKEN" \ --data '{ "title": "Created with the REST API", "body": "This is a test issue created by the REST API" @@ -591,7 +591,7 @@ For example, this request: curl --request GET \ --url "https://api.github.com/repos/octocat/Spoon-Knife/issues?per_page=2" \ --header "Accept: application/vnd.github.v3+json" \ ---header "Authorization: Bearer YOUR-TOKEN" \ +--header "Authorization: Bearer YOUR-TOKEN" \ --include ``` @@ -659,7 +659,7 @@ await octokit.request("GET /repos/{owner}/{repo}/issues", { curl --request GET \ --url "https://api.github.com/repos/octocat/Spoon-Knife/issues?per_page=2" \ --header "Accept: application/vnd.github.v3+json" \ ---header "Authorization: Bearer YOUR-TOKEN" +--header "Authorization: Bearer YOUR-TOKEN" ``` {% endcurl %} @@ -728,7 +728,7 @@ For example, you can use `>` to redirect the response to a file: curl --request GET \ --url "https://api.github.com/repos/octocat/Spoon-Knife/issues?per_page=2" \ --header "Accept: application/vnd.github.v3+json" \ ---header "Authorization: Bearer YOUR-TOKEN" > data.json +--header "Authorization: Bearer YOUR-TOKEN" > data.json ``` Then you can use jq to get the title and author ID of each issue: diff --git a/content/rest/overview/other-authentication-methods.md b/content/rest/overview/other-authentication-methods.md index d8147fdb5d..9cebcf591a 100644 --- a/content/rest/overview/other-authentication-methods.md +++ b/content/rest/overview/other-authentication-methods.md @@ -45,7 +45,7 @@ response. The solution is to manually craft the `Authorization` header. We recommend you use OAuth tokens to authenticate to the GitHub API. OAuth tokens include [personal access tokens][personal-access-tokens] and enable the user to revoke access at any time. ```shell -$ curl -u username:token {% data variables.product.api_url_pre %}/user +$ curl -u USERNAME:TOKEN {% data variables.product.api_url_pre %}/user ``` This approach is useful if your tools only support Basic Authentication but you want to take advantage of OAuth access token security features. @@ -71,7 +71,7 @@ would authenticate you if you replace `` with your {% data variables.p (cURL will prompt you to enter the password.) ```shell -$ curl -u username {% data variables.product.api_url_pre %}/user +$ curl -u USERNAME {% data variables.product.api_url_pre %}/user ``` If you have two-factor authentication enabled, make sure you understand how to [work with two-factor authentication](/rest/overview/other-authentication-methods#working-with-two-factor-authentication). @@ -95,7 +95,7 @@ If you have two-factor authentication enabled, make sure you understand how to [ If you're using the API to access an organization that enforces [SAML SSO][saml-sso] for authentication, you'll need to create a personal access token (PAT) and [authorize the token][allowlist] for that organization. Visit the URL specified in `X-GitHub-SSO` to authorize the token for the organization. ```shell -$ curl -v -H "Authorization: Bearer TOKEN" {% data variables.product.api_url_pre %}/repos/octodocs-test/test +$ curl -v -H "Authorization: Bearer TOKEN" {% data variables.product.api_url_pre %}/repos/octodocs-test/test > X-GitHub-SSO: required; url=https://github.com/orgs/octodocs-test/sso?authorization_request=AZSCKtL4U8yX1H3sCQIVnVgmjmon5fWxks5YrqhJgah0b2tlbl9pZM4EuMz4 { @@ -107,7 +107,7 @@ $ curl -v -H "Authorization: Bearer TOKEN" {% data variables.product.ap When requesting data that could come from multiple organizations (for example, [requesting a list of issues created by the user][user-issues]), the `X-GitHub-SSO` header indicates which organizations require you to authorize your personal access token: ```shell -$ curl -v -H "Authorization: Bearer TOKEN" {% data variables.product.api_url_pre %}/user/issues +$ curl -v -H "Authorization: Bearer TOKEN" {% data variables.product.api_url_pre %}/user/issues > X-GitHub-SSO: partial-results; organizations=21955855,20582480 ``` @@ -136,9 +136,9 @@ This header tells you how your account receives its two-factor authentication co ```shell $ curl --request POST \ --url https://api.github.com/authorizations \ - --header 'authorization: Basic PASSWORD' \ + --header 'authorization: Basic PASSWORD' \ --header 'content-type: application/json' \ - --header 'x-github-otp: OTP' \ + --header 'x-github-otp: OTP' \ --data '{"scopes": ["public_repo"], "note": "test"}' ``` {% endif %} diff --git a/content/rest/overview/resources-in-the-rest-api.md b/content/rest/overview/resources-in-the-rest-api.md index 033f0ccd78..0432d216c9 100644 --- a/content/rest/overview/resources-in-the-rest-api.md +++ b/content/rest/overview/resources-in-the-rest-api.md @@ -91,7 +91,7 @@ $ curl -u "username" {% data variables.product.api_url_pre %} ### OAuth2 token (sent in a header) ```shell -$ curl -H "Authorization: Bearer OAUTH-TOKEN" {% data variables.product.api_url_pre %} +$ curl -H "Authorization: Bearer OAUTH-TOKEN" {% data variables.product.api_url_pre %} ``` {% note %} @@ -150,7 +150,7 @@ the API will temporarily reject all authentication attempts for that user ```shell $ curl -i {% data variables.product.api_url_pre %} -u {% ifversion fpt or ghae or ghec %} --u valid_username:valid_token {% endif %}{% ifversion ghes %}-u valid_username:valid_password {% endif %} +-u VALID_USERNAME:VALID_TOKEN {% endif %}{% ifversion ghes %}-u VALID_USERNAME:VALID_PASSWORD {% endif %} > HTTP/2 403 > { > "message": "Maximum number of login attempts exceeded. Please try again later.", @@ -185,7 +185,7 @@ You can issue a `GET` request to the root endpoint to get all the endpoint categ ```shell $ curl {% ifversion fpt or ghae or ghec %} --u username:token {% endif %}{% ifversion ghes %}-u username:password {% endif %}{% data variables.product.api_url_pre %} +-u USERNAME:TOKEN {% endif %}{% ifversion ghes %}-u USERNAME:PASSWORD {% endif %}{% data variables.product.api_url_pre %} ``` ## GraphQL global node IDs diff --git a/content/rest/quickstart.md b/content/rest/quickstart.md index 7c56fcf402..e70d6f2272 100644 --- a/content/rest/quickstart.md +++ b/content/rest/quickstart.md @@ -279,7 +279,7 @@ jobs: curl --request GET \ --url "https://api.github.com/repos/octocat/Spoon-Knife/issues" \ --header "Accept: application/vnd.github.v3+json" \ - --header "Authorization: Bearer YOUR-TOKEN" + --header "Authorization: Bearer YOUR-TOKEN" ``` {% note %} diff --git a/content/support/contacting-github-support/providing-data-to-github-support.md b/content/support/contacting-github-support/providing-data-to-github-support.md index c2966bf474..7e3c1432ec 100644 --- a/content/support/contacting-github-support/providing-data-to-github-support.md +++ b/content/support/contacting-github-support/providing-data-to-github-support.md @@ -71,7 +71,7 @@ You can use this method without signing into the {% data variables.enterprise.ma Use the [ghe-diagnostics](/enterprise/admin/guides/installation/command-line-utilities#ghe-diagnostics) command-line utility to retrieve the diagnostics for your instance. ```shell -$ ssh -p122 admin@hostname -- 'ghe-diagnostics' > diagnostics.txt +$ ssh -p122 admin@HOSTNAME -- 'ghe-diagnostics' > diagnostics.txt ``` ## Creating and sharing support bundles @@ -119,7 +119,7 @@ You can use these steps to create and share a support bundle if you have SSH acc 1. Download the support bundle via SSH: ```shell - $ ssh -p 122 admin@hostname -- 'ghe-support-bundle -o' > support-bundle.tgz + $ ssh -p 122 admin@HOSTNAME -- 'ghe-support-bundle -o' > support-bundle.tgz ``` For more information about the `ghe-support-bundle` command, see "[Command-line utilities](/enterprise/admin/guides/installation/command-line-utilities#ghe-support-bundle)". {% data reusables.enterprise_enterprise_support.sign-in-to-support %} @@ -147,7 +147,7 @@ You can directly upload a support bundle to our server if: 1. Upload the bundle to our support bundle server: ```shell - $ ssh -p122 admin@hostname -- 'ghe-support-bundle -u' + $ ssh -p122 admin@HOSTNAME -- 'ghe-support-bundle -u' ``` ## Creating and sharing extended support bundles @@ -162,7 +162,7 @@ You can use these steps to create and share an extended support bundle if you ha 1. Download the extended support bundle via SSH by adding the `-x` flag to the `ghe-support-bundle` command: ```shell - $ ssh -p 122 admin@hostname -- 'ghe-support-bundle -o -x' > support-bundle.tgz + $ ssh -p 122 admin@HOSTNAME -- 'ghe-support-bundle -o -x' > support-bundle.tgz ``` {% data reusables.enterprise_enterprise_support.sign-in-to-support %} {% data reusables.enterprise_enterprise_support.upload-support-bundle %} @@ -175,7 +175,7 @@ You can directly upload a support bundle to our server if: 1. Upload the bundle to our support bundle server: ```shell - $ ssh -p122 admin@hostname -- 'ghe-support-bundle -u -x' + $ ssh -p122 admin@HOSTNAME -- 'ghe-support-bundle -u -x' ``` ## Further reading diff --git a/contributing/content-markup-reference.md b/contributing/content-markup-reference.md index c6408fe9b4..bdb4f828a8 100644 --- a/contributing/content-markup-reference.md +++ b/contributing/content-markup-reference.md @@ -67,7 +67,7 @@ To render syntax highlighting in command line instructions, we use triple backti ### Usage ```shell - git init YOUR_REPO + git init YOUR_REPO ``` This syntax highlighting renders light text on a dark background, and should be reserved for command line instructions. diff --git a/data/reusables/actions/self-hosted-runner-check-mac-linux.md b/data/reusables/actions/self-hosted-runner-check-mac-linux.md index 34fab292bc..5a946bfa75 100644 --- a/data/reusables/actions/self-hosted-runner-check-mac-linux.md +++ b/data/reusables/actions/self-hosted-runner-check-mac-linux.md @@ -1,3 +1,4 @@ ```shell -./run.sh --check --url https://github.com/octo-org/octo-repo --pat ghp_abcd1234 +./run.sh --check --url URL --pat ghp_abcd1234 ``` +Replace URL with the URL of repository. For example, `https://github.com/octo-org/octo-repo`. \ No newline at end of file diff --git a/data/reusables/command_line/git-clone-url.md b/data/reusables/command_line/git-clone-url.md index 0ed7dd6815..7f2210364a 100644 --- a/data/reusables/command_line/git-clone-url.md +++ b/data/reusables/command_line/git-clone-url.md @@ -1,4 +1,4 @@ 5. Type `git clone`, and then paste the URL you copied earlier. ```shell - $ git clone https://{% data variables.command_line.codeblock %}/YOUR-USERNAME/YOUR-REPOSITORY + $ git clone https://{% data variables.command_line.codeblock %}/YOUR-USERNAME/YOUR-REPOSITORY ``` diff --git a/data/reusables/command_line/local-clone-created.md b/data/reusables/command_line/local-clone-created.md index 1fa36e1964..de216eff20 100644 --- a/data/reusables/command_line/local-clone-created.md +++ b/data/reusables/command_line/local-clone-created.md @@ -1,6 +1,6 @@ 6. Press **Enter** to create your local clone. ```shell - $ git clone https://{% data variables.command_line.codeblock %}/YOUR-USERNAME/YOUR-REPOSITORY + $ git clone https://{% data variables.command_line.codeblock %}/YOUR-USERNAME/YOUR-REPOSITORY > Cloning into `Spoon-Knife`... > remote: Counting objects: 10, done. > remote: Compressing objects: 100% (8/8), done. diff --git a/data/reusables/command_line/providing-token-as-password.md b/data/reusables/command_line/providing-token-as-password.md index a938fcfd9c..44e5a96cae 100644 --- a/data/reusables/command_line/providing-token-as-password.md +++ b/data/reusables/command_line/providing-token-as-password.md @@ -3,7 +3,7 @@ Once you have a token, you can enter it instead of your password when performing For example, on the command line you would enter the following: ```shell -$ git clone https://{% data variables.command_line.codeblock %}/username/repo.git -Username: your_username -Password: your_token +$ git clone https://{% data variables.command_line.codeblock %}/USERNAME/REPO.git +Username: YOUR_USERNAME +Password: YOUR_TOKEN ``` diff --git a/data/reusables/enterprise_installation/command-line-utilities-ghe-upgrade-rollback.md b/data/reusables/enterprise_installation/command-line-utilities-ghe-upgrade-rollback.md index 8d44dbb727..3465598ef8 100644 --- a/data/reusables/enterprise_installation/command-line-utilities-ghe-upgrade-rollback.md +++ b/data/reusables/enterprise_installation/command-line-utilities-ghe-upgrade-rollback.md @@ -1,7 +1,7 @@ When rolling back an upgrade, you must use an upgrade package file with the *.pkg* extension. Hotpatch package files with the *.hpkg* extension are not supported. ```shell -ghe-upgrade --allow-patch-rollback EARLIER-RELEASE-UPGRADE-PACKAGE.pkg +ghe-upgrade --allow-patch-rollback EARLIER-RELEASE-UPGRADE-PACKAGE.pkg ``` A reboot is required after running the command. Rolling back does not affect the data partition, as migrations are not run on patch releases. diff --git a/data/reusables/enterprise_installation/configuration-recognized.md b/data/reusables/enterprise_installation/configuration-recognized.md index 60d20391dc..4cb2268a49 100644 --- a/data/reusables/enterprise_installation/configuration-recognized.md +++ b/data/reusables/enterprise_installation/configuration-recognized.md @@ -1,5 +1,5 @@ 1. Once the instance has fully restarted and you can reach it, use the SSH administrative shell to verify that the new resource configuration is recognized: ```shell -$ ssh -p 122 admin@HOSTNAME +$ ssh -p 122 admin@HOSTNAME $ ghe-system-info ``` diff --git a/data/reusables/enterprise_installation/download-package.md b/data/reusables/enterprise_installation/download-package.md index 6cc7a602ff..e051e1cc9e 100644 --- a/data/reusables/enterprise_installation/download-package.md +++ b/data/reusables/enterprise_installation/download-package.md @@ -1,4 +1,4 @@ 1. Download the upgrade package to {% data variables.product.product_location %} using `curl `: ```shell -admin@HOSTNAME:~$ curl -L -O UPGRADE-PKG-URL +admin@HOSTNAME:~$ curl -L -O UPGRADE-PKG-URL ``` diff --git a/data/reusables/enterprise_installation/generate-replication-key-pair.md b/data/reusables/enterprise_installation/generate-replication-key-pair.md index 7f7056e59a..66c04ee3ed 100644 --- a/data/reusables/enterprise_installation/generate-replication-key-pair.md +++ b/data/reusables/enterprise_installation/generate-replication-key-pair.md @@ -1,4 +1,4 @@ 7. To generate a key pair for replication, use the `ghe-repl-setup` command with the primary appliance's IP address and copy the public key that it returns. ```shell - $ ghe-repl-setup PRIMARY IP + $ ghe-repl-setup PRIMARY_IP ``` diff --git a/data/reusables/enterprise_installation/replica-ssh.md b/data/reusables/enterprise_installation/replica-ssh.md index 3a28108630..b2c22e4905 100644 --- a/data/reusables/enterprise_installation/replica-ssh.md +++ b/data/reusables/enterprise_installation/replica-ssh.md @@ -1,4 +1,4 @@ 1. Connect to the replica instance over SSH as the "admin" user on port 122: ```shell -$ ssh -p 122 admin@replica-host +$ ssh -p 122 admin@REPLICA_HOST ``` diff --git a/data/reusables/enterprise_installation/ssh-into-instance.md b/data/reusables/enterprise_installation/ssh-into-instance.md index 01094fb67b..cd5b8ce2cd 100644 --- a/data/reusables/enterprise_installation/ssh-into-instance.md +++ b/data/reusables/enterprise_installation/ssh-into-instance.md @@ -1,5 +1,5 @@ 1. SSH into {% data variables.product.product_location %}. If your instance comprises multiple nodes, for example if high availability or geo-replication are configured, SSH into the primary node. If you use a cluster, you can SSH into any node. For more information about SSH access, see "[Accessing the administrative shell (SSH)](/admin/configuration/accessing-the-administrative-shell-ssh)." ```shell - $ ssh -p 122 admin@HOSTNAME + $ ssh -p 122 admin@HOSTNAME ``` diff --git a/data/reusables/enterprise_installation/ssh-into-target-instance.md b/data/reusables/enterprise_installation/ssh-into-target-instance.md index 9c6a2495d5..a249949cdf 100644 --- a/data/reusables/enterprise_installation/ssh-into-target-instance.md +++ b/data/reusables/enterprise_installation/ssh-into-target-instance.md @@ -1,4 +1,4 @@ 1. As a site admin, [SSH into your target {% data variables.product.prodname_ghe_server %} instance](/enterprise/admin/guides/installation/accessing-the-administrative-shell-ssh/). ```shell -$ ssh -p 122 admin@HOSTNAME +$ ssh -p 122 admin@HOSTNAME ``` diff --git a/data/reusables/enterprise_migrations/unlocking-on-instances.md b/data/reusables/enterprise_migrations/unlocking-on-instances.md index 67495e7227..29f0034a47 100644 --- a/data/reusables/enterprise_migrations/unlocking-on-instances.md +++ b/data/reusables/enterprise_migrations/unlocking-on-instances.md @@ -1,5 +1,5 @@ 1. Unlock all the imported repositories with the `ghe-migrator unlock` command. You'll need your Migration GUID: ```shell -$ ghe-migrator unlock -g MIGRATION_GUID +$ ghe-migrator unlock -g MIGRATION-GUID > Unlocked octo-org/octo-project ``` diff --git a/data/reusables/git/git-push.md b/data/reusables/git/git-push.md index 2e99b1f21b..850aca63b9 100644 --- a/data/reusables/git/git-push.md +++ b/data/reusables/git/git-push.md @@ -1,5 +1,5 @@ 1. [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 your-branch + $ git push origin YOUR_BRANCH # Pushes the changes in your local repository up to the remote repository you specified as the origin ``` diff --git a/data/reusables/gpg/paste-gpg-key-id.md b/data/reusables/gpg/paste-gpg-key-id.md index e0bb894d01..d75e15cb2e 100644 --- a/data/reusables/gpg/paste-gpg-key-id.md +++ b/data/reusables/gpg/paste-gpg-key-id.md @@ -1,9 +1,9 @@ 1. To set your primary GPG signing key in Git, paste the text below, substituting in the GPG primary key ID you'd like to use. In this example, the GPG key ID is `3AA5C34371567BD2`: ```shell - $ git config --global user.signingkey 3AA5C34371567BD2 + $ git config --global user.signingkey 3AA5C34371567BD2 ``` Alternatively, when setting a subkey include the `!` suffix. In this example, the GPG subkey ID is `4BB6D45482678BE3`: ```shell - $ git config --global user.signingkey 4BB6D45482678BE3! + $ git config --global user.signingkey 4BB6D45482678BE3! ``` diff --git a/data/reusables/gpg/x-509-key.md b/data/reusables/gpg/x-509-key.md index a303466a11..1f26fe3e15 100644 --- a/data/reusables/gpg/x-509-key.md +++ b/data/reusables/gpg/x-509-key.md @@ -15,7 +15,7 @@ You can use [smimesign](https://github.com/github/smimesign) to sign commits and ``` - To use S/MIME to sign for a single repository: ```shell - $ cd /path/to/my/repository + $ cd PATH_TO_REPOSITORY $ git config --local gpg.x509.program smimesign $ git config --local gpg.format x509 ``` @@ -26,7 +26,7 @@ You can use [smimesign](https://github.com/github/smimesign) to sign commits and ``` - To use S/MIME to sign for a single repository: ```shell - $ cd /path/to/my/repository + $ cd PATH_TO_REPOSITORY $ git config --local gpg.program smimesign ``` If you're using an X.509 key that matches your committer identity, you can begin signing commits and tags. @@ -48,10 +48,10 @@ You can use [smimesign](https://github.com/github/smimesign) to sign commits and 6. To set your X.509 signing key in Git, paste the text below, substituting in the certificate ID you copied earlier. - To use your X.509 key to sign for all repositories: ```shell - $ git config --global user.signingkey 0ff455a2708394633e4bb2f88002e3cd80cbd76f + $ git config --global user.signingkey 0ff455a2708394633e4bb2f88002e3cd80cbd76f ``` - To use your X.509 key to sign for a single repository: ```shell - $ cd /path/to/my/repository - $ git config --local user.signingkey 0ff455a2708394633e4bb2f88002e3cd80cbd76f + $ cd PATH_TO_REPOSITORY + $ git config --local user.signingkey 0ff455a2708394633e4bb2f88002e3cd80cbd76f ``` diff --git a/data/reusables/package_registry/create-npmrc-owner-step.md b/data/reusables/package_registry/create-npmrc-owner-step.md index af4ee63bcd..2d49a24d9c 100644 --- a/data/reusables/package_registry/create-npmrc-owner-step.md +++ b/data/reusables/package_registry/create-npmrc-owner-step.md @@ -2,15 +2,15 @@ {% ifversion fpt or ghec %} ```shell - @OWNER:registry=https://npm.pkg.github.com + @OWNER:registry=https://npm.pkg.github.com ``` {% else %} If subdomain isolation is enabled: ```shell - @OWNER:registry=https://npm.HOSTNAME + @OWNER:registry=https://npm.HOSTNAME ``` If subdomain isolation is disabled: ```shell - @OWNER:registry=https://HOSTNAME/_registry/npm + @OWNER:registry=https://HOSTNAME/_registry/npm ``` {% endif %} diff --git a/data/reusables/pages/remove-submodule.md b/data/reusables/pages/remove-submodule.md index 4e1201dcd4..63c2baba8b 100644 --- a/data/reusables/pages/remove-submodule.md +++ b/data/reusables/pages/remove-submodule.md @@ -1,9 +1,9 @@ To troubleshoot, first decide if you actually want to use a submodule, which is a Git project inside a Git project; submodules are sometimes created accidentally. -If you don't want to use a submodule, remove the submodule, replacing PATH-TO-SUBMODULE with the path to the submodule: +If you don't want to use a submodule, remove the submodule, replacing PATH-TO-SUBMODULE with the path to the submodule: ```shell -$ git submodule deinit PATH-TO-SUBMODULE -$ git rm PATH-TO-SUBMODULE +$ git submodule deinit PATH-TO-SUBMODULE +$ git rm PATH-TO-SUBMODULE $ git commit -m "Remove submodule" -$ rm -rf .git/modules/PATH-TO-SUBMODULE +$ rm -rf .git/modules/PATH-TO-SUBMODULE ``` From d14b2413deecdfb866eb585da36d6658f7d5dd40 Mon Sep 17 00:00:00 2001 From: Dev Prakash Sharma Date: Mon, 3 Oct 2022 00:46:57 +0530 Subject: [PATCH 04/15] updated code-examples --- .../upgrading-github-enterprise-server.md | 4 ++-- .../preparing-to-migrate-data-to-your-enterprise.md | 10 +++++----- .../webhooks-and-events/webhooks/creating-webhooks.md | 2 +- data/reusables/gpg/x-509-key.md | 6 +++--- 4 files changed, 11 insertions(+), 11 deletions(-) diff --git a/content/admin/enterprise-management/updating-the-virtual-machine-and-physical-resources/upgrading-github-enterprise-server.md b/content/admin/enterprise-management/updating-the-virtual-machine-and-physical-resources/upgrading-github-enterprise-server.md index 4770717072..25334f84d1 100644 --- a/content/admin/enterprise-management/updating-the-virtual-machine-and-physical-resources/upgrading-github-enterprise-server.md +++ b/content/admin/enterprise-management/updating-the-virtual-machine-and-physical-resources/upgrading-github-enterprise-server.md @@ -176,8 +176,8 @@ While you can use a hotpatch to upgrade to the latest patch release within a fea 6. Confirm that you'd like to continue with the upgrade and restart after the package signature verifies. The new root filesystem writes to the secondary partition and the instance automatically restarts in maintenance mode: ```shell *** applying update... - This package will upgrade your installation to version version-number - Current root partition: /dev/xvda1 [version-number] + This package will upgrade your installation to version VERSION-NUMBER + Current root partition: /dev/xvda1 [VERSION-NUMBER] Target root partition: /dev/xvda2 Proceed with installation? [y/N] ``` diff --git a/content/admin/user-management/migrating-data-to-and-from-your-enterprise/preparing-to-migrate-data-to-your-enterprise.md b/content/admin/user-management/migrating-data-to-and-from-your-enterprise/preparing-to-migrate-data-to-your-enterprise.md index f2f285ece1..2e743d65b5 100644 --- a/content/admin/user-management/migrating-data-to-and-from-your-enterprise/preparing-to-migrate-data-to-your-enterprise.md +++ b/content/admin/user-management/migrating-data-to-and-from-your-enterprise/preparing-to-migrate-data-to-your-enterprise.md @@ -30,7 +30,7 @@ shortTitle: Prepare to migrate data 3. Use the `ghe-migrator prepare` command to prepare the archive for import on the target instance and generate a new Migration GUID for you to use in subsequent steps: ```shell - ghe-migrator prepare /home/admin/MIGRATION_GUID.tar.gz + ghe-migrator prepare /home/admin/MIGRATION-GUID.tar.gz ``` * To start a new import attempt, run `ghe-migrator prepare` again and get a new Migration GUID. @@ -40,7 +40,7 @@ shortTitle: Prepare to migrate data 1. Using the `ghe-migrator conflicts` command with the Migration GUID, generate a *conflicts.csv* file: ```shell - $ ghe-migrator conflicts -g MIGRATION_GUID > conflicts.csv + $ ghe-migrator conflicts -g MIGRATION-GUID > conflicts.csv ``` - If no conflicts are reported, you can safely import the data by following the steps in "[Migrating data to your enterprise](/enterprise/admin/guides/migrations/applying-the-imported-data-on-github-enterprise-server/)". 2. If there are conflicts, using the [`scp`](https://acloudguru.com/blog/engineering/ssh-and-scp-howto-tips-tricks#scp) command, copy *conflicts.csv* to your local computer: @@ -118,7 +118,7 @@ Given a list of usernames from the source and a list of usernames on the target, You can quickly generate a CSV of users being migrated in the CSV format needed to apply custom mappings by using the [`ghe-migrator audit`](/enterprise/admin/guides/migrations/reviewing-migration-data) command: ```shell -$ ghe-migrator audit -m user -g MIGRATION_GUID > users.csv +$ ghe-migrator audit -m user -g MIGRATION-GUID > users.csv ``` Now, you can edit that CSV and enter the new URL for each user you would like to map or rename, and then update the fourth column to have `map` or `rename` as appropriate. @@ -142,7 +142,7 @@ The same process can be used to create mappings for each record that supports cu 2. Re-map the migration data using the `ghe-migrator map` command, passing in the path to your modified *.csv* file and the Migration GUID: ```shell - $ ghe-migrator map -i conflicts.csv -g MIGRATION_GUID + $ ghe-migrator map -i conflicts.csv -g MIGRATION-GUID ``` -3. If the `ghe-migrator map -i conflicts.csv -g MIGRATION_GUID` command reports that conflicts still exist, run through the migration conflict resolution process again. +3. If the `ghe-migrator map -i conflicts.csv -g MIGRATION-GUID` command reports that conflicts still exist, run through the migration conflict resolution process again. diff --git a/content/developers/webhooks-and-events/webhooks/creating-webhooks.md b/content/developers/webhooks-and-events/webhooks/creating-webhooks.md index 4a2fc2da67..4891b1b676 100644 --- a/content/developers/webhooks-and-events/webhooks/creating-webhooks.md +++ b/content/developers/webhooks-and-events/webhooks/creating-webhooks.md @@ -26,7 +26,7 @@ For the purposes of this tutorial, we're going to use a local server to receive After installing `ngrok`, you can expose your localhost by running `./ngrok http 4567` on the command line. 4567 is the port number on which our server will listen for messages. You should see a line that looks something like this: ```shell -$ Forwarding http://7e9ea9dc.ngrok.io -> 127.0.0.1:4567 +$ Forwarding http://7e9ea9dc.ngrok.io -> 127.0.0.1:4567 ``` Make a note of the `*.ngrok.io` URL. We'll use it to set up our webhook. diff --git a/data/reusables/gpg/x-509-key.md b/data/reusables/gpg/x-509-key.md index 1f26fe3e15..26e14aa402 100644 --- a/data/reusables/gpg/x-509-key.md +++ b/data/reusables/gpg/x-509-key.md @@ -15,7 +15,7 @@ You can use [smimesign](https://github.com/github/smimesign) to sign commits and ``` - To use S/MIME to sign for a single repository: ```shell - $ cd PATH_TO_REPOSITORY + $ cd PATH-TO-REPOSITORY $ git config --local gpg.x509.program smimesign $ git config --local gpg.format x509 ``` @@ -26,7 +26,7 @@ You can use [smimesign](https://github.com/github/smimesign) to sign commits and ``` - To use S/MIME to sign for a single repository: ```shell - $ cd PATH_TO_REPOSITORY + $ cd PATH-TO-REPOSITORY $ git config --local gpg.program smimesign ``` If you're using an X.509 key that matches your committer identity, you can begin signing commits and tags. @@ -52,6 +52,6 @@ You can use [smimesign](https://github.com/github/smimesign) to sign commits and ``` - To use your X.509 key to sign for a single repository: ```shell - $ cd PATH_TO_REPOSITORY + $ cd PATH-TO-REPOSITORY $ git config --local user.signingkey 0ff455a2708394633e4bb2f88002e3cd80cbd76f ``` From 92e153eaf55428935157b2288af7cd2516bc78e0 Mon Sep 17 00:00:00 2001 From: Dev Prakash Sharma Date: Mon, 3 Oct 2022 00:49:17 +0530 Subject: [PATCH 05/15] Merge branch 'codewithdev-changes' of https://github.com/codewithdev/docs into codewithdev-changes From 69ce3069c1a2293fc690d81460dbb826581afb74 Mon Sep 17 00:00:00 2001 From: Ethan Palm <56270045+ethanpalm@users.noreply.github.com> Date: Mon, 3 Oct 2022 11:11:29 -0700 Subject: [PATCH 06/15] Apply suggestions from code review --- .../setting-your-commit-email-address.md | 2 +- ...-on-macos-runners-for-xcode-development.md | 2 +- .../autoscaling-with-self-hosted-runners.md | 2 +- ...and-troubleshooting-self-hosted-runners.md | 4 ++-- .../command-line-utilities.md | 2 +- .../configuring-a-repository-cache.md | 4 ++-- ...-availability-replication-for-a-cluster.md | 20 +++++++++---------- ...ng-github-desktop-from-the-command-line.md | 6 +++--- .../overview/using-ssh-agent-forwarding.md | 4 ++-- ...a-git-repository-using-the-command-line.md | 2 +- .../guides/forming-calls-with-graphql.md | 4 ++-- .../checking-out-pull-requests-locally.md | 2 +- .../enterprise-admin/management-console.md | 4 ++-- 13 files changed, 29 insertions(+), 29 deletions(-) diff --git a/content/account-and-profile/setting-up-and-managing-your-personal-account-on-github/managing-email-preferences/setting-your-commit-email-address.md b/content/account-and-profile/setting-up-and-managing-your-personal-account-on-github/managing-email-preferences/setting-your-commit-email-address.md index ced0c6c3fb..66e0967805 100644 --- a/content/account-and-profile/setting-up-and-managing-your-personal-account-on-github/managing-email-preferences/setting-your-commit-email-address.md +++ b/content/account-and-profile/setting-up-and-managing-your-personal-account-on-github/managing-email-preferences/setting-your-commit-email-address.md @@ -51,7 +51,7 @@ To ensure that commits are attributed to you and appear in your contributions gr {% note %} -**Note:** If you created your account on {% data variables.product.product_location %} _after_ July 18, 2017, your `noreply` email address for {% data variables.product.product_name %} is a seven-digit ID number and your username in the form of ID+username@users.noreply.github.com. If you created your account on {% data variables.product.product_location %} _prior to_ July 18, 2017, your `noreply` email address from {% data variables.product.product_name %} is username@users.noreply.github.com. You can get an ID-based `noreply` email address for {% data variables.product.product_name %} by selecting (or deselecting and reselecting) **Keep my email address private** in your email settings. +**Note:** If you created your account on {% data variables.product.product_location %} _after_ July 18, 2017, your `noreply` email address for {% data variables.product.product_name %} is a seven-digit ID number and your username in the form of ID+USERNAME@users.noreply.github.com. If you created your account on {% data variables.product.product_location %} _prior to_ July 18, 2017, your `noreply` email address from {% data variables.product.product_name %} is USERNAME@users.noreply.github.com. You can get an ID-based `noreply` email address for {% data variables.product.product_name %} by selecting (or deselecting and reselecting) **Keep my email address private** in your email settings. {% endnote %} diff --git a/content/actions/deployment/deploying-xcode-applications/installing-an-apple-certificate-on-macos-runners-for-xcode-development.md b/content/actions/deployment/deploying-xcode-applications/installing-an-apple-certificate-on-macos-runners-for-xcode-development.md index be5b750a87..1459f98cd5 100644 --- a/content/actions/deployment/deploying-xcode-applications/installing-an-apple-certificate-on-macos-runners-for-xcode-development.md +++ b/content/actions/deployment/deploying-xcode-applications/installing-an-apple-certificate-on-macos-runners-for-xcode-development.md @@ -63,7 +63,7 @@ Create secrets in your repository or organization for the following items: - Use the following command to convert your provisioning profile to Base64 and copy it to your clipboard: ```shell - base64 provisioning_profile.mobileprovision | pbcopy + base64 PROVISIONING_PROFILE.mobileprovision | pbcopy ``` * A keychain password. diff --git a/content/actions/hosting-your-own-runners/autoscaling-with-self-hosted-runners.md b/content/actions/hosting-your-own-runners/autoscaling-with-self-hosted-runners.md index 7d67ea775c..e2894b8fdd 100644 --- a/content/actions/hosting-your-own-runners/autoscaling-with-self-hosted-runners.md +++ b/content/actions/hosting-your-own-runners/autoscaling-with-self-hosted-runners.md @@ -63,7 +63,7 @@ By default, self-hosted runners will automatically perform a software update whe To turn off automatic software updates and install software updates yourself, specify the `--disableupdate` flag when registering your runner using `config.sh`. For example: ```shell -./config.sh --url https://github.com/octo-org --token EXAMPLE-TOKEN --disableupdate +./config.sh --url https://github.com/YOUR-ORGANIZATION --token EXAMPLE-TOKEN --disableupdate ``` If you disable automatic updates, you must still update your runner version regularly. New functionality in {% data variables.product.prodname_actions %} requires changes in both the {% data variables.product.prodname_actions %} service _and_ the runner software. The runner may not be able to correctly process jobs that take advantage of new features in {% data variables.product.prodname_actions %} without a software update. diff --git a/content/actions/hosting-your-own-runners/monitoring-and-troubleshooting-self-hosted-runners.md b/content/actions/hosting-your-own-runners/monitoring-and-troubleshooting-self-hosted-runners.md index c828388039..02a70e8c26 100644 --- a/content/actions/hosting-your-own-runners/monitoring-and-troubleshooting-self-hosted-runners.md +++ b/content/actions/hosting-your-own-runners/monitoring-and-troubleshooting-self-hosted-runners.md @@ -59,7 +59,7 @@ For example: {% windows %} ```shell -run.cmd --check --url https://github.com/octo-org/octo-repo --pat gcp_abcd1234 +run.cmd --check --url https://github.com/YOUR-ORG/YOUR-REPO --pat GHP_ABCD1234 ``` {% endwindows %} @@ -79,7 +79,7 @@ To disable TLS certification verification in the self-hosted runner application, ```shell export GITHUB_ACTIONS_RUNNER_TLS_NO_VERIFY=1 -./config.sh --url https://github.com/octo-org/octo-repo --token +./config.sh --url https://github.com/YOUR-ORG/YOUR-REPO --token ./run.sh ``` diff --git a/content/admin/configuration/configuring-your-enterprise/command-line-utilities.md b/content/admin/configuration/configuring-your-enterprise/command-line-utilities.md index 1fcaf9bf0e..6ce475f511 100644 --- a/content/admin/configuration/configuring-your-enterprise/command-line-utilities.md +++ b/content/admin/configuration/configuring-your-enterprise/command-line-utilities.md @@ -115,7 +115,7 @@ With this utility, you can both retrieve and modify the configuration settings o $ ghe-config core.github-hostname # Gets the configuration value of `core.github-hostname` $ ghe-config core.github-hostname URL -# Sets the configuration value of `core.github-hostname` to URL for example, `example.com` +# Sets the configuration value of `core.github-hostname` to the specified URL $ ghe-config -l # Lists all the configuration values ``` diff --git a/content/admin/enterprise-management/caching-repositories/configuring-a-repository-cache.md b/content/admin/enterprise-management/caching-repositories/configuring-a-repository-cache.md index bc6312c9e2..708967668a 100644 --- a/content/admin/enterprise-management/caching-repositories/configuring-a-repository-cache.md +++ b/content/admin/enterprise-management/caching-repositories/configuring-a-repository-cache.md @@ -45,7 +45,7 @@ Then, when told to fetch `https://github.example.com/myorg/myrepo`, Git will ins 1. Connect to the repository cache's IP address using SSH. ```shell - $ ssh -p 122 admin@REPLICA IP + $ ssh -p 122 admin@REPLICA-IP ``` {%- ifversion ghes = 3.3 %} 1. On your cache replica, enable the feature flag for repository caching. @@ -59,7 +59,7 @@ Then, when told to fetch `https://github.example.com/myorg/myrepo`, Git will ins 1. To verify the connection to the primary and enable replica mode for the repository cache, run `ghe-repl-setup` again. ```shell - $ ghe-repl-setup PRIMARY IP + $ ghe-repl-setup PRIMARY-IP ``` 1. Set a `cache_location` for the repository cache, replacing *CACHE-LOCATION* with an alphanumeric identifier, such as the region where the cache is deployed. Also set a datacenter name for this cache; new caches will attempt to seed from another cache in the same datacenter. diff --git a/content/admin/enterprise-management/configuring-clustering/configuring-high-availability-replication-for-a-cluster.md b/content/admin/enterprise-management/configuring-clustering/configuring-high-availability-replication-for-a-cluster.md index 51b1594478..1291e253e1 100644 --- a/content/admin/enterprise-management/configuring-clustering/configuring-high-availability-replication-for-a-cluster.md +++ b/content/admin/enterprise-management/configuring-clustering/configuring-high-availability-replication-for-a-cluster.md @@ -80,7 +80,7 @@ Before you define a secondary datacenter for your passive nodes, ensure that you [cluster "HOSTNAME"] datacenter = default hostname = HOSTNAME - ipv4 = IP ADDRESS + ipv4 = IP-ADDRESS ... ... ``` @@ -185,8 +185,8 @@ For an example configuration, see "[Example configuration](#example-configuratio 11. Designate the primary MySQL and Redis nodes in the secondary datacenter. Replace `REPLICA MYSQL PRIMARY HOSTNAME` and `REPLICA REDIS PRIMARY HOSTNAME` with the hostnames of the passives node that you provisioned to match your existing MySQL and Redis primaries. ```shell - git config -f /data/user/common/cluster.conf cluster.mysql-master-replica REPLICA MYSQL PRIMARY HOSTNAME - git config -f /data/user/common/cluster.conf cluster.redis-master-replica REPLICA REDIS PRIMARY HOSTNAME + git config -f /data/user/common/cluster.conf cluster.mysql-master-replica REPLICA-MYSQL-PRIMARY-HOSTNAME + git config -f /data/user/common/cluster.conf cluster.redis-master-replica REPLICA-REDIS-PRIMARY-HOSTNAME ``` {% warning %} @@ -235,11 +235,11 @@ The top-level `[cluster]` configuration should look like the following example. ```shell [cluster] - mysql-master = HOSTNAME OF ACTIVE MYSQL MASTER - redis-master = HOSTNAME OF ACTIVE REDIS MASTER - primary-datacenter = PRIMARY DATACENTER NAME - mysql-master-replica = HOSTNAME OF PASSIVE MYSQL MASTER - redis-master-replica = HOSTNAME OF PASSIVE REDIS MASTER + mysql-master = HOSTNAME-OF-ACTIVE-MYSQL-MASTER + redis-master = HOSTNAME-OF-ACTIVE-REDIS-MASTER + primary-datacenter = PRIMARY-DATACENTER-NAME + mysql-master-replica = HOSTNAME-OF-PASSIVE-MYSQL-MASTER + redis-master-replica = HOSTNAME-OF-PASSIVE-REDIS-MASTER mysql-auto-failover = false ... ``` @@ -250,8 +250,8 @@ The configuration for an active node in your cluster's storage tier should look ... [cluster "UNIQUE ACTIVE NODE HOSTNAME"] datacenter = default - hostname = UNIQUE ACTIVE NODE HOSTNAME - ipv4 = IPV4 ADDRESS + hostname = UNIQUE-ACTIVE-NODE-HOSTNAME + ipv4 = IPV4-ADDRESS consul-datacenter = default consul-server = true git-server = true diff --git a/content/desktop/installing-and-configuring-github-desktop/overview/launching-github-desktop-from-the-command-line.md b/content/desktop/installing-and-configuring-github-desktop/overview/launching-github-desktop-from-the-command-line.md index b0f93f2234..bdcff0058c 100644 --- a/content/desktop/installing-and-configuring-github-desktop/overview/launching-github-desktop-from-the-command-line.md +++ b/content/desktop/installing-and-configuring-github-desktop/overview/launching-github-desktop-from-the-command-line.md @@ -22,7 +22,7 @@ versions: You can also change to your repository path and then type `github .` to open that repository. ```shell - $ cd /path/to/repo + $ cd /PATH/TO/REPO [repo]$ github . ``` @@ -34,13 +34,13 @@ versions: 2. {% data reusables.desktop.launch-desktop-from-command-line %} ```shell - C:\Users\octocat> github path\to\repo + C:\Users\octocat> github PATH\TO\REPO ``` You can also change to your repository path and then type `github .` to open that repository. ```shell - C:\Users\octocat> cd repo\myrepo + C:\Users\octocat> cd REPO\MY-REPO C:\Users\octocat\repo\myrepo> github . ``` diff --git a/content/developers/overview/using-ssh-agent-forwarding.md b/content/developers/overview/using-ssh-agent-forwarding.md index a0f3e4dfa2..7921be217c 100644 --- a/content/developers/overview/using-ssh-agent-forwarding.md +++ b/content/developers/overview/using-ssh-agent-forwarding.md @@ -97,8 +97,8 @@ Before you can make your keys work through agent forwarding, they must work loca Sometimes, system configurations disallow SSH agent forwarding. You can check if a system configuration file is being used by entering the following command in the terminal: ```shell -$ ssh -v "example.com" -# Connect to example.com with verbose debug output +$ ssh -v URL +# Connect to the specified URL with verbose debug output > OpenSSH_8.1p1, LibreSSL 2.7.3 > debug1: Reading configuration data /Users/YOU/.ssh/config > debug1: Applying options for example.com diff --git a/content/get-started/importing-your-projects-to-github/importing-source-code-to-github/importing-a-git-repository-using-the-command-line.md b/content/get-started/importing-your-projects-to-github/importing-source-code-to-github/importing-a-git-repository-using-the-command-line.md index 15aceafdb9..e570aed9dc 100644 --- a/content/get-started/importing-your-projects-to-github/importing-source-code-to-github/importing-a-git-repository-using-the-command-line.md +++ b/content/get-started/importing-your-projects-to-github/importing-source-code-to-github/importing-a-git-repository-using-the-command-line.md @@ -37,7 +37,7 @@ For purposes of demonstration, we'll use: 3. Push the locally cloned repository to {% data variables.product.product_name %} using the "mirror" option, which ensures that all references, such as branches and tags, are copied to the imported repository. ```shell $ cd REPO.git - $ git push --mirror https://{% data variables.command_line.codeblock %}/ghuser/REPO.git + $ git push --mirror https://{% data variables.command_line.codeblock %}/USER/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. Remove the temporary local repository. diff --git a/content/graphql/guides/forming-calls-with-graphql.md b/content/graphql/guides/forming-calls-with-graphql.md index e086d40fb2..eb64b6f601 100644 --- a/content/graphql/guides/forming-calls-with-graphql.md +++ b/content/graphql/guides/forming-calls-with-graphql.md @@ -106,8 +106,8 @@ To form a mutation, you must specify three things: Mutations are structured like this:
mutation {
-  mutationName(input: {MutationNameInput!}) {
-    MutationNamePayload
+  MUTATION-NAME(input: {MUTATION-NAME-INPUT!}) {
+    MUTATION-NAME-PAYLOAD
   }
 }
diff --git a/content/pull-requests/collaborating-with-pull-requests/reviewing-changes-in-pull-requests/checking-out-pull-requests-locally.md b/content/pull-requests/collaborating-with-pull-requests/reviewing-changes-in-pull-requests/checking-out-pull-requests-locally.md index a2f42020f0..0740282958 100644 --- a/content/pull-requests/collaborating-with-pull-requests/reviewing-changes-in-pull-requests/checking-out-pull-requests-locally.md +++ b/content/pull-requests/collaborating-with-pull-requests/reviewing-changes-in-pull-requests/checking-out-pull-requests-locally.md @@ -74,7 +74,7 @@ Anyone can work with a previously opened pull request to continue working on it, 7. At this point, you can do anything you want with this branch. You can run some local tests, or merge other branches into the branch. 8. When you're ready, you can push the new branch up: ```shell - [pull-inactive-pull-request] $ git push origin BRANCHNAME + [pull-inactive-pull-request] $ git push origin BRANCH_NAME > Counting objects: 32, done. > Delta compression using up to 8 threads. > Compressing objects: 100% (26/26), done. diff --git a/content/rest/enterprise-admin/management-console.md b/content/rest/enterprise-admin/management-console.md index 0f1095eb85..961fc9d74a 100644 --- a/content/rest/enterprise-admin/management-console.md +++ b/content/rest/enterprise-admin/management-console.md @@ -25,11 +25,11 @@ You need to pass your [Management Console password](/enterprise/admin/articles/a Use the `api_key` parameter to send this token with each request. For example: ```shell -$ curl -L 'https://HOSTNAME:ADMIN-PORT/setup/api?api_key=YOUR_AMAZING_PASSWORD' +$ curl -L 'https://HOSTNAME:ADMIN-PORT/setup/api?api_key=YOUR_PASSWORD' ``` You can also use standard HTTP authentication to send this token. For example: ```shell -$ curl -L -u "api_key:YOUR_AMAZING_PASSWORD" 'https://HOSTNAME:ADMIN-PORT/setup/api' +$ curl -L -u "api_key:YOUR_PASSWORD" 'https://HOSTNAME:ADMIN-PORT/setup/api' ``` From af13d81f7555d2ad115311ed5e65dc173878619b Mon Sep 17 00:00:00 2001 From: Ethan Palm <56270045+ethanpalm@users.noreply.github.com> Date: Mon, 3 Oct 2022 11:13:16 -0700 Subject: [PATCH 07/15] Apply suggestions from code review --- .../managing-commit-signature-verification/signing-commits.md | 2 +- .../overview/launching-github-desktop-from-the-command-line.md | 2 +- .../creating-and-managing-repositories/cloning-a-repository.md | 3 +-- data/reusables/actions/self-hosted-runner-check-mac-linux.md | 3 +-- 4 files changed, 4 insertions(+), 6 deletions(-) diff --git a/content/authentication/managing-commit-signature-verification/signing-commits.md b/content/authentication/managing-commit-signature-verification/signing-commits.md index faeeb878b6..e9b3200e36 100644 --- a/content/authentication/managing-commit-signature-verification/signing-commits.md +++ b/content/authentication/managing-commit-signature-verification/signing-commits.md @@ -36,7 +36,7 @@ If you have multiple keys or are attempting to sign commits or tags with a key t 1. When committing changes in your local branch, add the -S flag to the git commit command: ```shell - $ git commit -S -m YOUR_COMMIT_MESSAGE + $ git commit -S -m "YOUR_COMMIT_MESSAGE" # Creates a signed commit ``` 2. If you're using GPG, after you create your commit, provide the passphrase you set up when you [generated your GPG key](/articles/generating-a-new-gpg-key). diff --git a/content/desktop/installing-and-configuring-github-desktop/overview/launching-github-desktop-from-the-command-line.md b/content/desktop/installing-and-configuring-github-desktop/overview/launching-github-desktop-from-the-command-line.md index bdcff0058c..edcbbd0900 100644 --- a/content/desktop/installing-and-configuring-github-desktop/overview/launching-github-desktop-from-the-command-line.md +++ b/content/desktop/installing-and-configuring-github-desktop/overview/launching-github-desktop-from-the-command-line.md @@ -16,7 +16,7 @@ versions: 3. {% data reusables.desktop.launch-desktop-from-command-line %} ```shell - $ github /path/to/repo + $ github /PATH/TO/REPO ``` You can also change to your repository path and then type `github .` to open that repository. diff --git a/content/repositories/creating-and-managing-repositories/cloning-a-repository.md b/content/repositories/creating-and-managing-repositories/cloning-a-repository.md index c8bf281fc9..d5ff6f38b6 100644 --- a/content/repositories/creating-and-managing-repositories/cloning-a-repository.md +++ b/content/repositories/creating-and-managing-repositories/cloning-a-repository.md @@ -48,9 +48,8 @@ gh repo clone REPOSITORY You can also use the GitHub URL to clone a repository. ```shell -gh repo clone URL +gh repo clone https://github.com/PATH-TO/REPOSITORY ``` -Replace URL with the URL of a GitHub repository. For example, `https://github.com/cli/cli` {% endcli %} diff --git a/data/reusables/actions/self-hosted-runner-check-mac-linux.md b/data/reusables/actions/self-hosted-runner-check-mac-linux.md index 5a946bfa75..ca32cd3f4a 100644 --- a/data/reusables/actions/self-hosted-runner-check-mac-linux.md +++ b/data/reusables/actions/self-hosted-runner-check-mac-linux.md @@ -1,4 +1,3 @@ ```shell ./run.sh --check --url URL --pat ghp_abcd1234 -``` -Replace URL with the URL of repository. For example, `https://github.com/octo-org/octo-repo`. \ No newline at end of file +``` \ No newline at end of file From d5ba742c2f1efa317c441fb727d6dec7dc82d338 Mon Sep 17 00:00:00 2001 From: Ethan Palm <56270045+ethanpalm@users.noreply.github.com> Date: Mon, 3 Oct 2022 13:16:57 -0700 Subject: [PATCH 08/15] fix liquid tag --- .../working-with-the-gradle-registry.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/content/packages/working-with-a-github-packages-registry/working-with-the-gradle-registry.md b/content/packages/working-with-a-github-packages-registry/working-with-the-gradle-registry.md index dc5f62a139..2646465644 100644 --- a/content/packages/working-with-a-github-packages-registry/working-with-the-gradle-registry.md +++ b/content/packages/working-with-a-github-packages-registry/working-with-the-gradle-registry.md @@ -192,7 +192,7 @@ To use a published package from {% data variables.product.prodname_registry %}, ```shell repositories { maven { - url = uri("https://{% ifversion fpt or ghec %}maven.pkg.github.com{% else % REGISTRY-URL{% endif %}/OWNER/REPOSITORY") + url = uri("https://{% ifversion fpt or ghec %}maven.pkg.github.com{% else %}REGISTRY-URL{% endif %}/OWNER/REPOSITORY") credentials { username = project.findProperty("gpr.user") ?: System.getenv("USERNAME") password = project.findProperty("gpr.key") ?: System.getenv("TOKEN") From 39cd30a2abb03609b0dbf493ea09432f1dd3d4c8 Mon Sep 17 00:00:00 2001 From: Jim Boyle <95828167+boylejj@users.noreply.github.com> Date: Tue, 4 Oct 2022 10:48:14 -0400 Subject: [PATCH 09/15] Update streaming-the-audit-log-for-your-enterprise.md for OIDC GA (#31164) --- .../streaming-the-audit-log-for-your-enterprise.md | 6 ------ 1 file changed, 6 deletions(-) diff --git a/content/admin/monitoring-activity-in-your-enterprise/reviewing-audit-logs-for-your-enterprise/streaming-the-audit-log-for-your-enterprise.md b/content/admin/monitoring-activity-in-your-enterprise/reviewing-audit-logs-for-your-enterprise/streaming-the-audit-log-for-your-enterprise.md index b34b1c60c3..47804fb2d7 100644 --- a/content/admin/monitoring-activity-in-your-enterprise/reviewing-audit-logs-for-your-enterprise/streaming-the-audit-log-for-your-enterprise.md +++ b/content/admin/monitoring-activity-in-your-enterprise/reviewing-audit-logs-for-your-enterprise/streaming-the-audit-log-for-your-enterprise.md @@ -86,12 +86,6 @@ For information on creating or accessing your access key ID and secret key, see {% ifversion streaming-oidc-s3 %} #### Setting up streaming to S3 with OpenID Connect -{% note %} - -**Note:** Streaming to Amazon S3 with OpenID Connect is currently in beta and subject to change. - -{% endnote %} - 1. In AWS, add the {% data variables.product.prodname_dotcom %} OIDC provider to IAM. For more information, see [Creating OpenID Connect (OIDC) identity providers](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_providers_create_oidc.html) in the AWS documentation. - For the provider URL, use `https://oidc-configuration.audit-log.githubusercontent.com`. From b8f3aa6aa64dbd15a6f50b3500ec32a5df55036f Mon Sep 17 00:00:00 2001 From: Sam Browning <106113886+sabrowning1@users.noreply.github.com> Date: Tue, 4 Oct 2022 10:56:28 -0400 Subject: [PATCH 10/15] Add period in "Configuring code scanning" section (#31385) --- .../code-security/getting-started/securing-your-organization.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/content/code-security/getting-started/securing-your-organization.md b/content/code-security/getting-started/securing-your-organization.md index e560122037..b86ed3fe6a 100644 --- a/content/code-security/getting-started/securing-your-organization.md +++ b/content/code-security/getting-started/securing-your-organization.md @@ -116,7 +116,7 @@ For more information, see "[Managing security and analysis settings for your org ## Configuring {% data variables.product.prodname_code_scanning %} -{% data variables.product.prodname_code_scanning_capc %} is an {% data variables.product.prodname_advanced_security %} feature that scans code for security vulnerabilities and errors +{% data variables.product.prodname_code_scanning_capc %} is an {% data variables.product.prodname_advanced_security %} feature that scans code for security vulnerabilities and errors. {% ifversion fpt or ghec %}{% data variables.product.prodname_code_scanning_capc %} is available for all public repositories. Organizations that use {% data variables.product.prodname_ghe_cloud %} with {% data variables.product.prodname_advanced_security %} can additionally use {% data variables.product.prodname_code_scanning %} for private and internal repositories.{% else %}{% data variables.product.prodname_code_scanning_capc %} is available if your enterprise uses {% data variables.product.prodname_advanced_security %}.{% endif %} From 5399c5b0096b32354a466a76abd96be831d41ce2 Mon Sep 17 00:00:00 2001 From: Sam Browning <106113886+sabrowning1@users.noreply.github.com> Date: Tue, 4 Oct 2022 11:49:35 -0400 Subject: [PATCH 11/15] Sunset Atom in the Docs (#31315) Co-authored-by: github-actions Co-authored-by: Sophie <29382425+sophietheking@users.noreply.github.com> --- .../images/help/desktop/mac-editor-menu.png | Bin 70634 -> 60308 bytes .../help/desktop/windows-editor-menu.png | Bin 27649 -> 15245 bytes ...-guidelines-for-repository-contributors.md | 2 +- .../making-changes-in-a-branch/index.md | 2 +- .../configuring-a-default-editor.md | 2 -- .../github-extensions-and-integrations.md | 6 +--- .../associating-text-editors-with-git.md | 27 ------------------ ...etting-started-with-your-github-account.md | 2 +- .../git-and-github-learning-resources.md | 2 +- .../basic-writing-and-formatting-syntax.md | 2 +- ...-and-searching-issues-and-pull-requests.md | 2 +- ...a-merge-conflict-using-the-command-line.md | 4 +-- .../searching-issues-and-pull-requests.md | 2 +- .../about-github-premium-support.md | 2 +- 14 files changed, 11 insertions(+), 44 deletions(-) diff --git a/assets/images/help/desktop/mac-editor-menu.png b/assets/images/help/desktop/mac-editor-menu.png index 78162a29363fba8dea933f7a497e0e94d90e3683..df7c1878e6cc8580077a61e284ca3664684601ff 100644 GIT binary patch literal 60308 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 BJh}h? diff --git a/assets/images/help/desktop/windows-editor-menu.png b/assets/images/help/desktop/windows-editor-menu.png index 64b97c62b65c22acac4fe28396da769793679717..f742b5375e5a8a00499b10dbe6a97cad8040bbfa 100644 GIT binary patch literal 15245 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 literal 27649 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 PpL(RI`7r
{% data variables.product.prodname_cli %} is a separate command-line tool you can install that brings pull requests, issues, {% data variables.product.prodname_actions %}, and other {% data variables.product.prodname_dotcom %} features to your terminal, so you can do all your work in one place. For more information, see "[{% data variables.product.prodname_cli %}](/github/getting-started-with-github/using-github/github-cli)." | This is most convenient if you are already working from the command line, allowing you to avoid switching context, or if you are more comfortable using the command line. | | {% ifversion fpt or ghec %}{% data variables.product.prodname_dotcom %}{% else %}{% data variables.product.product_name %}{% endif %} API | {% data variables.product.prodname_dotcom %} has a REST API and GraphQL API that you can use to interact with {% data variables.product.product_name %}. For more information, see "[Getting started with the API](/github/extending-github/getting-started-with-the-api)." | The {% ifversion fpt or ghec %}{% data variables.product.prodname_dotcom %}{% else %}{% data variables.product.product_name %}{% endif %} API would be most helpful if you wanted to automate common tasks, back up your data, or create integrations that extend {% data variables.product.prodname_dotcom %}. | ### 4. Writing on {% data variables.product.product_name %} diff --git a/content/get-started/quickstart/git-and-github-learning-resources.md b/content/get-started/quickstart/git-and-github-learning-resources.md index 7979e5918b..a4f544484c 100644 --- a/content/get-started/quickstart/git-and-github-learning-resources.md +++ b/content/get-started/quickstart/git-and-github-learning-resources.md @@ -58,6 +58,6 @@ Our {% data variables.product.prodname_dotcom %} [YouTube Training and Guides ch An interactive [online Git course](https://www.pluralsight.com/courses/code-school-git-real) from [Pluralsight](https://www.pluralsight.com/codeschool) has seven levels with dozens of exercises in a fun game format. Feel free to adapt our [.gitignore templates](https://github.com/github/gitignore) to meet your needs. -Extend your {% data variables.product.prodname_dotcom %} reach through {% ifversion fpt or ghec %}[integrations](/articles/about-integrations){% else %}integrations{% endif %}, or by installing [{% data variables.product.prodname_desktop %}](https://desktop.github.com) and the robust [Atom](https://atom.io) text editor. +Extend your {% data variables.product.prodname_dotcom %} reach through {% ifversion fpt or ghec %}[integrations](/articles/about-integrations){% else %}integrations{% endif %}, or by installing [{% data variables.product.prodname_desktop %}](https://desktop.github.com) and the robust [{% data variables.product.prodname_vscode %}](https://code.visualstudio.com/) text editor. Learn how to launch and grow your open source project with the [Open Source Guides](https://opensource.guide/). diff --git a/content/get-started/writing-on-github/getting-started-with-writing-and-formatting-on-github/basic-writing-and-formatting-syntax.md b/content/get-started/writing-on-github/getting-started-with-writing-and-formatting-on-github/basic-writing-and-formatting-syntax.md index a7321a27c9..5c4474325e 100644 --- a/content/get-started/writing-on-github/getting-started-with-writing-and-formatting-on-github/basic-writing-and-formatting-syntax.md +++ b/content/get-started/writing-on-github/getting-started-with-writing-and-formatting-on-github/basic-writing-and-formatting-syntax.md @@ -216,7 +216,7 @@ To order your list, precede each line with a number. You can create a nested list by indenting one or more list items below another item. -To create a nested list using the web editor on {% data variables.product.product_name %} or a text editor that uses a monospaced font, like [Atom](https://atom.io/), you can align your list visually. Type space characters in front of your nested list item, until the list marker character (- or *) lies directly below the first character of the text in the item above it. +To create a nested list using the web editor on {% data variables.product.product_name %} or a text editor that uses a monospaced font, like [{% data variables.product.prodname_vscode %}](https://code.visualstudio.com/), you can align your list visually. Type space characters in front of your nested list item, until the list marker character (- or *) lies directly below the first character of the text in the item above it. ```markdown 1. First list item diff --git a/content/issues/tracking-your-work-with-issues/filtering-and-searching-issues-and-pull-requests.md b/content/issues/tracking-your-work-with-issues/filtering-and-searching-issues-and-pull-requests.md index aae7367309..adbebde7ee 100644 --- a/content/issues/tracking-your-work-with-issues/filtering-and-searching-issues-and-pull-requests.md +++ b/content/issues/tracking-your-work-with-issues/filtering-and-searching-issues-and-pull-requests.md @@ -192,7 +192,7 @@ For pull requests, you can also use search to: - Filter pull requests by [reviewer](/articles/about-pull-request-reviews/): `state:open type:pr reviewed-by:octocat` - Filter pull requests by the specific user [requested for review](/pull-requests/collaborating-with-pull-requests/proposing-changes-to-your-work-with-pull-requests/requesting-a-pull-request-review): `state:open type:pr review-requested:octocat`{% ifversion fpt or ghae or ghes > 3.2 or ghec %} - Filter pull requests that someone has asked you directly to review: `state:open type:pr user-review-requested:@me`{% endif %} -- Filter pull requests by the team requested for review: `state:open type:pr team-review-requested:github/atom` +- Filter pull requests by the team requested for review: `state:open type:pr team-review-requested:github/docs` - Filter for pull requests that are linked to an issue that the pull request may close: `linked:issue` ## Sorting issues and pull requests diff --git a/content/pull-requests/collaborating-with-pull-requests/addressing-merge-conflicts/resolving-a-merge-conflict-using-the-command-line.md b/content/pull-requests/collaborating-with-pull-requests/addressing-merge-conflicts/resolving-a-merge-conflict-using-the-command-line.md index 7354246bea..cb7b730366 100644 --- a/content/pull-requests/collaborating-with-pull-requests/addressing-merge-conflicts/resolving-a-merge-conflict-using-the-command-line.md +++ b/content/pull-requests/collaborating-with-pull-requests/addressing-merge-conflicts/resolving-a-merge-conflict-using-the-command-line.md @@ -49,7 +49,7 @@ For example, if you and another person both edited the file _styleguide.md_ on t > # > no changes added to commit (use "git add" and/or "git commit -a") ``` -4. Open your favorite text editor, such as [Atom](https://atom.io/), and navigate to the file that has merge conflicts. +4. Open your favorite text editor, such as [{% data variables.product.prodname_vscode %}](https://code.visualstudio.com/), and navigate to the file that has merge conflicts. 5. To see the beginning of the merge conflict in your file, search the file for the conflict marker `<<<<<<<`. When you open the file in your text editor, you'll see the changes from the HEAD or base branch after the line `<<<<<<< HEAD`. Next, you'll see `=======`, which divides your changes from the changes in the other branch, followed by `>>>>>>> BRANCH-NAME`. In this example, one person wrote "open an issue" in the base or HEAD branch and another person wrote "ask your question in IRC" in the compare branch or `branch-a`. ``` @@ -104,7 +104,7 @@ For example, if you edited a file, such as *README.md*, and another person remov > # > # no changes added to commit (use "git add" and/or "git commit -a") ``` -3. Open your favorite text editor, such as [Atom](https://atom.io/), and navigate to the file that has merge conflicts. +3. Open your favorite text editor, such as [{% data variables.product.prodname_vscode %}](https://code.visualstudio.com/), and navigate to the file that has merge conflicts. 6. Decide if you want keep the removed file. You may want to view the latest changes made to the removed file in your text editor. To add the removed file back to your repository: diff --git a/content/search-github/searching-on-github/searching-issues-and-pull-requests.md b/content/search-github/searching-on-github/searching-issues-and-pull-requests.md index dcf929a857..4e6d036ae3 100644 --- a/content/search-github/searching-on-github/searching-issues-and-pull-requests.md +++ b/content/search-github/searching-on-github/searching-issues-and-pull-requests.md @@ -268,7 +268,7 @@ You can filter pull requests based on their [review status](/pull-requests/colla | reviewed-by:USERNAME | [**type:pr reviewed-by:gjtorikian**](https://github.com/search?utf8=%E2%9C%93&q=type%3Apr+reviewed-by%3Agjtorikian&type=Issues) matches pull requests reviewed by a particular person. | review-requested:USERNAME | [**type:pr review-requested:benbalter**](https://github.com/search?utf8=%E2%9C%93&q=type%3Apr+review-requested%3Abenbalter&type=Issues) matches pull requests where a specific person is requested for review. Requested reviewers are no longer listed in the search results after they review a pull request. If the requested person is on a team that is requested for review, then review requests for that team will also appear in the search results.{% ifversion fpt or ghae or ghes > 3.2 or ghec %} | user-review-requested:@me | [**type:pr user-review-requested:@me**](https://github.com/search?q=is%3Apr+user-review-requested%3A%40me+) matches pull requests that you have directly been asked to review.{% endif %} -| team-review-requested:TEAMNAME | [**type:pr team-review-requested:atom/design**](https://github.com/search?q=type%3Apr+team-review-requested%3Aatom%2Fdesign&type=Issues) matches pull requests that have review requests from the team `atom/design`. Requested reviewers are no longer listed in the search results after they review a pull request. +| team-review-requested:TEAMNAME | [**type:pr team-review-requested:github/docs**](https://github.com/search?q=type%3Apr+team-review-requested%3Agithub%2Fdocs&type=pullrequests) matches pull requests that have review requests from the team `github/docs`. Requested reviewers are no longer listed in the search results after they review a pull request. ## Search by when an issue or pull request was created or last updated diff --git a/content/support/learning-about-github-support/about-github-premium-support.md b/content/support/learning-about-github-support/about-github-premium-support.md index 24cd0845ff..444c81cb70 100644 --- a/content/support/learning-about-github-support/about-github-premium-support.md +++ b/content/support/learning-about-github-support/about-github-premium-support.md @@ -105,7 +105,7 @@ When you contact {% data variables.contact.premium_support %}, you can choose on | {% data variables.product.support_ticket_priority_urgent %} | Production workflows for your organization or enterprise on {% data variables.product.prodname_ghe_cloud %} are failing due to critical service errors or outages, and the failure directly impacts the operation of your business. |
  • Errors or outages on {% data variables.product.prodname_dotcom_the_website %} affect core Git or web application functionality for all members of your organization or enterprise
| | {% data variables.product.support_ticket_priority_high %} | Account or security issues with your organization or enterprise on {% data variables.product.prodname_ghe_cloud %} are causing limited impact to your business. |
  • An organization or enterprise owner has unintentionally deleted an organization
  • An organization or enterprise member has uploaded sensitive data in a commit, issue, pull request, or issue attachment
| | {% data variables.product.support_ticket_priority_normal %} | Members of your organization or enterprise on {% data variables.product.prodname_ghe_cloud %} are experiencing limited or moderate issues with {% data variables.product.prodname_dotcom_the_website %}, or you have general concerns or questions about your organization or enterprise. |
  • Questions about using APIs and features for your organization or enterprise
  • Issues with tools for organization data migration that {% data variables.product.company_short %} provides
  • Features related to your organization or enterprise not working as expected
  • General security questions about your organization or enterprise
| -| {% data variables.product.support_ticket_priority_low %} | You have a question or suggestion about your organization or enterprise on {% data variables.product.prodname_ghe_cloud %} that is not time-sensitive, or does not otherwise block the productivity of your team. |
  • Excessive resource usage for your organization or enterprise
  • Requests for health checks
  • Help with using Gists, notifications, wikis, {% data variables.product.prodname_pages %}, {% data variables.product.prodname_desktop %}, Atom, or other peripheral services or features with your organization or enterprise
  • Feature requests
  • Product feedback
| +| {% data variables.product.support_ticket_priority_low %} | You have a question or suggestion about your organization or enterprise on {% data variables.product.prodname_ghe_cloud %} that is not time-sensitive, or does not otherwise block the productivity of your team. |
  • Excessive resource usage for your organization or enterprise
  • Requests for health checks
  • Help with using Gists, notifications, wikis, {% data variables.product.prodname_pages %}, {% data variables.product.prodname_desktop %}, or other peripheral services or features with your organization or enterprise
  • Feature requests
  • Product feedback
| ### Ticket priorities for {% data variables.product.prodname_ghe_server %} From 1edfd12d29314230d943abc5975e306d839929c9 Mon Sep 17 00:00:00 2001 From: Isaac Brown <101839405+isaacmbrown@users.noreply.github.com> Date: Tue, 4 Oct 2022 17:01:48 +0100 Subject: [PATCH 12/15] Quickstart for writing on GitHub (#31138) Co-authored-by: github-actions Co-authored-by: Jules <19994093+jules-p@users.noreply.github.com> --- .../profile/collapsed-section-example.png | Bin 0 -> 25905 bytes .../help/profile/edit-profile-readme.png | Bin 0 -> 33342 bytes .../help/profile/lightmode-image-example.png | Bin 0 -> 94474 bytes .../help/profile/markdown-quote-example.png | Bin 0 -> 19135 bytes .../help/profile/markdown-table-example.png | Bin 0 -> 30130 bytes .../help/profile/readme-commit-changes.png | Bin 0 -> 57918 bytes .../managing-your-profile-readme.md | 2 +- .../overview/managing-deploy-keys.md | 16 +- content/get-started/index.md | 1 + .../quickstart/communicating-on-github.md | 2 + .../about-writing-and-formatting-on-github.md | 3 +- .../basic-writing-and-formatting-syntax.md | 9 +- .../index.md | 1 + .../quickstart-for-writing-on-github.md | 244 ++++++++++++++++++ .../picture-element-example.md | 7 + .../profile/navigating-to-profile.md | 1 + 16 files changed, 270 insertions(+), 16 deletions(-) create mode 100644 assets/images/help/profile/collapsed-section-example.png create mode 100644 assets/images/help/profile/edit-profile-readme.png create mode 100644 assets/images/help/profile/lightmode-image-example.png create mode 100644 assets/images/help/profile/markdown-quote-example.png create mode 100644 assets/images/help/profile/markdown-table-example.png create mode 100644 assets/images/help/profile/readme-commit-changes.png create mode 100644 content/get-started/writing-on-github/getting-started-with-writing-and-formatting-on-github/quickstart-for-writing-on-github.md create mode 100644 data/reusables/getting-started/picture-element-example.md create mode 100644 data/reusables/profile/navigating-to-profile.md diff --git a/assets/images/help/profile/collapsed-section-example.png b/assets/images/help/profile/collapsed-section-example.png new file mode 100644 index 0000000000000000000000000000000000000000..f83d76ba63c649bd3b3106e91c85dff47ef4eff3 GIT binary patch literal 25905 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 X8NZZ^co@b7LZ;7B2^HO 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%0DcwMia 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 Vq|YJj$z{X4Xma^{$yt|&{{zF{`A`4= literal 0 HcmV?d00001 diff --git a/assets/images/help/profile/lightmode-image-example.png b/assets/images/help/profile/lightmode-image-example.png new file mode 100644 index 0000000000000000000000000000000000000000..4d42d6fd0e7ddfd199229267dfa29e51f64959c8 GIT binary patch literal 94474 zcmZsC1z1$w_V>^o(h4|;gn~#*Go*;Lgh~ydq{7h64Bd!=bcZwo0@4gfiFAolgP?Q` z9TVU9-uwTqzRL5=!{yotv4i&+F?XRDrdA<%$tIhpD-zk4QohzLkaW8%($tXWjb7$IDpnX@~p zc$(1N&`nTLvKj@Byxv3&AMLbuO9`0gcuR9RY3kPcjVVc{mrCgm?k3;M%j~?Bj7ifo z5mny`EFh-fX3!1QnjmwP)MV)%C<(MAzhp(ES7V4eKcSI}e*@rFb6)nDRqN;>%>tgZ zRufVtz{EQ}G_YqCBglshR`)Y5HWe1TJrJJ(Hz~z{W+!bs%|rURCzl)Di;40|;?fc(~6M+y?+4NC*dz;QrI$J}SBR|M!%zGMC{0 zuJLVu4ph`vR#(UU*MH(_ZSCY{2XSAI9LCLoH*Ih5$o-L)rt}kt<88~Q5G(83-j2>c zNdU6m(zr`UYj;ZyZ^!3OZqnXzod1lF#$ErsEy&67&k*-#a-5H}bUBnEuGSoPZVTNO z;*=-n;NXyTeQG29K;`a#$#LK0IPKisouvf@y}Z0`dx_qLxY`N|OG!xy3W*4chzQ_D z2)Ow;xm$V*IJsT_&m{jhkBYV16IXj@cYBBv$Ip2!tsoxma-5t$7yAEy|KZcx+x~wm zIl2A!wQw&e`16UN@NFT%|35d5RQBgxX*tSE>>Y99!L1>GM_63;pYeY@`QM7a zP(Jz}rLeG+#IK~kJo-1Op_{d@QcX5K2 zCzloc|C@&ULS*O-z;nE=uA*q*J+n3MmB~ES1lk)BZK;mq;pm|&V;2^Fms`?5q@@Yv zu^6=zOSaq5+ER&=80zMl_Jf?)2Q8!)J&a?l?n!=>KTWEUk3Sy6&E!k(d9&pJg-I0^ zUCm58bFvHyLvQiBr0jaxEUXR=dM(OcWUfY*@wv7$1bPdW6jqhua~{9{d=(i_uE0R< z5}za|9dLfQK2fZbBmc`q6tJ+WsfHi<x~v4OvAs47C||333S)F2(R-@~NWKWcHJzXSOi{q7w=OG~SttxI8wO`C(XAZN&u ztH@x8!s^oc-79?fm)tUiw&T(R2#Cb)J^0wYbszpkP>?_5#^@IYB_E7TtRVhtB5Pfa zb2cRE_qRv4%?S$9j536mY|JnQoU8}oUF;;X!lEZ?61)ry(Gp8Hqf8ngeF+TkB>*@iM;VTo~MZ&B)MRmER2Px_`K}iO{U9TY7S*7G`^F$OxQ-bViGBR(lM19?mvM zIPmd%WB<+Q3^Up2mM&S@0%B^V< zTE#@Z$@|mMm}1?~vD@}HC_OV(loYtNb`!p%?RMAVI$CWx1FZ7hYMxj`_Dm7WtOfZm9E#1sH{pf#?h}VYklVA(rzb~++ryms}UkBuCPPRNN zt8c~ru1*;9T?u>An-oITi1sx^19Nga+NpLKqDM8=FC?r6g-uC6pKqojI6qN+q94hj z&3&*UT$V_lj20oYHTvPjf1ekL>YbDjW=eEoBI-9#gcD&l>RGED{jP`8TuCLXxVJ7= z@FCwW4L!T33jYG$KlWRjdBg9!I}vgM`bDF0inPlBZ6bWs?m)%I*KD=ee!=hp9>Uet z?Pt4vPBYrzr4y>9MH`m@7Yj|PvQq2V5+|Ej4vl1%o3x8AWKYoN+Ks+jiDXt}FgzDH zlz9GD4cp#Ej?ZIc^y;+1(4~X8Iyq+&#ae5P$9nDq#mZk;ER$sT{Cmf=mnE*LAQt3m zJkccFeTX1V3Ot2?E~eK>L@SL6gSiQHWD8E8Bjv@$Bp4IjZH{9^$GROu=f8=GYE}lx zqmxff-al7v*!Uz?uDyN2t^W-{_TlO0g1QF>T#lLEWXfT$uAB?(KP%%OtM-uDh5c^V zh*H%4JCRAqS7TQc`#tlpTL49$Cb@#q()ogPZK**mGKzdEr7
` tag to create an expandible collapsed section. + +1. To create a collapsed section for the table you created, wrap your table in `
` tags like in the following example. + + ```HTML{:copy} +
+ My top THINGS-TO-RANK + + YOUR TABLE + +
+ ``` +1. Between the `` tags, replace `THINGS-TO-RANK` with whatever you ranked in your table. +1. Optionally, to make the section display as open by default, add the `open` attribute to the `
` tag. + + ```HTML +
+ ``` +1. To check the collapsed section has rendered correctly, click the **Preview** tab. + +### Example + +```HTML +
+My top languages + +| Rank | Languages | +|-----:|-----------| +| 1| Javascript| +| 2| Python | +| 3| SQL | + +
+``` + +### How it looks + +![Screenshot of the Preview tab, with a collapsed section called "My top languages" marked by a dropdown arrow](/assets/images/help/profile/collapsed-section-example.png) + +## Adding a quote + +Markdown has many other options for formatting your content. Here, you'll add a horizontal rule to divide your page and a blockquote to format your favorite quote. + +1. At the bottom of your file, two lines below the `
` tag, add a horizontal rule by typing three or more dashes. + + ```Markdown + --- + ``` +1. Below the `---` line, add a quote by typing markup like the following. + + ```Markdown + > QUOTE + ``` + + Replace `QUOTE` with a quote of your choice. Alternatively, copy the quote from our example below. +1. To check everything has rendered correctly, click the **Preview** tab. + +### Example + +```Markdown +--- +> If we pull together and commit ourselves, then we can push through anything. + +— Mona the Octocat +``` + +### How it looks + +![Screenshot of the Preview tab, with an indented quote below a thick horizontal line](/assets/images/help/profile/markdown-quote-example.png) + +## Adding a comment + +You can use HTML comment syntax to add a comment that will be hidden in the output. Here, you'll add a comment to remind yourself to update your {% ifversion ghae %}gist{% else %}README{% endif %} later. + +1. Two lines below the `## About me` header, insert a comment by using the following markup. + +
+   <!-- COMMENT -->
+   
+ + Replace `COMMENT` with a "to-do" item you remind yourself to do something later (for example, to add more items to the table). +1. To check your comment is hidden in the output, click the **Preview** tab. + +### Example + +
+## About me
+
+<!-- TO DO: add more details about me later -->
+
+ +## Saving your work + +When you're happy with your changes, save your {% ifversion ghae %}gist. + +- To keep your gist hidden from search engines but visible to anyone you share the URL with, click **Create secret gist** +- If you're happy for your gist to be visible to anyone on {% data variables.product.product_location %}, click **Create internal gist** + +{% else %}profile README by clicking **Commit changes**. + +Committing directly to the `main` branch will make your changes visible to any visitor on your profile. If you want to save your work but aren't ready to make it visible on your profile, you can select **Create a new branch for this commit and start a pull request**. + +![Screenshot of the "Commit changes" section](/assets/images/help/profile/readme-commit-changes.png) + +{% endif %} + +## Next steps + +- Continue to learn about advanced formatting features. For example, see {% ifversion fpt or ghec %}"[Creating diagrams](/get-started/writing-on-github/working-with-advanced-formatting/creating-diagrams)" and {% endif %}"[Creating and highlighting codeblocks](/get-started/writing-on-github/working-with-advanced-formatting/creating-and-highlighting-code-blocks)." +- Use your new skills as you communicate across GitHub, in issues, pull requests, and discussions. For more information, see "[Communicating on {% data variables.product.prodname_dotcom %}](/get-started/quickstart/communicating-on-github)." diff --git a/data/reusables/getting-started/picture-element-example.md b/data/reusables/getting-started/picture-element-example.md new file mode 100644 index 0000000000..cc1bfdac06 --- /dev/null +++ b/data/reusables/getting-started/picture-element-example.md @@ -0,0 +1,7 @@ +```HTML + + + + Shows an illustrated sun in light mode and a moon with stars in dark mode. + +``` \ No newline at end of file diff --git a/data/reusables/profile/navigating-to-profile.md b/data/reusables/profile/navigating-to-profile.md new file mode 100644 index 0000000000..019925a783 --- /dev/null +++ b/data/reusables/profile/navigating-to-profile.md @@ -0,0 +1 @@ +1. In the upper-right corner of any {% data variables.product.product_name %} page, click your profile photo, then click **Your profile**. \ No newline at end of file From 82ed39fa013ac394b2b32e0d7245121f88846544 Mon Sep 17 00:00:00 2001 From: Christopher Kintner Date: Tue, 4 Oct 2022 09:14:31 -0700 Subject: [PATCH 13/15] note that dependabot.yml cannot be used to configure dependabot alerts (#31397) Co-authored-by: mc <42146119+mchammer01@users.noreply.github.com> --- .../configuration-options-for-the-dependabot.yml-file.md | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/content/code-security/dependabot/dependabot-version-updates/configuration-options-for-the-dependabot.yml-file.md b/content/code-security/dependabot/dependabot-version-updates/configuration-options-for-the-dependabot.yml-file.md index 9dcf891257..5bd218b446 100644 --- a/content/code-security/dependabot/dependabot-version-updates/configuration-options-for-the-dependabot.yml-file.md +++ b/content/code-security/dependabot/dependabot-version-updates/configuration-options-for-the-dependabot.yml-file.md @@ -33,6 +33,12 @@ You must store this file in the `.github` directory of your repository. When you Any options that also affect security updates are used the next time a security alert triggers a pull request for a security update. For more information, see "[Configuring {% data variables.product.prodname_dependabot_security_updates %}](/code-security/supply-chain-security/managing-vulnerabilities-in-your-projects-dependencies/configuring-dependabot-security-updates)." +{% note %} + +**Note:** You cannot configure {% data variables.product.prodname_dependabot_alerts %} using the *dependabot.yml* file. + +{% endnote %} + The *dependabot.yml* file has two mandatory top-level keys: `version`, and `updates`. You can, optionally, include a top-level `registries` key{% ifversion ghes = 3.5 %} and/or a `enable-beta-ecosystems` key{% endif %}. The file must start with `version: 2`. ## Configuration options for the *dependabot.yml* file From 9334a2d42d0e8d7d04fd5d1dbc8271a7d2b9f057 Mon Sep 17 00:00:00 2001 From: docubot <67483024+docubot@users.noreply.github.com> Date: Tue, 4 Oct 2022 10:46:37 -0700 Subject: [PATCH 14/15] New translation batch for pt (#31420) --- translations/log/msft-pt-resets.csv | 16 +- .../viewing-your-subscriptions.md | 62 +++--- .../configuring-notifications.md | 83 ++++++-- .../managing-your-profile-readme.md | 84 ++++---- .../autoscaling-with-self-hosted-runners.md | 2 +- ...-hosted-runner-application-as-a-service.md | 2 +- .../actions/learn-github-actions/contexts.md | 2 +- .../understanding-github-actions.md | 8 +- .../re-running-workflows-and-jobs.md | 12 +- .../pt-BR/content/actions/quickstart.md | 16 +- .../security-guides/encrypted-secrets.md | 16 +- .../using-larger-runners.md | 4 +- .../configuring-rate-limits.md | 2 +- .../site-admin-dashboard.md | 2 +- .../upgrading-github-enterprise-server.md | 8 +- ...aming-the-audit-log-for-your-enterprise.md | 6 - ...g-the-audit-log-api-for-your-enterprise.md | 4 +- ...-ssh-key-and-adding-it-to-the-ssh-agent.md | 34 ++-- .../signing-commits.md | 2 +- .../signing-tags.md | 4 +- ...ing-notifications-for-dependabot-alerts.md | 51 ++--- ...ion-options-for-the-dependabot.yml-file.md | 6 + .../creating-a-codespace.md | 6 +- .../forwarding-ports-in-your-codespace.md | 4 +- .../renaming-a-codespace.md | 2 +- ...using-github-codespaces-with-github-cli.md | 24 +-- .../pt-BR/content/codespaces/overview.md | 2 + ...-guidelines-for-repository-contributors.md | 69 +++---- .../making-changes-in-a-branch/index.md | 10 +- .../authenticating-with-github-apps.md | 2 +- .../overview/managing-deploy-keys.md | 191 +++++++++--------- .../webhooks/webhook-events-and-payloads.md | 92 ++++----- .../github-extensions-and-integrations.md | 54 ++--- .../associating-text-editors-with-git.md | 87 +++----- .../pt-BR/content/get-started/index.md | 1 + .../quickstart/communicating-on-github.md | 170 ++++++++-------- .../git-and-github-learning-resources.md | 48 ++--- .../about-writing-and-formatting-on-github.md | 44 ++-- .../basic-writing-and-formatting-syntax.md | 11 +- .../index.md | 1 + .../using-the-api-to-manage-projects.md | 106 +++++----- ...-and-searching-issues-and-pull-requests.md | 2 +- ...ustom-domain-for-your-github-pages-site.md | 40 ++-- ...a-merge-conflict-using-the-command-line.md | 70 +++---- .../merging-a-pull-request.md | 2 +- .../managing-releases-in-a-repository.md | 4 +- .../working-with-non-code-files.md | 2 +- .../getting-started-with-the-rest-api.md | 16 +- .../overview/other-authentication-methods.md | 12 +- .../overview/resources-in-the-rest-api.md | 6 +- .../searching-issues-and-pull-requests.md | 2 +- .../actions/link-to-example-library.md | 9 - .../creating-a-codespace-in-vscode.md | 2 + ...nerable-dependency-notification-options.md | 31 ++- 54 files changed, 759 insertions(+), 789 deletions(-) delete mode 100644 translations/pt-BR/data/reusables/actions/link-to-example-library.md diff --git a/translations/log/msft-pt-resets.csv b/translations/log/msft-pt-resets.csv index 0def37c8cf..33b394e90e 100644 --- a/translations/log/msft-pt-resets.csv +++ b/translations/log/msft-pt-resets.csv @@ -176,6 +176,7 @@ translations/pt-BR/content/site-policy/github-terms/github-community-forum-code- translations/pt-BR/content/sponsors/receiving-sponsorships-through-github-sponsors/setting-up-github-sponsors-for-your-user-account.md,file deleted because it no longer exists in main translations/pt-BR/data/glossaries/internal.yml,file deleted because it no longer exists in main translations/pt-BR/data/graphql/ghes-3.1/graphql_previews.enterprise.yml,file deleted because it no longer exists in main +translations/pt-BR/data/reusables/actions/link-to-example-library.md,file deleted because it no longer exists in main translations/pt-BR/data/reusables/actions/self-hosted-runner-configure-runner-group.md,file deleted because it no longer exists in main translations/pt-BR/data/reusables/actions/self-hosted-runner-groups-navigate-to-repo-org-enterprise.md,file deleted because it no longer exists in main translations/pt-BR/data/reusables/billing/per-user-pricing-reference.md,file deleted because it no longer exists in main @@ -234,8 +235,10 @@ translations/pt-BR/data/reusables/rest-reference/webhooks/repos.md,file deleted translations/pt-BR/data/reusables/security-center/beta.md,file deleted because it no longer exists in main translations/pt-BR/data/reusables/server-statistics/release-phase.md,file deleted because it no longer exists in main translations/pt-BR/content/account-and-profile/managing-subscriptions-and-notifications-on-github/managing-subscriptions-for-activity-on-github/managing-your-subscriptions.md,rendering error +translations/pt-BR/content/account-and-profile/managing-subscriptions-and-notifications-on-github/managing-subscriptions-for-activity-on-github/viewing-your-subscriptions.md,broken liquid tags translations/pt-BR/content/account-and-profile/managing-subscriptions-and-notifications-on-github/setting-up-notifications/configuring-notifications.md,rendering error translations/pt-BR/content/account-and-profile/setting-up-and-managing-your-github-profile/customizing-your-profile/about-your-organizations-profile.md,rendering error +translations/pt-BR/content/account-and-profile/setting-up-and-managing-your-github-profile/customizing-your-profile/managing-your-profile-readme.md,broken liquid tags translations/pt-BR/content/account-and-profile/setting-up-and-managing-your-github-profile/customizing-your-profile/setting-your-profile-to-private.md,broken liquid tags translations/pt-BR/content/account-and-profile/setting-up-and-managing-your-personal-account-on-github/index.md,broken liquid tags translations/pt-BR/content/account-and-profile/setting-up-and-managing-your-personal-account-on-github/managing-access-to-your-personal-repositories/inviting-collaborators-to-a-personal-repository.md,rendering error @@ -292,7 +295,7 @@ translations/pt-BR/content/admin/configuration/configuring-your-enterprise/confi translations/pt-BR/content/admin/configuration/configuring-your-enterprise/configuring-rate-limits.md,rendering error translations/pt-BR/content/admin/configuration/configuring-your-enterprise/restricting-network-traffic-to-your-enterprise.md,broken liquid tags translations/pt-BR/content/admin/configuration/configuring-your-enterprise/site-admin-dashboard.md,broken liquid tags -translations/pt-BR/content/admin/enterprise-management/updating-the-virtual-machine-and-physical-resources/upgrading-github-enterprise-server.md,broken liquid tags +translations/pt-BR/content/admin/enterprise-management/updating-the-virtual-machine-and-physical-resources/upgrading-github-enterprise-server.md,rendering error translations/pt-BR/content/admin/github-actions/getting-started-with-github-actions-for-your-enterprise/about-github-actions-for-enterprises.md,rendering error translations/pt-BR/content/admin/github-actions/getting-started-with-github-actions-for-your-enterprise/getting-started-with-self-hosted-runners-for-your-enterprise.md,rendering error translations/pt-BR/content/admin/github-actions/getting-started-with-github-actions-for-your-enterprise/introducing-github-actions-to-your-enterprise.md,rendering error @@ -345,6 +348,7 @@ translations/pt-BR/content/code-security/code-scanning/using-codeql-code-scannin translations/pt-BR/content/code-security/code-scanning/using-codeql-code-scanning-with-your-existing-ci-system/configuring-codeql-cli-in-your-ci-system.md,rendering error translations/pt-BR/content/code-security/code-scanning/using-codeql-code-scanning-with-your-existing-ci-system/installing-codeql-cli-in-your-ci-system.md,broken liquid tags translations/pt-BR/content/code-security/dependabot/dependabot-alerts/browsing-security-advisories-in-the-github-advisory-database.md,rendering error +translations/pt-BR/content/code-security/dependabot/dependabot-alerts/configuring-notifications-for-dependabot-alerts.md,broken liquid tags translations/pt-BR/content/code-security/dependabot/dependabot-alerts/editing-security-advisories-in-the-github-advisory-database.md,broken liquid tags translations/pt-BR/content/code-security/dependabot/dependabot-alerts/viewing-and-updating-dependabot-alerts.md,rendering error translations/pt-BR/content/code-security/dependabot/dependabot-security-updates/about-dependabot-security-updates.md,rendering error @@ -421,25 +425,33 @@ translations/pt-BR/content/codespaces/troubleshooting/troubleshooting-prebuilds. translations/pt-BR/content/codespaces/troubleshooting/troubleshooting-your-connection-to-github-codespaces.md,broken liquid tags translations/pt-BR/content/codespaces/troubleshooting/working-with-support-for-github-codespaces.md,broken liquid tags translations/pt-BR/content/communities/documenting-your-project-with-wikis/editing-wiki-content.md,rendering error +translations/pt-BR/content/communities/setting-up-your-project-for-healthy-contributions/setting-guidelines-for-repository-contributors.md,broken liquid tags translations/pt-BR/content/copilot/getting-started-with-github-copilot/getting-started-with-github-copilot-in-a-jetbrains-ide.md,broken liquid tags translations/pt-BR/content/copilot/getting-started-with-github-copilot/getting-started-with-github-copilot-in-visual-studio-code.md,broken liquid tags translations/pt-BR/content/copilot/getting-started-with-github-copilot/getting-started-with-github-copilot-in-visual-studio.md,broken liquid tags translations/pt-BR/content/copilot/quickstart.md,broken liquid tags +translations/pt-BR/content/desktop/contributing-and-collaborating-using-github-desktop/making-changes-in-a-branch/index.md,broken liquid tags translations/pt-BR/content/developers/apps/building-github-apps/authenticating-with-github-apps.md,rendering error translations/pt-BR/content/developers/apps/building-github-apps/managing-allowed-ip-addresses-for-a-github-app.md,rendering error translations/pt-BR/content/developers/apps/getting-started-with-apps/differences-between-github-apps-and-oauth-apps.md,broken liquid tags translations/pt-BR/content/developers/overview/about-githubs-apis.md,broken liquid tags +translations/pt-BR/content/developers/overview/managing-deploy-keys.md,broken liquid tags translations/pt-BR/content/developers/webhooks-and-events/webhooks/webhook-events-and-payloads.md,rendering error translations/pt-BR/content/discussions/collaborating-with-your-community-using-discussions/collaborating-with-maintainers-using-discussions.md,broken liquid tags translations/pt-BR/content/discussions/collaborating-with-your-community-using-discussions/participating-in-a-discussion.md,broken liquid tags translations/pt-BR/content/education/manage-coursework-with-github-classroom/integrate-github-classroom-with-an-ide/integrate-github-classroom-with-an-ide.md,broken liquid tags translations/pt-BR/content/education/manage-coursework-with-github-classroom/integrate-github-classroom-with-an-ide/using-github-codespaces-with-github-classroom.md,broken liquid tags translations/pt-BR/content/education/manage-coursework-with-github-classroom/teach-with-github-classroom/connect-a-learning-management-system-to-github-classroom.md,broken liquid tags +translations/pt-BR/content/get-started/customizing-your-github-workflow/exploring-integrations/github-extensions-and-integrations.md,broken liquid tags translations/pt-BR/content/get-started/exploring-projects-on-github/following-organizations.md,broken liquid tags +translations/pt-BR/content/get-started/getting-started-with-git/associating-text-editors-with-git.md,broken liquid tags translations/pt-BR/content/get-started/learning-about-github/about-github-advanced-security.md,rendering error translations/pt-BR/content/get-started/quickstart/be-social.md,broken liquid tags +translations/pt-BR/content/get-started/quickstart/communicating-on-github.md,broken liquid tags +translations/pt-BR/content/get-started/quickstart/git-and-github-learning-resources.md,broken liquid tags translations/pt-BR/content/get-started/quickstart/github-glossary.md,rendering error translations/pt-BR/content/get-started/using-github/keyboard-shortcuts.md,rendering error +translations/pt-BR/content/get-started/writing-on-github/getting-started-with-writing-and-formatting-on-github/about-writing-and-formatting-on-github.md,broken liquid tags translations/pt-BR/content/get-started/writing-on-github/getting-started-with-writing-and-formatting-on-github/basic-writing-and-formatting-syntax.md,rendering error translations/pt-BR/content/get-started/writing-on-github/working-with-advanced-formatting/attaching-files.md,broken liquid tags translations/pt-BR/content/get-started/writing-on-github/working-with-advanced-formatting/writing-mathematical-expressions.md,rendering error @@ -475,6 +487,7 @@ translations/pt-BR/content/packages/learn-github-packages/viewing-packages.md,re translations/pt-BR/content/packages/working-with-a-github-packages-registry/working-with-the-container-registry.md,rendering error translations/pt-BR/content/pages/configuring-a-custom-domain-for-your-github-pages-site/managing-a-custom-domain-for-your-github-pages-site.md,rendering error translations/pt-BR/content/pages/getting-started-with-github-pages/creating-a-github-pages-site.md,rendering error +translations/pt-BR/content/pull-requests/collaborating-with-pull-requests/addressing-merge-conflicts/resolving-a-merge-conflict-using-the-command-line.md,broken liquid tags translations/pt-BR/content/pull-requests/collaborating-with-pull-requests/incorporating-changes-from-a-pull-request/merging-a-pull-request.md,broken liquid tags translations/pt-BR/content/pull-requests/collaborating-with-pull-requests/proposing-changes-to-your-work-with-pull-requests/creating-and-deleting-branches-within-your-repository.md,rendering error translations/pt-BR/content/pull-requests/collaborating-with-pull-requests/proposing-changes-to-your-work-with-pull-requests/keeping-your-pull-request-in-sync-with-the-base-branch.md,rendering error @@ -623,6 +636,7 @@ translations/pt-BR/data/reusables/gated-features/secret-scanning-partner.md,rend translations/pt-BR/data/reusables/gated-features/secret-scanning.md,rendering error translations/pt-BR/data/reusables/identity-and-permissions/ip-allow-lists-enable.md,broken liquid tags translations/pt-BR/data/reusables/notifications-v2/custom-notification-types.md,broken liquid tags +translations/pt-BR/data/reusables/notifications/vulnerable-dependency-notification-options.md,broken liquid tags translations/pt-BR/data/reusables/organizations/billing_plans.md,rendering error translations/pt-BR/data/reusables/organizations/github-apps-settings-sidebar.md,rendering error translations/pt-BR/data/reusables/organizations/member-privileges.md,rendering error diff --git a/translations/pt-BR/content/account-and-profile/managing-subscriptions-and-notifications-on-github/managing-subscriptions-for-activity-on-github/viewing-your-subscriptions.md b/translations/pt-BR/content/account-and-profile/managing-subscriptions-and-notifications-on-github/managing-subscriptions-for-activity-on-github/viewing-your-subscriptions.md index e52dad7b9a..8d2d85b673 100644 --- a/translations/pt-BR/content/account-and-profile/managing-subscriptions-and-notifications-on-github/managing-subscriptions-for-activity-on-github/viewing-your-subscriptions.md +++ b/translations/pt-BR/content/account-and-profile/managing-subscriptions-and-notifications-on-github/managing-subscriptions-for-activity-on-github/viewing-your-subscriptions.md @@ -1,6 +1,6 @@ --- -title: Visualizando suas assinaturas -intro: 'Para entender de onde suas notificações estão vindo e o volume de suas notificações, recomendamos analisar suas assinaturas e repositórios inspecionados regularmente.' +title: Viewing your subscriptions +intro: 'To understand where your notifications are coming from and your notifications volume, we recommend reviewing your subscriptions and watched repositories regularly.' redirect_from: - /articles/subscribing-to-conversations - /articles/unsubscribing-from-conversations @@ -24,63 +24,61 @@ versions: topics: - Notifications shortTitle: View subscriptions -ms.openlocfilehash: 34faad79004d34f5beb14e8992b9aff4e6a3ab39 -ms.sourcegitcommit: fb047f9450b41b24afc43d9512a5db2a2b750a2a -ms.translationtype: HT -ms.contentlocale: pt-BR -ms.lasthandoff: 09/11/2022 -ms.locfileid: '145095108' --- -Você recebe notificações para suas assinaturas de atividades contínuas em {% data variables.product.product_name %}. Há muitos motivos para você assinar uma conversa. Para obter mais informações, confira "[Sobre as notificações](/github/managing-subscriptions-and-notifications-on-github/about-notifications#notifications-and-subscriptions)". +You receive notifications for your subscriptions of ongoing activity on {% data variables.product.product_name %}. There are many reasons you can be subscribed to a conversation. For more information, see "[About notifications](/github/managing-subscriptions-and-notifications-on-github/about-notifications#notifications-and-subscriptions)." -Recomendamos a auditoria e o cancelamento das suas assinaturas como parte de um fluxo de trabalho de notificações saudáveis. Para obter mais informações sobre as opções de cancelamento de assinatura, confira "[Como gerenciar assinaturas](/github/managing-subscriptions-and-notifications-on-github/managing-your-subscriptions)". +We recommend auditing and unsubscribing from your subscriptions as a part of a healthy notifications workflow. For more information about your options for unsubscribing, see "[Managing subscriptions](/github/managing-subscriptions-and-notifications-on-github/managing-your-subscriptions)." -## Diagnosticando os motivos de receber muitas notificações +## Diagnosing why you receive too many notifications -Quando sua caixa de entrada tiver muitas notificações para gerenciar, considere se você se inscreveu mais de uma vez ou como você pode alterar suas configurações de notificação para reduzir as assinaturas que você tem e os tipos de notificações que está recebendo. Por exemplo, você pode considerar desabilitar as configurações para inspecionar automaticamente todos os repositórios e todas as discussões da equipe sempre que você ingressar em uma equipe ou repositório. +When your inbox has too many notifications to manage, consider whether you have oversubscribed or how you can change your notification settings to reduce the subscriptions you have and the types of notifications you're receiving. For example, you may consider disabling the settings to automatically watch all repositories and all team discussions whenever you've joined a team or repository. -![Inspeção automática](/assets/images/help/notifications-v2/automatic-watching-example.png) +{% ifversion update-notification-settings-22 %} +![Screenshot of automatic watching options for teams and repositories](/assets/images/automatically-watch-repos-and-teams.png) +{% else %} +![Screenshot of automatic watching options for teams and repositories](/assets/images/help/notifications-v2/automatic-watching-example.png){% endif %} -Para obter mais informações, confira "[Como configurar notificações](/github/managing-subscriptions-and-notifications-on-github/configuring-notifications#automatic-watching)". +For more information, see "[Configuring notifications](/github/managing-subscriptions-and-notifications-on-github/configuring-notifications#automatic-watching)." -Para ter uma visão geral das assinaturas do repositório, confira "[Como revisar repositórios que você está inspecionando](#reviewing-repositories-that-youre-watching)". {% tip %} +To see an overview of your repository subscriptions, see "[Reviewing repositories that you're watching](#reviewing-repositories-that-youre-watching)." +{% tip %} -**Dica:** selecione os tipos de evento para notificação usando a opção **Personalizado** do menu suspenso **Inspecionar/Cancelar a inspeção** na [página Inspeção](https://github.com/watching) ou em qualquer página do repositório no {% data variables.product.product_name %}. Para obter mais informações, confira "[Como configurar notificações](/github/managing-subscriptions-and-notifications-on-github/configuring-notifications#configuring-your-watch-settings-for-an-individual-repository)". +**Tip:** You can select the types of event to be notified of by using the **Custom** option of the **Watch/Unwatch** dropdown list in your [watching page](https://github.com/watching) or on any repository page on {% data variables.product.product_name %}. For more information, see "[Configuring notifications](/github/managing-subscriptions-and-notifications-on-github/configuring-notifications#configuring-your-watch-settings-for-an-individual-repository)." {% endtip %} -Muitas pessoas esquecem os repositórios que eles escolheram inspecionar no passado. Na página "Repositórios inspecionados" você pode rapidamente deixar de acompanhar repositórios. Para obter mais informações sobre as maneiras de cancelar a assinatura, confira "[Recomendações de cancelamento da inspeção](https://github.blog/changelog/2020-11-10-unwatch-recommendations/)" no {% data variables.product.prodname_blog %} e "[Como gerenciar suas assinaturas](/github/managing-subscriptions-and-notifications-on-github/managing-your-subscriptions)". Também é possível criar um fluxo de trabalho de triagem para ajudar com as notificações que você recebe. Para obter diretrizes sobre os fluxos de trabalho de triagem, confira "[Como personalizar um fluxo de trabalho para fazer a triagem das notificações](/github/managing-subscriptions-and-notifications-on-github/customizing-a-workflow-for-triaging-your-notifications)". +Many people forget about repositories that they've chosen to watch in the past. From the "Watched repositories" page you can quickly unwatch repositories. For more information on ways to unsubscribe, see "[Unwatch recommendations](https://github.blog/changelog/2020-11-10-unwatch-recommendations/)" on {% data variables.product.prodname_blog %} and "[Managing your subscriptions](/github/managing-subscriptions-and-notifications-on-github/managing-your-subscriptions)." You can also create a triage workflow to help with the notifications you receive. For guidance on triage workflows, see "[Customizing a workflow for triaging your notifications](/github/managing-subscriptions-and-notifications-on-github/customizing-a-workflow-for-triaging-your-notifications)." -## Revisando todas as suas assinaturas +## Reviewing all of your subscriptions {% data reusables.notifications.access_notifications %} -1. Na barra lateral esquerda, na lista de repositórios dos quais você tem notificações, use o menu suspenso "Gerenciar notificações" para clicar em **Assinaturas**. - ![Opções do menu suspenso Gerenciar notificações](/assets/images/help/notifications-v2/manage-notifications-options.png) +1. In the left sidebar, under the list of repositories that you have notifications from, use the "Manage notifications" drop-down to click **Subscriptions**. + ![Manage notifications drop down menu options](/assets/images/help/notifications-v2/manage-notifications-options.png) -2. Use os filtros e classifique para limitar a lista de assinaturas e comece a cancelar as assinaturas de conversas das quais você não deseja mais receber notificações. +2. Use the filters and sort to narrow the list of subscriptions and begin unsubscribing to conversations you no longer want to receive notifications for. - ![Página de assinaturas](/assets/images/help/notifications-v2/all-subscriptions.png) + ![Subscriptions page](/assets/images/help/notifications-v2/all-subscriptions.png) {% tip %} -**Dicas:** -- Para revisar as assinaturas que você pode ter esquecido, classifique por "assinada menos recentemente". +**Tips:** +- To review subscriptions you may have forgotten about, sort by "least recently subscribed." -- Para revisar uma lista de repositórios para os quais você ainda pode receber notificações, consulte a lista de repositórios no menu suspenso "filtrar por repositório". +- To review a list of repositories that you can still receive notifications for, see the repository list in the "filter by repository" drop-down menu. {% endtip %} -## Revisando repositórios que você está inspecionando +## Reviewing repositories that you're watching -1. Na barra lateral esquerda, na lista de repositórios, use o menu suspenso "Gerenciar notificações" e clique em **Repositórios inspecionados**. - ![Opções do menu suspenso Gerenciar notificações](/assets/images/help/notifications-v2/manage-notifications-options.png) -2. Avalie os repositórios que você está inspecionando e decida se suas atualizações ainda são relevantes e úteis. Quando você inspeciona um repositório, você será notificado de todas as conversas desse repositório. -![Página Notificações inspecionadas](/assets/images/help/notifications-v2/watched-notifications-custom.png) +1. In the left sidebar, under the list of repositories, use the "Manage notifications" drop-down menu and click **Watched repositories**. + ![Manage notifications drop down menu options](/assets/images/help/notifications-v2/manage-notifications-options.png) +2. Evaluate the repositories that you are watching and decide if their updates are still relevant and helpful. When you watch a repository, you will be notified of all conversations for that repository. +![Watched notifications page](/assets/images/help/notifications-v2/watched-notifications-custom.png) {% tip %} - **Dica:** em vez de inspecionar um repositório, considere a possibilidade de apenas receber notificações quando houver atualizações nos {% data reusables.notifications-v2.custom-notification-types %} (se habilitado para o repositório) ou qualquer combinação dessas opções ou cancelar a inspeção por completo de um repositório. + **Tip:** Instead of watching a repository, consider only receiving notifications when there are updates to {% data reusables.notifications-v2.custom-notification-types %} (if enabled for the repository), or any combination of these options, or completely unwatching a repository. - Quando você cancelar a inspeção de um repositório, ainda poderá receber notificações quando for @mentioned ou estiver participando de uma conversa. Quando você configura o recebimento de notificações para determinados tipos de eventos, só é notificado quando há atualizações para esses tipos de eventos no repositório, quando está participando de uma conversa ou quando você ou uma equipe em que você está é @mentioned. + When you unwatch a repository, you can still be notified when you're @mentioned or participating in a thread. When you configure to receive notifications for certain event types, you're only notified when there are updates to these event types in the repository, you're participating in a thread, or you or a team you're on is @mentioned. {% endtip %} diff --git a/translations/pt-BR/content/account-and-profile/managing-subscriptions-and-notifications-on-github/setting-up-notifications/configuring-notifications.md b/translations/pt-BR/content/account-and-profile/managing-subscriptions-and-notifications-on-github/setting-up-notifications/configuring-notifications.md index 35d44edfe8..f0ec8c75e9 100644 --- a/translations/pt-BR/content/account-and-profile/managing-subscriptions-and-notifications-on-github/setting-up-notifications/configuring-notifications.md +++ b/translations/pt-BR/content/account-and-profile/managing-subscriptions-and-notifications-on-github/setting-up-notifications/configuring-notifications.md @@ -79,15 +79,27 @@ You can customize notifications for a repository. For example, you can choose to ### Participating in conversations Anytime you comment in a conversation or when someone @mentions your username, you are _participating_ in a conversation. By default, you are automatically subscribed to a conversation when you participate in it. You can unsubscribe from a conversation you've participated in manually by clicking **Unsubscribe** on the issue or pull request or through the **Unsubscribe** option in the notifications inbox. -For conversations you're watching or participating in, you can choose whether you want to receive notifications by email or through the notifications inbox on {% data variables.product.product_location %}{% ifversion fpt or ghes or ghec %} and {% data variables.product.prodname_mobile %}{% endif %}. +{% ifversion update-notification-settings-22 %}For conversations you're watching or participating in, you can choose whether you want to receive notifications on {% data variables.product.company_short %} or by email in your notification settings. For more information, see "[Choosing your notification settings](/account-and-profile/managing-subscriptions-and-notifications-on-github/setting-up-notifications/configuring-notifications#choosing-your-notification-settings)." + +![Animated GIF of participating and watching subscriptions options](/assets/images/help/notifications/selecting-participating-notifications.gif) + +{% else %} + +For conversations you're watching or participating in, you can choose whether you want to receive notifications by email or through the notifications inbox on {% data variables.product.product_location %}{% ifversion ghes %} and {% data variables.product.prodname_mobile %}{% endif %}. For more information, see "[Choosing your notification settings](/account-and-profile/managing-subscriptions-and-notifications-on-github/setting-up-notifications/configuring-notifications#choosing-your-notification-settings)." + +![Screenshot of participating and watching notifications options](/assets/images/help/notifications-v2/participating-and-watching-options.png){% endif %} + -![Participating and watching notifications options](/assets/images/help/notifications-v2/participating-and-watching-options.png) For example: - If you don't want notifications to be sent to your email, unselect **email** for participating and watching notifications. - If you want to receive notifications by email when you've participated in a conversation, then you can select **email** under "Participating". -If you do not enable watching or participating notifications for web{% ifversion fpt or ghes or ghec %} and mobile{% endif %}, then your notifications inbox will not have any updates. +{% ifversion update-notification-settings-22 %}If you do not enable "Notify me: On GitHub" for watching or participating notifications, then your notifications inbox will not have any updates. + +{% else %} + +If you do not enable watching or participating notifications for web{% ifversion ghes %} and mobile{% endif %}, then your notifications inbox will not have any updates.{% endif %} ## Customizing your email notifications @@ -146,11 +158,16 @@ Email notifications from {% data variables.product.product_location %} contain t ## Automatic watching -By default, anytime you gain access to a new repository, you will automatically begin watching that repository. Anytime you join a new team, you will automatically be subscribed to updates and receive notifications when that team is @mentioned. If you don't want to automatically be subscribed, you can unselect the automatic watching options. +By default, anytime you gain access to a new repository, you will automatically begin watching that repository. Anytime you join a new team, you will automatically be subscribed to updates and receive notifications when that team is @mentioned. If you don't want to automatically be subscribed, you can unselect the automatic watching options in your notification settings. - ![Automatic watching options](/assets/images/help/notifications-v2/automatic-watching-options.png) +{% ifversion update-notification-settings-22 %} +![Automatic watching options for teams and repositories](/assets/images/automatically-watch-repos-and-teams.png) +{% else %} +![Automatic watching options](/assets/images/help/notifications-v2/automatic-watching-options.png){% endif %} -If "Automatically watch repositories" is disabled, then you will not automatically watch your own repositories. You must navigate to your repository page and choose the watch option. +If "Automatically watch repositories" is disabled, then you will not automatically watch your own repositories. You must navigate to your repository page and choose the watch option. + +For more information, see "[Choosing your notification settings](/account-and-profile/managing-subscriptions-and-notifications-on-github/setting-up-notifications/configuring-notifications#choosing-your-notification-settings)." ## Configuring your watch settings for an individual repository @@ -172,9 +189,17 @@ If you belong to an organization, you can choose the email account you want noti {% data reusables.notifications.access_notifications %} {% data reusables.notifications-v2.manage-notifications %} + 3. Under "Default notification email", select the email address you'd like notifications sent to. -![Default notification email address drop-down](/assets/images/help/notifications/notifications_primary_email_for_orgs.png) -4. Click **Save**. +{% ifversion update-notification-settings-22 %} + + ![Screenshot of the default notification email address setting](/assets/images/help/notifications/default-email-address-emphasized.png) + +{% else %} + + ![Screenshot of the default notification email address dropdown](/assets/images/help/notifications/notifications_primary_email_for_orgs.png){% endif %} +{% ifversion ghes or ghae %} +4. Click **Save**.{% endif %} ### Customizing email routes per organization @@ -182,12 +207,35 @@ If you are a member of more than one organization, you can configure each one to {% data reusables.notifications.access_notifications %} {% data reusables.notifications-v2.manage-notifications %} -3. Under "Custom routing," find your organization's name in the list. -![List of organizations and email addresses](/assets/images/help/notifications/notifications_org_emails.png) +{% ifversion update-notification-settings-22 %} +3. Under "Default notifications email", click **Custom routing**. + + ![Screenshot of default notifications email settings with custom routing button emphasised](/assets/images/help/notifications/custom-router-emphasized.png) + +4. Click **Add new route**. + + ![Screenshot of custom routing settings with add new route button emphasised](/assets/images/help/notifications/add-new-route-emphasized.png) + +5. Click **Pick organization**, then select the organization you want to customize from the dropdown. + + ![Screenshot of dropdown to pick organization](/assets/images/help/notifications/organization-dropdown-custom-routing-emphasis.png) + +6. Select one of your verified email addresses, then click **Save**. + + ![Screenshot of custom routing page with save button](/assets/images/help/notifications/select-email-address-custom-routing-and-save.png) + +{% else %} +3. Under "Custom routing," find your organization's name in the list. + + ![List of organizations and email addresses](/assets/images/help/notifications/notifications_org_emails.png) + 4. Click **Edit** next to the email address you want to change. -![Editing an organization's email addresses](/assets/images/help/notifications/notifications_edit_org_emails.png) + + ![Editing an organization's email addresses](/assets/images/help/notifications/notifications_edit_org_emails.png) + 5. Select one of your verified email addresses, then click **Save**. -![Switching your per-org email address](/assets/images/help/notifications/notifications_switching_org_email.gif) + + ![Switching your per-org email address](/assets/images/help/notifications/notifications_switching_org_email.gif){% endif %} ## {% data variables.product.prodname_dependabot_alerts %} notification options @@ -197,14 +245,17 @@ If you are a member of more than one organization, you can configure each one to For more information about the notification delivery methods available to you, and advice on optimizing your notifications for {% data variables.product.prodname_dependabot_alerts %}, see "[Configuring notifications for {% data variables.product.prodname_dependabot_alerts %}](/code-security/dependabot/dependabot-alerts/configuring-notifications-for-dependabot-alerts)." -{% ifversion fpt or ghes or ghec %} +{% ifversion update-notification-settings-22 or ghes %} ## {% data variables.product.prodname_actions %} notification options -Choose how you want to receive workflow run updates for repositories that you are watching that are set up with {% data variables.product.prodname_actions %}. You can also choose to only receive notifications for failed workflow runs. +Choose how you want to receive workflow run updates for repositories that you are watching that are set up with {% data variables.product.prodname_actions %}. You can also choose to only receive notifications for failed workflow runs.{% endif %} - ![Notification options for {% data variables.product.prodname_actions %}](/assets/images/help/notifications-v2/github-actions-notification-options.png) +{% ifversion update-notification-settings-22 %} +![Animated GIF of notification options for {% data variables.product.prodname_actions %}](/assets/images/help/notifications/github-actions-customize-notifications.gif){% endif %} + +{% ifversion ghes %} + ![Screenshot of the notification options for {% data variables.product.prodname_actions %}](/assets/images/help/notifications-v2/github-actions-notification-options.png){% endif %} -{% endif %} {% ifversion fpt or ghec or ghes > 3.3 or ghae > 3.3 %} ## Organization alerts notification options diff --git a/translations/pt-BR/content/account-and-profile/setting-up-and-managing-your-github-profile/customizing-your-profile/managing-your-profile-readme.md b/translations/pt-BR/content/account-and-profile/setting-up-and-managing-your-github-profile/customizing-your-profile/managing-your-profile-readme.md index 89b73ed3a3..c0511693a3 100644 --- a/translations/pt-BR/content/account-and-profile/setting-up-and-managing-your-github-profile/customizing-your-profile/managing-your-profile-readme.md +++ b/translations/pt-BR/content/account-and-profile/setting-up-and-managing-your-github-profile/customizing-your-profile/managing-your-profile-readme.md @@ -1,6 +1,6 @@ --- -title: Gerenciar o README do seu perfil -intro: 'Você pode adicionar um README ao seu perfil de{% data variables.product.prodname_dotcom %} para contar a outras pessoas sobre você.' +title: Managing your profile README +intro: 'You can add a README to your {% data variables.product.prodname_dotcom %} profile to tell other people about yourself.' versions: fpt: '*' ghes: '*' @@ -11,71 +11,67 @@ redirect_from: - /github/setting-up-and-managing-your-github-profile/managing-your-profile-readme - /github/setting-up-and-managing-your-github-profile/customizing-your-profile/managing-your-profile-readme shortTitle: Your profile README -ms.openlocfilehash: 587bcea1e1a0f96aad8882b41196afcc6e433363 -ms.sourcegitcommit: 47bd0e48c7dba1dde49baff60bc1eddc91ab10c5 -ms.translationtype: HT -ms.contentlocale: pt-BR -ms.lasthandoff: 09/05/2022 -ms.locfileid: '147578897' --- -## Sobre o README do seu perfil +## About your profile README -Você pode compartilhar informações sobre si mesmo com a comunidade no {% data variables.product.product_location %} criando um LEIAME do perfil. {% data variables.product.prodname_dotcom %} mostra o README do seu perfil na parte superior da sua página de perfil. +You can share information about yourself with the community on {% data variables.product.product_location %} by creating a profile README. {% data variables.product.prodname_dotcom %} shows your profile README at the top of your profile page. -Você decide quais informações incluir no README do seu perfil. Portanto, você tem total controle sobre a forma como se apresenta no {% data variables.product.prodname_dotcom %}. Aqui estão alguns exemplos de informações que os visitantes podem achar interessantes, divertidas ou úteis no README do seu perfil. +You decide what information to include in your profile README, so you have full control over how you present yourself on {% data variables.product.prodname_dotcom %}. Here are some examples of information that visitors may find interesting, fun, or useful in your profile README. -- Uma seção "Sobre mim" que descreve seu trabalho e seus interesses -- Contribuições das quais você está orgulhoso, bem como contexto dessas contribuições -- Orientação para obter ajuda nas comunidades onde você está envolvido +- An "About me" section that describes your work and interests +- Contributions you're proud of, and context about those contributions +- Guidance for getting help in communities where you're involved -![Arquivo README do perfil exibido no perfil](/assets/images/help/repository/profile-with-readme.png) +![Profile README file displayed on profile](/assets/images/help/repository/profile-with-readme.png) -Você pode formatar texto e incluir emoji, imagens e GIFs no seu perfil README usando o markdown específico do {% data variables.product.company_short %}. Para obter mais informações, confira "[Introdução à escrita e à formatação no {% data variables.product.prodname_dotcom %}](/github/writing-on-github/getting-started-with-writing-and-formatting-on-github)". +You can format text and include emoji, images, and GIFs in your profile README by using {% data variables.product.company_short %} Flavored Markdown. For more information, see "[Getting started with writing and formatting on {% data variables.product.prodname_dotcom %}](/github/writing-on-github/getting-started-with-writing-and-formatting-on-github)." For a hands-on guide to customizing your profile README, see "[Quickstart for writing on {% data variables.product.prodname_dotcom %}](/get-started/writing-on-github/getting-started-with-writing-and-formatting-on-github/quickstart-for-writing-on-github)." -## Pré-requisitos +## Prerequisites -O GitHub irá exibir o README do seu perfil na sua página de perfil se todas as informações a seguir forem verdadeiras. +GitHub will display your profile README on your profile page if all of the following are true. -- Você criou um repositório com um nome que corresponde ao nome de usuário do {% data variables.product.prodname_dotcom %}. -- O repositório é público. -- O repositório contém um arquivo denominado README.md na sua raiz. -- O arquivo README.md contém qualquer conteúdo. +- You've created a repository with a name that matches your {% data variables.product.prodname_dotcom %} username. +- The repository is public. +- The repository contains a file named README.md in its root. +- The README.md file contains any content. {% note %} -**Observação**: se você criou um repositório público com o mesmo nome do nome de usuário antes de julho de 2020, o {% data variables.product.prodname_dotcom %} não mostra automaticamente o LEIAME do repositório no seu perfil. Você pode compartilhar manualmente o LEIAME do repositório para o seu perfil acessando o repositório no {% data variables.product.prodname_dotcom_the_website %} e clicando em **Compartilhar no perfil**. +**Note**: If you created a public repository with the same name as your username before July 2020, {% data variables.product.prodname_dotcom %} won't automatically show the repository's README on your profile. You can manually share the repository's README to your profile by going to the repository on {% data variables.product.prodname_dotcom_the_website %} and clicking **Share to profile**. -![Botão para compartilhar o README no perfil](/assets/images/help/repository/share-to-profile.png) +![Button to share README to profile](/assets/images/help/repository/share-to-profile.png) {% endnote %} -## Adicionar um README do perfil +## Adding a profile README {% data reusables.repositories.create_new %} -2. Em "Nome do repositório", digite um nome de repositório que corresponde ao nome de usuário do {% data variables.product.prodname_dotcom %}. Por exemplo, se seu nome de usuário for "octocat", o nome do repositório deverá ser "octocat". - ![Campo de nome do repositório que corresponde ao nome de usuário](/assets/images/help/repository/repo-username-match.png) -3. Opcionalmente, adicione uma descrição do repositório. Por exemplo, "Meu repositório pessoal". - ![Campo usado para inserir uma descrição do repositório](/assets/images/help/repository/create-personal-repository-desc.png) -4. Selecione **Público**. - ![Botão de opção usado para selecionar a visibilidade com o público-alvo selecionado](/assets/images/help/repository/create-personal-repository-visibility.png) {% data reusables.repositories.initialize-with-readme %} {% data reusables.repositories.create-repo %} -7. Acima da barra lateral direita, clique em **Editar LEIAME**. - ![Botão usado para editar o arquivo LEIAME](/assets/images/help/repository/personal-repository-edit-readme.png) +2. Under "Repository name", type a repository name that matches your {% data variables.product.prodname_dotcom %} username. For example, if your username is "octocat", the repository name must be "octocat". + ![Repository name field which matches username](/assets/images/help/repository/repo-username-match.png) +3. Optionally, add a description of your repository. For example, "My personal repository." + ![Field for entering a repository description](/assets/images/help/repository/create-personal-repository-desc.png) +4. Select **Public**. + ![Radio button to select visibility with public selected](/assets/images/help/repository/create-personal-repository-visibility.png) +{% data reusables.repositories.initialize-with-readme %} +{% data reusables.repositories.create-repo %} +7. Above the right sidebar, click **Edit README**. + ![Button to edit README file](/assets/images/help/repository/personal-repository-edit-readme.png) - O arquivo README gerado é pré-preenchido com um modelo para dar alguma inspiração para o README do seu perfil. - ![Arquivo LEIAME com modelo preenchido previamente](/assets/images/help/repository/personal-repository-readme-template.png) + The generated README file is pre-populated with a template to give you some inspiration for your profile README. + ![README file with pre-populated template](/assets/images/help/repository/personal-repository-readme-template.png) -Para ver um resumo de todos os emojis disponíveis e os respectivos códigos, confira "[Folha de referências de emojis](https://www.webfx.com/tools/emoji-cheat-sheet/)". +For a summary of all the available emojis and their codes, see "[Emoji cheat sheet](https://www.webfx.com/tools/emoji-cheat-sheet/)." -## Remover um README do perfil +## Removing a profile README -O perfil README é removido do seu perfil de {% data variables.product.prodname_dotcom %} se algum dos pontos seguintes se aplicar: +The profile README is removed from your {% data variables.product.prodname_dotcom %} profile if any of the following apply: -- O arquivo README está vazio ou não existe. -- O repositório é privado. -- O nome do repositório não corresponde mais ao seu nome de usuário. +- The README file is empty or doesn't exist. +- The repository is private. +- The repository name no longer matches your username. -The method you choose is dependant upon your needs, but if you're unsure, we recommend making your repository private. Para ver as etapas de como tornar seu repositório privado, confira "[Como alterar a visibilidade de um repositório](/github/administering-a-repository/setting-repository-visibility#changing-a-repositorys-visibility)". +The method you choose depends upon your needs, but if you're unsure, we recommend making your repository private. For steps on how to make your repository private, see "[Changing a repository's visibility](/github/administering-a-repository/setting-repository-visibility#changing-a-repositorys-visibility)." -## Leitura adicional +## Further reading -- "[Sobre os arquivos LEIAME](/github/creating-cloning-and-archiving-repositories/about-readmes)" +- [About READMEs](/github/creating-cloning-and-archiving-repositories/about-readmes) diff --git a/translations/pt-BR/content/actions/hosting-your-own-runners/autoscaling-with-self-hosted-runners.md b/translations/pt-BR/content/actions/hosting-your-own-runners/autoscaling-with-self-hosted-runners.md index 053f0e3d1e..e2894b8fdd 100644 --- a/translations/pt-BR/content/actions/hosting-your-own-runners/autoscaling-with-self-hosted-runners.md +++ b/translations/pt-BR/content/actions/hosting-your-own-runners/autoscaling-with-self-hosted-runners.md @@ -63,7 +63,7 @@ By default, self-hosted runners will automatically perform a software update whe To turn off automatic software updates and install software updates yourself, specify the `--disableupdate` flag when registering your runner using `config.sh`. For example: ```shell -./config.sh --url https://github.com/octo-org --token example-token --disableupdate +./config.sh --url https://github.com/YOUR-ORGANIZATION --token EXAMPLE-TOKEN --disableupdate ``` If you disable automatic updates, you must still update your runner version regularly. New functionality in {% data variables.product.prodname_actions %} requires changes in both the {% data variables.product.prodname_actions %} service _and_ the runner software. The runner may not be able to correctly process jobs that take advantage of new features in {% data variables.product.prodname_actions %} without a software update. diff --git a/translations/pt-BR/content/actions/hosting-your-own-runners/configuring-the-self-hosted-runner-application-as-a-service.md b/translations/pt-BR/content/actions/hosting-your-own-runners/configuring-the-self-hosted-runner-application-as-a-service.md index f95896503d..7463d3c5df 100644 --- a/translations/pt-BR/content/actions/hosting-your-own-runners/configuring-the-self-hosted-runner-application-as-a-service.md +++ b/translations/pt-BR/content/actions/hosting-your-own-runners/configuring-the-self-hosted-runner-application-as-a-service.md @@ -77,7 +77,7 @@ You can manage the runner service in the Windows **Services** application, or yo 1. Alternatively, the command takes an optional `user` argument to install the service as a different user. ```shell - ./svc.sh install USERNAME + ./svc.sh install USERNAME ``` {% endlinux %} diff --git a/translations/pt-BR/content/actions/learn-github-actions/contexts.md b/translations/pt-BR/content/actions/learn-github-actions/contexts.md index a4fdab860d..7a13b15687 100644 --- a/translations/pt-BR/content/actions/learn-github-actions/contexts.md +++ b/translations/pt-BR/content/actions/learn-github-actions/contexts.md @@ -201,7 +201,7 @@ The `github` context contains information about the workflow run and the event t | `github.ref` | `string` | {% data reusables.actions.ref-description %} | {%- ifversion fpt or ghec or ghes > 3.3 or ghae > 3.3 %} | `github.ref_name` | `string` | {% data reusables.actions.ref_name-description %} | -| `github.ref_protected` | `string` | {% data reusables.actions.ref_protected-description %} | +| `github.ref_protected` | `boolean` | {% data reusables.actions.ref_protected-description %} | | `github.ref_type` | `string` | {% data reusables.actions.ref_type-description %} | {%- endif %} | `github.path` | `string` | Path on the runner to the file that sets system `PATH` variables from workflow commands. This file is unique to the current step and is a different file for each step in a job. For more information, see "[Workflow commands for {% data variables.product.prodname_actions %}](/actions/learn-github-actions/workflow-commands-for-github-actions#adding-a-system-path)." | diff --git a/translations/pt-BR/content/actions/learn-github-actions/understanding-github-actions.md b/translations/pt-BR/content/actions/learn-github-actions/understanding-github-actions.md index f3c1c1faf6..ea6cebc80b 100644 --- a/translations/pt-BR/content/actions/learn-github-actions/understanding-github-actions.md +++ b/translations/pt-BR/content/actions/learn-github-actions/understanding-github-actions.md @@ -87,15 +87,9 @@ For more information, see "[Creating actions](/actions/creating-actions)." {% data reusables.actions.workflow-basic-example-and-explanation %} -## More complex examples -{% data reusables.actions.link-to-example-library %} - ## Next steps -- To continue learning about {% data variables.product.prodname_actions %}, see "[Finding and customizing actions](/actions/learn-github-actions/finding-and-customizing-actions)." -{% ifversion fpt or ghec or ghes %} -- To understand how billing works for {% data variables.product.prodname_actions %}, see "[About billing for {% data variables.product.prodname_actions %}](/actions/reference/usage-limits-billing-and-administration#about-billing-for-github-actions)." -{% endif %} +{% data reusables.actions.onboarding-next-steps %} ## Contacting support diff --git a/translations/pt-BR/content/actions/managing-workflow-runs/re-running-workflows-and-jobs.md b/translations/pt-BR/content/actions/managing-workflow-runs/re-running-workflows-and-jobs.md index cc2359f7a5..a1d240e9c0 100644 --- a/translations/pt-BR/content/actions/managing-workflow-runs/re-running-workflows-and-jobs.md +++ b/translations/pt-BR/content/actions/managing-workflow-runs/re-running-workflows-and-jobs.md @@ -48,14 +48,14 @@ Re-running a workflow{% ifversion re-run-jobs %} or jobs in a workflow{% endif % To re-run a failed workflow run, use the `run rerun` subcommand. Replace `run-id` with the ID of the failed run that you want to re-run. If you don't specify a `run-id`, {% data variables.product.prodname_cli %} returns an interactive menu for you to choose a recent failed run. ```shell -gh run rerun run-id +gh run rerun RUN_ID ``` {% ifversion debug-reruns %} {% data reusables.actions.enable-debug-logging-cli %} ```shell -gh run rerun run-id --debug +gh run rerun RUN_ID --debug ``` {% endif %} @@ -90,14 +90,14 @@ If any jobs in a workflow run failed, you can re-run just the jobs that failed. To re-run failed jobs in a workflow run, use the `run rerun` subcommand with the `--failed` flag. Replace `run-id` with the ID of the run for which you want to re-run failed jobs. If you don't specify a `run-id`, {% data variables.product.prodname_cli %} returns an interactive menu for you to choose a recent failed run. ```shell -gh run rerun run-id --failed +gh run rerun RUN_ID --failed ``` {% ifversion debug-reruns %} {% data reusables.actions.enable-debug-logging-cli %} ```shell -gh run rerun run-id --failed --debug +gh run rerun RUN_ID --failed --debug ``` {% endif %} @@ -127,14 +127,14 @@ When you re-run a specific job in a workflow, a new workflow run will start for To re-run a specific job in a workflow run, use the `run rerun` subcommand with the `--job` flag. Replace `job-id` with the ID of the job that you want to re-run. ```shell -gh run rerun --job job-id +gh run rerun --job JOB_ID ``` {% ifversion debug-reruns %} {% data reusables.actions.enable-debug-logging-cli %} ```shell -gh run rerun --job job-id --debug +gh run rerun --job JOB_ID --debug ``` {% endif %} diff --git a/translations/pt-BR/content/actions/quickstart.md b/translations/pt-BR/content/actions/quickstart.md index b83df0ebe2..44f3ab36a3 100644 --- a/translations/pt-BR/content/actions/quickstart.md +++ b/translations/pt-BR/content/actions/quickstart.md @@ -77,21 +77,13 @@ Committing the workflow file to a branch in your repository triggers the `push` For example, you can see the list of files in your repository: ![Example action detail](/assets/images/help/repository/actions-quickstart-log-detail.png) - + +The example workflow you just added is triggered each time code is pushed to the branch, and shows you how {% data variables.product.prodname_actions %} can work with the contents of your repository. For an in-depth tutorial, see "[Understanding {% data variables.product.prodname_actions %}](/actions/learn-github-actions/understanding-github-actions)." + ## More starter workflows {% data reusables.actions.workflow-template-overview %} -## More complex examples -{% data reusables.actions.link-to-example-library %} - ## Next steps -The example workflow you just added runs each time code is pushed to the branch, and shows you how {% data variables.product.prodname_actions %} can work with the contents of your repository. But this is only the beginning of what you can do with {% data variables.product.prodname_actions %}: - -- Your repository can contain multiple workflows that trigger different jobs based on different events. -- You can use a workflow to install software testing apps and have them automatically test your code on {% data variables.product.prodname_dotcom %}'s runners. - -{% data variables.product.prodname_actions %} can help you automate nearly every aspect of your application development processes. Ready to get started? Here are some helpful resources for taking your next steps with {% data variables.product.prodname_actions %}: - -- "[Learn {% data variables.product.prodname_actions %}](/actions/learn-github-actions)" for an in-depth tutorial. +{% data reusables.actions.onboarding-next-steps %} diff --git a/translations/pt-BR/content/actions/security-guides/encrypted-secrets.md b/translations/pt-BR/content/actions/security-guides/encrypted-secrets.md index 9a60fda43d..e678c2474c 100644 --- a/translations/pt-BR/content/actions/security-guides/encrypted-secrets.md +++ b/translations/pt-BR/content/actions/security-guides/encrypted-secrets.md @@ -93,13 +93,13 @@ If your repository has environment secrets or can access secrets from the parent To add a repository secret, use the `gh secret set` subcommand. Replace `secret-name` with the name of your secret. ```shell -gh secret set secret-name +gh secret set SECRET_NAME ``` The CLI will prompt you to enter a secret value. Alternatively, you can read the value of the secret from a file. ```shell -gh secret set secret-name < secret.txt +gh secret set SECRET_NAME < secret.txt ``` To list all secrets for the repository, use the `gh secret list` subcommand. @@ -128,13 +128,13 @@ To list all secrets for the repository, use the `gh secret list` subcommand. To add a secret for an environment, use the `gh secret set` subcommand with the `--env` or `-e` flag followed by the environment name. ```shell -gh secret set --env environment-name secret-name +gh secret set --env ENV_NAME SECRET_NAME ``` To list all secrets for an environment, use the `gh secret list` subcommand with the `--env` or `-e` flag followed by the environment name. ```shell -gh secret list --env environment-name +gh secret list --env ENV_NAME ``` {% endcli %} @@ -173,25 +173,25 @@ gh auth login --scopes "admin:org" To add a secret for an organization, use the `gh secret set` subcommand with the `--org` or `-o` flag followed by the organization name. ```shell -gh secret set --org organization-name secret-name +gh secret set --org ORG_NAME SECRET_NAME ``` By default, the secret is only available to private repositories. To specify that the secret should be available to all repositories within the organization, use the `--visibility` or `-v` flag. ```shell -gh secret set --org organization-name secret-name --visibility all +gh secret set --org ORG_NAME SECRET_NAME --visibility all ``` To specify that the secret should be available to selected repositories within the organization, use the `--repos` or `-r` flag. ```shell -gh secret set --org organization-name secret-name --repos repo-name-1,repo-name-2" +gh secret set --org ORG_NAME SECRET_NAME --repos REPO-NAME-1, REPO-NAME-2" ``` To list all secrets for an organization, use the `gh secret list` subcommand with the `--org` or `-o` flag followed by the organization name. ```shell -gh secret list --org organization-name +gh secret list --org ORG_NAME ``` {% endcli %} diff --git a/translations/pt-BR/content/actions/using-github-hosted-runners/using-larger-runners.md b/translations/pt-BR/content/actions/using-github-hosted-runners/using-larger-runners.md index 17fb1a7a0f..5d941f42f3 100644 --- a/translations/pt-BR/content/actions/using-github-hosted-runners/using-larger-runners.md +++ b/translations/pt-BR/content/actions/using-github-hosted-runners/using-larger-runners.md @@ -87,7 +87,7 @@ You can add a {% data variables.actions.hosted_runner %} to an organization, whe ## Running jobs on your runner -Once your runner type has been been defined, you can update your workflows to send jobs to the runner instances for processing. In this example, a runner group is populated with Ubuntu 16-core runners, which have been assigned the label `ubuntu-20.04-16core`. If you have a runner matching this label, the `check-bats-version` job then uses the `runs-on` key to target that runner whenever the job is run: +Once your runner type has been defined, you can update your workflow YAML files to send jobs to your newly created runner instances for processing. In this example, a runner group is populated with Ubuntu 16-core runners, which have been assigned the label `ubuntu-20.04-16core`. If you have a runner matching this label, the `check-bats-version` job then uses the `runs-on` key to target that runner whenever the job is run: ```yaml name: learn-github-actions @@ -104,6 +104,8 @@ jobs: - run: bats -v ``` +To find out which runners are enabled for your repository and organization, you must contact your organization admin. Your organization admin can create new runners and runner groups, as well as configure permissions to specify which repositories can access a runner group. + ## Managing access to your runners {% note %} diff --git a/translations/pt-BR/content/admin/configuration/configuring-your-enterprise/configuring-rate-limits.md b/translations/pt-BR/content/admin/configuration/configuring-your-enterprise/configuring-rate-limits.md index 26c878bfaa..6f6735949d 100644 --- a/translations/pt-BR/content/admin/configuration/configuring-your-enterprise/configuring-rate-limits.md +++ b/translations/pt-BR/content/admin/configuration/configuring-your-enterprise/configuring-rate-limits.md @@ -93,7 +93,7 @@ By default, the rate limit for {% data variables.product.prodname_actions %} is ```shell ghe-config actions-rate-limiting.enabled true - ghe-config actions-rate-limiting.queue-runs-per-minute RUNS-PER-MINUTE + ghe-config actions-rate-limiting.queue-runs-per-minute RUNS-PER-MINUTE ``` 1. To disable the rate limit after it's been enabled, run the following command. diff --git a/translations/pt-BR/content/admin/configuration/configuring-your-enterprise/site-admin-dashboard.md b/translations/pt-BR/content/admin/configuration/configuring-your-enterprise/site-admin-dashboard.md index 5bd322dcae..ea742e0fc5 100644 --- a/translations/pt-BR/content/admin/configuration/configuring-your-enterprise/site-admin-dashboard.md +++ b/translations/pt-BR/content/admin/configuration/configuring-your-enterprise/site-admin-dashboard.md @@ -67,7 +67,7 @@ You can also access these reports programmatically via standard HTTP authenticat For example, here is how you would download the "all users" report using cURL: ```shell -curl -L -u username:token http(s)://hostname/stafftools/reports/all_users.csv +curl -L -u USERNAME:TOKEN http(s)://HOSTNAME/stafftools/reports/all_users.csv ``` To access the other reports programmatically, replace `all_users` with `active_users`, `dormant_users`, `suspended_users`, `all_organizations`, or `all_repositories`. diff --git a/translations/pt-BR/content/admin/enterprise-management/updating-the-virtual-machine-and-physical-resources/upgrading-github-enterprise-server.md b/translations/pt-BR/content/admin/enterprise-management/updating-the-virtual-machine-and-physical-resources/upgrading-github-enterprise-server.md index 2fabe7244a..590bf709b2 100644 --- a/translations/pt-BR/content/admin/enterprise-management/updating-the-virtual-machine-and-physical-resources/upgrading-github-enterprise-server.md +++ b/translations/pt-BR/content/admin/enterprise-management/updating-the-virtual-machine-and-physical-resources/upgrading-github-enterprise-server.md @@ -118,7 +118,7 @@ If the upgrade target you're presented with is a feature release instead of a pa {% data reusables.enterprise_installation.download-package %} 4. Run the `ghe-upgrade` command using the package file name: ```shell - admin@HOSTNAME:~$ ghe-upgrade GITHUB-UPGRADE.hpkg + admin@HOSTNAME:~$ ghe-upgrade GITHUB-UPGRADE.hpkg *** verifying upgrade package signature... ``` 5. If a reboot is required for updates for kernel, MySQL, Elasticsearch or other programs, the hotpatch upgrade script notifies you. @@ -170,14 +170,14 @@ While you can use a hotpatch to upgrade to the latest patch release within a fea 5. Run the `ghe-upgrade` command using the package file name: ```shell - admin@HOSTNAME:~$ ghe-upgrade GITHUB-UPGRADE.pkg + admin@HOSTNAME:~$ ghe-upgrade GITHUB-UPGRADE.pkg *** verifying upgrade package signature... ``` 6. Confirm that you'd like to continue with the upgrade and restart after the package signature verifies. The new root filesystem writes to the secondary partition and the instance automatically restarts in maintenance mode: ```shell *** applying update... - This package will upgrade your installation to version version-number - Current root partition: /dev/xvda1 [version-number] + This package will upgrade your installation to version VERSION-NUMBER + Current root partition: /dev/xvda1 [VERSION-NUMBER] Target root partition: /dev/xvda2 Proceed with installation? [y/N] ``` diff --git a/translations/pt-BR/content/admin/monitoring-activity-in-your-enterprise/reviewing-audit-logs-for-your-enterprise/streaming-the-audit-log-for-your-enterprise.md b/translations/pt-BR/content/admin/monitoring-activity-in-your-enterprise/reviewing-audit-logs-for-your-enterprise/streaming-the-audit-log-for-your-enterprise.md index b34b1c60c3..47804fb2d7 100644 --- a/translations/pt-BR/content/admin/monitoring-activity-in-your-enterprise/reviewing-audit-logs-for-your-enterprise/streaming-the-audit-log-for-your-enterprise.md +++ b/translations/pt-BR/content/admin/monitoring-activity-in-your-enterprise/reviewing-audit-logs-for-your-enterprise/streaming-the-audit-log-for-your-enterprise.md @@ -86,12 +86,6 @@ For information on creating or accessing your access key ID and secret key, see {% ifversion streaming-oidc-s3 %} #### Setting up streaming to S3 with OpenID Connect -{% note %} - -**Note:** Streaming to Amazon S3 with OpenID Connect is currently in beta and subject to change. - -{% endnote %} - 1. In AWS, add the {% data variables.product.prodname_dotcom %} OIDC provider to IAM. For more information, see [Creating OpenID Connect (OIDC) identity providers](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_providers_create_oidc.html) in the AWS documentation. - For the provider URL, use `https://oidc-configuration.audit-log.githubusercontent.com`. diff --git a/translations/pt-BR/content/admin/monitoring-activity-in-your-enterprise/reviewing-audit-logs-for-your-enterprise/using-the-audit-log-api-for-your-enterprise.md b/translations/pt-BR/content/admin/monitoring-activity-in-your-enterprise/reviewing-audit-logs-for-your-enterprise/using-the-audit-log-api-for-your-enterprise.md index fe9cb82ebb..eb7ca4cae4 100644 --- a/translations/pt-BR/content/admin/monitoring-activity-in-your-enterprise/reviewing-audit-logs-for-your-enterprise/using-the-audit-log-api-for-your-enterprise.md +++ b/translations/pt-BR/content/admin/monitoring-activity-in-your-enterprise/reviewing-audit-logs-for-your-enterprise/using-the-audit-log-api-for-your-enterprise.md @@ -121,7 +121,7 @@ For more information about the audit log REST API, see "[Enterprise administrati The query below searches for audit log events created on Jan 1st, 2022 in the `avocado-corp` enterprise, and return the first page with a maximum of 100 items per page using [REST API pagination](/rest/overview/resources-in-the-rest-api#pagination): ```shell -curl -H "Authorization: Bearer TOKEN" \ +curl -H "Authorization: Bearer TOKEN" \ --request GET \ "https://api.github.com/enterprises/avocado-corp/audit-log?phrase=created:2022-01-01&page=1&per_page=100" ``` @@ -133,7 +133,7 @@ You can specify multiple search phrases, such as `created` and `actor`, by separ The query below searches for audit log events for pull requests, where the event occurred on or after Jan 1st, 2022 in the `avocado-corp` enterprise, and the action was performed by the `octocat` user: ```shell -curl -H "Authorization: Bearer TOKEN" \ +curl -H "Authorization: Bearer TOKEN" \ --request GET \ "https://api.github.com/enterprises/avocado-corp/audit-log?phrase=action:pull_request+created:>=2022-01-01+actor:octocat" ``` diff --git a/translations/pt-BR/content/authentication/connecting-to-github-with-ssh/generating-a-new-ssh-key-and-adding-it-to-the-ssh-agent.md b/translations/pt-BR/content/authentication/connecting-to-github-with-ssh/generating-a-new-ssh-key-and-adding-it-to-the-ssh-agent.md index 9d0033a39f..92fa29e8a5 100644 --- a/translations/pt-BR/content/authentication/connecting-to-github-with-ssh/generating-a-new-ssh-key-and-adding-it-to-the-ssh-agent.md +++ b/translations/pt-BR/content/authentication/connecting-to-github-with-ssh/generating-a-new-ssh-key-and-adding-it-to-the-ssh-agent.md @@ -44,17 +44,19 @@ If you are a site administrator for {% data variables.product.product_location % {%- ifversion ghae %} ```shell - $ ssh-keygen -t rsa -b 4096 -C "your_email@example.com" + $ ssh-keygen -t rsa -b 4096 -C "your_email@example.com" + $ ssh-keygen -t rsa -b 4096 -C "your_email@example.com" + ``` {%- else %} ```shell - $ ssh-keygen -t ed25519 -C "your_email@example.com" + $ ssh-keygen -t ed25519 -C "your_email@example.com" ``` {% note %} **Note:** If you are using a legacy system that doesn't support the Ed25519 algorithm, use: ```shell - $ ssh-keygen -t rsa -b 4096 -C "your_email@example.com" + $ ssh-keygen -t rsa -b 4096 -C "your_email@example.com" ``` {% endnote %} @@ -62,14 +64,14 @@ If you are a site administrator for {% data variables.product.product_location % This creates a new SSH key, using the provided email as a label. ```shell - > Generating public/private algorithm key pair. + > Generating public/private ALGORITHM key pair. ``` 3. When you're prompted to "Enter a file in which to save the key," press Enter. This accepts the default file location. {% mac %} ```shell - > Enter a file in which to save the key (/Users/you/.ssh/id_algorithm): [Press enter] + > Enter a file in which to save the key (/Users/YOU/.ssh/id_ALGORITHM: [Press enter] ``` {% endmac %} @@ -77,7 +79,7 @@ If you are a site administrator for {% data variables.product.product_location % {% windows %} ```shell - > Enter a file in which to save the key (/c/Users/you/.ssh/id_algorithm):[Press enter] + > Enter a file in which to save the key (/c/Users/YOU/.ssh/id_ALGORITHM):[Press enter] ``` {% endwindows %} @@ -85,15 +87,15 @@ If you are a site administrator for {% data variables.product.product_location % {% linux %} ```shell - > Enter a file in which to save the key (/home/you/.ssh/algorithm): [Press enter] + > Enter a file in which to save the key (/home/YOU/.ssh/ALGORITHM):[Press enter] ``` {% endlinux %} 4. At the prompt, type a secure passphrase. For more information, see ["Working with SSH key passphrases](/articles/working-with-ssh-key-passphrases)." ```shell - > Enter passphrase (empty for no passphrase): [Type a passphrase] - > Enter same passphrase again: [Type passphrase again] + > Enter passphrase (empty for no passphrase): [Type a passphrase] + > Enter same passphrase again: [Type passphrase again] ``` ## Adding your SSH key to the ssh-agent @@ -110,7 +112,7 @@ Before adding a new SSH key to the ssh-agent to manage your keys, you should hav ```shell $ open ~/.ssh/config - > The file /Users/you/.ssh/config does not exist. + > The file /Users/YOU/.ssh/config does not exist. ``` * If the file doesn't exist, create the file. @@ -198,7 +200,7 @@ If you are using macOS or Linux, you may need to update your SSH client or insta {% data reusables.command_line.open_the_multi_os_terminal %} 3. Paste the text below, substituting in the email address for your account on {% data variables.product.product_name %}. ```shell - $ ssh-keygen -t {% ifversion ghae %}ecdsa{% else %}ed25519{% endif %}-sk -C "your_email@example.com" + $ ssh-keygen -t {% ifversion ghae %}ecdsa{% else %}ed25519{% endif %}-sk -C "YOUR_EMAIL" ``` {%- ifversion not ghae %} @@ -217,7 +219,7 @@ If you are using macOS or Linux, you may need to update your SSH client or insta {% mac %} ```shell - > Enter a file in which to save the key (/Users/you/.ssh/id_{% ifversion ghae %}ecdsa{% else %}ed25519{% endif %}_sk): [Press enter] + > Enter a file in which to save the key (/Users/YOU/.ssh/id_{% ifversion ghae %}ecdsa{% else %}ed25519{% endif %}_sk): [Press enter] ``` {% endmac %} @@ -225,7 +227,7 @@ If you are using macOS or Linux, you may need to update your SSH client or insta {% windows %} ```shell - > Enter a file in which to save the key (/c/Users/you/.ssh/id_{% ifversion ghae %}ecdsa{% else %}ed25519{% endif %}_sk):[Press enter] + > Enter a file in which to save the key (/c/Users/YOU/.ssh/id_{% ifversion ghae %}ecdsa{% else %}ed25519{% endif %}_sk):[Press enter] ``` {% endwindows %} @@ -233,14 +235,14 @@ If you are using macOS or Linux, you may need to update your SSH client or insta {% linux %} ```shell - > Enter a file in which to save the key (/home/you/.ssh/id_{% ifversion ghae %}ecdsa{% else %}ed25519{% endif %}_sk): [Press enter] + > Enter a file in which to save the key (/home/YOU/.ssh/id_{% ifversion ghae %}ecdsa{% else %}ed25519{% endif %}_sk):[Press enter] ``` {% endlinux %} 6. When you are prompted to type a passphrase, press **Enter**. ```shell - > Enter passphrase (empty for no passphrase): [Type a passphrase] - > Enter same passphrase again: [Type passphrase again] + > Enter passphrase (empty for no passphrase): [Type a passphrase] + > Enter same passphrase again: [Type passphrase again] ``` 7. Add the SSH key to your account on {% data variables.product.prodname_dotcom %}. For more information, see "[Adding a new SSH key to your {% data variables.product.prodname_dotcom %} account](/github/authenticating-to-github/adding-a-new-ssh-key-to-your-github-account)." diff --git a/translations/pt-BR/content/authentication/managing-commit-signature-verification/signing-commits.md b/translations/pt-BR/content/authentication/managing-commit-signature-verification/signing-commits.md index cf7d059042..e9b3200e36 100644 --- a/translations/pt-BR/content/authentication/managing-commit-signature-verification/signing-commits.md +++ b/translations/pt-BR/content/authentication/managing-commit-signature-verification/signing-commits.md @@ -36,7 +36,7 @@ If you have multiple keys or are attempting to sign commits or tags with a key t 1. When committing changes in your local branch, add the -S flag to the git commit command: ```shell - $ git commit -S -m "your commit message" + $ git commit -S -m "YOUR_COMMIT_MESSAGE" # Creates a signed commit ``` 2. If you're using GPG, after you create your commit, provide the passphrase you set up when you [generated your GPG key](/articles/generating-a-new-gpg-key). diff --git a/translations/pt-BR/content/authentication/managing-commit-signature-verification/signing-tags.md b/translations/pt-BR/content/authentication/managing-commit-signature-verification/signing-tags.md index fac18fab40..e5371adbc6 100644 --- a/translations/pt-BR/content/authentication/managing-commit-signature-verification/signing-tags.md +++ b/translations/pt-BR/content/authentication/managing-commit-signature-verification/signing-tags.md @@ -19,12 +19,12 @@ topics: 1. To sign a tag, add `-s` to your `git tag` command. ```shell - $ git tag -s mytag + $ git tag -s MYTAG # Creates a signed tag ``` 2. Verify your signed tag by running `git tag -v [tag-name]`. ```shell - $ git tag -v mytag + $ git tag -v MYTAG # Verifies the signed tag ``` diff --git a/translations/pt-BR/content/code-security/dependabot/dependabot-alerts/configuring-notifications-for-dependabot-alerts.md b/translations/pt-BR/content/code-security/dependabot/dependabot-alerts/configuring-notifications-for-dependabot-alerts.md index b907b2c69f..91f2e8d064 100644 --- a/translations/pt-BR/content/code-security/dependabot/dependabot-alerts/configuring-notifications-for-dependabot-alerts.md +++ b/translations/pt-BR/content/code-security/dependabot/dependabot-alerts/configuring-notifications-for-dependabot-alerts.md @@ -1,7 +1,7 @@ --- -title: Configurando notificações para alertas do Dependabot +title: Configuring notifications for Dependabot alerts shortTitle: Configure notifications -intro: 'Otimize a forma como você recebe notificações sobre {% data variables.product.prodname_dependabot_alerts %}.' +intro: 'Optimize how you receive notifications about {% data variables.product.prodname_dependabot_alerts %}.' redirect_from: - /github/managing-security-vulnerabilities/configuring-notifications-for-vulnerable-dependencies - /code-security/supply-chain-security/configuring-notifications-for-vulnerable-dependencies @@ -19,50 +19,51 @@ topics: - Vulnerabilities - Dependencies - Repositories -ms.openlocfilehash: b8810c27a10302a7873fc61a32189f33855140bb -ms.sourcegitcommit: ac00e2afa6160341c5b258d73539869720b395a4 -ms.translationtype: HT -ms.contentlocale: pt-BR -ms.lasthandoff: 09/09/2022 -ms.locfileid: '147875524' --- -## Sobre as notificações de {% data variables.product.prodname_dependabot_alerts %}. -Quando o {% data variables.product.prodname_dependabot %} detecta dependências vulneráveis {% ifversion GH-advisory-db-supports-malware %} ou malware{% endif %} nos seus repositórios, geramos um alerta do {% data variables.product.prodname_dependabot %} que é exibido na guia Segurança do repositório. O {% data variables.product.product_name %} notifica os mantenedores dos repositórios afetados sobre o novo alerta de acordo com as preferências de notificação.{% ifversion fpt or ghec %} Por padrão, o {% data variables.product.prodname_dependabot %} está habilitado em todos os repositórios públicos. Para {% data variables.product.prodname_dependabot_alerts %}, por padrão, você receberá {% data variables.product.prodname_dependabot_alerts %} por e-mail, agrupado pela vulnerabilidade específica. +## About notifications for {% data variables.product.prodname_dependabot_alerts %} + +When {% data variables.product.prodname_dependabot %} detects vulnerable dependencies{% ifversion GH-advisory-db-supports-malware %} or malware{% endif %} in your repositories, we generate a {% data variables.product.prodname_dependabot %} alert and display it on the Security tab for the repository. {% data variables.product.product_name %} notifies the maintainers of affected repositories about the new alert according to their notification preferences.{% ifversion fpt or ghec %} {% data variables.product.prodname_dependabot %} is enabled by default on all public repositories. For {% data variables.product.prodname_dependabot_alerts %}, by default, you will receive {% data variables.product.prodname_dependabot_alerts %} by email, grouped by the specific vulnerability. {% endif %} -{% ifversion fpt or ghec %}Se você é proprietário de uma organização, habilite ou desabilite os {% data variables.product.prodname_dependabot_alerts %} em todos os repositórios da organização com um clique. Você também pode definir se os {% data variables.product.prodname_dependabot_alerts %} serão habilitados ou desabilitados para repositórios recém-criados. Para obter mais informações, confira "[Como gerenciar as configurações de segurança e de análise da sua organização](/organizations/keeping-your-organization-secure/managing-security-and-analysis-settings-for-your-organization#enabling-or-disabling-a-feature-for-all-new-repositories-when-they-are-added)". +{% ifversion fpt or ghec %}If you're an organization owner, you can enable or disable {% data variables.product.prodname_dependabot_alerts %} for all repositories in your organization with one click. You can also set whether {% data variables.product.prodname_dependabot_alerts %} will be enabled or disabled for newly-created repositories. For more information, see "[Managing security and analysis settings for your organization](/organizations/keeping-your-organization-secure/managing-security-and-analysis-settings-for-your-organization#enabling-or-disabling-a-feature-for-all-new-repositories-when-they-are-added)." {% endif %} -{% ifversion ghes or ghae %} Por padrão, se o proprietário da sua empresa configurou o email para receber notificações sobre sua empresa, você receberá os {% data variables.product.prodname_dependabot_alerts %} por email. +{% ifversion ghes or ghae %} +By default, if your enterprise owner has configured email for notifications on your enterprise, you will receive {% data variables.product.prodname_dependabot_alerts %} by email. -Os proprietários das empresas também podem habilitar {% data variables.product.prodname_dependabot_alerts %} sem notificações. Para obter mais informações, confira "[Como habilitar o {% data variables.product.prodname_dependabot %} para sua empresa](/admin/configuration/configuring-github-connect/enabling-dependabot-for-your-enterprise)". +Enterprise owners can also enable {% data variables.product.prodname_dependabot_alerts %} without notifications. For more information, see "[Enabling {% data variables.product.prodname_dependabot %} for your enterprise](/admin/configuration/configuring-github-connect/enabling-dependabot-for-your-enterprise)." {% endif %} -## Configurar notificações para {% data variables.product.prodname_dependabot_alerts %} +## Configuring notifications for {% data variables.product.prodname_dependabot_alerts %} -{% ifversion fpt or ghes or ghec %} Quando um novo alerta do {% data variables.product.prodname_dependabot %} é detectado, o {% data variables.product.product_name %} notifica todos os usuários com acesso aos {% data variables.product.prodname_dependabot_alerts %} no repositório de acordo com as respectivas preferências de notificação. Você receberá alertas se estiver acompanhando o repositório, caso tenha habilitado notificações para alertas de segurança ou para toda a atividade no repositório e não estiver ignorando o repositório. Para obter mais informações, confira "[Como configurar notificações](/github/managing-subscriptions-and-notifications-on-github/configuring-notifications#configuring-your-watch-settings-for-an-individual-repository)". +{% ifversion fpt or ghes or ghec %} +When a new {% data variables.product.prodname_dependabot %} alert is detected, {% data variables.product.product_name %} notifies all users with access to {% data variables.product.prodname_dependabot_alerts %} for the repository according to their notification preferences. You will receive alerts if you are watching the repository, have enabled notifications for security alerts or for all the activity on the repository, and are not ignoring the repository. For more information, see "[Configuring notifications](/github/managing-subscriptions-and-notifications-on-github/configuring-notifications#configuring-your-watch-settings-for-an-individual-repository)." {% endif %} -Você pode definir as configurações de notificação para si mesmo ou para sua organização no menu suspenso Gerenciar notificações {% octicon "bell" aria-label="The notifications bell" %} exibido na parte superior de cada página. Para obter mais informações, confira "[Como configurar notificações](/github/managing-subscriptions-and-notifications-on-github/configuring-notifications#choosing-your-notification-settings)". +You can configure notification settings for yourself or your organization from the Manage notifications drop-down {% octicon "bell" aria-label="The notifications bell" %} shown at the top of each page. For more information, see "[Configuring notifications](/github/managing-subscriptions-and-notifications-on-github/configuring-notifications#choosing-your-notification-settings)." -{% data reusables.notifications.vulnerable-dependency-notification-delivery-method-customization2 %} {% data reusables.notifications.vulnerable-dependency-notification-options %} +{% data reusables.notifications.vulnerable-dependency-notification-delivery-method-customization2 %} +{% data reusables.notifications.vulnerable-dependency-notification-options %} + +{% ifversion update-notification-settings-22 %} +![Screenshot of {% data variables.product.prodname_dependabot_alerts %} options](/assets/images/help/dependabot/dependabot-notification-frequency.png){% else %} +![Screenshot of the {% data variables.product.prodname_dependabot_alerts %} options](/assets/images/help/notifications-v2/dependabot-alerts-options.png){% endif %} - ![Opções {% data variables.product.prodname_dependabot_alerts %}](/assets/images/help/notifications-v2/dependabot-alerts-options.png) {% note %} -**Observação:** você pode filtrar suas notificações no {% data variables.product.company_short %} para mostrar os {% data variables.product.prodname_dependabot_alerts %}. Para obter mais informações, confira "[Como gerenciar notificações na sua caixa de entrada](/github/managing-subscriptions-and-notifications-on-github/managing-notifications-from-your-inbox#dependabot-custom-filters)". +**Note:** You can filter your notifications on {% data variables.product.company_short %} to show {% data variables.product.prodname_dependabot_alerts %}. For more information, see "[Managing notifications from your inbox](/github/managing-subscriptions-and-notifications-on-github/managing-notifications-from-your-inbox#dependabot-custom-filters)." {% endnote %} -{% data reusables.repositories.security-alerts-x-github-severity %} Para obter mais informações, confira "[Como configurar notificações](/github/managing-subscriptions-and-notifications-on-github/configuring-notifications#filtering-email-notifications)". +{% data reusables.repositories.security-alerts-x-github-severity %} For more information, see "[Configuring notifications](/github/managing-subscriptions-and-notifications-on-github/configuring-notifications#filtering-email-notifications)." -## Como reduzir as notificações desnecessárias de {% data variables.product.prodname_dependabot_alerts %}. +## How to reduce the noise from notifications for {% data variables.product.prodname_dependabot_alerts %} -Se você estiver preocupado em receber muitas notificações para {% data variables.product.prodname_dependabot_alerts %}, recomendamos que você opte pelo resumo semanal de e-mail ou desabilite as notificações enquanto mantém {% data variables.product.prodname_dependabot_alerts %} habilitado. Você ainda pode navegar para ver os {% data variables.product.prodname_dependabot_alerts %} na guia Segurança do repositório. Para obter mais informações, confira "[Como ver os {% data variables.product.prodname_dependabot_alerts %}](/code-security/dependabot/dependabot-alerts/viewing-and-updating-dependabot-alerts)". +If you are concerned about receiving too many notifications for {% data variables.product.prodname_dependabot_alerts %}, we recommend you opt into the weekly email digest, or turn off notifications while keeping {% data variables.product.prodname_dependabot_alerts %} enabled. You can still navigate to see your {% data variables.product.prodname_dependabot_alerts %} in your repository's Security tab. For more information, see "[Viewing and updating {% data variables.product.prodname_dependabot_alerts %}](/code-security/dependabot/dependabot-alerts/viewing-and-updating-dependabot-alerts)." -## Leitura adicional +## Further reading -- "[Como configurar notificações](/github/managing-subscriptions-and-notifications-on-github/configuring-notifications)" -- "[Como gerenciar notificações na sua caixa de entrada](/github/managing-subscriptions-and-notifications-on-github/managing-notifications-from-your-inbox#supported-is-queries)" +- "[Configuring notifications](/github/managing-subscriptions-and-notifications-on-github/configuring-notifications)" +- "[Managing notifications from your inbox](/github/managing-subscriptions-and-notifications-on-github/managing-notifications-from-your-inbox#supported-is-queries)" diff --git a/translations/pt-BR/content/code-security/dependabot/dependabot-version-updates/configuration-options-for-the-dependabot.yml-file.md b/translations/pt-BR/content/code-security/dependabot/dependabot-version-updates/configuration-options-for-the-dependabot.yml-file.md index 9dcf891257..5bd218b446 100644 --- a/translations/pt-BR/content/code-security/dependabot/dependabot-version-updates/configuration-options-for-the-dependabot.yml-file.md +++ b/translations/pt-BR/content/code-security/dependabot/dependabot-version-updates/configuration-options-for-the-dependabot.yml-file.md @@ -33,6 +33,12 @@ You must store this file in the `.github` directory of your repository. When you Any options that also affect security updates are used the next time a security alert triggers a pull request for a security update. For more information, see "[Configuring {% data variables.product.prodname_dependabot_security_updates %}](/code-security/supply-chain-security/managing-vulnerabilities-in-your-projects-dependencies/configuring-dependabot-security-updates)." +{% note %} + +**Note:** You cannot configure {% data variables.product.prodname_dependabot_alerts %} using the *dependabot.yml* file. + +{% endnote %} + The *dependabot.yml* file has two mandatory top-level keys: `version`, and `updates`. You can, optionally, include a top-level `registries` key{% ifversion ghes = 3.5 %} and/or a `enable-beta-ecosystems` key{% endif %}. The file must start with `version: 2`. ## Configuration options for the *dependabot.yml* file diff --git a/translations/pt-BR/content/codespaces/developing-in-codespaces/creating-a-codespace.md b/translations/pt-BR/content/codespaces/developing-in-codespaces/creating-a-codespace.md index fe6e0c705e..559ed6dc38 100644 --- a/translations/pt-BR/content/codespaces/developing-in-codespaces/creating-a-codespace.md +++ b/translations/pt-BR/content/codespaces/developing-in-codespaces/creating-a-codespace.md @@ -73,6 +73,8 @@ Organization owners can specify who can create and use codespaces at the organiz ![New codespace button](/assets/images/help/codespaces/new-codespace-button.png) + If codespaces for this repository are billable, a message is displayed below the **Create codespace on BRANCH** button telling you who will pay for the codespace. + 1. Create your codespace, either using the default options, or after configuring advanced options: * **Use the default options** @@ -131,12 +133,12 @@ To create a new codespace, use the `gh codespace create` subcommand. gh codespace create ``` -You are prompted to choose a repository, a branch, a dev container configuration file (if more than one is available), and a machine type (if more than one is available). +You are prompted to choose a repository. If codespaces for this repository are billable, a message is displayed telling you who will pay for the codespace. You are then prompted to choose a branch, a dev container configuration file (if more than one is available), and a machine type (if more than one is available). Alternatively, you can use flags to specify some or all of the options: ```shell -gh codespace create -r owner/repo -b branch --devcontainer-path path -m machine-type +gh codespace create -r OWNER/REPO -b BRANCH --devcontainer-path PATH -m MACHINE-TYPE ``` In this example, replace `owner/repo` with the repository identifier. Replace `branch` with the name of the branch, or the full SHA hash of the commit, that you want to be initially checked out in the codespace. If you use the `-r` flag without the `b` flag, the codespace is created from the default branch. diff --git a/translations/pt-BR/content/codespaces/developing-in-codespaces/forwarding-ports-in-your-codespace.md b/translations/pt-BR/content/codespaces/developing-in-codespaces/forwarding-ports-in-your-codespace.md index eee506d1f6..c5cea6210c 100644 --- a/translations/pt-BR/content/codespaces/developing-in-codespaces/forwarding-ports-in-your-codespace.md +++ b/translations/pt-BR/content/codespaces/developing-in-codespaces/forwarding-ports-in-your-codespace.md @@ -78,7 +78,7 @@ By default, {% data variables.product.prodname_github_codespaces %} forwards por To forward a port use the `gh codespace ports forward` subcommand. Replace `codespace-port:local-port` with the remote and local ports that you want to connect. After entering the command choose from the list of codespaces that's displayed. ```shell -gh codespace ports forward codespace-port:local-port +gh codespace ports forward CODESPACE-PORT:LOCAL-PORT ``` For more information about this command, see [the {% data variables.product.prodname_cli %} manual](https://cli.github.com/manual/gh_codespace_ports_forward). @@ -132,7 +132,7 @@ To change the visibility of a forwarded port, use the `gh codespace ports visibi Replace `codespace-port` with the forwarded port number. Replace `setting` with `private`, `org`, or `public`. After entering the command choose from the list of codespaces that's displayed. ```shell -gh codespace ports visibility codespace-port:setting +gh codespace ports visibility CODESPACE-PORT:SETTINGS ``` You can set the visibility for multiple ports with one command. For example: diff --git a/translations/pt-BR/content/codespaces/developing-in-codespaces/renaming-a-codespace.md b/translations/pt-BR/content/codespaces/developing-in-codespaces/renaming-a-codespace.md index b296745717..e27f565ffc 100644 --- a/translations/pt-BR/content/codespaces/developing-in-codespaces/renaming-a-codespace.md +++ b/translations/pt-BR/content/codespaces/developing-in-codespaces/renaming-a-codespace.md @@ -50,7 +50,7 @@ Changing the display name of a codespace can be useful if you have multiple code To rename a codespace, use the `gh codespace edit` subcommand: ```shell -gh codespace edit -c permanent name of the codespace -d new display name +gh codespace edit -c PERMANENT-NAME-OF-CODESPACE -d NEW-DISPLAY-NAME ``` In this example, replace `permanent name of the codespace` with the permanent name of the codespace. Replace `new display name` with the desired display name. \ No newline at end of file diff --git a/translations/pt-BR/content/codespaces/developing-in-codespaces/using-github-codespaces-with-github-cli.md b/translations/pt-BR/content/codespaces/developing-in-codespaces/using-github-codespaces-with-github-cli.md index 0a582c1557..14283811fc 100644 --- a/translations/pt-BR/content/codespaces/developing-in-codespaces/using-github-codespaces-with-github-cli.md +++ b/translations/pt-BR/content/codespaces/developing-in-codespaces/using-github-codespaces-with-github-cli.md @@ -62,7 +62,7 @@ For a complete reference of `gh` commands for {% data variables.product.prodname {% note %} -**Note**: The `-c codespace-name` flag, used with many commands, is optional. If you omit it a list of codespaces is displayed for you to choose from. +**Note**: The `-c CODESPACE_NAME` flag, used with many commands, is optional. If you omit it a list of codespaces is displayed for you to choose from. {% endnote %} @@ -77,7 +77,7 @@ The list includes the unique name of each codespace, which you can use in other ### Create a new codespace ```shell -gh codespace create -r owner/repository [-b branch] +gh codespace create -r OWNER/REPO_NAME [-b BRANCH] ``` For more information, see "[Creating a codespace](/codespaces/developing-in-codespaces/creating-a-codespace)." @@ -85,7 +85,7 @@ For more information, see "[Creating a codespace](/codespaces/developing-in-code ### Stop a codespace ```shell -gh codespace stop -c codespace-name +gh codespace stop -c CODESPACE-NAME ``` For more information, see "[Deep dive into {% data variables.product.prodname_github_codespaces %}](/codespaces/getting-started/deep-dive#closing-or-stopping-your-codespace)." @@ -93,7 +93,7 @@ For more information, see "[Deep dive into {% data variables.product.prodname_gi ### Delete a codespace ```shell -gh codespace delete -c codespace-name +gh codespace delete -c CODESPACE-NAME ``` For more information, see "[Deleting a codespace](/codespaces/developing-in-codespaces/deleting-a-codespace)." @@ -103,7 +103,7 @@ For more information, see "[Deleting a codespace](/codespaces/developing-in-code To run commands on the remote codespace machine, from your terminal, you can SSH into the codespace. ```shell -gh codespace ssh -c codespace-name +gh codespace ssh -c CODESPACE-NAME ``` {% data variables.product.prodname_github_codespaces %} copies your GitHub SSH keys into the codespace on creation for a seamless authentication experience. You may be asked to enter the passphrase for your SSH key, after which you will get a command prompt from the remote codespace machine. @@ -113,7 +113,7 @@ If you don't have any SSH keys, follow the instructions in "[Generating a new SS ### Open a codespace in {% data variables.product.prodname_vscode %} ```shell -gh codespace code -c codespace-name +gh codespace code -c CODESPACE-NAME ``` For more information, see "[Using {% data variables.product.prodname_github_codespaces %} in {% data variables.product.prodname_vscode %}](/codespaces/developing-in-codespaces/using-codespaces-in-visual-studio-code)." @@ -121,13 +121,13 @@ For more information, see "[Using {% data variables.product.prodname_github_code ### Open a codespace in JupyterLab ```shell -gh codespace jupyter -c codespace-name +gh codespace jupyter -c CODESPACE-NAME ``` ### Copy a file to/from a codespace ```shell -gh codespace cp [-r] source(s) destination +gh codespace cp [-r] SOURCE(S) DESTINATION ``` Use the prefix `remote:` on a file or directory name to indicate that it's on the codespace. As with the UNIX `cp` command, the first argument specifies the source and the last specifies the destination. If the destination is a directory, you can specify multiple sources. Use the `-r` (recursive) flag if any of the sources is a directory. @@ -171,7 +171,7 @@ For more information about the `gh codespace cp` command, including additional f You can forward a port on a codespace to a local port. The port remains forwarded as long as the process is running. To stop forwarding the port, press Control+C. ```shell -gh codespace ports forward codespace-port-number:local-port-number -c codespace-name +gh codespace ports forward CODESPACE-PORT_NAME:LOCAL-PORT-NAME -c CODESPACE-NAME ``` To see details of forwarded ports enter `gh codespace ports` and then choose a codespace. @@ -179,13 +179,13 @@ To see details of forwarded ports enter `gh codespace ports` and then choose a c You can set the visibility of a forwarded port. {% data reusables.codespaces.port-visibility-settings %} ```shell -gh codespace ports visibility codespace-port:private|org|public -c codespace-name +gh codespace ports visibility CODESPACE-PORT:private|org|public -c CODESPACE-NAME ``` You can set the visibility for multiple ports with one command. For example: ```shell -gh codespace ports visibility 80:private 3000:public 3306:org -c codespace-name +gh codespace ports visibility 80:private 3000:public 3306:org -c CODESPACE-NAME ``` For more information, see "[Forwarding ports in your codespace](/codespaces/developing-in-codespaces/forwarding-ports-in-your-codespace)." @@ -195,7 +195,7 @@ For more information, see "[Forwarding ports in your codespace](/codespaces/deve You can see the creation log for a codespace. After entering this command you will be asked to enter the passphrase for your SSH key. ```shell -gh codespace logs -c codespace-name +gh codespace logs -c CODESPACE-NAME ``` For more information about the creation log, see "[{% data variables.product.prodname_github_codespaces %} logs](/codespaces/troubleshooting/github-codespaces-logs#creation-logs)." diff --git a/translations/pt-BR/content/codespaces/overview.md b/translations/pt-BR/content/codespaces/overview.md index 447eb37a35..4c07f6674a 100644 --- a/translations/pt-BR/content/codespaces/overview.md +++ b/translations/pt-BR/content/codespaces/overview.md @@ -41,3 +41,5 @@ You can also personalize aspects of your codespace environment by using a public For information on pricing, storage, and usage for {% data variables.product.prodname_github_codespaces %}, see "[About billing for {% data variables.product.prodname_github_codespaces %}](/billing/managing-billing-for-github-codespaces/about-billing-for-github-codespaces)." {% data reusables.codespaces.codespaces-spending-limit-requirement %} For information on how organizations owners and billing managers can manage the spending limit for {% data variables.product.prodname_github_codespaces %} for an organization, see "[Managing spending limits for {% data variables.product.prodname_github_codespaces %}](/billing/managing-billing-for-github-codespaces/managing-spending-limits-for-github-codespaces)." + +You can see who will pay for a codespace before you create it. For more information, see "[Creating a codespace](/codespaces/developing-in-codespaces/creating-a-codespace#creating-a-codespace)." \ No newline at end of file diff --git a/translations/pt-BR/content/communities/setting-up-your-project-for-healthy-contributions/setting-guidelines-for-repository-contributors.md b/translations/pt-BR/content/communities/setting-up-your-project-for-healthy-contributions/setting-guidelines-for-repository-contributors.md index 1a9ef5e0f5..17139235ce 100644 --- a/translations/pt-BR/content/communities/setting-up-your-project-for-healthy-contributions/setting-guidelines-for-repository-contributors.md +++ b/translations/pt-BR/content/communities/setting-up-your-project-for-healthy-contributions/setting-guidelines-for-repository-contributors.md @@ -1,6 +1,6 @@ --- -title: Configurar diretrizes para os contribuidores do repositório -intro: Você pode criar diretrizes para informar como as pessoas devem contribuir com o projeto. +title: Setting guidelines for repository contributors +intro: You can create guidelines to communicate how people should contribute to your project. versions: fpt: '*' ghes: '*' @@ -13,59 +13,56 @@ redirect_from: topics: - Community shortTitle: Contributor guidelines -ms.openlocfilehash: b418c5a3d10f8b8f7572f33b17a9ebfbb3de27d3 -ms.sourcegitcommit: 47bd0e48c7dba1dde49baff60bc1eddc91ab10c5 -ms.translationtype: HT -ms.contentlocale: pt-BR -ms.lasthandoff: 09/05/2022 -ms.locfileid: '147578785' --- -## Sobre diretrizes de contribuição -Para ajudar os colaboradores do projeto a fazer um bom trabalho, você pode adicionar um arquivo com diretrizes de contribuição à raiz do repositório de projeto, a `docs` ou à pasta `.github`. Quando alguém abrir uma pull request ou criar um problema, verá um link para esse arquivo. O link usado para as diretrizes de contribuição também é exibido na página do repositório `contribute`. Para ver um exemplo de uma página `contribute`, confira [github/docs/contribute](https://github.com/github/docs/contribute). +## About contributing guidelines +To help your project contributors do good work, you can add a file with contribution guidelines to your project repository's root, `docs`, or `.github` folder. When someone opens a pull request or creates an issue, they will see a link to that file. The link to the contributing guidelines also appears on your repository's `contribute` page. For an example of a `contribute` page, see [github/docs/contribute](https://github.com/github/docs/contribute). -![diretrizes de contribuição](/assets/images/help/pull_requests/contributing-guidelines.png) +![contributing-guidelines](/assets/images/help/pull_requests/contributing-guidelines.png) -Para o proprietário do repositório, as diretrizes de contribuição são uma forma de informar como as pessoas devem contribuir. +For the repository owner, contribution guidelines are a way to communicate how people should contribute. -Para contribuidores, as diretrizes ajudam a verificar se eles estão enviando pull requests corretas e abrindo problemas úteis. +For contributors, the guidelines help them verify that they're submitting well-formed pull requests and opening useful issues. -Para proprietários e contribuidores, as diretrizes de contribuição economizam tempo e evitam aborrecimentos causados por pull requests ou problemas incorretos que precisam ser rejeitados e enviados novamente. +For both owners and contributors, contribution guidelines save time and hassle caused by improperly created pull requests or issues that have to be rejected and re-submitted. {% ifversion fpt or ghes or ghec %} -Você pode criar diretrizes de contribuição padrão para sua conta de organização{% ifversion fpt or ghes or ghec %} ou pessoal {% endif %}. Para obter mais informações, confira "[Como criar um arquivo padrão de integridade da comunidade](//communities/setting-up-your-project-for-healthy-contributions/creating-a-default-community-health-file)". +You can create default contribution guidelines for your organization{% ifversion fpt or ghes or ghec %} or personal account{% endif %}. For more information, see "[Creating a default community health file](//communities/setting-up-your-project-for-healthy-contributions/creating-a-default-community-health-file)." {% endif %} {% tip %} -**Dica:** os mantenedores do repositório podem definir diretrizes específicas para problemas criando um modelo de solicitação de pull ou de problema para o repositório. Para obter mais informações, confira "[Sobre os modelos de solicitações de pull e de problemas](/articles/about-issue-and-pull-request-templates)". +**Tip:** Repository maintainers can set specific guidelines for issues by creating an issue or pull request template for the repository. For more information, see "[About issue and pull request templates](/articles/about-issue-and-pull-request-templates)." {% endtip %} -## Como adicionar um arquivo *CONTRIBUTING* +## Adding a *CONTRIBUTING* file -{% data reusables.repositories.navigate-to-repo %} {% data reusables.files.add-file %} -3. Decida se deseja armazenar suas diretrizes de contribuição na raiz do repositório, em `docs` ou no diretório `.github`. Em seguida, no campo de nome do arquivo, digite o nome e a extensão do arquivo. Os nomes de arquivos com diretrizes de contribuição não são sensíveis a maiúsculas de minúsculas. Os arquivos são renderizados no formato de texto rich se a extensão do arquivo estiver em um formato compatível. Para obter mais informações, confira "[Como trabalhar com arquivos que não são de código](/repositories/working-with-files/using-files/working-with-non-code-files#rendering-differences-in-prose-documents)". - ![Nome do novo arquivo](/assets/images/help/repository/new-file-name.png) - - Para tornar as diretrizes de contribuição visíveis no diretório raiz do repositório, digite *CONTRIBUTING*. - - Para tornar as diretrizes de contribuição visíveis no diretório `docs` do repositório, digite *docs/* para criar o diretório e, depois, *CONTRIBUTING*. - - Se um repositório contiver mais de um arquivo *CONTRIBUTING*, o arquivo mostrado nos links será escolhido dos locais na seguinte ordem: o diretório `.github`, o diretório raiz do repositório e, por fim, o diretório `docs`. -4. Adicione as diretrizes de contribuição ao novo arquivo. Elas podem conter: - - Etapas para criar bons problemas ou pull requests. - - Links para documentações externas, listas de distribuição ou um código de conduta. - - Expectativas de comportamento e da comunidade. -{% data reusables.files.write_commit_message %} {% data reusables.files.choose_commit_branch %} {% data reusables.files.propose_new_file %} +{% data reusables.repositories.navigate-to-repo %} +{% data reusables.files.add-file %} +3. Decide whether to store your contributing guidelines in your repository's root, `docs`, or `.github` directory. Then, in the filename field, type the name and extension for the file. Contributing guidelines filenames are not case sensitive. Files are rendered in rich text format if the file extension is in a supported format. For more information, see "[Working with non-code files](/repositories/working-with-files/using-files/working-with-non-code-files#rendering-differences-in-prose-documents)." + ![New file name](/assets/images/help/repository/new-file-name.png) + - To make your contributing guidelines visible in the repository's root directory, type *CONTRIBUTING*. + - To make your contributing guidelines visible in the repository's `docs` directory, type *docs/* to create the new directory, then *CONTRIBUTING*. + - If a repository contains more than one *CONTRIBUTING* file, then the file shown in links is chosen from locations in the following order: the `.github` directory, then the repository's root directory, and finally the `docs` directory. +4. In the new file, add contribution guidelines. These could include: + - Steps for creating good issues or pull requests. + - Links to external documentation, mailing lists, or a code of conduct. + - Community and behavioral expectations. +{% data reusables.files.write_commit_message %} +{% data reusables.files.choose_commit_branch %} +{% data reusables.files.propose_new_file %} -## Exemplos de diretrizes de contribuição +## Examples of contribution guidelines -Caso tenha dúvidas, estes são alguns bons exemplos de diretrizes de contribuição: +If you're stumped, here are some good examples of contribution guidelines: -- As [diretrizes de contribuição](https://github.com/atom/atom/blob/master/CONTRIBUTING.md) do editor do Atom. -- As [diretrizes de contribuição](https://github.com/rails/rails/blob/main/CONTRIBUTING.md) do Ruby on Rails. -- As [diretrizes de contribuição](https://github.com/opengovernment/opengovernment/blob/master/CONTRIBUTING.md) do Open Government. +- The {% data variables.product.prodname_docs %} [contribution guidelines](https://github.com/github/docs/blob/main/CONTRIBUTING.md). +- The Ruby on Rails [contribution guidelines](https://github.com/rails/rails/blob/main/CONTRIBUTING.md). +- The Open Government [contribution guidelines](https://github.com/opengovernment/opengovernment/blob/master/CONTRIBUTING.md). -## Leitura adicional -- A seção "[Como iniciar um projeto de código aberto](https://opensource.guide/starting-a-project/)" dos Guias de Código Aberto{% ifversion fpt or ghec %} +## Further reading +- The Open Source Guides' section "[Starting an Open Source Project](https://opensource.guide/starting-a-project/)"{% ifversion fpt or ghec %} - [{% data variables.product.prodname_learning %}]({% data variables.product.prodname_learning_link %}){% endif %}{% ifversion fpt or ghes or ghec %} -- "[Como adicionar uma licença a um repositório](/articles/adding-a-license-to-a-repository)"{% endif %} +- "[Adding a license to a repository](/articles/adding-a-license-to-a-repository)"{% endif %} diff --git a/translations/pt-BR/content/desktop/contributing-and-collaborating-using-github-desktop/making-changes-in-a-branch/index.md b/translations/pt-BR/content/desktop/contributing-and-collaborating-using-github-desktop/making-changes-in-a-branch/index.md index 288d4f9693..42d4793a90 100644 --- a/translations/pt-BR/content/desktop/contributing-and-collaborating-using-github-desktop/making-changes-in-a-branch/index.md +++ b/translations/pt-BR/content/desktop/contributing-and-collaborating-using-github-desktop/making-changes-in-a-branch/index.md @@ -1,6 +1,6 @@ --- -title: Fazer alterações em um branch -intro: 'Faça alterações no projeto usando seu editor de texto favorito, como o [Atom](https://atom.io/) e use o {% data variables.product.prodname_desktop %} para exibir commits relevantes.' +title: Making changes in a branch +intro: 'Use your favorite text editor, such as [{% data variables.product.prodname_vscode %}](https://code.visualstudio.com/), to make changes to your project, then use {% data variables.product.prodname_desktop %} to visualize useful commits.' redirect_from: - /desktop/contributing-to-projects/making-changes-in-a-branch versions: @@ -12,11 +12,5 @@ children: - /viewing-the-branch-history - /pushing-changes-to-github shortTitle: Make changes in a branch -ms.openlocfilehash: 3ff1729cdf050f3604c383d965dda117b5a18e42 -ms.sourcegitcommit: fb047f9450b41b24afc43d9512a5db2a2b750a2a -ms.translationtype: HT -ms.contentlocale: pt-BR -ms.lasthandoff: 09/11/2022 -ms.locfileid: '145084072' --- diff --git a/translations/pt-BR/content/developers/apps/building-github-apps/authenticating-with-github-apps.md b/translations/pt-BR/content/developers/apps/building-github-apps/authenticating-with-github-apps.md index e25b98006d..a8274a92fa 100644 --- a/translations/pt-BR/content/developers/apps/building-github-apps/authenticating-with-github-apps.md +++ b/translations/pt-BR/content/developers/apps/building-github-apps/authenticating-with-github-apps.md @@ -48,7 +48,7 @@ To verify a private key: ![Private key fingerprint](/assets/images/github-apps/github_apps_private_key_fingerprint.png) 2. Generate the fingerprint of your private key (PEM) locally by using the following command: ```shell - $ openssl rsa -in PATH_TO_PEM_FILE -pubout -outform DER | openssl sha256 -binary | openssl base64 + $ openssl rsa -in PATH_TO_PEM_FILE -pubout -outform DER | openssl sha256 -binary | openssl base64 ``` 3. Compare the results of the locally generated fingerprint to the fingerprint you see in {% data variables.product.product_name %}. diff --git a/translations/pt-BR/content/developers/overview/managing-deploy-keys.md b/translations/pt-BR/content/developers/overview/managing-deploy-keys.md index 4487ef07c9..45e840a023 100644 --- a/translations/pt-BR/content/developers/overview/managing-deploy-keys.md +++ b/translations/pt-BR/content/developers/overview/managing-deploy-keys.md @@ -1,6 +1,6 @@ --- -title: Gerenciar chaves de implantação -intro: Aprenda maneiras diferentes de gerenciar chaves SSH em seus servidores ao automatizar scripts de implantação e da melhor maneira para você. +title: Managing deploy keys +intro: Learn different ways to manage SSH keys on your servers when you automate deployment scripts and which way is best for you. redirect_from: - /guides/managing-deploy-keys - /v3/guides/managing-deploy-keys @@ -14,91 +14,90 @@ versions: ghec: '*' topics: - API -ms.openlocfilehash: 425535eb582c84801d79f00df751bb48d4a5b05e -ms.sourcegitcommit: 47bd0e48c7dba1dde49baff60bc1eddc91ab10c5 -ms.translationtype: HT -ms.contentlocale: pt-BR -ms.lasthandoff: 09/05/2022 -ms.locfileid: '146058465' --- -Você pode gerenciar chaves SSH em seus servidores ao automatizar scripts de implantação usando o encaminhamento do agente SSH, HTTPS com tokens do OAuth, chaves de implantação ou usuários de máquina. -## Encaminhamento de agente SSH -Em muitos casos, especialmente no início de um projeto, o encaminhamento de agentes SSH é o método mais rápido e simples de utilizar. O encaminhamento de agentes usa as mesmas chaves SSH que o seu computador de desenvolvimento local. +You can manage SSH keys on your servers when automating deployment scripts using SSH agent forwarding, HTTPS with OAuth tokens, deploy keys, or machine users. -#### Vantagens +## SSH agent forwarding -* Você não tem que gerar ou monitorar nenhuma chave nova. -* Não há gerenciamento de chaves; os usuários têm as mesmas permissões no servidor e localmente. -* Não há chaves armazenadas no servidor. Portanto, caso o servidor esteja comprometido, você não precisa buscar e remover as chaves comprometidas. +In many cases, especially in the beginning of a project, SSH agent forwarding is the quickest and simplest method to use. Agent forwarding uses the same SSH keys that your local development computer uses. -#### Desvantagens +#### Pros -* Os usuários **precisam** usar o SSH para fazer a implantação: processos de implantação automatizados não podem ser usados. -* Pode ser problemático executar o encaminhamento de agente SSH para usuários do Windows. +* You do not have to generate or keep track of any new keys. +* There is no key management; users have the same permissions on the server that they do locally. +* No keys are stored on the server, so in case the server is compromised, you don't need to hunt down and remove the compromised keys. -#### Configuração +#### Cons -1. Ativar o encaminhamento do agente localmente. Confira [nosso guia sobre o encaminhamento do agente SSH][ssh-agent-forwarding] para obter mais informações. -2. Defina seus scripts de implantação para usar o encaminhamento de agentes. Por exemplo, em um script do Bash, a habilitação do encaminhamento do agente será algo assim: `ssh -A serverA 'bash -s' < deploy.sh` +* Users **must** SSH in to deploy; automated deploy processes can't be used. +* SSH agent forwarding can be troublesome to run for Windows users. -## Clonagem de HTTPS com tokens do OAuth +#### Setup -Se você não quiser usar chaves SSH, você poderá usar HTTPS com tokens OAuth. +1. Turn on agent forwarding locally. See [our guide on SSH agent forwarding][ssh-agent-forwarding] for more information. +2. Set your deploy scripts to use agent forwarding. For example, on a bash script, enabling agent forwarding would look something like this: +`ssh -A serverA 'bash -s' < deploy.sh` -#### Vantagens +## HTTPS cloning with OAuth tokens -* Qualquer pessoa com acesso ao servidor pode implantar o repositório. -* Os usuários não precisam alterar suas configurações SSH locais. -* Não são necessários vários tokens (um para cada usuário); um token por servidor é suficiente. -* Um token pode ser revogado a qualquer momento, transformando-o, basicamente, em uma senha de uso único. +If you don't want to use SSH keys, you can use HTTPS with OAuth tokens. + +#### Pros + +* Anyone with access to the server can deploy the repository. +* Users don't have to change their local SSH settings. +* Multiple tokens (one for each user) are not needed; one token per server is enough. +* A token can be revoked at any time, turning it essentially into a one-use password. {% ifversion ghes %} -* A geração de novos tokens pode ser inserida com facilidade em um script por meio [da API do OAuth](/rest/reference/oauth-authorizations#create-a-new-authorization). +* Generating new tokens can be easily scripted using [the OAuth API](/rest/reference/oauth-authorizations#create-a-new-authorization). {% endif %} -#### Desvantagens +#### Cons -* Você deve certificar-se de configurar seu token com os escopos de acesso corretos. -* Os Tokens são, basicamente, senhas e devem ser protegidos da mesma maneira. +* You must make sure that you configure your token with the correct access scopes. +* Tokens are essentially passwords, and must be protected the same way. -#### Configuração +#### Setup -Confira [nosso guia sobre como criar um token de acesso pessoal](/authentication/keeping-your-account-and-data-secure/creating-a-personal-access-token). +See [our guide on creating a personal access token](/authentication/keeping-your-account-and-data-secure/creating-a-personal-access-token). -## Chaves de implantação +## Deploy keys {% data reusables.repositories.deploy-keys %} {% data reusables.repositories.deploy-keys-write-access %} -#### Vantagens +#### Pros -* Qualquer pessoa com acesso ao repositório e servidor é capaz de implantar o projeto. -* Os usuários não precisam alterar suas configurações SSH locais. -* As chaves de implantação são somente leitura por padrão, mas você pode dar a elas acesso de gravação ao adicioná-las a um repositório. +* Anyone with access to the repository and server has the ability to deploy the project. +* Users don't have to change their local SSH settings. +* Deploy keys are read-only by default, but you can give them write access when adding them to a repository. -#### Desvantagens +#### Cons -* As chaves de implementação só concedem acesso a um único repositório. Projetos mais complexos podem ter muitos repositórios para extrair para o mesmo servidor. -* De modo geral, as chaves de implantação não são protegidas por uma frase secreta, o que a chave facilmente acessível se o servidor estiver comprometido. +* Deploy keys only grant access to a single repository. More complex projects may have many repositories to pull to the same server. +* Deploy keys are usually not protected by a passphrase, making the key easily accessible if the server is compromised. -#### Configuração +#### Setup -1. [Execute o procedimento `ssh-keygen`][generating-ssh-keys] no servidor e lembre-se do local em que salvou o par de chaves RSA público e privado gerado. -2. No canto superior direito de qualquer página do {% data variables.product.product_name %}, clique na foto do seu perfil e clique em **Seu perfil**. ![Navegação para o perfil](/assets/images/profile-page.png) -3. Na página do seu perfil, clique em **Repositórios** e clique no nome do repositório. ![Link dos repositórios](/assets/images/repos.png) -4. No seu repositório, clique em **Configurações**. ![Configurações do repositório](/assets/images/repo-settings.png) -5. Na barra lateral, clique em **Implantar Chaves** e em **Adicionar chave de implantação**. ![Link para adicionar chaves de implantação](/assets/images/add-deploy-key.png) -6. Forneça um título e cole na sua chave pública. ![Página da chave implantação](/assets/images/deploy-key.png) -7. Selecione **Permitir acesso de gravação** se desejar que essa chave tenha acesso de gravação no repositório. Uma chave de implantação com acesso de gravação permite que uma implantação faça push no repositório. -8. Clique em **Adicionar chave**. +1. [Run the `ssh-keygen` procedure][generating-ssh-keys] on your server, and remember where you save the generated public and private rsa key pair. +{% data reusables.profile.navigating-to-profile %} -#### Usar vários repositórios em um servidor + ![Navigation to profile](/assets/images/profile-page.png) +1. On your profile page, click **Repositories**, then click the name of your repository. ![Repositories link](/assets/images/repos.png) +2. From your repository, click **Settings**. ![Repository settings](/assets/images/repo-settings.png) +3. In the sidebar, click **Deploy Keys**, then click **Add deploy key**. ![Add Deploy Keys link](/assets/images/add-deploy-key.png) +4. Provide a title, paste in your public key. ![Deploy Key page](/assets/images/deploy-key.png) +5. Select **Allow write access** if you want this key to have write access to the repository. A deploy key with write access lets a deployment push to the repository. +6. Click **Add key**. -Se você usar vários repositórios em um servidor, você deverá gerar um par de chaves dedicado para cada um. Você não pode reutilizar uma chave de implantação para vários repositórios. +#### Using multiple repositories on one server -No arquivo de configuração do SSH do servidor (geralmente, `~/.ssh/config`), adicione uma entrada de alias para cada repositório. Por exemplo: +If you use multiple repositories on one server, you will need to generate a dedicated key pair for each one. You can't reuse a deploy key for multiple repositories. + +In the server's SSH configuration file (usually `~/.ssh/config`), add an alias entry for each repository. For example: ```bash Host {% ifversion fpt or ghec %}github.com{% else %}my-GHE-hostname.com{% endif %}-repo-0 @@ -110,79 +109,79 @@ Host {% ifversion fpt or ghec %}github.com{% else %}my-GHE-hostname.com{% endif IdentityFile=/home/user/.ssh/repo-1_deploy_key ``` -* `Host {% ifversion fpt or ghec %}github.com{% else %}my-GHE-hostname.com{% endif %}-repo-0` – O alias do repositório. -* `Hostname {% ifversion fpt or ghec %}github.com{% else %}my-GHE-hostname.com{% endif %}` – Configura o nome do host a ser usado com o alias. -* `IdentityFile=/home/user/.ssh/repo-0_deploy_key` – Atribui uma chave privada ao alias. +* `Host {% ifversion fpt or ghec %}github.com{% else %}my-GHE-hostname.com{% endif %}-repo-0` - The repository's alias. +* `Hostname {% ifversion fpt or ghec %}github.com{% else %}my-GHE-hostname.com{% endif %}` - Configures the hostname to use with the alias. +* `IdentityFile=/home/user/.ssh/repo-0_deploy_key` - Assigns a private key to the alias. -Em seguida, você pode usar o apelido do host para interagir com o repositório usando SSH, que usará a chave de deploy exclusiva atribuída a esse pseudônimo. Por exemplo: +You can then use the hostname's alias to interact with the repository using SSH, which will use the unique deploy key assigned to that alias. For example: ```bash $ git clone git@{% ifversion fpt or ghec %}github.com{% else %}my-GHE-hostname.com{% endif %}-repo-1:OWNER/repo-1.git ``` -## Tokens do servidor para servidor +## Server-to-server tokens -Se o servidor precisar acessar repositórios em uma ou mais organizações, use um Aplicativo do GitHub para definir o acesso necessário e gere tokens _de servidor para servidor_ com _escopo delimitado_ por meio desse Aplicativo do GitHub. Os tokens do servidor para servidor podem ter escopo de repositório único ou múltiplo e podem ter permissões refinadas. Por exemplo, você pode gerar um token com acesso somente leitura para o conteúdo de um repositório. +If your server needs to access repositories across one or more organizations, you can use a GitHub App to define the access you need, and then generate _tightly-scoped_, _server-to-server_ tokens from that GitHub App. The server-to-server tokens can be scoped to single or multiple repositories, and can have fine-grained permissions. For example, you can generate a token with read-only access to a repository's contents. -Uma vez que os aplicativos GitHub são um ator de primeira classe em {% data variables.product.product_name %}, os tokens do servidor para servidor são dissociados de qualquer usuário do GitHub, o que os torna comparáveis aos "tokens de serviço". Além disso, tokens de servidor para servidor têm limites de taxa dedicados que escalam com o tamanho das organizações sobre as quais eles atuam. Para obter mais informações, confira [Limites de taxa dos {% data variables.product.prodname_github_apps %}](/developers/apps/rate-limits-for-github-apps). +Since GitHub Apps are a first class actor on {% data variables.product.product_name %}, the server-to-server tokens are decoupled from any GitHub user, which makes them comparable to "service tokens". Additionally, server-to-server tokens have dedicated rate limits that scale with the size of the organizations that they act upon. For more information, see [Rate limits for {% data variables.product.prodname_github_apps %}](/developers/apps/rate-limits-for-github-apps). -#### Vantagens +#### Pros -- Tokens com escopo limitado com conjuntos de permissões bem definidos e tempos de expiração (1 hora, ou menos se for revogado manualmente usando a API). -- Limites de taxa dedicados que crescem com a sua organização. -- Separados das identidades de usuários do GitHub para que não consumam nenhuma estação licenciada. -- Nunca concedeu uma senha. Portanto, não pode efetuar o login diretamente. +- Tightly-scoped tokens with well-defined permission sets and expiration times (1 hour, or less if revoked manually using the API). +- Dedicated rate limits that grow with your organization. +- Decoupled from GitHub user identities, so they do not consume any licensed seats. +- Never granted a password, so cannot be directly signed in to. -#### Desvantagens +#### Cons -- É necessária uma configuração adicional para criar o aplicativo GitHub. -- Os tokens de servidor para servidor expiram após 1 hora. Portanto, precisam ser gerados novamente, geralmente sob demanda e usando código. +- Additional setup is needed to create the GitHub App. +- Server-to-server tokens expire after 1 hour, and so need to be re-generated, typically on-demand using code. -#### Configuração +#### Setup -1. Determine se seu aplicativo GitHub deve ser público ou privado. Se o seu aplicativo GitHub agir apenas nos repositórios da organização, é provável que você queira que ele seja privado. -1. Determine as permissões que o aplicativo GitHub exige, como acesso somente leitura ao conteúdo do repositório. -1. Crie seu aplicativo GitHub por meio da página de configurações da sua organização. Para obter mais informações, confira [Como criar um Aplicativo do GitHub](/developers/apps/creating-a-github-app). -1. Anote a `id` do Aplicativo do GitHub. -1. Gere e faça o download da chave privada do seu aplicativo GitHub e armazene-a com segurança. Para obter mais informações, confira [Como gerar uma chave privada](/developers/apps/authenticating-with-github-apps#generating-a-private-key). -1. Instale o aplicativo GitHub nos repositórios nos quais ele precisa agir. Opcionalmente você poderá instalar o aplicativo GitHub em todos os repositórios da sua organização. -1. Identifique a `installation_id` que representa a conexão entre o Aplicativo do GitHub e os repositórios da organização que ele pode acessar. Cada par de Aplicativo do GitHub e de organização têm, no máximo, uma `installation_id`. Você pode identificar essa `installation_id` por meio de [Obter uma instalação da organização para o aplicativo autenticado](/rest/reference/apps#get-an-organization-installation-for-the-authenticated-app). Isso exige a autenticação como um Aplicativo do GitHub com um JWT. Para obter mais informações, confira [Autenticação como um Aplicativo do GitHub](/developers/apps/authenticating-with-github-apps#authenticating-as-a-github-app). -1. Gere um token de servidor para servidor usando o ponto de extremidade da API REST correspondente: [Criar um token de acesso de instalação para um aplicativo](/rest/reference/apps#create-an-installation-access-token-for-an-app). Isso exige a autenticação como um Aplicativo do GitHub com um JWT. Para obter mais informações, confira [Autenticação como um Aplicativo do GitHub](/developers/apps/authenticating-with-github-apps#authenticating-as-a-github-app) e [Autenticação como uma instalação](/developers/apps/authenticating-with-github-apps#authenticating-as-an-installation). -1. Use este token de servidor para servidor para interagir com seus repositórios, seja por meio das APIs REST ou GraphQL, ou por meio de um cliente Git. +1. Determine if your GitHub App should be public or private. If your GitHub App will only act on repositories within your organization, you likely want it private. +1. Determine the permissions your GitHub App requires, such as read-only access to repository contents. +1. Create your GitHub App via your organization's settings page. For more information, see [Creating a GitHub App](/developers/apps/creating-a-github-app). +1. Note your GitHub App `id`. +1. Generate and download your GitHub App's private key, and store this safely. For more information, see [Generating a private key](/developers/apps/authenticating-with-github-apps#generating-a-private-key). +1. Install your GitHub App on the repositories it needs to act upon, optionally you may install the GitHub App on all repositories in your organization. +1. Identify the `installation_id` that represents the connection between your GitHub App and the organization repositories it can access. Each GitHub App and organization pair have at most a single `installation_id`. You can identify this `installation_id` via [Get an organization installation for the authenticated app](/rest/reference/apps#get-an-organization-installation-for-the-authenticated-app). This requires authenticating as a GitHub App using a JWT, for more information see [Authenticating as a GitHub App](/developers/apps/authenticating-with-github-apps#authenticating-as-a-github-app). +1. Generate a server-to-server token using the corresponding REST API endpoint, [Create an installation access token for an app](/rest/reference/apps#create-an-installation-access-token-for-an-app). This requires authenticating as a GitHub App using a JWT, for more information see [Authenticating as a GitHub App](/developers/apps/authenticating-with-github-apps#authenticating-as-a-github-app), and [Authenticating as an installation](/developers/apps/authenticating-with-github-apps#authenticating-as-an-installation). +1. Use this server-to-server token to interact with your repositories, either via the REST or GraphQL APIs, or via a Git client. -## Usuários máquina +## Machine users -Se o servidor tiver de acessar vários repositórios, você poderá criar uma nova conta em {% ifversion ghae %}{% data variables.product.product_name %}{% else %}{% data variables.product.product_location %}{% endif %} e anexar uma chave SSH que será usada exclusivamente para automatização. Como essa conta do {% ifversion ghae %}{% data variables.product.product_name %}{% else %}{% data variables.product.product_location %}{% endif %} não será usada por uma pessoa, ela é chamada de _usuário de computador_. Você pode adicionar o usuário de computador como um [colaborador][collaborator] em um repositório pessoal (permitindo acesso de leitura e gravação), como um [colaborador externo][outside-collaborator] em um repositório da organização (permitindo acesso de leitura, gravação ou administrador) ou como uma [equipe][team] com acesso aos repositórios necessários para automação (concedendo as permissões da equipe). +If your server needs to access multiple repositories, you can create a new account on {% ifversion ghae %}{% data variables.product.product_name %}{% else %}{% data variables.product.product_location %}{% endif %} and attach an SSH key that will be used exclusively for automation. Since this account on {% ifversion ghae %}{% data variables.product.product_name %}{% else %}{% data variables.product.product_location %}{% endif %} won't be used by a human, it's called a _machine user_. You can add the machine user as a [collaborator][collaborator] on a personal repository (granting read and write access), as an [outside collaborator][outside-collaborator] on an organization repository (granting read, write, or admin access), or to a [team][team] with access to the repositories it needs to automate (granting the permissions of the team). {% ifversion fpt or ghec %} {% tip %} -**Dica:** nossos [termos de serviço][tos] indicam: +**Tip:** Our [terms of service][tos] state: -> *Contas registradas por "bots" ou outros métodos automatizados não são permitidas.* +> *Accounts registered by "bots" or other automated methods are not permitted.* -Isto significa que você não pode automatizar a criação de contas. Mas se você desejar criar um único usuário máquina para automatizar tarefas como scripts de implantação em seu projeto ou organização, isso é muito legal. +This means that you cannot automate the creation of accounts. But if you want to create a single machine user for automating tasks such as deploy scripts in your project or organization, that is totally cool. {% endtip %} {% endif %} -#### Vantagens +#### Pros -* Qualquer pessoa com acesso ao repositório e servidor é capaz de implantar o projeto. -* Nenhum usuário (humano) precisa alterar suas configurações de SSH locais. -* Não são necessárias várias chaves; o adequado é uma por servidor. +* Anyone with access to the repository and server has the ability to deploy the project. +* No (human) users need to change their local SSH settings. +* Multiple keys are not needed; one per server is adequate. -#### Desvantagens +#### Cons -* Apenas organizações podem restringir os usuários máquina para acesso somente leitura. Os repositórios pessoais sempre concedem aos colaboradores acesso de leitura/gravação. -* Chaves dos usuário máquina, como chaves de implantação, geralmente não são protegidas por senha. +* Only organizations can restrict machine users to read-only access. Personal repositories always grant collaborators read/write access. +* Machine user keys, like deploy keys, are usually not protected by a passphrase. -#### Configuração +#### Setup -1. [Execute o procedimento `ssh-keygen`][generating-ssh-keys] no servidor e anexe a chave pública à conta do usuário de computador. -2. Dê acesso à conta de usuário máquina aos repositórios que deseja automatizar. Faça isso adicionando a conta como um [colaborador][collaborator], como um [colaborador externo][outside-collaborator] ou como uma [equipe][team] a uma organização. +1. [Run the `ssh-keygen` procedure][generating-ssh-keys] on your server and attach the public key to the machine user account. +2. Give the machine user account access to the repositories you want to automate. You can do this by adding the account as a [collaborator][collaborator], as an [outside collaborator][outside-collaborator], or to a [team][team] in an organization. [ssh-agent-forwarding]: /guides/using-ssh-agent-forwarding/ [generating-ssh-keys]: /articles/generating-a-new-ssh-key-and-adding-it-to-the-ssh-agent/#generating-a-new-ssh-key @@ -192,5 +191,5 @@ Isto significa que você não pode automatizar a criação de contas. Mas se voc [outside-collaborator]: /articles/adding-outside-collaborators-to-repositories-in-your-organization [team]: /articles/adding-organization-members-to-a-team -## Leitura adicional -- [Como configurar notificações](/account-and-profile/managing-subscriptions-and-notifications-on-github/setting-up-notifications/configuring-notifications#organization-alerts-notification-options) +## Further reading +- [Configuring notifications](/account-and-profile/managing-subscriptions-and-notifications-on-github/setting-up-notifications/configuring-notifications#organization-alerts-notification-options) diff --git a/translations/pt-BR/content/developers/webhooks-and-events/webhooks/webhook-events-and-payloads.md b/translations/pt-BR/content/developers/webhooks-and-events/webhooks/webhook-events-and-payloads.md index 5125f03909..cf32263771 100644 --- a/translations/pt-BR/content/developers/webhooks-and-events/webhooks/webhook-events-and-payloads.md +++ b/translations/pt-BR/content/developers/webhooks-and-events/webhooks/webhook-events-and-payloads.md @@ -106,7 +106,7 @@ Activity related to a branch protection rule. For more information, see "[About - Repository webhooks - Organization webhooks -- {% data variables.product.prodname_github_apps %} with at least `read-only` access on repositories administration +- {% data variables.product.prodname_github_apps %} with **Administration** repository permission ### Webhook payload object @@ -161,7 +161,7 @@ Key | Type | Description - Repository webhooks only receive payloads for the `created` and `completed` event types in a repository - Organization webhooks only receive payloads for the `created` and `completed` event types in repositories -- {% data variables.product.prodname_github_apps %} with the `checks:read` permission receive payloads for the `created` and `completed` events that occur in the repository where the app is installed. The app must have the `checks:write` permission to receive the `rerequested` and `requested_action` event types. The `rerequested` and `requested_action` event type payloads are only sent to the {% data variables.product.prodname_github_app %} being requested. {% data variables.product.prodname_github_apps %} with the `checks:write` are automatically subscribed to this webhook event. +- {% data variables.product.prodname_github_apps %} with **Checks** read permission receive payloads for the `created` and `completed` events that occur in the repository where the app is installed. The app must have **Checks** write permission to receive the `rerequested` and `requested_action` event types. The `rerequested` and `requested_action` event type payloads are only sent to the {% data variables.product.prodname_github_app %} being requested. {% data variables.product.prodname_github_apps %} with **Checks** write permission are automatically subscribed to this webhook event. ### Webhook payload object @@ -185,7 +185,7 @@ Key | Type | Description - Repository webhooks only receive payloads for the `completed` event types in a repository - Organization webhooks only receive payloads for the `completed` event types in repositories -- {% data variables.product.prodname_github_apps %} with the `checks:read` permission receive payloads for the `created` and `completed` events that occur in the repository where the app is installed. The app must have the `checks:write` permission to receive the `requested` and `rerequested` event types. The `requested` and `rerequested` event type payloads are only sent to the {% data variables.product.prodname_github_app %} being requested. {% data variables.product.prodname_github_apps %} with the `checks:write` are automatically subscribed to this webhook event. +- {% data variables.product.prodname_github_apps %} with **Checks** read permission receive payloads for the `created` and `completed` events that occur in the repository where the app is installed. The app must have **Checks** write permission to receive the `requested` and `rerequested` event types. The `requested` and `rerequested` event type payloads are only sent to the {% data variables.product.prodname_github_app %} being requested. {% data variables.product.prodname_github_apps %} with **Checks** write permission are automatically subscribed to this webhook event. ### Webhook payload object @@ -207,7 +207,7 @@ Key | Type | Description - Repository webhooks - Organization webhooks -- {% data variables.product.prodname_github_apps %} with the `security_events :read` permission +- {% data variables.product.prodname_github_apps %} with **Code scanning alerts** permission ### Webhook payload object @@ -229,7 +229,7 @@ Key | Type | Description - Repository webhooks - Organization webhooks -- {% data variables.product.prodname_github_apps %} with the `contents` permission +- {% data variables.product.prodname_github_apps %} with **Contents** permission ### Webhook payload object @@ -273,7 +273,7 @@ Webhook events are triggered based on the specificity of the domain you register - Repository webhooks - Organization webhooks -- {% data variables.product.prodname_github_apps %} with the `contents` permission +- {% data variables.product.prodname_github_apps %} with **Contents** permission ### Webhook payload object @@ -302,7 +302,7 @@ Webhook events are triggered based on the specificity of the domain you register - Repository webhooks - Organization webhooks -- {% data variables.product.prodname_github_apps %} with the `contents` permission +- {% data variables.product.prodname_github_apps %} with **Contents** permission ### Webhook payload object @@ -345,7 +345,7 @@ Webhook events are triggered based on the specificity of the domain you register - Repository webhooks - Organization webhooks -- {% data variables.product.prodname_github_apps %} with the `deployments` permission +- {% data variables.product.prodname_github_apps %} with **Deployments** permission ### Webhook payload object @@ -370,7 +370,7 @@ Key | Type | Description - Repository webhooks - Organization webhooks -- {% data variables.product.prodname_github_apps %} with the `deployments` permission +- {% data variables.product.prodname_github_apps %} with **Deployments** permission ### Webhook payload object @@ -401,7 +401,7 @@ Activity related to a discussion. For more information, see the "[Using the Grap - Repository webhooks - Organization webhooks -- {% data variables.product.prodname_github_apps %} with the `discussions` permission +- {% data variables.product.prodname_github_apps %} with **Discussions** permission ### Webhook payload object @@ -427,7 +427,7 @@ Activity related to a comment in a discussion. For more information, see "[Using - Repository webhooks - Organization webhooks -- {% data variables.product.prodname_github_apps %} with the `discussions` permission +- {% data variables.product.prodname_github_apps %} with **Discussions** permission ### Webhook payload object @@ -475,7 +475,7 @@ Key | Type | Description - Repository webhooks - Organization webhooks -- {% data variables.product.prodname_github_apps %} with the `contents` permission +- {% data variables.product.prodname_github_apps %} with **Contents** permission ### Webhook payload object @@ -518,7 +518,7 @@ Key | Type | Description - Repository webhooks - Organization webhooks -- {% data variables.product.prodname_github_apps %} with the `contents` permission +- {% data variables.product.prodname_github_apps %} with **Contents** permission ### Webhook payload object @@ -576,7 +576,7 @@ Key | Type | Description - Repository webhooks - Organization webhooks -- {% data variables.product.prodname_github_apps %} with the `issues` permission +- {% data variables.product.prodname_github_apps %} with **Issues** permission ### Webhook payload object @@ -599,7 +599,7 @@ Key | Type | Description - Repository webhooks - Organization webhooks -- {% data variables.product.prodname_github_apps %} with the `issues` permission +- {% data variables.product.prodname_github_apps %} with **Issues** permission ### Webhook payload object @@ -622,7 +622,7 @@ Key | Type | Description - Repository webhooks - Organization webhooks -- {% data variables.product.prodname_github_apps %} with the `metadata` permission +- {% data variables.product.prodname_github_apps %} with **Metadata** permission ### Webhook payload object @@ -673,7 +673,7 @@ For a detailed description of this payload and the payload for each type of `act - Repository webhooks - Organization webhooks -- {% data variables.product.prodname_github_apps %} with the `members` permission +- {% data variables.product.prodname_github_apps %} with **Members** permission ### Webhook payload object @@ -695,7 +695,7 @@ For a detailed description of this payload and the payload for each type of `act ### Availability - Organization webhooks -- {% data variables.product.prodname_github_apps %} with the `members` permission +- {% data variables.product.prodname_github_apps %} with **Members** permission ### Webhook payload object @@ -721,7 +721,7 @@ Activity related to merge groups in a merge queue. The type of activity is speci - Repository webhooks - Organization webhooks -- {% data variables.product.prodname_github_apps %} with the `merge_queues` permission +- {% data variables.product.prodname_github_apps %} with **Merge queues** permission ### Webhook payload object @@ -775,7 +775,7 @@ Key | Type | Description - Repository webhooks - Organization webhooks -- {% data variables.product.prodname_github_apps %} with the `pull_requests` permission +- {% data variables.product.prodname_github_apps %} with **Pull requests** permission ### Webhook payload object @@ -798,7 +798,7 @@ Key | Type | Description {% ifversion ghes or ghae %} - GitHub Enterprise webhooks only receive `created` and `deleted` events. For more information, "[Global webhooks](/rest/reference/enterprise-admin#global-webhooks/).{% endif %} - Organization webhooks only receive the `deleted`, `added`, `removed`, `renamed`, and `invited` events -- {% data variables.product.prodname_github_apps %} with the `members` permission +- {% data variables.product.prodname_github_apps %} with **Members** permission ### Webhook payload object @@ -824,7 +824,7 @@ Key | Type | Description ### Availability - Organization webhooks -- {% data variables.product.prodname_github_apps %} with the `organization_administration` permission +- {% data variables.product.prodname_github_apps %} with **Administration** organization permission ### Webhook payload object @@ -870,7 +870,7 @@ Activity related to {% data variables.product.prodname_registry %}. {% data reus - Repository webhooks - Organization webhooks -- {% data variables.product.prodname_github_apps %} with the `pages` permission +- {% data variables.product.prodname_github_apps %} with **Pages** permission ### Webhook payload object @@ -921,7 +921,7 @@ Key | Type | Description - Repository webhooks - Organization webhooks -- {% data variables.product.prodname_github_apps %} with the `repository_projects` or `organization_projects` permission +- {% data variables.product.prodname_github_apps %} with **Projects** repository or organization permission {% ifversion projects-v2 %} {% note %} @@ -953,7 +953,7 @@ Key | Type | Description - Repository webhooks - Organization webhooks -- {% data variables.product.prodname_github_apps %} with the `repository_projects` or `organization_projects` permission +- {% data variables.product.prodname_github_apps %} with **Projects** repository or organization permission {% ifversion projects-v2 %} {% note %} @@ -983,7 +983,7 @@ Key | Type | Description - Repository webhooks - Organization webhooks -- {% data variables.product.prodname_github_apps %} with the `repository_projects` or `organization_projects` permission +- {% data variables.product.prodname_github_apps %} with **Projects** repository or organization permission {% ifversion projects-v2 %} {% note %} @@ -1020,7 +1020,7 @@ Activity related to items in a {% data variables.projects.project_v2 %}. {% data ### Availability - Organization webhooks -- {% data variables.product.prodname_github_apps %} with the `organization_projects` permission +- {% data variables.product.prodname_github_apps %} with **Projects** organization permission ### Webhook payload object @@ -1046,7 +1046,7 @@ Key | Type | Description - Repository webhooks - Organization webhooks -- {% data variables.product.prodname_github_apps %} with the `metadata` permission +- {% data variables.product.prodname_github_apps %} with **Metadata** permission ### Webhook payload object @@ -1073,7 +1073,7 @@ Key | Type | Description - Repository webhooks - Organization webhooks -- {% data variables.product.prodname_github_apps %} with the `pull_requests` permission +- {% data variables.product.prodname_github_apps %} with **Pull requests** permission ### Webhook payload object @@ -1098,7 +1098,7 @@ Deliveries for `review_requested` and `review_request_removed` events will have - Repository webhooks - Organization webhooks -- {% data variables.product.prodname_github_apps %} with the `pull_requests` permission +- {% data variables.product.prodname_github_apps %} with **Pull requests** permission ### Webhook payload object @@ -1120,7 +1120,7 @@ Deliveries for `review_requested` and `review_request_removed` events will have - Repository webhooks - Organization webhooks -- {% data variables.product.prodname_github_apps %} with the `pull_requests` permission +- {% data variables.product.prodname_github_apps %} with **Pull requests** permission ### Webhook payload object @@ -1143,7 +1143,7 @@ Deliveries for `review_requested` and `review_request_removed` events will have - Repository webhooks - Organization webhooks -- {% data variables.product.prodname_github_apps %} with the `pull_requests` permission +- {% data variables.product.prodname_github_apps %} with **Pull requests** permission ### Webhook payload object @@ -1171,7 +1171,7 @@ Deliveries for `review_requested` and `review_request_removed` events will have - Repository webhooks - Organization webhooks -- {% data variables.product.prodname_github_apps %} with the `contents` permission +- {% data variables.product.prodname_github_apps %} with **Contents** permission ### Webhook payload object @@ -1215,7 +1215,7 @@ Key | Type | Description - Repository webhooks - Organization webhooks -- {% data variables.product.prodname_github_apps %} with the `contents` permission +- {% data variables.product.prodname_github_apps %} with **Contents** permission ### Webhook payload object @@ -1236,7 +1236,7 @@ This event occurs when a {% data variables.product.prodname_github_app %} sends ### Availability -- {% data variables.product.prodname_github_apps %} must have the `contents` permission to receive this webhook. +- {% data variables.product.prodname_github_apps %} with **Contents** permission ### Webhook payload example @@ -1250,7 +1250,7 @@ This event occurs when a {% data variables.product.prodname_github_app %} sends - Repository webhooks receive all event types except `deleted` - Organization webhooks -- {% data variables.product.prodname_github_apps %} with the `metadata` permission receive all event types except `deleted` +- {% data variables.product.prodname_github_apps %} with **Metadata** permission receive all event types except `deleted` ### Webhook payload object @@ -1319,7 +1319,7 @@ Key | Type | Description - Repository webhooks - Organization webhooks -- {% data variables.product.prodname_github_apps %} with the `secret_scanning_alerts:read` permission +- {% data variables.product.prodname_github_apps %} with **Secret scanning alerts** permission ### Webhook payload object @@ -1343,7 +1343,7 @@ Key | Type | Description - Repository webhooks - Organization webhooks -- {% data variables.product.prodname_github_apps %} with the `secret_scanning_alerts:read` permission +- {% data variables.product.prodname_github_apps %} with **Secret scanning alerts** permission ### Webhook payload object @@ -1366,7 +1366,7 @@ The security advisory dataset also powers the GitHub {% data variables.product.p ### Availability -- {% data variables.product.prodname_github_apps %} with the `security_events` permission +- {% data variables.product.prodname_github_apps %} ### Webhook payload object @@ -1391,7 +1391,7 @@ Activity related to enabling or disabling code security and analysis features fo - Repository webhooks - Organization webhooks -- {% data variables.product.prodname_github_apps %} with at least `read-only` access on repositories administration +- {% data variables.product.prodname_github_apps %} with **Administration** repository permission ### Webhook payload object @@ -1464,7 +1464,7 @@ You can only create a sponsorship webhook on {% data variables.product.prodname_ - Repository webhooks - Organization webhooks -- {% data variables.product.prodname_github_apps %} with the `statuses` permission +- {% data variables.product.prodname_github_apps %} with **Commit statuses** permission ### Webhook payload object @@ -1492,7 +1492,7 @@ Key | Type | Description ### Availability - Organization webhooks -- {% data variables.product.prodname_github_apps %} with the `members` permission +- {% data variables.product.prodname_github_apps %} with **Members** permission ### Webhook payload object @@ -1523,7 +1523,7 @@ Key | Type | Description - Repository webhooks - Organization webhooks -- {% data variables.product.prodname_github_apps %} with the `members` permission +- {% data variables.product.prodname_github_apps %} with **Members** permission ### Webhook payload object @@ -1564,7 +1564,7 @@ The event’s actor is the [user](/rest/reference/users) who starred a repositor - Repository webhooks - Organization webhooks -- {% data variables.product.prodname_github_apps %} with the `metadata` permission +- {% data variables.product.prodname_github_apps %} with **Metadata** permission ### Webhook payload object @@ -1585,7 +1585,7 @@ This event occurs when someone triggers a workflow run on GitHub or sends a `POS ### Availability -- {% data variables.product.prodname_github_apps %} must have the `contents` permission to receive this webhook. +- {% data variables.product.prodname_github_apps %} with **Contents** permission ### Webhook payload object @@ -1634,7 +1634,7 @@ When a {% data variables.product.prodname_actions %} workflow run is requested o ### Availability -- {% data variables.product.prodname_github_apps %} with the `actions` or `contents` permissions. +- {% data variables.product.prodname_github_apps %} with **Actions** or **Contents** permissions ### Webhook payload object diff --git a/translations/pt-BR/content/get-started/customizing-your-github-workflow/exploring-integrations/github-extensions-and-integrations.md b/translations/pt-BR/content/get-started/customizing-your-github-workflow/exploring-integrations/github-extensions-and-integrations.md index b5e4f742a2..463ad45f8b 100644 --- a/translations/pt-BR/content/get-started/customizing-your-github-workflow/exploring-integrations/github-extensions-and-integrations.md +++ b/translations/pt-BR/content/get-started/customizing-your-github-workflow/exploring-integrations/github-extensions-and-integrations.md @@ -1,6 +1,6 @@ --- -title: Extensões e integrações do GitHub -intro: 'Use extensões {% data variables.product.product_name %} para trabalhar com facilidade nos repositórios {% data variables.product.product_name %} dentro de aplicativos de terceiros.' +title: GitHub extensions and integrations +intro: 'Use {% data variables.product.product_name %} extensions to work seamlessly in {% data variables.product.product_name %} repositories within third-party applications.' redirect_from: - /articles/about-github-extensions-for-third-party-applications - /articles/github-extensions-and-integrations @@ -10,53 +10,43 @@ versions: fpt: '*' ghec: '*' shortTitle: Extensions & integrations -ms.openlocfilehash: f33ce9b9ae55e523bedff1309f3f2f15202dcf82 -ms.sourcegitcommit: fcf3546b7cc208155fb8acdf68b81be28afc3d2d -ms.translationtype: HT -ms.contentlocale: pt-BR -ms.lasthandoff: 09/11/2022 -ms.locfileid: '147884210' --- -## Ferramentas de edição +## Editor tools -Você pode conectar-se aos repositórios do {% data variables.product.product_name %} por meio de ferramentas de editores de terceiros, como o Atom, Unity e o {% data variables.product.prodname_vs %}. +You can connect to {% data variables.product.product_name %} repositories within third-party editor tools such as Unity and {% data variables.product.prodname_vs %}. -### {% data variables.product.product_name %} para Atom +### {% data variables.product.product_name %} for Unity -É possível fazer commits, push, pull, resolver conflitos de merge e mais no editor Atom, usando a extensão {% data variables.product.product_name %} para Atom. Para obter mais informações, confira o [site oficial do {% data variables.product.product_name %} para Atom](https://github.atom.io/). +With the {% data variables.product.product_name %} for Unity editor extension, you can develop on Unity, the open source game development platform, and see your work on {% data variables.product.product_name %}. For more information, see the official Unity editor extension [site](https://unity.github.com/) or the [documentation](https://github.com/github-for-unity/Unity/tree/master/docs). -### {% data variables.product.product_name %} para Unity +### {% data variables.product.product_name %} for {% data variables.product.prodname_vs %} -Você pode desenvolver em Unity, a plataforma de desenvolvimento de jogos de código aberto, e ver seu trabalho em {% data variables.product.product_name %}, usando a extensão de editor {% data variables.product.product_name %} para Unity. Para obter mais informações, confira o [site](https://unity.github.com/) ou a [documentação](https://github.com/github-for-unity/Unity/tree/master/docs) oficial da extensão do editor do Unity. +With the {% data variables.product.product_name %} for {% data variables.product.prodname_vs %} extension, you can work in {% data variables.product.product_name %} repositories without leaving {% data variables.product.prodname_vs %}. For more information, see the official {% data variables.product.prodname_vs %} extension [site](https://visualstudio.github.com/) or [documentation](https://github.com/github/VisualStudio/tree/master/docs). -### {% data variables.product.product_name %} para {% data variables.product.prodname_vs %} +### {% data variables.product.prodname_dotcom %} for {% data variables.product.prodname_vscode %} -Com o {% data variables.product.product_name %} para a extensão do {% data variables.product.prodname_vs %}, você pode trabalhar em repositórios do {% data variables.product.product_name %} sem sair do {% data variables.product.prodname_vs %}. Para obter mais informações, veja o [site](https://visualstudio.github.com/) ou a [documentação](https://github.com/github/VisualStudio/tree/master/docs) oficial do {% data variables.product.prodname_vs %}. +With the {% data variables.product.prodname_dotcom %} for {% data variables.product.prodname_vscode %} extension, you can review and manage {% data variables.product.product_name %} pull requests in {% data variables.product.prodname_vscode_shortname %}. For more information, see the official {% data variables.product.prodname_vscode_shortname %} extension [site](https://vscode.github.com/) or [documentation](https://github.com/Microsoft/vscode-pull-request-github). -### {% data variables.product.prodname_dotcom %} para {% data variables.product.prodname_vscode %} +## Project management tools -Com a extensão do {% data variables.product.prodname_dotcom %} para {% data variables.product.prodname_vscode %}, você pode revisar e gerenciar solicitações de pull do {% data variables.product.product_name %} no {% data variables.product.prodname_vscode_shortname %}. Para obter mais informações, veja o [site](https://vscode.github.com/) ou a [documentação](https://github.com/Microsoft/vscode-pull-request-github) oficial do {% data variables.product.prodname_vscode_shortname %}. +You can integrate your personal or organization account on {% data variables.product.product_location %} with third-party project management tools, such as Jira. -## Ferramentas de gerenciamento de projetos +### Jira Cloud and {% data variables.product.product_name %}.com integration -Você pode integrar a sua conta pessoal ou de organização no {% data variables.product.product_location %} com ferramentas de gerenciamento de projetos de terceiros, como o Jira. +You can integrate Jira Cloud with your personal or organization account to scan commits and pull requests, creating relevant metadata and hyperlinks in any mentioned Jira issues. For more information, visit the [Jira integration app](https://github.com/marketplace/jira-software-github) in the marketplace. -### Integração Jira Cloud e {% data variables.product.product_name %}.com +## Team communication tools -É possível integrar o Jira Cloud à sua conta pessoal ou de sua organização para analisar commits e pull requests e criar metadados e hyperlinks relevantes em qualquer problema mencionado no Jira. Para obter mais informações, acesse o [aplicativo de integração do Jira](https://github.com/marketplace/jira-software-github) no marketplace. +You can integrate your personal or organization account on {% data variables.product.product_location %} with third-party team communication tools, such as Slack or Microsoft Teams. -## Ferramentas de comunicação de equipe +### Slack and {% data variables.product.product_name %} integration -Você pode integrar sua conta pessoal ou de organização no {% data variables.product.product_location %} com ferramentas de comunicação de equipes de terceiros, como o Slack ou o Microsoft Teams. +The Slack + {% data variables.product.prodname_dotcom %} app lets you subscribe to your repositories or organizations and get realtime updates about issues, pull requests, commits, discussions, releases, deployment reviews and deployment statuses. You can also perform activities like opening and closing issues, and you can see detailed references to issues and pull requests without leaving Slack. The app will also ping you personally in Slack if you are mentioned as part of any {% data variables.product.prodname_dotcom %} notifications that you receive in your channels or personal chats. -### Integração com Slack e {% data variables.product.product_name %} +The Slack + {% data variables.product.prodname_dotcom %} app is also compatible with [Slack Enterprise Grid](https://slack.com/intl/en-in/help/articles/360000281563-Manage-apps-on-Enterprise-Grid). For more information, visit the [Slack + {% data variables.product.prodname_dotcom %} app](https://github.com/marketplace/slack-github) in the marketplace. -O aplicativo Slack + de {% data variables.product.prodname_dotcom %} permite que você assine seus repositórios ou organizações e obtenha atualizações em tempo real sobre problemas, pull requests, commits, discussões, versões, revisões de implantação e status da implantação. Você também pode executar atividades como abrir e fechar problemas, além de poder ver referências detalhadas para problemas e pull requests sem sair do Slack. O aplicativo também irá marcar você pessoalmente no Slack se você for mencionado como parte de quaisquer notificações de {% data variables.product.prodname_dotcom %} que você receber nos seus canais ou chats pessoais. +### Microsoft Teams and {% data variables.product.product_name %} integration -O aplicativo Slack + {% data variables.product.prodname_dotcom %} também é compatível com o [Slack Enterprise Grid](https://slack.com/intl/en-in/help/articles/360000281563-Manage-apps-on-Enterprise-Grid). Para obter mais informações, acesse o [aplicativo Slack + {% data variables.product.prodname_dotcom %}](https://github.com/marketplace/slack-github) no marketplace. +The {% data variables.product.prodname_dotcom %} for Teams app lets you subscribe to your repositories or organizations and get realtime updates about issues, pull requests, commits, discussions, releases, deployment reviews and deployment statuses. You can also perform activities like opening and closing issues, commenting on your issues and pull requests, and you can see detailed references to issues and pull requests without leaving Microsoft Teams. The app will also ping you personally in Teams if you are mentioned as part of any {% data variables.product.prodname_dotcom %} notifications that you receive in your channels or personal chats. -### Integração com o Microsoft Teams e {% data variables.product.product_name %} - -O {% data variables.product.prodname_dotcom %} para o aplicativo Teams permite que você assine seus repositórios ou organizações e obtenha atualizações em tempo real sobre problemas, pull requests, commits, discussões, versões, revisões de implantação e status da implantação. Você também pode realizar atividades como abrir e fechar problemas, comentar nos seus problemase pull requests, e você pode ver referências detalhadas a problemas e pull requests sem sair do Microsoft Teams. O aplicativo também irá marcar você pessoalmente no Teams se você for mencionado como parte de quaisquer notificações de {% data variables.product.prodname_dotcom %} que você receber nos seus canais ou chats pessoais. - -Para obter mais informações, acesse o [aplicativo {% data variables.product.prodname_dotcom %} para Teams](https://appsource.microsoft.com/en-us/product/office/WA200002077) no Microsoft AppSource. +For more information, visit the [{% data variables.product.prodname_dotcom %} for Teams app](https://appsource.microsoft.com/en-us/product/office/WA200002077) in Microsoft AppSource. diff --git a/translations/pt-BR/content/get-started/getting-started-with-git/associating-text-editors-with-git.md b/translations/pt-BR/content/get-started/getting-started-with-git/associating-text-editors-with-git.md index 92066fa479..37d6192f7a 100644 --- a/translations/pt-BR/content/get-started/getting-started-with-git/associating-text-editors-with-git.md +++ b/translations/pt-BR/content/get-started/getting-started-with-git/associating-text-editors-with-git.md @@ -1,6 +1,6 @@ --- -title: Associar editores de texto ao Git -intro: Use um editor de texto para abrir e editar seus arquivos com o Git. +title: Associating text editors with Git +intro: Use a text editor to open and edit your files with Git. redirect_from: - /textmate - /articles/using-textmate-as-your-default-editor @@ -15,48 +15,33 @@ versions: ghae: '*' ghec: '*' shortTitle: Associate text editors -ms.openlocfilehash: 0d02c32ff04d4a5a2a1003464175e866630603f4 -ms.sourcegitcommit: 47bd0e48c7dba1dde49baff60bc1eddc91ab10c5 -ms.translationtype: HT -ms.contentlocale: pt-BR -ms.lasthandoff: 09/05/2022 -ms.locfileid: '145148749' --- {% mac %} -## Usar o Atom como seu editor +## Using {% data variables.product.prodname_vscode %} as your editor -1. Instale o [Atom](https://atom.io/). Para obter mais informações, confira "[Como instalar o Atom](https://flight-manual.atom.io/getting-started/sections/installing-atom/)" na documentação do Atom. +1. Install [{% data variables.product.prodname_vscode %}](https://code.visualstudio.com/) ({% data variables.product.prodname_vscode_shortname %}). For more information, see "[Setting up {% data variables.product.prodname_vscode_shortname %}](https://code.visualstudio.com/Docs/setup/setup-overview)" in the {% data variables.product.prodname_vscode_shortname %} documentation. {% data reusables.command_line.open_the_multi_os_terminal %} -3. Digite este comando: - ```shell - $ git config --global core.editor "atom --wait" - ``` - -## Usando o {% data variables.product.prodname_vscode %} como editor - -1. Instale o [{% data variables.product.prodname_vscode %}](https://code.visualstudio.com/) ({% data variables.product.prodname_vscode_shortname %}). Para obter mais informações, confira "[Configurar o {% data variables.product.prodname_vscode_shortname %}](https://code.visualstudio.com/Docs/setup/setup-overview)" na documentação do {% data variables.product.prodname_vscode_shortname %}. -{% data reusables.command_line.open_the_multi_os_terminal %} -3. Digite este comando: +3. Type this command: ```shell $ git config --global core.editor "code --wait" ``` -## Usar o Sublime Text como seu editor +## Using Sublime Text as your editor -1. Instale o [Sublime Text](https://www.sublimetext.com/). Para obter mais informações, confira "[Instalação](https://docs.sublimetext.io/guide/getting-started/installation.html)" na documentação do Sublime Text. +1. Install [Sublime Text](https://www.sublimetext.com/). For more information, see "[Installation](https://docs.sublimetext.io/guide/getting-started/installation.html)" in the Sublime Text documentation. {% data reusables.command_line.open_the_multi_os_terminal %} -3. Digite este comando: +3. Type this command: ```shell $ git config --global core.editor "subl -n -w" ``` -## Usar o TextMate como seu editor +## Using TextMate as your editor -1. Instale o [TextMate](https://macromates.com/). -2. Instale o utilitário de shell `mate` do TextMate. Para obter mais informações, confira "[`mate` e `rmate`](https://macromates.com/blog/2011/mate-and-rmate/)" na documentação do TextMate. +1. Install [TextMate](https://macromates.com/). +2. Install TextMate's `mate` shell utility. For more information, see "[`mate` and `rmate`](https://macromates.com/blog/2011/mate-and-rmate/)" in the TextMate documentation. {% data reusables.command_line.open_the_multi_os_terminal %} -4. Digite este comando: +4. Type this command: ```shell $ git config --global core.editor "mate -w" ``` @@ -64,38 +49,29 @@ ms.locfileid: '145148749' {% windows %} -## Usar o Atom como seu editor +## Using {% data variables.product.prodname_vscode %} as your editor -1. Instale o [Atom](https://atom.io/). Para obter mais informações, confira "[Como instalar o Atom](https://flight-manual.atom.io/getting-started/sections/installing-atom/)" na documentação do Atom. +1. Install [{% data variables.product.prodname_vscode %}](https://code.visualstudio.com/) ({% data variables.product.prodname_vscode_shortname %}). For more information, see "[Setting up {% data variables.product.prodname_vscode_shortname %}](https://code.visualstudio.com/Docs/setup/setup-overview)" in the {% data variables.product.prodname_vscode_shortname %} documentation. {% data reusables.command_line.open_the_multi_os_terminal %} -3. Digite este comando: - ```shell - $ git config --global core.editor "atom --wait" - ``` - -## Usando o {% data variables.product.prodname_vscode %} como editor - -1. Instale o [{% data variables.product.prodname_vscode %}](https://code.visualstudio.com/) ({% data variables.product.prodname_vscode_shortname %}). Para obter mais informações, confira "[Configurar o {% data variables.product.prodname_vscode_shortname %}](https://code.visualstudio.com/Docs/setup/setup-overview)" na documentação do {% data variables.product.prodname_vscode_shortname %}. -{% data reusables.command_line.open_the_multi_os_terminal %} -3. Digite este comando: +3. Type this command: ```shell $ git config --global core.editor "code --wait" ``` -## Usar o Sublime Text como seu editor +## Using Sublime Text as your editor -1. Instale o [Sublime Text](https://www.sublimetext.com/). Para obter mais informações, confira "[Instalação](https://docs.sublimetext.io/guide/getting-started/installation.html)" na documentação do Sublime Text. +1. Install [Sublime Text](https://www.sublimetext.com/). For more information, see "[Installation](https://docs.sublimetext.io/guide/getting-started/installation.html)" in the Sublime Text documentation. {% data reusables.command_line.open_the_multi_os_terminal %} -3. Digite este comando: +3. Type this command: ```shell $ git config --global core.editor "'C:/Program Files (x86)/sublime text 3/subl.exe' -w" ``` -## Usar o Notepad++ como seu editor +## Using Notepad++ as your editor -1. Instale o Notepad++ por meio de https://notepad-plus-plus.org/. Para obter mais informações, confira "[Introdução](https://npp-user-manual.org/docs/getting-started/)" na documentação do Notepad++. +1. Install Notepad++ from https://notepad-plus-plus.org/. For more information, see "[Getting started](https://npp-user-manual.org/docs/getting-started/)" in the Notepad++ documentation. {% data reusables.command_line.open_the_multi_os_terminal %} -3. Digite este comando: +3. Type this command: ```shell $ git config --global core.editor "'C:/Program Files (x86)/Notepad++/notepad++.exe' -multiInst -notabbar -nosession -noPlugin" ``` @@ -103,29 +79,20 @@ ms.locfileid: '145148749' {% linux %} -## Usar o Atom como seu editor +## Using {% data variables.product.prodname_vscode %} as your editor -1. Instale o [Atom](https://atom.io/). Para obter mais informações, confira "[Como instalar o Atom](https://flight-manual.atom.io/getting-started/sections/installing-atom/)" na documentação do Atom. +1. Install [{% data variables.product.prodname_vscode %}](https://code.visualstudio.com/) ({% data variables.product.prodname_vscode_shortname %}). For more information, see "[Setting up {% data variables.product.prodname_vscode_shortname %}](https://code.visualstudio.com/Docs/setup/setup-overview)" in the {% data variables.product.prodname_vscode_shortname %} documentation. {% data reusables.command_line.open_the_multi_os_terminal %} -3. Digite este comando: - ```shell - $ git config --global core.editor "atom --wait" - ``` - -## Usando o {% data variables.product.prodname_vscode %} como editor - -1. Instale o [{% data variables.product.prodname_vscode %}](https://code.visualstudio.com/) ({% data variables.product.prodname_vscode_shortname %}). Para obter mais informações, confira "[Configurar o {% data variables.product.prodname_vscode_shortname %}](https://code.visualstudio.com/Docs/setup/setup-overview)" na documentação do {% data variables.product.prodname_vscode_shortname %}. -{% data reusables.command_line.open_the_multi_os_terminal %} -3. Digite este comando: +3. Type this command: ```shell $ git config --global core.editor "code --wait" ``` -## Usar o Sublime Text como seu editor +## Using Sublime Text as your editor -1. Instale o [Sublime Text](https://www.sublimetext.com/). Para obter mais informações, confira "[Instalação](https://docs.sublimetext.io/guide/getting-started/installation.html)" na documentação do Sublime Text. +1. Install [Sublime Text](https://www.sublimetext.com/). For more information, see "[Installation](https://docs.sublimetext.io/guide/getting-started/installation.html)" in the Sublime Text documentation. {% data reusables.command_line.open_the_multi_os_terminal %} -3. Digite este comando: +3. Type this command: ```shell $ git config --global core.editor "subl -n -w" ``` diff --git a/translations/pt-BR/content/get-started/index.md b/translations/pt-BR/content/get-started/index.md index 6e69907909..ede63a1da2 100644 --- a/translations/pt-BR/content/get-started/index.md +++ b/translations/pt-BR/content/get-started/index.md @@ -32,6 +32,7 @@ featuredLinks: - /get-started/onboarding/getting-started-with-github-enterprise-cloud - /get-started/onboarding/getting-started-with-github-enterprise-server - /get-started/onboarding/getting-started-with-github-ae + - /get-started/writing-on-github/getting-started-with-writing-and-formatting-on-github/quickstart-for-writing-on-github popular: - /github/getting-started-with-github/signing-up-for-a-new-github-account - /get-started/quickstart/hello-world diff --git a/translations/pt-BR/content/get-started/quickstart/communicating-on-github.md b/translations/pt-BR/content/get-started/quickstart/communicating-on-github.md index ae87eddf3e..746d67c59d 100644 --- a/translations/pt-BR/content/get-started/quickstart/communicating-on-github.md +++ b/translations/pt-BR/content/get-started/quickstart/communicating-on-github.md @@ -1,6 +1,6 @@ --- -title: Comunicar-se no GitHub -intro: 'Você pode discutir projetos e alterações específicas, bem como ideias mais amplas ou objetivos de equipe, usando diferentes tipos de discussões em {% data variables.product.product_name %}.' +title: Communicating on GitHub +intro: 'You can discuss specific projects and changes, as well as broader ideas or team goals, using different types of discussions on {% data variables.product.product_name %}.' miniTocMaxHeadingLevel: 3 redirect_from: - /github/collaborating-with-issues-and-pull-requests/getting-started/quickstart-for-communicating-on-github @@ -18,137 +18,137 @@ topics: - Issues - Discussions - Fundamentals -ms.openlocfilehash: 6c7461a01cd0bc44bff93b1eb4e8a013d26bc147 -ms.sourcegitcommit: 47bd0e48c7dba1dde49baff60bc1eddc91ab10c5 -ms.translationtype: HT -ms.contentlocale: pt-BR -ms.lasthandoff: 09/05/2022 -ms.locfileid: '147408888' --- -## Introdução +## Introduction -{% data variables.product.product_name %} fornece ferramentas de comunicação colaborativa embutidas que permitem que você interaja de perto com sua comunidade. Este guia de início rápido irá mostrar como escolher a ferramenta certa para suas necessidades. +{% data variables.product.product_name %} provides built-in collaborative communication tools allowing you to interact closely with your community. This quickstart guide will show you how to pick the right tool for your needs. -{% ifversion discussions %} Você pode criar problemas, solicitações de pull, {% data variables.product.prodname_discussions %} e discussões em equipe e participar deles, dependendo do tipo de conversa que deseja ter. -{% else %} Você pode criar e participar de problemas, pull requests e discussões de equipe, dependendo do tipo de conversa que você gostaria de ter. +{% ifversion discussions %} +You can create and participate in issues, pull requests, {% data variables.product.prodname_discussions %}, and team discussions, depending on the type of conversation you'd like to have. +{% else %} +You can create and participate in issues, pull requests and team discussions, depending on the type of conversation you'd like to have. {% endif %} ### {% data variables.product.prodname_github_issues %} -- são úteis para discutir detalhes específicos de um projeto como relatórios de erros, melhorias e feedbacks planejados. -- são específicos para um repositório e geralmente têm um proprietário claro. -- muitas vezes são referidos como o sistema de rastreamento de erros de {% data variables.product.prodname_dotcom %}. +- are useful for discussing specific details of a project such as bug reports, planned improvements and feedback. +- are specific to a repository, and usually have a clear owner. +- are often referred to as {% data variables.product.prodname_dotcom %}'s bug-tracking system. -### Solicitações de pull -- permite que você proponha alterações específicas. -- permite que comente diretamente as alterações propostas por outros. -- são específicos para um repositório. +### Pull requests +- allow you to propose specific changes. +- allow you to comment directly on proposed changes suggested by others. +- are specific to a repository. {% ifversion fpt or ghec %} ### {% data variables.product.prodname_discussions %} -- são como um fórum e são mais utilizados para ideias de forma aberta e discussões em que a colaboração é importante. -- poderá incluir muitos repositórios. -- oferecem uma experiência colaborativa fora da base de código, permitindo o debate de ideias e a criação de uma base de conhecimento comunitária. -- frequentemente não têm um proprietário claro. -- muitas vezes não resultam em uma tarefa exequível. +- are like a forum, and are best used for open-form ideas and discussions where collaboration is important. +- may span many repositories. +- provide a collaborative experience outside the codebase, allowing the brainstorming of ideas, and the creation of a community knowledge base. +- often don’t have a clear owner. +- often do not result in an actionable task. {% endif %} -### Discussões em equipe -- na página da sua equipe podem ser iniciadas para conversas que abrangem projetos e não pertencem a um problema específico ou pull request. Em vez de abrir uma issue em um repositório para discutir uma ideia, você pode incluir toda a equipe tendo uma conversa em uma discussão de equipe. -- permitem que você realize discussões com sua equipe sobre planejamento, análise, design, pesquisa de usuário e tomada de decisão geral do projeto em um só lugar.{% ifversion ghes or ghae %} -- oferecem uma experiência colaborativa fora do código, o que viabiliza o levantamento de hipóteses. -- frequentemente não têm um proprietário claro. -- muitas vezes não resultam em uma tarefa útil.{% endif %} +### Team discussions +- can be started on your team's page for conversations that span across projects and don't belong in a specific issue or pull request. Instead of opening an issue in a repository to discuss an idea, you can include the entire team by having a conversation in a team discussion. +- allow you to hold discussions with your team about planning, analysis, design, user research and general project decision making in one place.{% ifversion ghes or ghae %} +- provide a collaborative experience outside the codebase, allowing the brainstorming of ideas. +- often don’t have a clear owner. +- often do not result in an actionable task.{% endif %} -## Que ferramenta de discussão devo usar? +## Which discussion tool should I use? -### Cenários para problemas +### Scenarios for issues -- Quero acompanhar as tarefas, melhorias e erros. -- Eu quero arquivar um relatório de erro. -- Quero partilhar o feedback sobre um recurso específico. -- Quero fazer uma pergunta sobre os arquivos do repositório. +- I want to keep track of tasks, enhancements and bugs. +- I want to file a bug report. +- I want to share feedback about a specific feature. +- I want to ask a question about files in the repository. -#### Exemplo de problema +#### Issue example -Este exemplo ilustra como um usuário do {% data variables.product.prodname_dotcom %} criou um problema na nossa documentação de repositório de código aberto para chamar a nossa atenção para um erro e discutir uma correção. +This example illustrates how a {% data variables.product.prodname_dotcom %} user created an issue in our documentation open source repository to make us aware of a bug, and discuss a fix. -![Exemplo de problema](/assets/images/help/issues/issue-example.png) +![Example of issue](/assets/images/help/issues/issue-example.png) -- Um usuário notou que a cor azul do banner na parte superior da página na versão em chinês da documentação do {% data variables.product.prodname_dotcom %} torna o texto no banner ilegível. -- O usuário criou um problema no repositório, identificando o problema e sugerindo uma correção (que se trata de usar uma cor de fundo diferente para o banner). -- Uma discussão se inicia e, eventualmente, será alcançado um consenso sobre a correção a ser aplicada. -- Em seguida, um contribuidor pode criar um pull request com a correção. +- A user noticed that the blue color of the banner at the top of the page in the Chinese version of the {% data variables.product.prodname_dotcom %} Docs makes the text in the banner unreadable. +- The user created an issue in the repository, stating the problem and suggesting a fix (which is, use a different background color for the banner). +- A discussion ensues, and eventually, a consensus will be reached about the fix to apply. +- A contributor can then create a pull request with the fix. -### Cenários para pull requests +### Scenarios for pull requests -- Eu quero corrigir um erro de digitação em um repositório. -- Quero fazer alterações em um repositório. -- Eu quero fazer alterações para consertar um problema. -- Eu quero comentar as alterações sugeridas por outras pessoas. +- I want to fix a typo in a repository. +- I want to make changes to a repository. +- I want to make changes to fix an issue. +- I want to comment on changes suggested by others. -#### Exemplo de solicitação de pull +#### Pull request example -Este exemplo ilustra como um usuário do {% data variables.product.prodname_dotcom %} criou um pull request na nossa documentação do repositório de código aberto para corrigir um erro de digitação. +This example illustrates how a {% data variables.product.prodname_dotcom %} user created a pull request in our documentation open source repository to fix a typo. -Na guia **Conversa** da solicitação de pull, o autor explica o motivo da criação da solicitação de pull. +In the **Conversation** tab of the pull request, the author explains why they created the pull request. -![Exemplo de pull request - aba Conversa](/assets/images/help/pull_requests/pr-conversation-example.png) +![Example of pull request - Conversation tab](/assets/images/help/pull_requests/pr-conversation-example.png) -A guia **Arquivos alterados** da solicitação de pull mostra a correção implementada. +The **Files changed** tab of the pull request shows the implemented fix. -![Exemplo de pull request - Aba de Arquivos alterados](/assets/images/help/pull_requests/pr-files-changed-example.png) +![Example of pull request - Files changed tab](/assets/images/help/pull_requests/pr-files-changed-example.png) -- Este contribuidor observa um erro de digitação no repositório. -- O usuário cria um pull request com a correção. -- Um mantenedor do repositório revisa o pull request, comenta e faz merge nela. +- This contributor notices a typo in the repository. +- The user creates a pull request with the fix. +- A repository maintainer reviews the pull request, comments on it, and merges it. {% ifversion discussions %} -### Cenários para {% data variables.product.prodname_discussions %} +### Scenarios for {% data variables.product.prodname_discussions %} -- Tenho uma pergunta que não é necessariamente relacionada a arquivos específicos no repositório. -- Eu quero compartilhar notícias com meus colaboradores ou com minha equipe. -- Eu quero começar ou participar de uma conversa aberta. -- Eu quero fazer um anúncio à minha comunidade. +- I have a question that's not necessarily related to specific files in the repository. +- I want to share news with my collaborators, or my team. +- I want to start or participate in an open-ended conversation. +- I want to make an announcement to my community. -#### Exemplo de {% data variables.product.prodname_discussions %} +#### {% data variables.product.prodname_discussions %} example -Este exemplo mostra a postagem de boas-vindas de {% data variables.product.prodname_discussions %} para a documentação do repositório de código aberto {% data variables.product.prodname_dotcom %} e ilustra como a equipe quer colaborar com sua comunidade. +This example shows the {% data variables.product.prodname_discussions %} welcome post for the {% data variables.product.prodname_dotcom %} Docs open source repository, and illustrates how the team wants to collaborate with their community. -![Exemplo de {% data variables.product.prodname_discussions %}](/assets/images/help/discussions/github-discussions-example.png) +![Example of {% data variables.product.prodname_discussions %}](/assets/images/help/discussions/github-discussions-example.png) -Este mantenedor da comunidade iniciou uma discussão para dar as boas-vindas à comunidade e pedir aos integrantes que se apresentem. Esta postagem promove uma atmosfera de acolhedora para visitantes e contribuidores. A postagem também esclarece que a equipe tem o prazer em ajudar com as contribuições para o repositório. +This community maintainer started a discussion to welcome the community, and to ask members to introduce themselves. This post fosters an inviting atmosphere for visitors and contributors. The post also clarifies that the team's happy to help with contributions to the repository. {% endif %} -### Cenários para discussões em equipe +### Scenarios for team discussions -- Tenho uma pergunta que não é necessariamente relacionada a arquivos específicos no repositório. -- Eu quero compartilhar notícias com meus colaboradores ou com minha equipe. -- Eu quero começar ou participar de uma conversa aberta. -- Eu quero fazer um anúncio à minha equipe. +- I have a question that's not necessarily related to specific files in the repository. +- I want to share news with my collaborators, or my team. +- I want to start or participate in an open-ended conversation. +- I want to make an announcement to my team. -{% ifversion fpt or ghec %} Como você pode ver, as discussões em equipe são muito parecidas com o {% data variables.product.prodname_discussions %}. Para {% data variables.product.prodname_dotcom_the_website %}, recomendamos usar {% data variables.product.prodname_discussions %} como ponto de partida para conversas. Você pode usar {% data variables.product.prodname_discussions %} para colaborar com qualquer comunidade em {% data variables.product.prodname_dotcom %}. Se você faz parte de uma organização e gostaria de iniciar conversas dentro da sua organização ou equipe dentro dessa organização, você deverá usar discussões de equipe. +{% ifversion fpt or ghec %} +As you can see, team discussions are very similar to {% data variables.product.prodname_discussions %}. For {% data variables.product.prodname_dotcom_the_website %}, we recommend using {% data variables.product.prodname_discussions %} as the starting point for conversations. You can use {% data variables.product.prodname_discussions %} to collaborate with any community on {% data variables.product.prodname_dotcom %}. If you are part of an organization, and would like to initiate conversations within your organization or team within that organization, you should use team discussions. {% endif %} -#### Exemplo de discussão em equipe +#### Team discussion example -Este exemplo mostra uma postagem da equipe para a equipe `octo-team`. +This example shows a team post for the `octo-team` team. -![Exemplo de discussão em equipe](/assets/images/help/projects/team-discussions-example.png) +![Example of team discussion](/assets/images/help/projects/team-discussions-example.png) -O membro da equipe `octocat` postou uma discussão em equipe, informando a equipe de várias coisas: -- Um integrante da equipe denominado Mona iniciou eventos remotos de jogos. -- Há uma postagem no blogue que descreve como as equipes usam {% data variables.product.prodname_actions %} para produzir sua documentação. -- Material sobre a "All Hands" de Abril agora está disponível para ver todos os integrantes da equipe. +The `octocat` team member posted a team discussion, informing the team of various things: +- A team member called Mona started remote game events. +- There is a blog post describing how the teams use {% data variables.product.prodname_actions %} to produce their docs. +- Material about the April All Hands is now available for all team members to view. -## Próximas etapas +## Next steps -Estes exemplos mostraram como decidir qual é a melhor ferramenta para suas conversas em {% data variables.product.product_name %}. Mas esse é apenas o começo; há muito mais que você pode fazer para adaptar essas ferramentas às suas necessidades. +These examples showed you how to decide which is the best tool for your conversations on {% data variables.product.product_name %}. But this is only the beginning; there is so much more you can do to tailor these tools to your needs. -Para problemas, por exemplo, você pode marcar problemas com etiquetas para uma pesquisa mais rápida e criar modelos de problemas para ajudar os colaboradores a abrir problemas significativos. Para obter mais informações, confira "[Sobre os modelos de solicitações de pull](/github/managing-your-work-on-github/about-issues#working-with-issues)[ e de problemas](/communities/using-templates-to-encourage-useful-issues-and-pull-requests/about-issue-and-pull-request-templates)". +For issues, for example, you can tag issues with labels for quicker searching and create issue templates to help contributors open meaningful issues. For more information, see "[About issues](/github/managing-your-work-on-github/about-issues#working-with-issues)" and "[About issue and pull request templates](/communities/using-templates-to-encourage-useful-issues-and-pull-requests/about-issue-and-pull-request-templates)." -Para pull requests, você pode criar pull requests de rascunho se as suas alterações propostas ainda forem um trabalho em andamento. Não é possível fazer o merge dos pull requests de rascunho até que estejam prontos para revisão. Para obter mais informações, confira "[Sobre as solicitações de pull](/github/collaborating-with-issues-and-pull-requests/about-pull-requests#draft-pull-requests)". +For pull requests, you can create draft pull requests if your proposed changes are still a work in progress. Draft pull requests cannot be merged until they're marked as ready for review. For more information, see "[About pull requests](/github/collaborating-with-issues-and-pull-requests/about-pull-requests#draft-pull-requests)." -{% ifversion discussions %} Para o {% data variables.product.prodname_discussions %}, você pode {% ifversion fpt or ghec %} configurar um código de conduta e{% endif %} fixar discuessões que contêm informações importantes para sua comunidade. Para obter mais informações, confira "[Sobre as discussões](/discussions/collaborating-with-your-community-using-discussions/about-discussions)". +{% ifversion discussions %} +For {% data variables.product.prodname_discussions %}, you can{% ifversion fpt or ghec %} set up a code of conduct and{% endif %} pin discussions that contain important information for your community. For more information, see "[About discussions](/discussions/collaborating-with-your-community-using-discussions/about-discussions)." {% endif %} -Para discussões em equipe, você pode editar ou excluir discussões na página de uma equipe, além de poder configurar notificações para discussões em equipe. Para obter mais informações, confira "[Sobre as discussões em equipe](/organizations/collaborating-with-your-team/about-team-discussions)". +For team discussions, you can edit or delete discussions on a team's page, and you can configure notifications for team discussions. For more information, see "[About team discussions](/organizations/collaborating-with-your-team/about-team-discussions)." + +To learn some advanced formatting features that will help you communicate, see "[Quickstart for writing on {% data variables.product.prodname_dotcom %}](/get-started/writing-on-github/getting-started-with-writing-and-formatting-on-github/quickstart-for-writing-on-github)." \ No newline at end of file diff --git a/translations/pt-BR/content/get-started/quickstart/git-and-github-learning-resources.md b/translations/pt-BR/content/get-started/quickstart/git-and-github-learning-resources.md index dc3a8ab79b..a4f544484c 100644 --- a/translations/pt-BR/content/get-started/quickstart/git-and-github-learning-resources.md +++ b/translations/pt-BR/content/get-started/quickstart/git-and-github-learning-resources.md @@ -1,12 +1,12 @@ --- -title: Recursos de aprendizagem Git e GitHub +title: Git and GitHub learning resources redirect_from: - /articles/good-resources-for-learning-git-and-github - /articles/what-are-other-good-resources-for-learning-git-and-github - /articles/git-and-github-learning-resources - /github/getting-started-with-github/git-and-github-learning-resources - /github/getting-started-with-github/quickstart/git-and-github-learning-resources -intro: 'Existem muitos recursos Git e {% data variables.product.product_name %} na Web. Essa é uma lista de nossos preferidos!' +intro: 'There are a lot of helpful Git and {% data variables.product.product_name %} resources on the web. This is a short list of our favorites!' versions: fpt: '*' ghes: '*' @@ -15,55 +15,49 @@ versions: authors: - GitHub shortTitle: Learning resources -ms.openlocfilehash: d8d0457de2842392febee0c90660285e9b1afef8 -ms.sourcegitcommit: 47bd0e48c7dba1dde49baff60bc1eddc91ab10c5 -ms.translationtype: HT -ms.contentlocale: pt-BR -ms.lasthandoff: 09/05/2022 -ms.locfileid: '146139293' --- -## Usar o Git +## Using Git -Familiarize-se com o Git acessando o [site oficial do projeto Git](https://git-scm.com) e lendo o [livro ProGit](http://git-scm.com/book). Você também pode revisar a [Lista de comandos do Git](https://git-scm.com/docs). +Familiarize yourself with Git by visiting the [official Git project site](https://git-scm.com) and reading the [ProGit book](http://git-scm.com/book). You can also review the [Git command list](https://git-scm.com/docs). -## Usar {% data variables.product.product_name %} +## Using {% data variables.product.product_name %} {% ifversion fpt or ghec %} -O {% data variables.product.prodname_learning %} oferece cursos interativos grátis que são desenvolvidos em {% data variables.product.prodname_dotcom %} e possuem ajuda e respostas automáticas e instantâneas. Aprenda a abrir sua primeira pull request, fazer sua primeira contribuição a um código aberto, criar um site {% data variables.product.prodname_pages %} e muito mais. Para obter mais informações sobre as ofertas de cursos, confira [{% data variables.product.prodname_learning %}]({% data variables.product.prodname_learning_link %}). +{% data variables.product.prodname_learning %} offers free interactive courses that are built into {% data variables.product.prodname_dotcom %} with instant automated feedback and help. Learn to open your first pull request, make your first open source contribution, create a {% data variables.product.prodname_pages %} site, and more. For more information about course offerings, see [{% data variables.product.prodname_learning %}]({% data variables.product.prodname_learning_link %}). {% endif %} -Familiarize-se melhor com o {% data variables.product.product_name %} por meio de nossos artigos de [introdução](/categories/getting-started-with-github/). Confira nosso [fluxo do {% data variables.product.prodname_dotcom %}](https://guides.github.com/introduction/flow) para ver uma introdução ao processo. Veja nossos [guias de visão geral](https://guides.github.com) para aprender conceitos básicos. +Become better acquainted with {% data variables.product.product_name %} through our [getting started](/categories/getting-started-with-github/) articles. See our [{% data variables.product.prodname_dotcom %} flow](https://guides.github.com/introduction/flow) for a process introduction. Refer to our [overview guides](https://guides.github.com) to walk through basic concepts. {% data reusables.support.ask-and-answer-forum %} -### Branches, bifurcações e pull requests +### Branches, forks, and pull requests -Saiba mais sobre a [ramificação do Git](http://learngitbranching.js.org/) usando uma ferramenta interativa. Leia mais sobre [forks](/pull-requests/collaborating-with-pull-requests/working-with-forks/about-forks) e [solicitações de pull](/articles/using-pull-requests) e descubra [como usamos as solicitações de pull](https://github.com/blog/1124-how-we-use-pull-requests-to-build-github) no {% data variables.product.prodname_dotcom %}. Acesse as referências sobre como usar o {% data variables.product.prodname_dotcom %} na [linha de comando](https://cli.github.com/). +Learn about [Git branching](http://learngitbranching.js.org/) using an interactive tool. Read about [forks](/pull-requests/collaborating-with-pull-requests/working-with-forks/about-forks) and [pull requests](/articles/using-pull-requests) as well as [how we use pull requests](https://github.com/blog/1124-how-we-use-pull-requests-to-build-github) at {% data variables.product.prodname_dotcom %}. Access references about using {% data variables.product.prodname_dotcom %} from the [command line](https://cli.github.com/). -### Fique antenado +### Tune in -Nosso [canal de Treinamento e Guias no YouTube](https://youtube.com/githubguides) do {% data variables.product.prodname_dotcom %} oferece tutoriais sobre [solicitações de pull](https://www.youtube.com/watch?v=d5wpJ5VimSU&list=PLg7s6cbtAD15G8lNyoaYDuKZSKyJrgwB-&index=19), [criação de forks](https://www.youtube.com/watch?v=5oJHRbqEofs), [troca de base](https://www.youtube.com/watch?v=SxzjZtJwOgo&list=PLg7s6cbtAD15G8lNyoaYDuKZSKyJrgwB-&index=22) e funções de [redefinição](https://www.youtube.com/watch?v=BKPjPMVB81g). Cada tema é abordado em cinco minutos ou menos. +Our {% data variables.product.prodname_dotcom %} [YouTube Training and Guides channel](https://youtube.com/githubguides) offers tutorials about [pull requests](https://www.youtube.com/watch?v=d5wpJ5VimSU&list=PLg7s6cbtAD15G8lNyoaYDuKZSKyJrgwB-&index=19), [forking](https://www.youtube.com/watch?v=5oJHRbqEofs), [rebase](https://www.youtube.com/watch?v=SxzjZtJwOgo&list=PLg7s6cbtAD15G8lNyoaYDuKZSKyJrgwB-&index=22), and [reset](https://www.youtube.com/watch?v=BKPjPMVB81g) functions. Each topic is covered in 5 minutes or less. -## Treinamento +## Training -### Cursos grátis +### Free courses -O {% data variables.product.product_name %} oferece uma série de [cursos de treinamento interativos sob demanda](https://skills.github.com/), incluindo [Introdução ao {% data variables.product.prodname_dotcom %}](https://github.com/skills/introduction-to-github) e cursos sobre ferramentas específicas do {% data variables.product.product_name %}, como o {% data variables.product.prodname_actions %}. +{% data variables.product.product_name %} offers a series of interactive, [on-demand training courses](https://skills.github.com/) including [Introduction to {% data variables.product.prodname_dotcom %}](https://github.com/skills/introduction-to-github); and courses on {% data variables.product.product_name %} specific tools such as {% data variables.product.prodname_actions %}. -### Programas educacionais online do {% data variables.product.prodname_dotcom %} +### {% data variables.product.prodname_dotcom %}'s web-based educational programs -O {% data variables.product.prodname_dotcom %} oferece [treinamentos](https://services.github.com/#upcoming-events) online com uma abordagem prática baseada em projeto tanto para aqueles que adoram a linha de comando quanto para aqueles que não gostam dela. +{% data variables.product.prodname_dotcom %} offers live [trainings](https://services.github.com/#upcoming-events) with a hands-on, project-based approach for those who love the command line and those who don't. -### Treinamentos para sua empresa +### Training for your company -O {% data variables.product.prodname_dotcom %} oferece [aulas presenciais](https://services.github.com/#offerings) ministradas por nossos educadores altamente experientes. [Fale conosco](https://services.github.com/#contact) para fazer perguntas relacionadas ao treinamento. +{% data variables.product.prodname_dotcom %} offers [in-person classes](https://services.github.com/#offerings) taught by our highly-experienced educators. [Contact us](https://services.github.com/#contact) to ask your training-related questions. ## Extras -Um [curso interativo do Git online](https://www.pluralsight.com/courses/code-school-git-real) do [Pluralsight](https://www.pluralsight.com/codeschool) traz sete níveis com dezenas de exercícios em um formato de jogo divertido. Fique à vontade para adaptar nossos [modelos .gitignore](https://github.com/github/gitignore) de acordo com suas necessidades. +An interactive [online Git course](https://www.pluralsight.com/courses/code-school-git-real) from [Pluralsight](https://www.pluralsight.com/codeschool) has seven levels with dozens of exercises in a fun game format. Feel free to adapt our [.gitignore templates](https://github.com/github/gitignore) to meet your needs. -Estenda o alcance do {% data variables.product.prodname_dotcom %} por meio de {% ifversion fpt or ghec %}[integrações](/articles/about-integrations){% else %}integrações{% endif %} ou instalando o [{% data variables.product.prodname_desktop %}](https://desktop.github.com) e o robusto editor de texto [Atom](https://atom.io). +Extend your {% data variables.product.prodname_dotcom %} reach through {% ifversion fpt or ghec %}[integrations](/articles/about-integrations){% else %}integrations{% endif %}, or by installing [{% data variables.product.prodname_desktop %}](https://desktop.github.com) and the robust [{% data variables.product.prodname_vscode %}](https://code.visualstudio.com/) text editor. -Saiba como iniciar e expandir seu projeto de código aberto com os [Guias de Código Aberto](https://opensource.guide/). +Learn how to launch and grow your open source project with the [Open Source Guides](https://opensource.guide/). diff --git a/translations/pt-BR/content/get-started/writing-on-github/getting-started-with-writing-and-formatting-on-github/about-writing-and-formatting-on-github.md b/translations/pt-BR/content/get-started/writing-on-github/getting-started-with-writing-and-formatting-on-github/about-writing-and-formatting-on-github.md index ee4ed80fa2..ffec457383 100644 --- a/translations/pt-BR/content/get-started/writing-on-github/getting-started-with-writing-and-formatting-on-github/about-writing-and-formatting-on-github.md +++ b/translations/pt-BR/content/get-started/writing-on-github/getting-started-with-writing-and-formatting-on-github/about-writing-and-formatting-on-github.md @@ -1,6 +1,6 @@ --- -title: Sobre gravação e formatação no GitHub -intro: O GitHub combina uma sintaxe para formatar texto chamada markdown em estilo GitHub com alguns recursos de escrita exclusivos. +title: About writing and formatting on GitHub +intro: GitHub combines a syntax for formatting text called GitHub Flavored Markdown with a few unique writing features. redirect_from: - /articles/about-writing-and-formatting-on-github - /github/writing-on-github/about-writing-and-formatting-on-github @@ -10,40 +10,36 @@ versions: ghes: '*' ghae: '*' ghec: '*' -shortTitle: Write & format on GitHub -ms.openlocfilehash: 7819ebc6bbf3ffa8696c87f82745a19c103c8134 -ms.sourcegitcommit: 478f2931167988096ae6478a257f492ecaa11794 -ms.translationtype: HT -ms.contentlocale: pt-BR -ms.lasthandoff: 09/09/2022 -ms.locfileid: '147860831' +shortTitle: About writing & formatting --- -[Markdown](http://daringfireball.net/projects/markdown/) é uma sintaxe fácil de ler e de gravar para formatar textos sem formatação. +[Markdown](http://daringfireball.net/projects/markdown/) is an easy-to-read, easy-to-write syntax for formatting plain text. -Adicionamos algumas funcionalidades personalizadas para criar o markdown em estilo {% data variables.product.prodname_dotcom %}, usadas para formatar prosa e código em nosso site. +We've added some custom functionality to create {% data variables.product.prodname_dotcom %} Flavored Markdown, used to format prose and code across our site. -Você também pode interagir com outros usuários em solicitações de pull e problemas usando recursos como [@mentions](/articles/basic-writing-and-formatting-syntax/#mentioning-people-and-teams), [referências de problemas e de RP](/articles/basic-writing-and-formatting-syntax/#referencing-issues-and-pull-requests) e [emojis](/articles/basic-writing-and-formatting-syntax/#using-emoji). +You can also interact with other users in pull requests and issues using features like [@mentions](/articles/basic-writing-and-formatting-syntax/#mentioning-people-and-teams), [issue and PR references](/articles/basic-writing-and-formatting-syntax/#referencing-issues-and-pull-requests), and [emoji](/articles/basic-writing-and-formatting-syntax/#using-emoji). -## Barra de ferramentas de formatação de texto +## Text formatting toolbar -Cada campo de comentário no {% data variables.product.product_name %} contém uma barra de ferramentas de formatação de texto, permitindo que você formate texto sem precisar aprender a sintaxe markdown. Além da formatação Markdown, como estilos em negrito e itálico e criação de cabeçalhos, links e listas, a barra de ferramentas inclui recursos específicos do {% data variables.product.product_name %}, como @mentions, listas de tarefas e links para problemas e solicitações de pull. +Every comment field on {% data variables.product.product_name %} contains a text formatting toolbar, allowing you to format your text without learning Markdown syntax. In addition to Markdown formatting like bold and italic styles and creating headers, links, and lists, the toolbar includes {% data variables.product.product_name %}-specific features such as @mentions, task lists, and links to issues and pull requests. {% ifversion fixed-width-font-gfm-fields %} -## Habilitando fontes de largura fixa no editor +## Enabling fixed-width fonts in the editor -Você pode habilitar uma fonte de largura fixa em cada campo de comentário em {% data variables.product.product_name %}. Cada caractere em uma largura fixa, ou em monoespaço, a fonte ocupa o mesmo espaço horizontal que pode facilitar a edição de estruturas avançadas de Markdown, como tabelas e trechos de código. +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. -![Captura de tela que mostra o campo comentário de {% data variables.product.product_name %} com as fontes de largura fixa habilitadas](/assets/images/help/writing/fixed-width-example.png) +![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. Em "Preferência de fonte do editor Markdown", selecione **Usar uma fonte de largura fixa (com espaçamento uniforme) ao editar Markdown**. - ![Captura de tela que mostra o campo de comentário do {% data variables.product.product_name %} com as fontes de largura fixa habilitadas](/assets/images/help/writing/enable-fixed-width.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 %} -## Leitura adicional +## Further reading -- [Especificações do {% data variables.product.prodname_dotcom %} Flavored Markdown](https://github.github.com/gfm/) -- "[Sintaxe básica de escrita e formatação](/articles/basic-writing-and-formatting-syntax)" -- "[Como trabalhar com formatação avançada](/articles/working-with-advanced-formatting)" +- [{% data variables.product.prodname_dotcom %} Flavored Markdown Spec](https://github.github.com/gfm/) +- "[Basic writing and formatting syntax](/articles/basic-writing-and-formatting-syntax)" +- "[Working with advanced formatting](/articles/working-with-advanced-formatting)" +- "[Quickstart for writing on {% data variables.product.prodname_dotcom %}](/get-started/writing-on-github/getting-started-with-writing-and-formatting-on-github/quickstart-for-writing-on-github)" diff --git a/translations/pt-BR/content/get-started/writing-on-github/getting-started-with-writing-and-formatting-on-github/basic-writing-and-formatting-syntax.md b/translations/pt-BR/content/get-started/writing-on-github/getting-started-with-writing-and-formatting-on-github/basic-writing-and-formatting-syntax.md index a7321a27c9..b229b71ca3 100644 --- a/translations/pt-BR/content/get-started/writing-on-github/getting-started-with-writing-and-formatting-on-github/basic-writing-and-formatting-syntax.md +++ b/translations/pt-BR/content/get-started/writing-on-github/getting-started-with-writing-and-formatting-on-github/basic-writing-and-formatting-syntax.md @@ -179,13 +179,7 @@ You can specify the theme an image is displayed for in Markdown by using the HTM For example, the following code displays a sun image for light themes and a moon for dark themes: -```HTML - - - - Shows an illustrated sun in light color mode and a moon with stars in dark color mode. - -``` +{% data reusables.getting-started.picture-element-example %} The old method of specifying images based on the theme, by using a fragment appended to the URL (`#gh-dark-mode-only` or `#gh-light-mode-only`), is deprecated and will be removed in favor of the new method described above. {% endif %} @@ -216,7 +210,7 @@ To order your list, precede each line with a number. You can create a nested list by indenting one or more list items below another item. -To create a nested list using the web editor on {% data variables.product.product_name %} or a text editor that uses a monospaced font, like [Atom](https://atom.io/), you can align your list visually. Type space characters in front of your nested list item, until the list marker character (- or *) lies directly below the first character of the text in the item above it. +To create a nested list using the web editor on {% data variables.product.product_name %} or a text editor that uses a monospaced font, like [{% data variables.product.prodname_vscode %}](https://code.visualstudio.com/), you can align your list visually. Type space characters in front of your nested list item, until the list marker character (- or *) lies directly below the first character of the text in the item above it. ```markdown 1. First list item @@ -394,3 +388,4 @@ For more information, see Daring Fireball's "[Markdown Syntax](https://daringfir - [{% data variables.product.prodname_dotcom %} Flavored Markdown Spec](https://github.github.com/gfm/) - "[About writing and formatting on GitHub](/articles/about-writing-and-formatting-on-github)" - "[Working with advanced formatting](/articles/working-with-advanced-formatting)" +- "[Quickstart for writing on {% data variables.product.prodname_dotcom %}](/get-started/writing-on-github/getting-started-with-writing-and-formatting-on-github/quickstart-for-writing-on-github)" diff --git a/translations/pt-BR/content/get-started/writing-on-github/getting-started-with-writing-and-formatting-on-github/index.md b/translations/pt-BR/content/get-started/writing-on-github/getting-started-with-writing-and-formatting-on-github/index.md index 6e7830899a..5cc3a9747c 100644 --- a/translations/pt-BR/content/get-started/writing-on-github/getting-started-with-writing-and-formatting-on-github/index.md +++ b/translations/pt-BR/content/get-started/writing-on-github/getting-started-with-writing-and-formatting-on-github/index.md @@ -12,6 +12,7 @@ versions: ghae: '*' ghec: '*' children: + - /quickstart-for-writing-on-github - /about-writing-and-formatting-on-github - /basic-writing-and-formatting-syntax shortTitle: Start writing on GitHub diff --git a/translations/pt-BR/content/issues/planning-and-tracking-with-projects/automating-your-project/using-the-api-to-manage-projects.md b/translations/pt-BR/content/issues/planning-and-tracking-with-projects/automating-your-project/using-the-api-to-manage-projects.md index 44fc59d190..5f0436ff5f 100644 --- a/translations/pt-BR/content/issues/planning-and-tracking-with-projects/automating-your-project/using-the-api-to-manage-projects.md +++ b/translations/pt-BR/content/issues/planning-and-tracking-with-projects/automating-your-project/using-the-api-to-manage-projects.md @@ -70,8 +70,8 @@ You can find the node ID of an organization project if you know the organization ```shell curl --request POST \ --url https://api.github.com/graphql \ - --header 'Authorization: Bearer TOKEN' \ - --data '{"query":"query{organization(login: \"ORGANIZATION\") {projectV2(number: NUMBER){id}}}"}' + --header 'Authorization: Bearer TOKEN' \ + --data '{"query":"query{organization(login: \"ORGANIZATION\") {projectV2(number: NUMBER){id}}}"}' ``` {% endcurl %} @@ -79,8 +79,8 @@ curl --request POST \ ```shell gh api graphql -f query=' query{ - organization(login: "ORGANIZATION"){ - projectV2(number: NUMBER) { + organization(login: "ORGANIZATION"){ + projectV2(number: NUMBER) { id } } @@ -94,8 +94,8 @@ You can also find the node ID of all projects in your organization. The followin ```shell curl --request POST \ --url https://api.github.com/graphql \ - --header 'Authorization: Bearer TOKEN' \ - --data '{"query":"{organization(login: \"ORGANIZATION\") {projectsV2(first: 20) {nodes {id title}}}}"}' + --header 'Authorization: Bearer TOKEN' \ + --data '{"query":"{organization(login: \"ORGANIZATION") {projectsV2(first: 20) {nodes {id title}}}}"}' ``` {% endcurl %} @@ -103,7 +103,7 @@ curl --request POST \ ```shell gh api graphql -f query=' query{ - organization(login: "ORGANIZATION") { + organization(login: "ORGANIZATION") { projectsV2(first: 20) { nodes { id @@ -125,8 +125,8 @@ You can find the node ID of a user project if you know the project number. Repla ```shell curl --request POST \ --url https://api.github.com/graphql \ - --header 'Authorization: Bearer TOKEN' \ - --data '{"query":"query{user(login: \"USER\") {projectV2(number: NUMBER){id}}}"}' + --header 'Authorization: Bearer TOKEN' \ + --data '{"query":"query{user(login: \"USER\") {projectV2(number: NUMBER){id}}}"}' ``` {% endcurl %} @@ -134,8 +134,8 @@ curl --request POST \ ```shell gh api graphql -f query=' query{ - user(login: "USER"){ - projectV2(number: NUMBER) { + user(login: "USER"){ + projectV2(number: NUMBER) { id } } @@ -149,8 +149,8 @@ You can also find the node ID for all of your projects. The following example wi ```shell curl --request POST \ --url https://api.github.com/graphql \ - --header 'Authorization: Bearer TOKEN' \ - --data '{"query":"{user(login: \"USER\") {projectsV2(first: 20) {nodes {id title}}}}"}' + --header 'Authorization: Bearer TOKEN' \ + --data '{"query":"{user(login: \"USER\") {projectsV2(first: 20) {nodes {id title}}}}"}' ``` {% endcurl %} @@ -158,7 +158,7 @@ curl --request POST \ ```shell gh api graphql -f query=' query{ - user(login: "USER") { + user(login: "USER") { projectsV2(first: 20) { nodes { id @@ -180,8 +180,8 @@ The following example will return the ID, name, settings, and configuration for ```shell curl --request POST \ --url https://api.github.com/graphql \ - --header 'Authorization: Bearer TOKEN' \ - --data '{"query":"query{ node(id: \"PROJECT_ID\") { ... on ProjectV2 { fields(first: 20) { nodes { ... on ProjectV2Field { id name } ... on ProjectV2IterationField { id name configuration { iterations { startDate id }}} ... on ProjectV2SingleSelectField { id name options { id name }}}}}}}"}' + --header 'Authorization: Bearer TOKEN' \ + --data '{"query":"query{ node(id: \"PROJECT_ID\") { ... on ProjectV2 { fields(first: 20) { nodes { ... on ProjectV2Field { id name } ... on ProjectV2IterationField { id name configuration { iterations { startDate id }}} ... on ProjectV2SingleSelectField { id name options { id name }}}}}}}"}' ``` {% endcurl %} @@ -189,7 +189,7 @@ curl --request POST \ ```shell gh api graphql -f query=' query{ - node(id: "PROJECT_ID") { + node(id: "PROJECT_ID") { ... on ProjectV2 { fields(first: 20) { nodes { @@ -284,8 +284,8 @@ If you just need the name and ID of a field, and do not need information about i ```shell curl --request POST \ --url https://api.github.com/graphql \ - --header 'Authorization: Bearer TOKEN' \ - --data '{"query":"query{ node(id: \"PROJECT_ID\") { ... on ProjectV2 { fields(first: 20) { nodes { ... on ProjectV2FieldCommon { id name }}}}}}"}' + --header 'Authorization: Bearer TOKEN' \ + --data '{"query":"query{ node(id: \"PROJECT_ID\") { ... on ProjectV2 { fields(first: 20) { nodes { ... on ProjectV2FieldCommon { id name }}}}}}"}' ``` {% endcurl %} @@ -293,7 +293,7 @@ curl --request POST \ ```shell gh api graphql -f query=' query{ - node(id: "PROJECT_ID") { + node(id: "PROJECT_ID") { ... on ProjectV2 { fields(first: 20) { nodes { @@ -354,8 +354,8 @@ The following example will return the first 20 issues, pull requests, and draft ```shell curl --request POST \ --url https://api.github.com/graphql \ - --header 'Authorization: Bearer TOKEN' \ - --data '{"query":"query{ node(id: \"PROJECT_ID\") { ... on ProjectV2 { items(first: 20) { nodes{ id fieldValues(first: 8) { nodes{ ... on ProjectV2ItemFieldTextValue { text field { ... on ProjectV2FieldCommon { name }}} ... on ProjectV2ItemFieldDateValue { date field { ... on ProjectV2FieldCommon { name } } } ... on ProjectV2ItemFieldSingleSelectValue { name field { ... on ProjectV2FieldCommon { name }}}}} content{ ... on DraftIssue { title body } ...on Issue { title assignees(first: 10) { nodes{ login }}} ...on PullRequest { title assignees(first: 10) { nodes{ login }}}}}}}}}"}' + --header 'Authorization: Bearer TOKEN' \ + --data '{"query":"query{ node(id: \"PROJECT_ID\") { ... on ProjectV2 { items(first: 20) { nodes{ id fieldValues(first: 8) { nodes{ ... on ProjectV2ItemFieldTextValue { text field { ... on ProjectV2FieldCommon { name }}} ... on ProjectV2ItemFieldDateValue { date field { ... on ProjectV2FieldCommon { name } } } ... on ProjectV2ItemFieldSingleSelectValue { name field { ... on ProjectV2FieldCommon { name }}}}} content{ ... on DraftIssue { title body } ...on Issue { title assignees(first: 10) { nodes{ login }}} ...on PullRequest { title assignees(first: 10) { nodes{ login }}}}}}}}}"}' ``` {% endcurl %} @@ -363,7 +363,7 @@ curl --request POST \ ```shell gh api graphql -f query=' query{ - node(id: "PROJECT_ID") { + node(id: "PROJECT_ID") { ... on ProjectV2 { items(first: 20) { nodes{ @@ -446,8 +446,8 @@ The following example will add an issue or pull request to your project. Replace ```shell curl --request POST \ --url https://api.github.com/graphql \ - --header 'Authorization: Bearer TOKEN' \ - --data '{"query":"mutation {addProjectV2ItemById(input: {projectId: \"PROJECT_ID\" contentId: \"CONTENT_ID\"}) {item {id}}}"}' + --header 'Authorization: Bearer TOKEN' \ + --data '{"query":"mutation {addProjectV2ItemById(input: {projectId: \"PROJECT_ID\" contentId: \"CONTENT_ID\"}) {item {id}}}"}' ``` {% endcurl %} @@ -455,7 +455,7 @@ curl --request POST \ ```shell gh api graphql -f query=' mutation { - addProjectV2ItemById(input: {projectId: "PROJECT_ID" contentId: "CONTENT_ID"}) { + addProjectV2ItemById(input: {projectId: "PROJECT_ID" contentId: "CONTENT_ID"}) { item { id } @@ -488,8 +488,8 @@ The following example will add a draft issue to your project. Replace `PROJECT_I ```shell curl --request POST \ --url https://api.github.com/graphql \ - --header 'Authorization: Bearer TOKEN' \ - --data '{"query":"mutation {addProjectV2DraftIssue(input: {projectId: "PROJECT_ID" title: "TITLE" body: "BODY"}) {projectItem {id}}}"}' + --header 'Authorization: Bearer TOKEN' \ + --data '{"query":"mutation {addProjectV2DraftIssue(input: {projectId: "PROJECT_ID" title: "TITLE" body: "BODY"}) {projectItem {id}}}"}' ``` {% endcurl %} @@ -497,7 +497,7 @@ curl --request POST \ ```shell gh api graphql -f query=' mutation { - addProjectV2DraftIssue(input: {projectId: "PROJECT_ID" title: "TITLE" body: "BODY"}) { + addProjectV2DraftIssue(input: {projectId: "PROJECT_ID" title: "TITLE" body: "BODY"}) { projectItem { id } @@ -528,8 +528,8 @@ The following example will update your project's settings. Replace `PROJECT_ID` ```shell curl --request POST \ --url https://api.github.com/graphql \ ---header 'Authorization: Bearer TOKEN' \ ---data '{"query":"mutation { updateProjectV2(input: { projectId: \"PROJECT_ID\", title: \"Project title\", public: false, readme: \"# Project README\n\nA long description\", shortDescription: \"A short description\"}) { projectV2 { id, title, readme, shortDescription }}}"}' +--header 'Authorization: Bearer TOKEN' \ +--data '{"query":"mutation { updateProjectV2(input: { projectId: \"PROJECT_ID\", title: \"Project title\", public: false, readme: \"# Project README\n\nA long description\", shortDescription: \"A short description\"}) { projectV2 { id, title, readme, shortDescription }}}"}' ``` {% endcurl %} @@ -539,7 +539,7 @@ gh api graphql -f query=' mutation { updateProjectV2( input: { - projectId: "PROJECT_ID", + projectId: "PROJECT_ID", title: "Project title", public: false, readme: "# Project README\n\nA long description", @@ -565,8 +565,8 @@ The following example will update the value of a text field for an item. Replace ```shell curl --request POST \ --url https://api.github.com/graphql \ - --header 'Authorization: Bearer TOKEN' \ - --data '{"query":"mutation {updateProjectV2ItemFieldValue( input: { projectId: "PROJECT_ID" itemId: "ITEM_ID" fieldId: "FIELD_ID" value: { text: "Updated text" }}) { projectV2Item { id }}}"}' + --header 'Authorization: Bearer TOKEN' \ + --data '{"query":"mutation {updateProjectV2ItemFieldValue( input: { projectId: "PROJECT_ID" itemId: "ITEM_ID" fieldId: "FIELD_ID" value: { text: "Updated text" }}) { projectV2Item { id }}}"}' ``` {% endcurl %} @@ -576,9 +576,9 @@ gh api graphql -f query=' mutation { updateProjectV2ItemFieldValue( input: { - projectId: "PROJECT_ID" - itemId: "ITEM_ID" - fieldId: "FIELD_ID" + projectId: "PROJECT_ID" + itemId: "ITEM_ID" + fieldId: "FIELD_ID" value: { text: "Updated text" } @@ -619,8 +619,8 @@ The following example will update the value of a single select field for an item ```shell curl --request POST \ --url https://api.github.com/graphql \ - --header 'Authorization: Bearer TOKEN' \ - --data '{"query":"mutation {updateProjectV2ItemFieldValue( input: { projectId: "PROJECT_ID" itemId: "ITEM_ID" fieldId: "FIELD_ID" value: { singleSelectOptionId: "OPTION_ID" }}) { projectV2Item { id }}}"}' + --header 'Authorization: Bearer TOKEN' \ + --data '{"query":"mutation {updateProjectV2ItemFieldValue( input: { projectId: "PROJECT_ID" itemId: "ITEM_ID" fieldId: "FIELD_ID" value: { singleSelectOptionId: "OPTION_ID" }}) { projectV2Item { id }}}"}' ``` {% endcurl %} @@ -630,11 +630,11 @@ gh api graphql -f query=' mutation { updateProjectV2ItemFieldValue( input: { - projectId: "PROJECT_ID" - itemId: "ITEM_ID" - fieldId: "FIELD_ID" + projectId: "PROJECT_ID" + itemId: "ITEM_ID" + fieldId: "FIELD_ID" value: { - singleSelectOptionId: "OPTION_ID" + singleSelectOptionId: "OPTION_ID" } } ) { @@ -659,8 +659,8 @@ The following example will update the value of an iteration field for an item. ```shell curl --request POST \ --url https://api.github.com/graphql \ - --header 'Authorization: Bearer TOKEN' \ - --data '{"query":"mutation {updateProjectV2ItemFieldValue( input: { projectId: "PROJECT_ID" itemId: "ITEM_ID" fieldId: "FIELD_ID" value: { singleSelectOptionId: "OPTION_ID" }}) { projectV2Item { id }}}"}' + --header 'Authorization: Bearer TOKEN' \ + --data '{"query":"mutation {updateProjectV2ItemFieldValue( input: { projectId: "PROJECT_ID" itemId: "ITEM_ID" fieldId: "FIELD_ID" value: { singleSelectOptionId: "OPTION_ID" }}) { projectV2Item { id }}}"}' ``` {% endcurl %} @@ -670,11 +670,11 @@ gh api graphql -f query=' mutation { updateProjectV2ItemFieldValue( input: { - projectId: "PROJECT_ID" - itemId: "ITEM_ID" - fieldId: "FIELD_ID" + projectId: "PROJECT_ID" + itemId: "ITEM_ID" + fieldId: "FIELD_ID" value: { - iterationId: "ITERATION_ID" + iterationId: "ITERATION_ID" } } ) { @@ -694,8 +694,8 @@ The following example will delete an item from a project. Replace `PROJECT_ID` w ```shell curl --request POST \ --url https://api.github.com/graphql \ - --header 'Authorization: Bearer TOKEN' \ - --data '{"query":"mutation {deleteProjectV2Item(input: {projectId: \"PROJECT_ID\" itemId: \"ITEM_ID\"}) {deletedItemId}}"}' + --header 'Authorization: Bearer TOKEN' \ + --data '{"query":"mutation {deleteProjectV2Item(input: {projectId: \"PROJECT_ID\" itemId: \"ITEM_ID\"}) {deletedItemId}}"}' ``` {% endcurl %} @@ -705,8 +705,8 @@ gh api graphql -f query=' mutation { deleteProjectV2Item( input: { - projectId: "PROJECT_ID" - itemId: "ITEM_ID" + projectId: "PROJECT_ID" + itemId: "ITEM_ID" } ) { deletedItemId diff --git a/translations/pt-BR/content/issues/tracking-your-work-with-issues/filtering-and-searching-issues-and-pull-requests.md b/translations/pt-BR/content/issues/tracking-your-work-with-issues/filtering-and-searching-issues-and-pull-requests.md index aae7367309..adbebde7ee 100644 --- a/translations/pt-BR/content/issues/tracking-your-work-with-issues/filtering-and-searching-issues-and-pull-requests.md +++ b/translations/pt-BR/content/issues/tracking-your-work-with-issues/filtering-and-searching-issues-and-pull-requests.md @@ -192,7 +192,7 @@ For pull requests, you can also use search to: - Filter pull requests by [reviewer](/articles/about-pull-request-reviews/): `state:open type:pr reviewed-by:octocat` - Filter pull requests by the specific user [requested for review](/pull-requests/collaborating-with-pull-requests/proposing-changes-to-your-work-with-pull-requests/requesting-a-pull-request-review): `state:open type:pr review-requested:octocat`{% ifversion fpt or ghae or ghes > 3.2 or ghec %} - Filter pull requests that someone has asked you directly to review: `state:open type:pr user-review-requested:@me`{% endif %} -- Filter pull requests by the team requested for review: `state:open type:pr team-review-requested:github/atom` +- Filter pull requests by the team requested for review: `state:open type:pr team-review-requested:github/docs` - Filter for pull requests that are linked to an issue that the pull request may close: `linked:issue` ## Sorting issues and pull requests diff --git a/translations/pt-BR/content/pages/configuring-a-custom-domain-for-your-github-pages-site/managing-a-custom-domain-for-your-github-pages-site.md b/translations/pt-BR/content/pages/configuring-a-custom-domain-for-your-github-pages-site/managing-a-custom-domain-for-your-github-pages-site.md index e1c0cc329d..44bb21d747 100644 --- a/translations/pt-BR/content/pages/configuring-a-custom-domain-for-your-github-pages-site/managing-a-custom-domain-for-your-github-pages-site.md +++ b/translations/pt-BR/content/pages/configuring-a-custom-domain-for-your-github-pages-site/managing-a-custom-domain-for-your-github-pages-site.md @@ -62,11 +62,11 @@ For more information on Punycodes, see [Internationalized domain name](https://e {% data reusables.command_line.open_the_multi_os_terminal %} 6. To confirm that your DNS record configured correctly, use the `dig` command, replacing _WWW.EXAMPLE.COM_ with your subdomain. ```shell - $ dig WWW.EXAMPLE.COM +nostats +nocomments +nocmd - > ;WWW.EXAMPLE.COM. IN A - > WWW.EXAMPLE.COM. 3592 IN CNAME YOUR-USERNAME.github.io. - > YOUR-USERNAME.github.io. 43192 IN CNAME GITHUB-PAGES-SERVER . - > GITHUB-PAGES-SERVER . 22 IN A 192.0.2.1 + $ dig WWW.EXAMPLE.COM +nostats +nocomments +nocmd + > ;WWW.EXAMPLE.COM. IN A + > WWW.EXAMPLE.COM. 3592 IN CNAME YOUR-USERNAME.github.io. + > YOUR-USERNAME.github.io. 43192 IN CNAME GITHUB-PAGES-SERVER . + > GITHUB-PAGES-SERVER . 22 IN A 192.0.2.1 ``` {% data reusables.pages.build-locally-download-cname %} {% data reusables.pages.enforce-https-custom-domain %} @@ -104,19 +104,19 @@ To set up an apex domain, such as `example.com`, you must configure a custom dom 6. To confirm that your DNS record configured correctly, use the `dig` command, replacing _EXAMPLE.COM_ with your apex domain. Confirm that the results match the IP addresses for {% data variables.product.prodname_pages %} above. - For `A` records. ```shell - $ dig EXAMPLE.COM +noall +answer -t A - > EXAMPLE.COM 3600 IN A 185.199.108.153 - > EXAMPLE.COM 3600 IN A 185.199.109.153 - > EXAMPLE.COM 3600 IN A 185.199.110.153 - > EXAMPLE.COM 3600 IN A 185.199.111.153 + $ dig EXAMPLE.COM +noall +answer -t A + > EXAMPLE.COM 3600 IN A 185.199.108.153 + > EXAMPLE.COM 3600 IN A 185.199.109.153 + > EXAMPLE.COM 3600 IN A 185.199.110.153 + > EXAMPLE.COM 3600 IN A 185.199.111.153 ``` - For `AAAA` records. ```shell - $ dig EXAMPLE.COM +noall +answer -t AAAA - > EXAMPLE.COM 3600 IN AAAA 2606:50c0:8000::153 - > EXAMPLE.COM 3600 IN AAAA 2606:50c0:8001::153 - > EXAMPLE.COM 3600 IN AAAA 2606:50c0:8002::153 - > EXAMPLE.COM 3600 IN AAAA 2606:50c0:8003::153 + $ dig EXAMPLE.COM +noall +answer -t AAAA + > EXAMPLE.COM 3600 IN AAAA 2606:50c0:8000::153 + > EXAMPLE.COM 3600 IN AAAA 2606:50c0:8001::153 + > EXAMPLE.COM 3600 IN AAAA 2606:50c0:8002::153 + > EXAMPLE.COM 3600 IN AAAA 2606:50c0:8003::153 ``` {% data reusables.pages.build-locally-download-cname %} {% data reusables.pages.enforce-https-custom-domain %} @@ -132,11 +132,11 @@ After you configure the apex domain, you must configure a CNAME record with your 1. Navigate to your DNS provider and create a `CNAME` record that points `www.example.com` to the default domain for your site: `.github.io` or `.github.io`. Do not include the repository name. {% data reusables.pages.contact-dns-provider %} {% data reusables.pages.default-domain-information %} 2. To confirm that your DNS record configured correctly, use the `dig` command, replacing _WWW.EXAMPLE.COM_ with your `www` subdomain variant. ```shell - $ dig WWW.EXAMPLE.COM +nostats +nocomments +nocmd - > ;WWW.EXAMPLE.COM. IN A - > WWW.EXAMPLE.COM. 3592 IN CNAME YOUR-USERNAME.github.io. - > YOUR-USERNAME.github.io. 43192 IN CNAME GITHUB-PAGES-SERVER . - > GITHUB-PAGES-SERVER . 22 IN A 192.0.2.1 + $ dig WWW.EXAMPLE.COM +nostats +nocomments +nocmd + > ;WWW.EXAMPLE.COM IN A + > WWW.EXAMPLE.COM. 3592 IN CNAME YOUR-USERNAME.github.io. + > YOUR-USERNAME.github.io. 43192 IN CNAME GITHUB-PAGES-SERVER. + > GITHUB-PAGES-SERVER. 22 IN A 192.0.2.1 ``` ## Removing a custom domain diff --git a/translations/pt-BR/content/pull-requests/collaborating-with-pull-requests/addressing-merge-conflicts/resolving-a-merge-conflict-using-the-command-line.md b/translations/pt-BR/content/pull-requests/collaborating-with-pull-requests/addressing-merge-conflicts/resolving-a-merge-conflict-using-the-command-line.md index 36e34a57de..a53dcfa122 100644 --- a/translations/pt-BR/content/pull-requests/collaborating-with-pull-requests/addressing-merge-conflicts/resolving-a-merge-conflict-using-the-command-line.md +++ b/translations/pt-BR/content/pull-requests/collaborating-with-pull-requests/addressing-merge-conflicts/resolving-a-merge-conflict-using-the-command-line.md @@ -1,6 +1,6 @@ --- -title: Resolver um conflito de merge usando a linha de comando -intro: Você pode resolver conflitos de merge usando a linha de comando e um editor de texto. +title: Resolving a merge conflict using the command line +intro: You can resolve merge conflicts using the command line and a text editor. redirect_from: - /github/collaborating-with-issues-and-pull-requests/addressing-merge-conflicts/resolving-a-merge-conflict-using-the-command-line - /articles/resolving-a-merge-conflict-from-the-command-line @@ -15,33 +15,27 @@ versions: topics: - Pull requests shortTitle: Resolve merge conflicts in Git -ms.openlocfilehash: 1d4ff97c2a93d3e5a7aebaa8752810e284203bc1 -ms.sourcegitcommit: fcf3546b7cc208155fb8acdf68b81be28afc3d2d -ms.translationtype: HT -ms.contentlocale: pt-BR -ms.lasthandoff: 09/11/2022 -ms.locfileid: '147883454' --- -Os conflitos de merge ocorrem quando alterações concorrentes são feitas na mesma linha de um arquivo ou quando uma pessoa edita um arquivo e outra pessoa exclui o mesmo arquivo. Para obter mais informações, confira "[Sobre os conflitos de mesclagem](/articles/about-merge-conflicts/)". +Merge conflicts occur when competing changes are made to the same line of a file, or when one person edits a file and another person deletes the same file. For more information, see "[About merge conflicts](/articles/about-merge-conflicts/)." {% tip %} -**Dica:** use o editor de conflitos do {% data variables.product.product_name %} para resolver conflitos de mesclagem de alterações de linha concorrentes entre branches que fazem parte de uma solicitação de pull. Para obter mais informações, confira "[Como resolver um conflito de mesclagem no GitHub](/pull-requests/collaborating-with-pull-requests/addressing-merge-conflicts/resolving-a-merge-conflict-on-github)". +**Tip:** You can use the conflict editor on {% data variables.product.product_name %} to resolve competing line change merge conflicts between branches that are part of a pull request. For more information, see "[Resolving a merge conflict on GitHub](/pull-requests/collaborating-with-pull-requests/addressing-merge-conflicts/resolving-a-merge-conflict-on-github)." {% endtip %} -## Conflitos de merge de alterações diferentes na linha +## Competing line change merge conflicts -Para resolver um conflito de merge causado por alterações diferentes na linha, você deve escolher quais alterações dos diferentes branches incorporar em um novo commit. +To resolve a merge conflict caused by competing line changes, you must choose which changes to incorporate from the different branches in a new commit. -Por exemplo, se você e outra pessoa editarem o arquivo _styleguide.md_ nas mesmas linhas em branches diferentes do mesmo repositório Git, você receberá um erro de conflito de mesclagem ao tentar mesclar esses branches. Você deve resolver esse conflito de merge com um novo commit antes de fazer merge desses branches. +For example, if you and another person both edited the file _styleguide.md_ on the same lines in different branches of the same Git repository, you'll get a merge conflict error when you try to merge these branches. You must resolve this merge conflict with a new commit before you can merge these branches. {% data reusables.command_line.open_the_multi_os_terminal %} -2. Navegue até o repositório Git local que tem o conflito de merge. +2. Navigate into the local Git repository that has the merge conflict. ```shell - cd REPOSITORY-NAME + cd REPOSITORY-NAME ``` -3. Gere uma lista dos arquivos afetados pelo conflito de merge. Neste exemplo, o arquivo *styleguide.md* tem um conflito de mesclagem. +3. Generate a list of the files affected by the merge conflict. In this example, the file *styleguide.md* has a merge conflict. ```shell $ git status > # On branch branch-b @@ -55,8 +49,8 @@ Por exemplo, se você e outra pessoa editarem o arquivo _styleguide.md_ nas mesm > # > no changes added to commit (use "git add" and/or "git commit -a") ``` -4. Abra seu editor de texto favorito, como o [Atom](https://atom.io/), e procure o arquivo que contém conflitos de mesclagem. -5. Para ver o início do conflito de mesclagem no arquivo, pesquise o marcador de conflito `<<<<<<<` no arquivo. Ao abrir o arquivo no editor de texto, você verá as alterações do branch HEAD ou base após a linha `<<<<<<< HEAD`. Em seguida, você verá `=======`, o que divide as alterações das alterações no outro branch, seguido de `>>>>>>> BRANCH-NAME`. Neste exemplo, uma pessoa escreveu "abra um problema" no branch HEAD ou base e outra pessoa escreveu "faça sua pergunta no IRC" no branch de comparação ou `branch-a`. +4. Open your favorite text editor, such as [{% data variables.product.prodname_vscode %}](https://code.visualstudio.com/), and navigate to the file that has merge conflicts. +5. To see the beginning of the merge conflict in your file, search the file for the conflict marker `<<<<<<<`. When you open the file in your text editor, you'll see the changes from the HEAD or base branch after the line `<<<<<<< HEAD`. Next, you'll see `=======`, which divides your changes from the changes in the other branch, followed by `>>>>>>> BRANCH-NAME`. In this example, one person wrote "open an issue" in the base or HEAD branch and another person wrote "ask your question in IRC" in the compare branch or `branch-a`. ``` If you have questions, please @@ -66,34 +60,34 @@ Por exemplo, se você e outra pessoa editarem o arquivo _styleguide.md_ nas mesm ask your question in IRC. >>>>>>> branch-a ``` -{% data reusables.pull_requests.decide-how-to-resolve-competing-line-change-merge-conflict %} Neste exemplo, as duas alterações são incorporadas ao merge final: +{% data reusables.pull_requests.decide-how-to-resolve-competing-line-change-merge-conflict %} In this example, both changes are incorporated into the final merge: ```shell If you have questions, please open an issue or ask in our IRC channel if it's more urgent. ``` -7. Adicione ou faça stage das alterações. +7. Add or stage your changes. ```shell $ git add . ``` -8. Faça o commit das suas alterações com um comentário. +8. Commit your changes with a comment. ```shell $ git commit -m "Resolved merge conflict by incorporating both suggestions." ``` -Agora você pode mesclar os branches na linha de comando ou [efetuar push das alterações para o repositório remoto](/github/getting-started-with-github/pushing-commits-to-a-remote-repository/) no {% data variables.product.product_name %} e [mesclar as alterações](/articles/merging-a-pull-request/) em uma solicitação de pull. +You can now merge the branches on the command line or [push your changes to your remote repository](/github/getting-started-with-github/pushing-commits-to-a-remote-repository/) on {% data variables.product.product_name %} and [merge your changes](/articles/merging-a-pull-request/) in a pull request. -## Conflitos de merge de arquivo removido +## Removed file merge conflicts -Para resolver um conflito de merge causado por alterações concorrentes em um arquivo, quando uma pessoa exclui um arquivo em um branch e outra pessoa edita o mesmo arquivo, você deve escolher se deseja excluir ou manter o arquivo removido em um novo commit. +To resolve a merge conflict caused by competing changes to a file, where a person deletes a file in one branch and another person edits the same file, you must choose whether to delete or keep the removed file in a new commit. -Por exemplo, se você editar um arquivo, como *LEIAME.md*, e outra pessoa remover o mesmo arquivo em outro branch no mesmo repositório Git, você receberá um erro de conflito de mesclagem ao tentar mesclar esses branches. Você deve resolver esse conflito de merge com um novo commit antes de fazer merge desses branches. +For example, if you edited a file, such as *README.md*, and another person removed the same file in another branch in the same Git repository, you'll get a merge conflict error when you try to merge these branches. You must resolve this merge conflict with a new commit before you can merge these branches. {% data reusables.command_line.open_the_multi_os_terminal %} -2. Navegue até o repositório Git local que tem o conflito de merge. +2. Navigate into the local Git repository that has the merge conflict. ```shell - cd REPOSITORY-NAME + cd REPOSITORY-NAME ``` -2. Gere uma lista dos arquivos afetados pelo conflito de merge. Neste exemplo, o arquivo *LEIAME.md* tem um conflito de mesclagem. +2. Generate a list of the files affected by the merge conflict. In this example, the file *README.md* has a merge conflict. ```shell $ git status > # On branch main @@ -106,32 +100,32 @@ Por exemplo, se você editar um arquivo, como *LEIAME.md*, e outra pessoa remove > # Unmerged paths: > # (use "git add/rm ..." as appropriate to mark resolution) > # - > # deleted by us: README.md + > # deleted by us: README.md > # > # no changes added to commit (use "git add" and/or "git commit -a") ``` -3. Abra seu editor de texto favorito, como o [Atom](https://atom.io/), e procure o arquivo que contém conflitos de mesclagem. -6. Decida se você deseja manter o arquivo removido. Você pode ver as alterações mais recentes feitas no arquivo removido no editor de texto. +3. Open your favorite text editor, such as [{% data variables.product.prodname_vscode %}](https://code.visualstudio.com/), and navigate to the file that has merge conflicts. +6. Decide if you want keep the removed file. You may want to view the latest changes made to the removed file in your text editor. - Para adicionar o arquivo removido de volta ao repositório: + To add the removed file back to your repository: ```shell $ git add README.md ``` - Para remover o arquivo do seu repositório: + To remove this file from your repository: ```shell $ git rm README.md > README.md: needs merge > rm 'README.md' ``` -7. Faça o commit das suas alterações com um comentário. +7. Commit your changes with a comment. ```shell $ git commit -m "Resolved merge conflict by keeping README.md file." > [branch-d 6f89e49] Merge branch 'branch-c' into branch-d ``` -Agora você pode mesclar os branches na linha de comando ou [efetuar push das alterações para o repositório remoto](/github/getting-started-with-github/pushing-commits-to-a-remote-repository/) no {% data variables.product.product_name %} e [mesclar as alterações](/articles/merging-a-pull-request/) em uma solicitação de pull. +You can now merge the branches on the command line or [push your changes to your remote repository](/github/getting-started-with-github/pushing-commits-to-a-remote-repository/) on {% data variables.product.product_name %} and [merge your changes](/articles/merging-a-pull-request/) in a pull request. -## Leitura adicional +## Further reading -- "[Sobre os conflitos de mesclagem](/pull-requests/collaborating-with-pull-requests/addressing-merge-conflicts/about-merge-conflicts)" -- "[Como fazer check-out local de solicitações de pull](/articles/checking-out-pull-requests-locally/)" +- "[About merge conflicts](/pull-requests/collaborating-with-pull-requests/addressing-merge-conflicts/about-merge-conflicts)" +- "[Checking out pull requests locally](/articles/checking-out-pull-requests-locally/)" diff --git a/translations/pt-BR/content/pull-requests/collaborating-with-pull-requests/incorporating-changes-from-a-pull-request/merging-a-pull-request.md b/translations/pt-BR/content/pull-requests/collaborating-with-pull-requests/incorporating-changes-from-a-pull-request/merging-a-pull-request.md index ca86371e9b..a137dad617 100644 --- a/translations/pt-BR/content/pull-requests/collaborating-with-pull-requests/incorporating-changes-from-a-pull-request/merging-a-pull-request.md +++ b/translations/pt-BR/content/pull-requests/collaborating-with-pull-requests/incorporating-changes-from-a-pull-request/merging-a-pull-request.md @@ -83,7 +83,7 @@ If you decide you don't want the changes in a topic branch to be merged to the u To merge a pull request, use the `gh pr merge` subcommand. Replace `pull-request` with the number, URL, or head branch of the pull request. ```shell -gh pr merge pull-request +gh pr merge PULL-REQUEST ``` Follow the interactive prompts to complete the merge. For more information about the merge methods that you can choose, see "[About pull request merges](/github/collaborating-with-pull-requests/incorporating-changes-from-a-pull-request/about-pull-request-merges)." diff --git a/translations/pt-BR/content/repositories/releasing-projects-on-github/managing-releases-in-a-repository.md b/translations/pt-BR/content/repositories/releasing-projects-on-github/managing-releases-in-a-repository.md index 75f9b96723..2805786381 100644 --- a/translations/pt-BR/content/repositories/releasing-projects-on-github/managing-releases-in-a-repository.md +++ b/translations/pt-BR/content/repositories/releasing-projects-on-github/managing-releases-in-a-repository.md @@ -90,7 +90,7 @@ You can choose whether {% data variables.large_files.product_name_long %} ({% da 1. To create a release, use the `gh release create` subcommand. Replace `tag` with the desired tag for the release. ```shell - gh release create tag + gh release create TAG ``` 2. Follow the interactive prompts. Alternatively, you can specify arguments to skip these prompts. For more information about possible arguments, see [the {% data variables.product.prodname_cli %} manual](https://cli.github.com/manual/gh_release_create). For example, this command creates a prerelease with the specified title and notes. @@ -153,7 +153,7 @@ Releases cannot currently be edited with {% data variables.product.prodname_cli 1. To delete a release, use the `gh release delete` subcommand. Replace `tag` with the tag of the release to delete. Use the `-y` flag to skip confirmation. ```shell - gh release delete tag -y + gh release delete TAG -y ``` {% endcli %} diff --git a/translations/pt-BR/content/repositories/working-with-files/using-files/working-with-non-code-files.md b/translations/pt-BR/content/repositories/working-with-files/using-files/working-with-non-code-files.md index 2621f90997..229230ac98 100644 --- a/translations/pt-BR/content/repositories/working-with-files/using-files/working-with-non-code-files.md +++ b/translations/pt-BR/content/repositories/working-with-files/using-files/working-with-non-code-files.md @@ -340,7 +340,7 @@ To view a fully interactive version of your Jupyter Notebook, you can set up a n If you're having trouble rendering Jupyter Notebook files in static HTML, you can convert the file locally on the command line by using the [`nbconvert` command](https://github.com/jupyter/nbconvert): ```shell -$ jupyter nbconvert --to html NOTEBOOK-NAME.ipynb +$ jupyter nbconvert --to html NOTEBOOK-NAME.ipynb ``` ### Further reading diff --git a/translations/pt-BR/content/rest/guides/getting-started-with-the-rest-api.md b/translations/pt-BR/content/rest/guides/getting-started-with-the-rest-api.md index 083950084d..a744b76793 100644 --- a/translations/pt-BR/content/rest/guides/getting-started-with-the-rest-api.md +++ b/translations/pt-BR/content/rest/guides/getting-started-with-the-rest-api.md @@ -163,7 +163,7 @@ With cURL, you will send an `Authorization` header with your token. Replace `YOU ```shell curl --request GET \ --url "https://api.github.com/octocat" \ ---header "Authorization: Bearer YOUR-TOKEN" +--header "Authorization: Bearer YOUR-TOKEN" ``` {% note %} @@ -326,7 +326,7 @@ To send a header with cURL, use the `--header` or `-H` flag followed by the head curl --request GET \ --url "https://api.github.com/octocat" \ --header "Accept: application/vnd.github.v3+json" \ ---header "Authorization: Bearer YOUR-TOKEN" +--header "Authorization: Bearer YOUR-TOKEN" ``` {% endcurl %} @@ -390,7 +390,7 @@ To get issues from the `octocat/Spoon-Knife` repository, replace `{owner}` with curl --request GET \ --url "https://api.github.com/repos/octocat/Spoon-Knife/issues" \ --header "Accept: application/vnd.github.v3+json" \ ---header "Authorization: Bearer YOUR-TOKEN" +--header "Authorization: Bearer YOUR-TOKEN" ``` {% endcurl %} @@ -443,7 +443,7 @@ For cURL, add a `?` to the end of the path, then append your query parameter nam curl --request GET \ --url "https://api.github.com/repos/octocat/Spoon-Knife/issues?per_page=2&sort=updated&direction=asc" \ --header "Accept: application/vnd.github.v3+json" \ ---header "Authorization: Bearer YOUR-TOKEN" +--header "Authorization: Bearer YOUR-TOKEN" ``` {% endcurl %} @@ -495,7 +495,7 @@ For cURL, use the `--data` flag to pass the body parameters in a JSON object. curl --request POST \ --url "https://api.github.com/repos/octocat/Spoon-Knife/issues" \ --header "Accept: application/vnd.github.v3+json" \ ---header "Authorization: Bearer YOUR-TOKEN" \ +--header "Authorization: Bearer YOUR-TOKEN" \ --data '{ "title": "Created with the REST API", "body": "This is a test issue created by the REST API" @@ -593,7 +593,7 @@ For example, this request: curl --request GET \ --url "https://api.github.com/repos/octocat/Spoon-Knife/issues?per_page=2" \ --header "Accept: application/vnd.github.v3+json" \ ---header "Authorization: Bearer YOUR-TOKEN" \ +--header "Authorization: Bearer YOUR-TOKEN" \ --include ``` @@ -661,7 +661,7 @@ await octokit.request("GET /repos/{owner}/{repo}/issues", { curl --request GET \ --url "https://api.github.com/repos/octocat/Spoon-Knife/issues?per_page=2" \ --header "Accept: application/vnd.github.v3+json" \ ---header "Authorization: Bearer YOUR-TOKEN" +--header "Authorization: Bearer YOUR-TOKEN" ``` {% endcurl %} @@ -730,7 +730,7 @@ For example, you can use `>` to redirect the response to a file: curl --request GET \ --url "https://api.github.com/repos/octocat/Spoon-Knife/issues?per_page=2" \ --header "Accept: application/vnd.github.v3+json" \ ---header "Authorization: Bearer YOUR-TOKEN" > data.json +--header "Authorization: Bearer YOUR-TOKEN" > data.json ``` Then you can use jq to get the title and author ID of each issue: diff --git a/translations/pt-BR/content/rest/overview/other-authentication-methods.md b/translations/pt-BR/content/rest/overview/other-authentication-methods.md index d8147fdb5d..9cebcf591a 100644 --- a/translations/pt-BR/content/rest/overview/other-authentication-methods.md +++ b/translations/pt-BR/content/rest/overview/other-authentication-methods.md @@ -45,7 +45,7 @@ response. The solution is to manually craft the `Authorization` header. We recommend you use OAuth tokens to authenticate to the GitHub API. OAuth tokens include [personal access tokens][personal-access-tokens] and enable the user to revoke access at any time. ```shell -$ curl -u username:token {% data variables.product.api_url_pre %}/user +$ curl -u USERNAME:TOKEN {% data variables.product.api_url_pre %}/user ``` This approach is useful if your tools only support Basic Authentication but you want to take advantage of OAuth access token security features. @@ -71,7 +71,7 @@ would authenticate you if you replace `` with your {% data variables.p (cURL will prompt you to enter the password.) ```shell -$ curl -u username {% data variables.product.api_url_pre %}/user +$ curl -u USERNAME {% data variables.product.api_url_pre %}/user ``` If you have two-factor authentication enabled, make sure you understand how to [work with two-factor authentication](/rest/overview/other-authentication-methods#working-with-two-factor-authentication). @@ -95,7 +95,7 @@ If you have two-factor authentication enabled, make sure you understand how to [ If you're using the API to access an organization that enforces [SAML SSO][saml-sso] for authentication, you'll need to create a personal access token (PAT) and [authorize the token][allowlist] for that organization. Visit the URL specified in `X-GitHub-SSO` to authorize the token for the organization. ```shell -$ curl -v -H "Authorization: Bearer TOKEN" {% data variables.product.api_url_pre %}/repos/octodocs-test/test +$ curl -v -H "Authorization: Bearer TOKEN" {% data variables.product.api_url_pre %}/repos/octodocs-test/test > X-GitHub-SSO: required; url=https://github.com/orgs/octodocs-test/sso?authorization_request=AZSCKtL4U8yX1H3sCQIVnVgmjmon5fWxks5YrqhJgah0b2tlbl9pZM4EuMz4 { @@ -107,7 +107,7 @@ $ curl -v -H "Authorization: Bearer TOKEN" {% data variables.product.ap When requesting data that could come from multiple organizations (for example, [requesting a list of issues created by the user][user-issues]), the `X-GitHub-SSO` header indicates which organizations require you to authorize your personal access token: ```shell -$ curl -v -H "Authorization: Bearer TOKEN" {% data variables.product.api_url_pre %}/user/issues +$ curl -v -H "Authorization: Bearer TOKEN" {% data variables.product.api_url_pre %}/user/issues > X-GitHub-SSO: partial-results; organizations=21955855,20582480 ``` @@ -136,9 +136,9 @@ This header tells you how your account receives its two-factor authentication co ```shell $ curl --request POST \ --url https://api.github.com/authorizations \ - --header 'authorization: Basic PASSWORD' \ + --header 'authorization: Basic PASSWORD' \ --header 'content-type: application/json' \ - --header 'x-github-otp: OTP' \ + --header 'x-github-otp: OTP' \ --data '{"scopes": ["public_repo"], "note": "test"}' ``` {% endif %} diff --git a/translations/pt-BR/content/rest/overview/resources-in-the-rest-api.md b/translations/pt-BR/content/rest/overview/resources-in-the-rest-api.md index 033f0ccd78..0432d216c9 100644 --- a/translations/pt-BR/content/rest/overview/resources-in-the-rest-api.md +++ b/translations/pt-BR/content/rest/overview/resources-in-the-rest-api.md @@ -91,7 +91,7 @@ $ curl -u "username" {% data variables.product.api_url_pre %} ### OAuth2 token (sent in a header) ```shell -$ curl -H "Authorization: Bearer OAUTH-TOKEN" {% data variables.product.api_url_pre %} +$ curl -H "Authorization: Bearer OAUTH-TOKEN" {% data variables.product.api_url_pre %} ``` {% note %} @@ -150,7 +150,7 @@ the API will temporarily reject all authentication attempts for that user ```shell $ curl -i {% data variables.product.api_url_pre %} -u {% ifversion fpt or ghae or ghec %} --u valid_username:valid_token {% endif %}{% ifversion ghes %}-u valid_username:valid_password {% endif %} +-u VALID_USERNAME:VALID_TOKEN {% endif %}{% ifversion ghes %}-u VALID_USERNAME:VALID_PASSWORD {% endif %} > HTTP/2 403 > { > "message": "Maximum number of login attempts exceeded. Please try again later.", @@ -185,7 +185,7 @@ You can issue a `GET` request to the root endpoint to get all the endpoint categ ```shell $ curl {% ifversion fpt or ghae or ghec %} --u username:token {% endif %}{% ifversion ghes %}-u username:password {% endif %}{% data variables.product.api_url_pre %} +-u USERNAME:TOKEN {% endif %}{% ifversion ghes %}-u USERNAME:PASSWORD {% endif %}{% data variables.product.api_url_pre %} ``` ## GraphQL global node IDs diff --git a/translations/pt-BR/content/search-github/searching-on-github/searching-issues-and-pull-requests.md b/translations/pt-BR/content/search-github/searching-on-github/searching-issues-and-pull-requests.md index dcf929a857..4e6d036ae3 100644 --- a/translations/pt-BR/content/search-github/searching-on-github/searching-issues-and-pull-requests.md +++ b/translations/pt-BR/content/search-github/searching-on-github/searching-issues-and-pull-requests.md @@ -268,7 +268,7 @@ You can filter pull requests based on their [review status](/pull-requests/colla | reviewed-by:USERNAME | [**type:pr reviewed-by:gjtorikian**](https://github.com/search?utf8=%E2%9C%93&q=type%3Apr+reviewed-by%3Agjtorikian&type=Issues) matches pull requests reviewed by a particular person. | review-requested:USERNAME | [**type:pr review-requested:benbalter**](https://github.com/search?utf8=%E2%9C%93&q=type%3Apr+review-requested%3Abenbalter&type=Issues) matches pull requests where a specific person is requested for review. Requested reviewers are no longer listed in the search results after they review a pull request. If the requested person is on a team that is requested for review, then review requests for that team will also appear in the search results.{% ifversion fpt or ghae or ghes > 3.2 or ghec %} | user-review-requested:@me | [**type:pr user-review-requested:@me**](https://github.com/search?q=is%3Apr+user-review-requested%3A%40me+) matches pull requests that you have directly been asked to review.{% endif %} -| team-review-requested:TEAMNAME | [**type:pr team-review-requested:atom/design**](https://github.com/search?q=type%3Apr+team-review-requested%3Aatom%2Fdesign&type=Issues) matches pull requests that have review requests from the team `atom/design`. Requested reviewers are no longer listed in the search results after they review a pull request. +| team-review-requested:TEAMNAME | [**type:pr team-review-requested:github/docs**](https://github.com/search?q=type%3Apr+team-review-requested%3Agithub%2Fdocs&type=pullrequests) matches pull requests that have review requests from the team `github/docs`. Requested reviewers are no longer listed in the search results after they review a pull request. ## Search by when an issue or pull request was created or last updated diff --git a/translations/pt-BR/data/reusables/actions/link-to-example-library.md b/translations/pt-BR/data/reusables/actions/link-to-example-library.md deleted file mode 100644 index 5e5b387b76..0000000000 --- a/translations/pt-BR/data/reusables/actions/link-to-example-library.md +++ /dev/null @@ -1,9 +0,0 @@ ---- -ms.openlocfilehash: ad73c4455042d29d72d3f76dbbdc512487c9303a -ms.sourcegitcommit: 47bd0e48c7dba1dde49baff60bc1eddc91ab10c5 -ms.translationtype: HT -ms.contentlocale: pt-BR -ms.lasthandoff: 09/05/2022 -ms.locfileid: "146139462" ---- -Para obter exemplos que demonstram recursos mais complexos do {% data variables.product.prodname_actions %}, confira " [Exemplos](/actions/examples)". Você pode ver exemplos detalhados que explicam como testar seu código em um executor, acessar a CLI do {% data variables.product.prodname_dotcom %} e usar recursos avançados, como simultaneidade e matrizes de teste. diff --git a/translations/pt-BR/data/reusables/codespaces/creating-a-codespace-in-vscode.md b/translations/pt-BR/data/reusables/codespaces/creating-a-codespace-in-vscode.md index 4f150af299..c89126ae76 100644 --- a/translations/pt-BR/data/reusables/codespaces/creating-a-codespace-in-vscode.md +++ b/translations/pt-BR/data/reusables/codespaces/creating-a-codespace-in-vscode.md @@ -15,6 +15,8 @@ After you connect your account on {% data variables.product.product_location %} ![Searching for repository to create a new codespace](/assets/images/help/codespaces/choose-repository-vscode.png) + If codespaces are billable for the repository you choose, a message will be displayed in subsequent prompts telling you who will pay for the codespace. + 4. Click the branch you want to develop on. ![Searching for a branch to create a new codespace](/assets/images/help/codespaces/choose-branch-vscode.png) diff --git a/translations/pt-BR/data/reusables/notifications/vulnerable-dependency-notification-options.md b/translations/pt-BR/data/reusables/notifications/vulnerable-dependency-notification-options.md index 6b38b0df18..4f702e6e70 100644 --- a/translations/pt-BR/data/reusables/notifications/vulnerable-dependency-notification-options.md +++ b/translations/pt-BR/data/reusables/notifications/vulnerable-dependency-notification-options.md @@ -1,27 +1,22 @@ ---- -ms.openlocfilehash: 5120f840aab87ca243eed66c5bb6256e80aefeea -ms.sourcegitcommit: 47bd0e48c7dba1dde49baff60bc1eddc91ab10c5 -ms.translationtype: HT -ms.contentlocale: pt-BR -ms.lasthandoff: 09/05/2022 -ms.locfileid: "147064175" ---- -{% ifversion fpt or ghec %}Por padrão, você receberá notificações:{% endif %}{% ifversion ghes or ghae %}Por padrão, se o proprietário da empresa tiver configurado um email para notificações na sua instância, você receberá {% data variables.product.prodname_dependabot_alerts %}:{% endif %} +{% ifversion fpt or ghec %}By default, you will receive notifications:{% endif %}{% ifversion ghes or ghae %}By default, if your enterprise owner has configured email for notifications on your instance, you will receive {% data variables.product.prodname_dependabot_alerts %}:{% endif %} -- por email, um email é enviado quando o {% data variables.product.prodname_dependabot %} está habilitado em um repositório, quando é feito commit de um novo arquivo de manifesto no repositório e quando uma nova vulnerabilidade com uma severidade crítica ou alta é encontrada (opção **Enviar um email sempre que uma vulnerabilidade for encontrada**). -- na interface do usuário, um aviso será mostrado nas exibições de arquivo e de código do repositório se houver dependências não seguras (opção **Alertas da interface do usuário**). -- na linha de comando, são exibidos avisos como retornos de chamada quando você efetua push para repositórios com dependências não seguras (opção **Linha de Comando**). -- na caixa de entrada, como notificações da Web. Uma notificação da Web é enviada quando o {% data variables.product.prodname_dependabot %} está habilitado em um repositório, quando é feito commit de um novo arquivo de manifesto e quando uma nova vulnerabilidade com uma severidade crítica ou alta é encontrada (opção **Web**).{% ifversion not ghae %} -- em {% data variables.product.prodname_mobile %}, como notificações da web. Para obter mais informações, confira "[Como habilitar notificações por push com o GitHub Mobile](/github/managing-subscriptions-and-notifications-on-github/configuring-notifications#enabling-push-notifications-with-github-mobile)".{% endif %} +- by email, an email is sent when {% data variables.product.prodname_dependabot %} is enabled for a repository, when a new manifest file is committed to the repository, and when a new vulnerability with a critical or high severity is found (**Email each time a vulnerability is found** option). +- in the user interface, a warning is shown in your repository's file and code views if there are any insecure dependencies (**UI alerts** option). +- on the command line, warnings are displayed as callbacks when you push to repositories with any insecure dependencies (**Command Line** option). +- in your inbox, as web notifications. A web notification is sent when {% data variables.product.prodname_dependabot %} is enabled for a repository, when a new manifest file is committed to the repository, and when a new vulnerability with a critical or high severity is found (**Web** option).{% ifversion not ghae %} +- on {% data variables.product.prodname_mobile %}, as web notifications. For more information, see "[Enabling push notifications with GitHub Mobile](/github/managing-subscriptions-and-notifications-on-github/configuring-notifications#enabling-push-notifications-with-github-mobile)."{% endif %} {% note %} -**Observação:** as notificações por email e da Web{% ifversion not ghae %}/do {% data variables.product.prodname_mobile %}{% endif %} são: +**Note:** The email and web{% ifversion not ghae %}/{% data variables.product.prodname_mobile %}{% endif %} notifications are: -- _por repositório_, quando o {% data variables.product.prodname_dependabot %} está habilitado no repositório ou quando é feito commit de um novo arquivo de manifesto no repositório. +- _per repository_ when {% data variables.product.prodname_dependabot %} is enabled on the repository, or when a new manifest file is committed to the repository. -- _por organização_, quando uma nova vulnerabilidade é descoberta. +- _per organization_ when a new vulnerability is discovered. {% endnote %} -Você pode personalizar a maneira como recebe notificações sobre os {% data variables.product.prodname_dependabot_alerts %}. Por exemplo, você pode receber um email de resumo semanal de alertas para até dez dos seus repositórios usando as opções **Enviar um email de resumo das vulnerabilidades** e **Resumo de email de segurança semanal**. +{% ifversion update-notification-settings-22 %} +You can customize the way you are notified about {% data variables.product.prodname_dependabot_alerts %}. For example, you can receive a daily or weekly digest email summarizing alerts for up to 10 of your repositories using the **Email weekly digest** option. +{% else %} +You can customize the way you are notified about {% data variables.product.prodname_dependabot_alerts %}. For example, you can receive a weekly digest email summarizing alerts for up to 10 of your repositories using the **Email a digest summary of vulnerabilities** and **Weekly security email digest** options.{% endif %} From 6d4a52e804b45d9de86e3c85bf08f18d43260e9b Mon Sep 17 00:00:00 2001 From: docubot <67483024+docubot@users.noreply.github.com> Date: Tue, 4 Oct 2022 10:55:43 -0700 Subject: [PATCH 15/15] New translation batch for cn (#31422) --- translations/log/msft-cn-resets.csv | 16 +- .../viewing-your-subscriptions.md | 62 +++--- .../configuring-notifications.md | 83 ++++++-- .../managing-your-profile-readme.md | 84 ++++---- .../autoscaling-with-self-hosted-runners.md | 2 +- ...-hosted-runner-application-as-a-service.md | 2 +- .../actions/learn-github-actions/contexts.md | 2 +- .../understanding-github-actions.md | 8 +- .../re-running-workflows-and-jobs.md | 12 +- .../zh-CN/content/actions/quickstart.md | 16 +- .../security-guides/encrypted-secrets.md | 16 +- .../using-larger-runners.md | 4 +- .../configuring-rate-limits.md | 2 +- .../site-admin-dashboard.md | 2 +- .../upgrading-github-enterprise-server.md | 8 +- ...aming-the-audit-log-for-your-enterprise.md | 6 - ...g-the-audit-log-api-for-your-enterprise.md | 4 +- ...ng-a-new-ssh-key-to-your-github-account.md | 4 +- ...-ssh-key-and-adding-it-to-the-ssh-agent.md | 34 ++-- .../signing-commits.md | 2 +- .../signing-tags.md | 4 +- ...ing-notifications-for-dependabot-alerts.md | 51 ++--- ...ion-options-for-the-dependabot.yml-file.md | 6 + .../creating-a-codespace.md | 6 +- .../forwarding-ports-in-your-codespace.md | 4 +- .../renaming-a-codespace.md | 2 +- ...using-github-codespaces-with-github-cli.md | 24 +-- .../zh-CN/content/codespaces/overview.md | 2 + ...-guidelines-for-repository-contributors.md | 69 +++---- .../making-changes-in-a-branch/index.md | 10 +- .../authenticating-with-github-apps.md | 2 +- .../overview/managing-deploy-keys.md | 191 +++++++++--------- .../webhooks/webhook-events-and-payloads.md | 92 ++++----- .../github-extensions-and-integrations.md | 52 ++--- .../associating-text-editors-with-git.md | 87 +++----- .../zh-CN/content/get-started/index.md | 1 + .../quickstart/communicating-on-github.md | 170 ++++++++-------- .../git-and-github-learning-resources.md | 50 ++--- .../about-writing-and-formatting-on-github.md | 44 ++-- .../basic-writing-and-formatting-syntax.md | 11 +- .../index.md | 1 + .../using-the-api-to-manage-projects.md | 106 +++++----- ...-and-searching-issues-and-pull-requests.md | 2 +- .../working-with-the-npm-registry.md | 34 ++-- ...ustom-domain-for-your-github-pages-site.md | 40 ++-- ...a-merge-conflict-using-the-command-line.md | 70 +++---- .../merging-a-pull-request.md | 2 +- .../managing-releases-in-a-repository.md | 4 +- .../working-with-non-code-files.md | 2 +- .../getting-started-with-the-rest-api.md | 16 +- .../overview/other-authentication-methods.md | 12 +- .../overview/resources-in-the-rest-api.md | 6 +- .../searching-issues-and-pull-requests.md | 2 +- .../actions/link-to-example-library.md | 9 - .../creating-a-codespace-in-vscode.md | 2 + ...nerable-dependency-notification-options.md | 31 ++- 56 files changed, 778 insertions(+), 808 deletions(-) delete mode 100644 translations/zh-CN/data/reusables/actions/link-to-example-library.md diff --git a/translations/log/msft-cn-resets.csv b/translations/log/msft-cn-resets.csv index 7cc29093cd..d3dbd31476 100644 --- a/translations/log/msft-cn-resets.csv +++ b/translations/log/msft-cn-resets.csv @@ -174,6 +174,7 @@ translations/zh-CN/content/site-policy/github-terms/github-community-forum-code- translations/zh-CN/content/sponsors/receiving-sponsorships-through-github-sponsors/setting-up-github-sponsors-for-your-user-account.md,file deleted because it no longer exists in main translations/zh-CN/data/glossaries/internal.yml,file deleted because it no longer exists in main translations/zh-CN/data/graphql/ghes-3.1/graphql_previews.enterprise.yml,file deleted because it no longer exists in main +translations/zh-CN/data/reusables/actions/link-to-example-library.md,file deleted because it no longer exists in main translations/zh-CN/data/reusables/actions/self-hosted-runner-configure-runner-group.md,file deleted because it no longer exists in main translations/zh-CN/data/reusables/actions/self-hosted-runner-groups-navigate-to-repo-org-enterprise.md,file deleted because it no longer exists in main translations/zh-CN/data/reusables/codespaces/about-billing-for-codespaces.md,file deleted because it no longer exists in main @@ -228,8 +229,10 @@ translations/zh-CN/data/reusables/rest-reference/webhooks/repos.md,file deleted translations/zh-CN/data/reusables/security-center/beta.md,file deleted because it no longer exists in main translations/zh-CN/data/reusables/server-statistics/release-phase.md,file deleted because it no longer exists in main translations/zh-CN/content/account-and-profile/managing-subscriptions-and-notifications-on-github/managing-subscriptions-for-activity-on-github/managing-your-subscriptions.md,rendering error +translations/zh-CN/content/account-and-profile/managing-subscriptions-and-notifications-on-github/managing-subscriptions-for-activity-on-github/viewing-your-subscriptions.md,broken liquid tags translations/zh-CN/content/account-and-profile/managing-subscriptions-and-notifications-on-github/setting-up-notifications/configuring-notifications.md,rendering error translations/zh-CN/content/account-and-profile/setting-up-and-managing-your-github-profile/customizing-your-profile/about-your-organizations-profile.md,rendering error +translations/zh-CN/content/account-and-profile/setting-up-and-managing-your-github-profile/customizing-your-profile/managing-your-profile-readme.md,broken liquid tags translations/zh-CN/content/account-and-profile/setting-up-and-managing-your-github-profile/customizing-your-profile/setting-your-profile-to-private.md,broken liquid tags translations/zh-CN/content/account-and-profile/setting-up-and-managing-your-github-profile/managing-contribution-settings-on-your-profile/showing-your-private-contributions-and-achievements-on-your-profile.md,rendering error translations/zh-CN/content/account-and-profile/setting-up-and-managing-your-personal-account-on-github/index.md,broken liquid tags @@ -290,7 +293,7 @@ translations/zh-CN/content/admin/configuration/configuring-your-enterprise/confi translations/zh-CN/content/admin/configuration/configuring-your-enterprise/configuring-rate-limits.md,rendering error translations/zh-CN/content/admin/configuration/configuring-your-enterprise/restricting-network-traffic-to-your-enterprise.md,broken liquid tags translations/zh-CN/content/admin/configuration/configuring-your-enterprise/site-admin-dashboard.md,broken liquid tags -translations/zh-CN/content/admin/enterprise-management/updating-the-virtual-machine-and-physical-resources/upgrading-github-enterprise-server.md,broken liquid tags +translations/zh-CN/content/admin/enterprise-management/updating-the-virtual-machine-and-physical-resources/upgrading-github-enterprise-server.md,rendering error translations/zh-CN/content/admin/github-actions/getting-started-with-github-actions-for-your-enterprise/about-github-actions-for-enterprises.md,rendering error translations/zh-CN/content/admin/github-actions/getting-started-with-github-actions-for-your-enterprise/getting-started-with-self-hosted-runners-for-your-enterprise.md,rendering error translations/zh-CN/content/admin/github-actions/getting-started-with-github-actions-for-your-enterprise/introducing-github-actions-to-your-enterprise.md,rendering error @@ -350,6 +353,7 @@ translations/zh-CN/content/code-security/code-scanning/using-codeql-code-scannin translations/zh-CN/content/code-security/code-scanning/using-codeql-code-scanning-with-your-existing-ci-system/configuring-codeql-cli-in-your-ci-system.md,rendering error 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,broken liquid tags translations/zh-CN/content/code-security/dependabot/dependabot-alerts/browsing-security-advisories-in-the-github-advisory-database.md,rendering error +translations/zh-CN/content/code-security/dependabot/dependabot-alerts/configuring-notifications-for-dependabot-alerts.md,broken liquid tags translations/zh-CN/content/code-security/dependabot/dependabot-alerts/editing-security-advisories-in-the-github-advisory-database.md,broken liquid tags translations/zh-CN/content/code-security/dependabot/dependabot-alerts/viewing-and-updating-dependabot-alerts.md,rendering error translations/zh-CN/content/code-security/dependabot/dependabot-security-updates/about-dependabot-security-updates.md,rendering error @@ -427,25 +431,33 @@ translations/zh-CN/content/codespaces/troubleshooting/troubleshooting-prebuilds. translations/zh-CN/content/codespaces/troubleshooting/troubleshooting-your-connection-to-github-codespaces.md,broken liquid tags translations/zh-CN/content/codespaces/troubleshooting/working-with-support-for-github-codespaces.md,broken liquid tags translations/zh-CN/content/communities/documenting-your-project-with-wikis/editing-wiki-content.md,rendering error +translations/zh-CN/content/communities/setting-up-your-project-for-healthy-contributions/setting-guidelines-for-repository-contributors.md,broken liquid tags translations/zh-CN/content/copilot/getting-started-with-github-copilot/getting-started-with-github-copilot-in-a-jetbrains-ide.md,broken liquid tags translations/zh-CN/content/copilot/getting-started-with-github-copilot/getting-started-with-github-copilot-in-visual-studio-code.md,broken liquid tags translations/zh-CN/content/copilot/getting-started-with-github-copilot/getting-started-with-github-copilot-in-visual-studio.md,broken liquid tags translations/zh-CN/content/copilot/quickstart.md,broken liquid tags +translations/zh-CN/content/desktop/contributing-and-collaborating-using-github-desktop/making-changes-in-a-branch/index.md,broken liquid tags translations/zh-CN/content/developers/apps/building-github-apps/authenticating-with-github-apps.md,rendering error translations/zh-CN/content/developers/apps/building-github-apps/identifying-and-authorizing-users-for-github-apps.md,rendering error translations/zh-CN/content/developers/apps/building-github-apps/managing-allowed-ip-addresses-for-a-github-app.md,rendering error translations/zh-CN/content/developers/apps/getting-started-with-apps/differences-between-github-apps-and-oauth-apps.md,broken liquid tags translations/zh-CN/content/developers/overview/about-githubs-apis.md,broken liquid tags +translations/zh-CN/content/developers/overview/managing-deploy-keys.md,broken liquid tags translations/zh-CN/content/developers/webhooks-and-events/webhooks/webhook-events-and-payloads.md,rendering error translations/zh-CN/content/discussions/collaborating-with-your-community-using-discussions/collaborating-with-maintainers-using-discussions.md,broken liquid tags translations/zh-CN/content/discussions/collaborating-with-your-community-using-discussions/participating-in-a-discussion.md,broken liquid tags translations/zh-CN/content/education/manage-coursework-with-github-classroom/integrate-github-classroom-with-an-ide/integrate-github-classroom-with-an-ide.md,broken liquid tags translations/zh-CN/content/education/manage-coursework-with-github-classroom/integrate-github-classroom-with-an-ide/using-github-codespaces-with-github-classroom.md,broken liquid tags translations/zh-CN/content/education/manage-coursework-with-github-classroom/teach-with-github-classroom/connect-a-learning-management-system-to-github-classroom.md,broken liquid tags +translations/zh-CN/content/get-started/customizing-your-github-workflow/exploring-integrations/github-extensions-and-integrations.md,broken liquid tags translations/zh-CN/content/get-started/exploring-projects-on-github/following-organizations.md,broken liquid tags +translations/zh-CN/content/get-started/getting-started-with-git/associating-text-editors-with-git.md,broken liquid tags translations/zh-CN/content/get-started/learning-about-github/about-github-advanced-security.md,rendering error translations/zh-CN/content/get-started/quickstart/be-social.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/using-github/keyboard-shortcuts.md,rendering error +translations/zh-CN/content/get-started/writing-on-github/getting-started-with-writing-and-formatting-on-github/about-writing-and-formatting-on-github.md,broken liquid tags translations/zh-CN/content/get-started/writing-on-github/getting-started-with-writing-and-formatting-on-github/basic-writing-and-formatting-syntax.md,rendering error translations/zh-CN/content/get-started/writing-on-github/working-with-advanced-formatting/attaching-files.md,broken liquid tags translations/zh-CN/content/get-started/writing-on-github/working-with-advanced-formatting/writing-mathematical-expressions.md,rendering error @@ -484,6 +496,7 @@ translations/zh-CN/content/packages/working-with-a-github-packages-registry/work translations/zh-CN/content/packages/working-with-a-github-packages-registry/working-with-the-npm-registry.md,rendering error translations/zh-CN/content/pages/configuring-a-custom-domain-for-your-github-pages-site/managing-a-custom-domain-for-your-github-pages-site.md,rendering error translations/zh-CN/content/pages/getting-started-with-github-pages/creating-a-github-pages-site.md,rendering error +translations/zh-CN/content/pull-requests/collaborating-with-pull-requests/addressing-merge-conflicts/resolving-a-merge-conflict-using-the-command-line.md,broken liquid tags translations/zh-CN/content/pull-requests/collaborating-with-pull-requests/incorporating-changes-from-a-pull-request/merging-a-pull-request.md,broken liquid tags translations/zh-CN/content/pull-requests/collaborating-with-pull-requests/proposing-changes-to-your-work-with-pull-requests/creating-and-deleting-branches-within-your-repository.md,rendering error translations/zh-CN/content/pull-requests/collaborating-with-pull-requests/proposing-changes-to-your-work-with-pull-requests/keeping-your-pull-request-in-sync-with-the-base-branch.md,rendering error @@ -622,6 +635,7 @@ translations/zh-CN/data/reusables/gated-features/secret-scanning.md,rendering er translations/zh-CN/data/reusables/identity-and-permissions/ip-allow-lists-enable.md,broken liquid tags translations/zh-CN/data/reusables/notifications-v2/custom-notification-types.md,broken liquid tags translations/zh-CN/data/reusables/notifications/shared_state.md,rendering error +translations/zh-CN/data/reusables/notifications/vulnerable-dependency-notification-options.md,broken liquid tags translations/zh-CN/data/reusables/organizations/billing_plans.md,rendering error translations/zh-CN/data/reusables/organizations/github-apps-settings-sidebar.md,rendering error translations/zh-CN/data/reusables/organizations/member-privileges.md,rendering error diff --git a/translations/zh-CN/content/account-and-profile/managing-subscriptions-and-notifications-on-github/managing-subscriptions-for-activity-on-github/viewing-your-subscriptions.md b/translations/zh-CN/content/account-and-profile/managing-subscriptions-and-notifications-on-github/managing-subscriptions-for-activity-on-github/viewing-your-subscriptions.md index 60de88d807..8d2d85b673 100644 --- a/translations/zh-CN/content/account-and-profile/managing-subscriptions-and-notifications-on-github/managing-subscriptions-for-activity-on-github/viewing-your-subscriptions.md +++ b/translations/zh-CN/content/account-and-profile/managing-subscriptions-and-notifications-on-github/managing-subscriptions-for-activity-on-github/viewing-your-subscriptions.md @@ -1,6 +1,6 @@ --- -title: 查看订阅 -intro: 为了解通知来自何处以及通知量,建议定期查看订阅和关注的仓库。 +title: Viewing your subscriptions +intro: 'To understand where your notifications are coming from and your notifications volume, we recommend reviewing your subscriptions and watched repositories regularly.' redirect_from: - /articles/subscribing-to-conversations - /articles/unsubscribing-from-conversations @@ -24,63 +24,61 @@ versions: topics: - Notifications shortTitle: View subscriptions -ms.openlocfilehash: 34faad79004d34f5beb14e8992b9aff4e6a3ab39 -ms.sourcegitcommit: fcf3546b7cc208155fb8acdf68b81be28afc3d2d -ms.translationtype: HT -ms.contentlocale: zh-CN -ms.lasthandoff: 09/10/2022 -ms.locfileid: '145099202' --- -接收 {% data variables.product.product_name %} 上长期活动的订阅通知。 有很多原因可能导致您订阅对话。 有关详细信息,请参阅“[关于通知](/github/managing-subscriptions-and-notifications-on-github/about-notifications#notifications-and-subscriptions)”。 +You receive notifications for your subscriptions of ongoing activity on {% data variables.product.product_name %}. There are many reasons you can be subscribed to a conversation. For more information, see "[About notifications](/github/managing-subscriptions-and-notifications-on-github/about-notifications#notifications-and-subscriptions)." -我们建议将审核订阅和取消订阅作为健康通知工作流程的一部分。 有关取消订阅的选项的详细信息,请参阅“[管理订阅](/github/managing-subscriptions-and-notifications-on-github/managing-your-subscriptions)”。 +We recommend auditing and unsubscribing from your subscriptions as a part of a healthy notifications workflow. For more information about your options for unsubscribing, see "[Managing subscriptions](/github/managing-subscriptions-and-notifications-on-github/managing-your-subscriptions)." -## 诊断收到太多通知的原因 +## Diagnosing why you receive too many notifications -当收件箱中要管理的通知过多时,请考虑您是否订阅过多,或者如何更改通知设置以减少订阅数量和接收的通知类型。 例如,您可以考虑禁用在加入团队或仓库时自动关注所有仓库和所有团队讨论的设置。 +When your inbox has too many notifications to manage, consider whether you have oversubscribed or how you can change your notification settings to reduce the subscriptions you have and the types of notifications you're receiving. For example, you may consider disabling the settings to automatically watch all repositories and all team discussions whenever you've joined a team or repository. -![自动关注](/assets/images/help/notifications-v2/automatic-watching-example.png) +{% ifversion update-notification-settings-22 %} +![Screenshot of automatic watching options for teams and repositories](/assets/images/automatically-watch-repos-and-teams.png) +{% else %} +![Screenshot of automatic watching options for teams and repositories](/assets/images/help/notifications-v2/automatic-watching-example.png){% endif %} -有关详细信息,请参阅“[配置通知](/github/managing-subscriptions-and-notifications-on-github/configuring-notifications#automatic-watching)”。 +For more information, see "[Configuring notifications](/github/managing-subscriptions-and-notifications-on-github/configuring-notifications#automatic-watching)." -若要查看存储库订阅概述,请参阅“[查看正在关注的存储库](#reviewing-repositories-that-youre-watching)”。 {% tip %} +To see an overview of your repository subscriptions, see "[Reviewing repositories that you're watching](#reviewing-repositories-that-youre-watching)." +{% tip %} -**提示:** 你可以在 [关注页面](https://github.com/watching)或 {% data variables.product.product_name %} 上的任何存储库页面,使用“关注/取消关注”下拉列表中的“自定义”选项选择要通知的事件类型 。 有关详细信息,请参阅“[配置通知](/github/managing-subscriptions-and-notifications-on-github/configuring-notifications#configuring-your-watch-settings-for-an-individual-repository)”。 +**Tip:** You can select the types of event to be notified of by using the **Custom** option of the **Watch/Unwatch** dropdown list in your [watching page](https://github.com/watching) or on any repository page on {% data variables.product.product_name %}. For more information, see "[Configuring notifications](/github/managing-subscriptions-and-notifications-on-github/configuring-notifications#configuring-your-watch-settings-for-an-individual-repository)." {% endtip %} -许多人忘记了他们过去选择关注的仓库。 从“Watched repositories(已关注仓库)”页面,您可以快速取消关注仓库。 有关取消订阅的方式的详细信息,请参阅 {% data variables.product.prodname_blog %} 上的“[取消关注建议](https://github.blog/changelog/2020-11-10-unwatch-recommendations/)”和“[管理订阅](/github/managing-subscriptions-and-notifications-on-github/managing-your-subscriptions)”。 您也可以创建分类工作流程来帮助整理收到的通知。 有关分类工作流的指导,请参阅“[自定义对通知进行分类的工作流](/github/managing-subscriptions-and-notifications-on-github/customizing-a-workflow-for-triaging-your-notifications)”。 +Many people forget about repositories that they've chosen to watch in the past. From the "Watched repositories" page you can quickly unwatch repositories. For more information on ways to unsubscribe, see "[Unwatch recommendations](https://github.blog/changelog/2020-11-10-unwatch-recommendations/)" on {% data variables.product.prodname_blog %} and "[Managing your subscriptions](/github/managing-subscriptions-and-notifications-on-github/managing-your-subscriptions)." You can also create a triage workflow to help with the notifications you receive. For guidance on triage workflows, see "[Customizing a workflow for triaging your notifications](/github/managing-subscriptions-and-notifications-on-github/customizing-a-workflow-for-triaging-your-notifications)." -## 查看所有订阅 +## Reviewing all of your subscriptions {% data reusables.notifications.access_notifications %} -1. 在左侧边栏中你接收其通知的存储库列表下,在“管理通知”下拉菜单中单击“订阅”。 - ![“管理通知”下拉菜单选项](/assets/images/help/notifications-v2/manage-notifications-options.png) +1. In the left sidebar, under the list of repositories that you have notifications from, use the "Manage notifications" drop-down to click **Subscriptions**. + ![Manage notifications drop down menu options](/assets/images/help/notifications-v2/manage-notifications-options.png) -2. 使用过滤器和排序来缩小订阅列表,并开始取消订阅您不想再接收其通知的对话。 +2. Use the filters and sort to narrow the list of subscriptions and begin unsubscribing to conversations you no longer want to receive notifications for. - ![订阅页面](/assets/images/help/notifications-v2/all-subscriptions.png) + ![Subscriptions page](/assets/images/help/notifications-v2/all-subscriptions.png) {% tip %} -**提示:** -- 要查看您可能忘记了的订阅,请按“least recently subscribed(最近最少订阅)”进行排序。 +**Tips:** +- To review subscriptions you may have forgotten about, sort by "least recently subscribed." -- 要查看您仍然可以接收其通知的仓库列表,请查看“filter by repository(按仓库过滤)”下拉菜单中的仓库列表。 +- To review a list of repositories that you can still receive notifications for, see the repository list in the "filter by repository" drop-down menu. {% endtip %} -## 查看您目前关注的仓库 +## Reviewing repositories that you're watching -1. 在左侧边栏的存储库列表下,在“管理通知”下拉菜单中单击“已关注的存储库”。 - ![“管理通知”下拉菜单选项](/assets/images/help/notifications-v2/manage-notifications-options.png) -2. 评估您正在关注的仓库,确定它们更新是否仍然相关和有用。 关注某仓库后,您将收到该仓库所有对话的通知。 -![已关注的通知页面](/assets/images/help/notifications-v2/watched-notifications-custom.png) +1. In the left sidebar, under the list of repositories, use the "Manage notifications" drop-down menu and click **Watched repositories**. + ![Manage notifications drop down menu options](/assets/images/help/notifications-v2/manage-notifications-options.png) +2. Evaluate the repositories that you are watching and decide if their updates are still relevant and helpful. When you watch a repository, you will be notified of all conversations for that repository. +![Watched notifications page](/assets/images/help/notifications-v2/watched-notifications-custom.png) {% tip %} - **提示:** 不要关注存储库,而是考虑仅当 {% data reusables.notifications-v2.custom-notification-types %}(如已为存储库启用)或这些选项的任意组合有更新时接收通知,或者完全取消关注存储库。 + **Tip:** Instead of watching a repository, consider only receiving notifications when there are updates to {% data reusables.notifications-v2.custom-notification-types %} (if enabled for the repository), or any combination of these options, or completely unwatching a repository. - 取消关注存储库后,当你被 @mentioned 或参与帖子时仍然会收到通知。 当配置为接收某些事件类型的通知时,仅当存储库中有这些事件类型的更新、你参与了线程或者你或你所在团队被 @mentioned 时才会收到通知。 + When you unwatch a repository, you can still be notified when you're @mentioned or participating in a thread. When you configure to receive notifications for certain event types, you're only notified when there are updates to these event types in the repository, you're participating in a thread, or you or a team you're on is @mentioned. {% endtip %} diff --git a/translations/zh-CN/content/account-and-profile/managing-subscriptions-and-notifications-on-github/setting-up-notifications/configuring-notifications.md b/translations/zh-CN/content/account-and-profile/managing-subscriptions-and-notifications-on-github/setting-up-notifications/configuring-notifications.md index 35d44edfe8..f0ec8c75e9 100644 --- a/translations/zh-CN/content/account-and-profile/managing-subscriptions-and-notifications-on-github/setting-up-notifications/configuring-notifications.md +++ b/translations/zh-CN/content/account-and-profile/managing-subscriptions-and-notifications-on-github/setting-up-notifications/configuring-notifications.md @@ -79,15 +79,27 @@ You can customize notifications for a repository. For example, you can choose to ### Participating in conversations Anytime you comment in a conversation or when someone @mentions your username, you are _participating_ in a conversation. By default, you are automatically subscribed to a conversation when you participate in it. You can unsubscribe from a conversation you've participated in manually by clicking **Unsubscribe** on the issue or pull request or through the **Unsubscribe** option in the notifications inbox. -For conversations you're watching or participating in, you can choose whether you want to receive notifications by email or through the notifications inbox on {% data variables.product.product_location %}{% ifversion fpt or ghes or ghec %} and {% data variables.product.prodname_mobile %}{% endif %}. +{% ifversion update-notification-settings-22 %}For conversations you're watching or participating in, you can choose whether you want to receive notifications on {% data variables.product.company_short %} or by email in your notification settings. For more information, see "[Choosing your notification settings](/account-and-profile/managing-subscriptions-and-notifications-on-github/setting-up-notifications/configuring-notifications#choosing-your-notification-settings)." + +![Animated GIF of participating and watching subscriptions options](/assets/images/help/notifications/selecting-participating-notifications.gif) + +{% else %} + +For conversations you're watching or participating in, you can choose whether you want to receive notifications by email or through the notifications inbox on {% data variables.product.product_location %}{% ifversion ghes %} and {% data variables.product.prodname_mobile %}{% endif %}. For more information, see "[Choosing your notification settings](/account-and-profile/managing-subscriptions-and-notifications-on-github/setting-up-notifications/configuring-notifications#choosing-your-notification-settings)." + +![Screenshot of participating and watching notifications options](/assets/images/help/notifications-v2/participating-and-watching-options.png){% endif %} + -![Participating and watching notifications options](/assets/images/help/notifications-v2/participating-and-watching-options.png) For example: - If you don't want notifications to be sent to your email, unselect **email** for participating and watching notifications. - If you want to receive notifications by email when you've participated in a conversation, then you can select **email** under "Participating". -If you do not enable watching or participating notifications for web{% ifversion fpt or ghes or ghec %} and mobile{% endif %}, then your notifications inbox will not have any updates. +{% ifversion update-notification-settings-22 %}If you do not enable "Notify me: On GitHub" for watching or participating notifications, then your notifications inbox will not have any updates. + +{% else %} + +If you do not enable watching or participating notifications for web{% ifversion ghes %} and mobile{% endif %}, then your notifications inbox will not have any updates.{% endif %} ## Customizing your email notifications @@ -146,11 +158,16 @@ Email notifications from {% data variables.product.product_location %} contain t ## Automatic watching -By default, anytime you gain access to a new repository, you will automatically begin watching that repository. Anytime you join a new team, you will automatically be subscribed to updates and receive notifications when that team is @mentioned. If you don't want to automatically be subscribed, you can unselect the automatic watching options. +By default, anytime you gain access to a new repository, you will automatically begin watching that repository. Anytime you join a new team, you will automatically be subscribed to updates and receive notifications when that team is @mentioned. If you don't want to automatically be subscribed, you can unselect the automatic watching options in your notification settings. - ![Automatic watching options](/assets/images/help/notifications-v2/automatic-watching-options.png) +{% ifversion update-notification-settings-22 %} +![Automatic watching options for teams and repositories](/assets/images/automatically-watch-repos-and-teams.png) +{% else %} +![Automatic watching options](/assets/images/help/notifications-v2/automatic-watching-options.png){% endif %} -If "Automatically watch repositories" is disabled, then you will not automatically watch your own repositories. You must navigate to your repository page and choose the watch option. +If "Automatically watch repositories" is disabled, then you will not automatically watch your own repositories. You must navigate to your repository page and choose the watch option. + +For more information, see "[Choosing your notification settings](/account-and-profile/managing-subscriptions-and-notifications-on-github/setting-up-notifications/configuring-notifications#choosing-your-notification-settings)." ## Configuring your watch settings for an individual repository @@ -172,9 +189,17 @@ If you belong to an organization, you can choose the email account you want noti {% data reusables.notifications.access_notifications %} {% data reusables.notifications-v2.manage-notifications %} + 3. Under "Default notification email", select the email address you'd like notifications sent to. -![Default notification email address drop-down](/assets/images/help/notifications/notifications_primary_email_for_orgs.png) -4. Click **Save**. +{% ifversion update-notification-settings-22 %} + + ![Screenshot of the default notification email address setting](/assets/images/help/notifications/default-email-address-emphasized.png) + +{% else %} + + ![Screenshot of the default notification email address dropdown](/assets/images/help/notifications/notifications_primary_email_for_orgs.png){% endif %} +{% ifversion ghes or ghae %} +4. Click **Save**.{% endif %} ### Customizing email routes per organization @@ -182,12 +207,35 @@ If you are a member of more than one organization, you can configure each one to {% data reusables.notifications.access_notifications %} {% data reusables.notifications-v2.manage-notifications %} -3. Under "Custom routing," find your organization's name in the list. -![List of organizations and email addresses](/assets/images/help/notifications/notifications_org_emails.png) +{% ifversion update-notification-settings-22 %} +3. Under "Default notifications email", click **Custom routing**. + + ![Screenshot of default notifications email settings with custom routing button emphasised](/assets/images/help/notifications/custom-router-emphasized.png) + +4. Click **Add new route**. + + ![Screenshot of custom routing settings with add new route button emphasised](/assets/images/help/notifications/add-new-route-emphasized.png) + +5. Click **Pick organization**, then select the organization you want to customize from the dropdown. + + ![Screenshot of dropdown to pick organization](/assets/images/help/notifications/organization-dropdown-custom-routing-emphasis.png) + +6. Select one of your verified email addresses, then click **Save**. + + ![Screenshot of custom routing page with save button](/assets/images/help/notifications/select-email-address-custom-routing-and-save.png) + +{% else %} +3. Under "Custom routing," find your organization's name in the list. + + ![List of organizations and email addresses](/assets/images/help/notifications/notifications_org_emails.png) + 4. Click **Edit** next to the email address you want to change. -![Editing an organization's email addresses](/assets/images/help/notifications/notifications_edit_org_emails.png) + + ![Editing an organization's email addresses](/assets/images/help/notifications/notifications_edit_org_emails.png) + 5. Select one of your verified email addresses, then click **Save**. -![Switching your per-org email address](/assets/images/help/notifications/notifications_switching_org_email.gif) + + ![Switching your per-org email address](/assets/images/help/notifications/notifications_switching_org_email.gif){% endif %} ## {% data variables.product.prodname_dependabot_alerts %} notification options @@ -197,14 +245,17 @@ If you are a member of more than one organization, you can configure each one to For more information about the notification delivery methods available to you, and advice on optimizing your notifications for {% data variables.product.prodname_dependabot_alerts %}, see "[Configuring notifications for {% data variables.product.prodname_dependabot_alerts %}](/code-security/dependabot/dependabot-alerts/configuring-notifications-for-dependabot-alerts)." -{% ifversion fpt or ghes or ghec %} +{% ifversion update-notification-settings-22 or ghes %} ## {% data variables.product.prodname_actions %} notification options -Choose how you want to receive workflow run updates for repositories that you are watching that are set up with {% data variables.product.prodname_actions %}. You can also choose to only receive notifications for failed workflow runs. +Choose how you want to receive workflow run updates for repositories that you are watching that are set up with {% data variables.product.prodname_actions %}. You can also choose to only receive notifications for failed workflow runs.{% endif %} - ![Notification options for {% data variables.product.prodname_actions %}](/assets/images/help/notifications-v2/github-actions-notification-options.png) +{% ifversion update-notification-settings-22 %} +![Animated GIF of notification options for {% data variables.product.prodname_actions %}](/assets/images/help/notifications/github-actions-customize-notifications.gif){% endif %} + +{% ifversion ghes %} + ![Screenshot of the notification options for {% data variables.product.prodname_actions %}](/assets/images/help/notifications-v2/github-actions-notification-options.png){% endif %} -{% endif %} {% ifversion fpt or ghec or ghes > 3.3 or ghae > 3.3 %} ## Organization alerts notification options diff --git a/translations/zh-CN/content/account-and-profile/setting-up-and-managing-your-github-profile/customizing-your-profile/managing-your-profile-readme.md b/translations/zh-CN/content/account-and-profile/setting-up-and-managing-your-github-profile/customizing-your-profile/managing-your-profile-readme.md index 1b6126e3d2..c0511693a3 100644 --- a/translations/zh-CN/content/account-and-profile/setting-up-and-managing-your-github-profile/customizing-your-profile/managing-your-profile-readme.md +++ b/translations/zh-CN/content/account-and-profile/setting-up-and-managing-your-github-profile/customizing-your-profile/managing-your-profile-readme.md @@ -1,6 +1,6 @@ --- -title: 管理个人资料自述文件 -intro: '可以向您的 {% data variables.product.prodname_dotcom %} 个人资料添加自述文件以向其他人介绍自己。' +title: Managing your profile README +intro: 'You can add a README to your {% data variables.product.prodname_dotcom %} profile to tell other people about yourself.' versions: fpt: '*' ghes: '*' @@ -11,71 +11,67 @@ redirect_from: - /github/setting-up-and-managing-your-github-profile/managing-your-profile-readme - /github/setting-up-and-managing-your-github-profile/customizing-your-profile/managing-your-profile-readme shortTitle: Your profile README -ms.openlocfilehash: 587bcea1e1a0f96aad8882b41196afcc6e433363 -ms.sourcegitcommit: 47bd0e48c7dba1dde49baff60bc1eddc91ab10c5 -ms.translationtype: HT -ms.contentlocale: zh-CN -ms.lasthandoff: 09/05/2022 -ms.locfileid: '147578898' --- -## 关于您的个人资料自述文件 +## About your profile README -你可以通过创建个人资料自述文件,在 {% data variables.product.product_location %} 上与社区分享有关你自己的信息。 {% data variables.product.prodname_dotcom %} 在个人资料页面的顶部显示您的个人资料自述文件。 +You can share information about yourself with the community on {% data variables.product.product_location %} by creating a profile README. {% data variables.product.prodname_dotcom %} shows your profile README at the top of your profile page. -您决定在个人资料自述文件中包含哪些信息,因此您可以完全控制如何在 {% data variables.product.prodname_dotcom %} 上展示自己。 以下是访客可能在您的个人资料自述文件中找到感兴趣、有趣或有用信息的一些示例。 +You decide what information to include in your profile README, so you have full control over how you present yourself on {% data variables.product.prodname_dotcom %}. Here are some examples of information that visitors may find interesting, fun, or useful in your profile README. -- “About me(关于我)”部分介绍您的工作和兴趣。 -- 您引以为豪的贡献以及这些贡献的背景信息 -- 在您参与的社区获得帮助的指南 +- An "About me" section that describes your work and interests +- Contributions you're proud of, and context about those contributions +- Guidance for getting help in communities where you're involved -![个人资料上显示的个人资料自述文件](/assets/images/help/repository/profile-with-readme.png) +![Profile README file displayed on profile](/assets/images/help/repository/profile-with-readme.png) -您可以使用 {% data variables.product.company_short %} Flavored Markdown 在个人资料自述文件中设置文本格式和包含表情符号、图像及 GIF。 有关详细信息,请参阅“[在 {% data variables.product.prodname_dotcom %} 上编写和设置格式入门](/github/writing-on-github/getting-started-with-writing-and-formatting-on-github)”。 +You can format text and include emoji, images, and GIFs in your profile README by using {% data variables.product.company_short %} Flavored Markdown. For more information, see "[Getting started with writing and formatting on {% data variables.product.prodname_dotcom %}](/github/writing-on-github/getting-started-with-writing-and-formatting-on-github)." For a hands-on guide to customizing your profile README, see "[Quickstart for writing on {% data variables.product.prodname_dotcom %}](/get-started/writing-on-github/getting-started-with-writing-and-formatting-on-github/quickstart-for-writing-on-github)." -## 先决条件 +## Prerequisites -如果满足以下所有条件,GitHub 将在您的个人资料页面显示您的个人资料自述文件。 +GitHub will display your profile README on your profile page if all of the following are true. -- 您使用与您的 {% data variables.product.prodname_dotcom %} 用户名匹配的名称创建了仓库。 -- 该仓库为公共仓库。 -- 仓库的根目录中包含名为 README.md 的文件。 -- README.md 文件包含任何内容。 +- You've created a repository with a name that matches your {% data variables.product.prodname_dotcom %} username. +- The repository is public. +- The repository contains a file named README.md in its root. +- The README.md file contains any content. {% note %} -注意:如果你在 2020 年 7 月之前创建了一个与你的用户名同名的公共存储库,{% data variables.product.prodname_dotcom %} 将不会自动在你的个人资料中显示该存储库的自述文件。 可以通过转到 {% data variables.product.prodname_dotcom_the_website %} 上的存储库并单击“共享到配置文件”,手动将存储库的自述文件共享到配置文件。 +**Note**: If you created a public repository with the same name as your username before July 2020, {% data variables.product.prodname_dotcom %} won't automatically show the repository's README on your profile. You can manually share the repository's README to your profile by going to the repository on {% data variables.product.prodname_dotcom_the_website %} and clicking **Share to profile**. -![将自述文件分享到个人资料的按钮](/assets/images/help/repository/share-to-profile.png) +![Button to share README to profile](/assets/images/help/repository/share-to-profile.png) {% endnote %} -## 添加个人资料自述文件 +## Adding a profile README {% data reusables.repositories.create_new %} -2. 在“Repository name(仓库名称)”下,输入与您的 {% data variables.product.prodname_dotcom %} 用户名匹配的仓库名称。 例如,如果您的用户名是 "octocat",则仓库名称必须为 "octocat"。 - ![与用户名匹配的存储库名称字段](/assets/images/help/repository/repo-username-match.png) -3. 可以选择性地添加存储库的说明。 例如,“My personal repository(我的个人仓库)”。 - ![用于输入存储库说明的字段](/assets/images/help/repository/create-personal-repository-desc.png) -4. 选择“公共”。 - ![用于选择可见性的单选按钮,已选择“公共”](/assets/images/help/repository/create-personal-repository-visibility.png) {% data reusables.repositories.initialize-with-readme %} {% data reusables.repositories.create-repo %} -7. 在右边栏上方,单击“编辑自述文件”。 - ![“编辑自述文件”按钮](/assets/images/help/repository/personal-repository-edit-readme.png) +2. Under "Repository name", type a repository name that matches your {% data variables.product.prodname_dotcom %} username. For example, if your username is "octocat", the repository name must be "octocat". + ![Repository name field which matches username](/assets/images/help/repository/repo-username-match.png) +3. Optionally, add a description of your repository. For example, "My personal repository." + ![Field for entering a repository description](/assets/images/help/repository/create-personal-repository-desc.png) +4. Select **Public**. + ![Radio button to select visibility with public selected](/assets/images/help/repository/create-personal-repository-visibility.png) +{% data reusables.repositories.initialize-with-readme %} +{% data reusables.repositories.create-repo %} +7. Above the right sidebar, click **Edit README**. + ![Button to edit README file](/assets/images/help/repository/personal-repository-edit-readme.png) - 生成的自述文件用模板预先填充,为您创建个人资料自述文件提供一些启发。 - ![带有预填充模板的自述文件](/assets/images/help/repository/personal-repository-readme-template.png) + The generated README file is pre-populated with a template to give you some inspiration for your profile README. + ![README file with pre-populated template](/assets/images/help/repository/personal-repository-readme-template.png) -有关所有可用表情符号及其代码的摘要,请参阅“[表情符号备忘单](https://www.webfx.com/tools/emoji-cheat-sheet/)”。 +For a summary of all the available emojis and their codes, see "[Emoji cheat sheet](https://www.webfx.com/tools/emoji-cheat-sheet/)." -## 删除个人资料自述文件 +## Removing a profile README -如果以下任何一项适用,个人资料自述文件将从您的 {% data variables.product.prodname_dotcom %} 个人资料中被删除: +The profile README is removed from your {% data variables.product.prodname_dotcom %} profile if any of the following apply: -- 自述文件为空或不存在。 -- 该仓库为私有仓库。 -- 仓库名称不再与您的用户名匹配。 +- The README file is empty or doesn't exist. +- The repository is private. +- The repository name no longer matches your username. -您选择的方法取决于您的需求,但如果您不确定,我们建议您将仓库设为私有。 有关如何将存储库设为专用的步骤,请参阅“[更改存储库的可见性](/github/administering-a-repository/setting-repository-visibility#changing-a-repositorys-visibility)”。 +The method you choose depends upon your needs, but if you're unsure, we recommend making your repository private. For steps on how to make your repository private, see "[Changing a repository's visibility](/github/administering-a-repository/setting-repository-visibility#changing-a-repositorys-visibility)." -## 延伸阅读 +## Further reading -- [关于自述文件](/github/creating-cloning-and-archiving-repositories/about-readmes) +- [About READMEs](/github/creating-cloning-and-archiving-repositories/about-readmes) diff --git a/translations/zh-CN/content/actions/hosting-your-own-runners/autoscaling-with-self-hosted-runners.md b/translations/zh-CN/content/actions/hosting-your-own-runners/autoscaling-with-self-hosted-runners.md index 053f0e3d1e..e2894b8fdd 100644 --- a/translations/zh-CN/content/actions/hosting-your-own-runners/autoscaling-with-self-hosted-runners.md +++ b/translations/zh-CN/content/actions/hosting-your-own-runners/autoscaling-with-self-hosted-runners.md @@ -63,7 +63,7 @@ By default, self-hosted runners will automatically perform a software update whe To turn off automatic software updates and install software updates yourself, specify the `--disableupdate` flag when registering your runner using `config.sh`. For example: ```shell -./config.sh --url https://github.com/octo-org --token example-token --disableupdate +./config.sh --url https://github.com/YOUR-ORGANIZATION --token EXAMPLE-TOKEN --disableupdate ``` If you disable automatic updates, you must still update your runner version regularly. New functionality in {% data variables.product.prodname_actions %} requires changes in both the {% data variables.product.prodname_actions %} service _and_ the runner software. The runner may not be able to correctly process jobs that take advantage of new features in {% data variables.product.prodname_actions %} without a software update. diff --git a/translations/zh-CN/content/actions/hosting-your-own-runners/configuring-the-self-hosted-runner-application-as-a-service.md b/translations/zh-CN/content/actions/hosting-your-own-runners/configuring-the-self-hosted-runner-application-as-a-service.md index f95896503d..7463d3c5df 100644 --- a/translations/zh-CN/content/actions/hosting-your-own-runners/configuring-the-self-hosted-runner-application-as-a-service.md +++ b/translations/zh-CN/content/actions/hosting-your-own-runners/configuring-the-self-hosted-runner-application-as-a-service.md @@ -77,7 +77,7 @@ You can manage the runner service in the Windows **Services** application, or yo 1. Alternatively, the command takes an optional `user` argument to install the service as a different user. ```shell - ./svc.sh install USERNAME + ./svc.sh install USERNAME ``` {% endlinux %} diff --git a/translations/zh-CN/content/actions/learn-github-actions/contexts.md b/translations/zh-CN/content/actions/learn-github-actions/contexts.md index a4fdab860d..7a13b15687 100644 --- a/translations/zh-CN/content/actions/learn-github-actions/contexts.md +++ b/translations/zh-CN/content/actions/learn-github-actions/contexts.md @@ -201,7 +201,7 @@ The `github` context contains information about the workflow run and the event t | `github.ref` | `string` | {% data reusables.actions.ref-description %} | {%- ifversion fpt or ghec or ghes > 3.3 or ghae > 3.3 %} | `github.ref_name` | `string` | {% data reusables.actions.ref_name-description %} | -| `github.ref_protected` | `string` | {% data reusables.actions.ref_protected-description %} | +| `github.ref_protected` | `boolean` | {% data reusables.actions.ref_protected-description %} | | `github.ref_type` | `string` | {% data reusables.actions.ref_type-description %} | {%- endif %} | `github.path` | `string` | Path on the runner to the file that sets system `PATH` variables from workflow commands. This file is unique to the current step and is a different file for each step in a job. For more information, see "[Workflow commands for {% data variables.product.prodname_actions %}](/actions/learn-github-actions/workflow-commands-for-github-actions#adding-a-system-path)." | diff --git a/translations/zh-CN/content/actions/learn-github-actions/understanding-github-actions.md b/translations/zh-CN/content/actions/learn-github-actions/understanding-github-actions.md index f3c1c1faf6..ea6cebc80b 100644 --- a/translations/zh-CN/content/actions/learn-github-actions/understanding-github-actions.md +++ b/translations/zh-CN/content/actions/learn-github-actions/understanding-github-actions.md @@ -87,15 +87,9 @@ For more information, see "[Creating actions](/actions/creating-actions)." {% data reusables.actions.workflow-basic-example-and-explanation %} -## More complex examples -{% data reusables.actions.link-to-example-library %} - ## Next steps -- To continue learning about {% data variables.product.prodname_actions %}, see "[Finding and customizing actions](/actions/learn-github-actions/finding-and-customizing-actions)." -{% ifversion fpt or ghec or ghes %} -- To understand how billing works for {% data variables.product.prodname_actions %}, see "[About billing for {% data variables.product.prodname_actions %}](/actions/reference/usage-limits-billing-and-administration#about-billing-for-github-actions)." -{% endif %} +{% data reusables.actions.onboarding-next-steps %} ## Contacting support diff --git a/translations/zh-CN/content/actions/managing-workflow-runs/re-running-workflows-and-jobs.md b/translations/zh-CN/content/actions/managing-workflow-runs/re-running-workflows-and-jobs.md index cc2359f7a5..a1d240e9c0 100644 --- a/translations/zh-CN/content/actions/managing-workflow-runs/re-running-workflows-and-jobs.md +++ b/translations/zh-CN/content/actions/managing-workflow-runs/re-running-workflows-and-jobs.md @@ -48,14 +48,14 @@ Re-running a workflow{% ifversion re-run-jobs %} or jobs in a workflow{% endif % To re-run a failed workflow run, use the `run rerun` subcommand. Replace `run-id` with the ID of the failed run that you want to re-run. If you don't specify a `run-id`, {% data variables.product.prodname_cli %} returns an interactive menu for you to choose a recent failed run. ```shell -gh run rerun run-id +gh run rerun RUN_ID ``` {% ifversion debug-reruns %} {% data reusables.actions.enable-debug-logging-cli %} ```shell -gh run rerun run-id --debug +gh run rerun RUN_ID --debug ``` {% endif %} @@ -90,14 +90,14 @@ If any jobs in a workflow run failed, you can re-run just the jobs that failed. To re-run failed jobs in a workflow run, use the `run rerun` subcommand with the `--failed` flag. Replace `run-id` with the ID of the run for which you want to re-run failed jobs. If you don't specify a `run-id`, {% data variables.product.prodname_cli %} returns an interactive menu for you to choose a recent failed run. ```shell -gh run rerun run-id --failed +gh run rerun RUN_ID --failed ``` {% ifversion debug-reruns %} {% data reusables.actions.enable-debug-logging-cli %} ```shell -gh run rerun run-id --failed --debug +gh run rerun RUN_ID --failed --debug ``` {% endif %} @@ -127,14 +127,14 @@ When you re-run a specific job in a workflow, a new workflow run will start for To re-run a specific job in a workflow run, use the `run rerun` subcommand with the `--job` flag. Replace `job-id` with the ID of the job that you want to re-run. ```shell -gh run rerun --job job-id +gh run rerun --job JOB_ID ``` {% ifversion debug-reruns %} {% data reusables.actions.enable-debug-logging-cli %} ```shell -gh run rerun --job job-id --debug +gh run rerun --job JOB_ID --debug ``` {% endif %} diff --git a/translations/zh-CN/content/actions/quickstart.md b/translations/zh-CN/content/actions/quickstart.md index b83df0ebe2..44f3ab36a3 100644 --- a/translations/zh-CN/content/actions/quickstart.md +++ b/translations/zh-CN/content/actions/quickstart.md @@ -77,21 +77,13 @@ Committing the workflow file to a branch in your repository triggers the `push` For example, you can see the list of files in your repository: ![Example action detail](/assets/images/help/repository/actions-quickstart-log-detail.png) - + +The example workflow you just added is triggered each time code is pushed to the branch, and shows you how {% data variables.product.prodname_actions %} can work with the contents of your repository. For an in-depth tutorial, see "[Understanding {% data variables.product.prodname_actions %}](/actions/learn-github-actions/understanding-github-actions)." + ## More starter workflows {% data reusables.actions.workflow-template-overview %} -## More complex examples -{% data reusables.actions.link-to-example-library %} - ## Next steps -The example workflow you just added runs each time code is pushed to the branch, and shows you how {% data variables.product.prodname_actions %} can work with the contents of your repository. But this is only the beginning of what you can do with {% data variables.product.prodname_actions %}: - -- Your repository can contain multiple workflows that trigger different jobs based on different events. -- You can use a workflow to install software testing apps and have them automatically test your code on {% data variables.product.prodname_dotcom %}'s runners. - -{% data variables.product.prodname_actions %} can help you automate nearly every aspect of your application development processes. Ready to get started? Here are some helpful resources for taking your next steps with {% data variables.product.prodname_actions %}: - -- "[Learn {% data variables.product.prodname_actions %}](/actions/learn-github-actions)" for an in-depth tutorial. +{% data reusables.actions.onboarding-next-steps %} diff --git a/translations/zh-CN/content/actions/security-guides/encrypted-secrets.md b/translations/zh-CN/content/actions/security-guides/encrypted-secrets.md index 9a60fda43d..e678c2474c 100644 --- a/translations/zh-CN/content/actions/security-guides/encrypted-secrets.md +++ b/translations/zh-CN/content/actions/security-guides/encrypted-secrets.md @@ -93,13 +93,13 @@ If your repository has environment secrets or can access secrets from the parent To add a repository secret, use the `gh secret set` subcommand. Replace `secret-name` with the name of your secret. ```shell -gh secret set secret-name +gh secret set SECRET_NAME ``` The CLI will prompt you to enter a secret value. Alternatively, you can read the value of the secret from a file. ```shell -gh secret set secret-name < secret.txt +gh secret set SECRET_NAME < secret.txt ``` To list all secrets for the repository, use the `gh secret list` subcommand. @@ -128,13 +128,13 @@ To list all secrets for the repository, use the `gh secret list` subcommand. To add a secret for an environment, use the `gh secret set` subcommand with the `--env` or `-e` flag followed by the environment name. ```shell -gh secret set --env environment-name secret-name +gh secret set --env ENV_NAME SECRET_NAME ``` To list all secrets for an environment, use the `gh secret list` subcommand with the `--env` or `-e` flag followed by the environment name. ```shell -gh secret list --env environment-name +gh secret list --env ENV_NAME ``` {% endcli %} @@ -173,25 +173,25 @@ gh auth login --scopes "admin:org" To add a secret for an organization, use the `gh secret set` subcommand with the `--org` or `-o` flag followed by the organization name. ```shell -gh secret set --org organization-name secret-name +gh secret set --org ORG_NAME SECRET_NAME ``` By default, the secret is only available to private repositories. To specify that the secret should be available to all repositories within the organization, use the `--visibility` or `-v` flag. ```shell -gh secret set --org organization-name secret-name --visibility all +gh secret set --org ORG_NAME SECRET_NAME --visibility all ``` To specify that the secret should be available to selected repositories within the organization, use the `--repos` or `-r` flag. ```shell -gh secret set --org organization-name secret-name --repos repo-name-1,repo-name-2" +gh secret set --org ORG_NAME SECRET_NAME --repos REPO-NAME-1, REPO-NAME-2" ``` To list all secrets for an organization, use the `gh secret list` subcommand with the `--org` or `-o` flag followed by the organization name. ```shell -gh secret list --org organization-name +gh secret list --org ORG_NAME ``` {% endcli %} diff --git a/translations/zh-CN/content/actions/using-github-hosted-runners/using-larger-runners.md b/translations/zh-CN/content/actions/using-github-hosted-runners/using-larger-runners.md index 17fb1a7a0f..5d941f42f3 100644 --- a/translations/zh-CN/content/actions/using-github-hosted-runners/using-larger-runners.md +++ b/translations/zh-CN/content/actions/using-github-hosted-runners/using-larger-runners.md @@ -87,7 +87,7 @@ You can add a {% data variables.actions.hosted_runner %} to an organization, whe ## Running jobs on your runner -Once your runner type has been been defined, you can update your workflows to send jobs to the runner instances for processing. In this example, a runner group is populated with Ubuntu 16-core runners, which have been assigned the label `ubuntu-20.04-16core`. If you have a runner matching this label, the `check-bats-version` job then uses the `runs-on` key to target that runner whenever the job is run: +Once your runner type has been defined, you can update your workflow YAML files to send jobs to your newly created runner instances for processing. In this example, a runner group is populated with Ubuntu 16-core runners, which have been assigned the label `ubuntu-20.04-16core`. If you have a runner matching this label, the `check-bats-version` job then uses the `runs-on` key to target that runner whenever the job is run: ```yaml name: learn-github-actions @@ -104,6 +104,8 @@ jobs: - run: bats -v ``` +To find out which runners are enabled for your repository and organization, you must contact your organization admin. Your organization admin can create new runners and runner groups, as well as configure permissions to specify which repositories can access a runner group. + ## Managing access to your runners {% note %} diff --git a/translations/zh-CN/content/admin/configuration/configuring-your-enterprise/configuring-rate-limits.md b/translations/zh-CN/content/admin/configuration/configuring-your-enterprise/configuring-rate-limits.md index 26c878bfaa..6f6735949d 100644 --- a/translations/zh-CN/content/admin/configuration/configuring-your-enterprise/configuring-rate-limits.md +++ b/translations/zh-CN/content/admin/configuration/configuring-your-enterprise/configuring-rate-limits.md @@ -93,7 +93,7 @@ By default, the rate limit for {% data variables.product.prodname_actions %} is ```shell ghe-config actions-rate-limiting.enabled true - ghe-config actions-rate-limiting.queue-runs-per-minute RUNS-PER-MINUTE + ghe-config actions-rate-limiting.queue-runs-per-minute RUNS-PER-MINUTE ``` 1. To disable the rate limit after it's been enabled, run the following command. diff --git a/translations/zh-CN/content/admin/configuration/configuring-your-enterprise/site-admin-dashboard.md b/translations/zh-CN/content/admin/configuration/configuring-your-enterprise/site-admin-dashboard.md index 5bd322dcae..ea742e0fc5 100644 --- a/translations/zh-CN/content/admin/configuration/configuring-your-enterprise/site-admin-dashboard.md +++ b/translations/zh-CN/content/admin/configuration/configuring-your-enterprise/site-admin-dashboard.md @@ -67,7 +67,7 @@ You can also access these reports programmatically via standard HTTP authenticat For example, here is how you would download the "all users" report using cURL: ```shell -curl -L -u username:token http(s)://hostname/stafftools/reports/all_users.csv +curl -L -u USERNAME:TOKEN http(s)://HOSTNAME/stafftools/reports/all_users.csv ``` To access the other reports programmatically, replace `all_users` with `active_users`, `dormant_users`, `suspended_users`, `all_organizations`, or `all_repositories`. 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 2fabe7244a..590bf709b2 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 @@ -118,7 +118,7 @@ If the upgrade target you're presented with is a feature release instead of a pa {% data reusables.enterprise_installation.download-package %} 4. Run the `ghe-upgrade` command using the package file name: ```shell - admin@HOSTNAME:~$ ghe-upgrade GITHUB-UPGRADE.hpkg + admin@HOSTNAME:~$ ghe-upgrade GITHUB-UPGRADE.hpkg *** verifying upgrade package signature... ``` 5. If a reboot is required for updates for kernel, MySQL, Elasticsearch or other programs, the hotpatch upgrade script notifies you. @@ -170,14 +170,14 @@ While you can use a hotpatch to upgrade to the latest patch release within a fea 5. Run the `ghe-upgrade` command using the package file name: ```shell - admin@HOSTNAME:~$ ghe-upgrade GITHUB-UPGRADE.pkg + admin@HOSTNAME:~$ ghe-upgrade GITHUB-UPGRADE.pkg *** verifying upgrade package signature... ``` 6. Confirm that you'd like to continue with the upgrade and restart after the package signature verifies. The new root filesystem writes to the secondary partition and the instance automatically restarts in maintenance mode: ```shell *** applying update... - This package will upgrade your installation to version version-number - Current root partition: /dev/xvda1 [version-number] + This package will upgrade your installation to version VERSION-NUMBER + Current root partition: /dev/xvda1 [VERSION-NUMBER] Target root partition: /dev/xvda2 Proceed with installation? [y/N] ``` diff --git a/translations/zh-CN/content/admin/monitoring-activity-in-your-enterprise/reviewing-audit-logs-for-your-enterprise/streaming-the-audit-log-for-your-enterprise.md b/translations/zh-CN/content/admin/monitoring-activity-in-your-enterprise/reviewing-audit-logs-for-your-enterprise/streaming-the-audit-log-for-your-enterprise.md index b34b1c60c3..47804fb2d7 100644 --- a/translations/zh-CN/content/admin/monitoring-activity-in-your-enterprise/reviewing-audit-logs-for-your-enterprise/streaming-the-audit-log-for-your-enterprise.md +++ b/translations/zh-CN/content/admin/monitoring-activity-in-your-enterprise/reviewing-audit-logs-for-your-enterprise/streaming-the-audit-log-for-your-enterprise.md @@ -86,12 +86,6 @@ For information on creating or accessing your access key ID and secret key, see {% ifversion streaming-oidc-s3 %} #### Setting up streaming to S3 with OpenID Connect -{% note %} - -**Note:** Streaming to Amazon S3 with OpenID Connect is currently in beta and subject to change. - -{% endnote %} - 1. In AWS, add the {% data variables.product.prodname_dotcom %} OIDC provider to IAM. For more information, see [Creating OpenID Connect (OIDC) identity providers](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_providers_create_oidc.html) in the AWS documentation. - For the provider URL, use `https://oidc-configuration.audit-log.githubusercontent.com`. diff --git a/translations/zh-CN/content/admin/monitoring-activity-in-your-enterprise/reviewing-audit-logs-for-your-enterprise/using-the-audit-log-api-for-your-enterprise.md b/translations/zh-CN/content/admin/monitoring-activity-in-your-enterprise/reviewing-audit-logs-for-your-enterprise/using-the-audit-log-api-for-your-enterprise.md index fe9cb82ebb..eb7ca4cae4 100644 --- a/translations/zh-CN/content/admin/monitoring-activity-in-your-enterprise/reviewing-audit-logs-for-your-enterprise/using-the-audit-log-api-for-your-enterprise.md +++ b/translations/zh-CN/content/admin/monitoring-activity-in-your-enterprise/reviewing-audit-logs-for-your-enterprise/using-the-audit-log-api-for-your-enterprise.md @@ -121,7 +121,7 @@ For more information about the audit log REST API, see "[Enterprise administrati The query below searches for audit log events created on Jan 1st, 2022 in the `avocado-corp` enterprise, and return the first page with a maximum of 100 items per page using [REST API pagination](/rest/overview/resources-in-the-rest-api#pagination): ```shell -curl -H "Authorization: Bearer TOKEN" \ +curl -H "Authorization: Bearer TOKEN" \ --request GET \ "https://api.github.com/enterprises/avocado-corp/audit-log?phrase=created:2022-01-01&page=1&per_page=100" ``` @@ -133,7 +133,7 @@ You can specify multiple search phrases, such as `created` and `actor`, by separ The query below searches for audit log events for pull requests, where the event occurred on or after Jan 1st, 2022 in the `avocado-corp` enterprise, and the action was performed by the `octocat` user: ```shell -curl -H "Authorization: Bearer TOKEN" \ +curl -H "Authorization: Bearer TOKEN" \ --request GET \ "https://api.github.com/enterprises/avocado-corp/audit-log?phrase=action:pull_request+created:>=2022-01-01+actor:octocat" ``` diff --git a/translations/zh-CN/content/authentication/connecting-to-github-with-ssh/adding-a-new-ssh-key-to-your-github-account.md b/translations/zh-CN/content/authentication/connecting-to-github-with-ssh/adding-a-new-ssh-key-to-your-github-account.md index a4569d589d..eabcedfe38 100644 --- a/translations/zh-CN/content/authentication/connecting-to-github-with-ssh/adding-a-new-ssh-key-to-your-github-account.md +++ b/translations/zh-CN/content/authentication/connecting-to-github-with-ssh/adding-a-new-ssh-key-to-your-github-account.md @@ -74,13 +74,13 @@ Before you can use the {% data variables.product.prodname_cli %} to add an SSH k To add an SSH authentication key to your GitHub account, use the `ssh-key add` subcommand, specifying your public key. ```shell -gh ssh-key add key-file +gh ssh-key add KEY-FILE ``` To include a title for the new key, use the `-t` or `--title` flag. ```shell -gh ssh-key add key-file --title "personal laptop" +gh ssh-key add KEY-FILE --title "personal laptop" ``` If you generated your SSH key by following the instructions in "[Generating a new SSH key](/authentication/connecting-to-github-with-ssh/generating-a-new-ssh-key-and-adding-it-to-the-ssh-agent)", you can add the key to your account with this command. diff --git a/translations/zh-CN/content/authentication/connecting-to-github-with-ssh/generating-a-new-ssh-key-and-adding-it-to-the-ssh-agent.md b/translations/zh-CN/content/authentication/connecting-to-github-with-ssh/generating-a-new-ssh-key-and-adding-it-to-the-ssh-agent.md index 9d0033a39f..92fa29e8a5 100644 --- a/translations/zh-CN/content/authentication/connecting-to-github-with-ssh/generating-a-new-ssh-key-and-adding-it-to-the-ssh-agent.md +++ b/translations/zh-CN/content/authentication/connecting-to-github-with-ssh/generating-a-new-ssh-key-and-adding-it-to-the-ssh-agent.md @@ -44,17 +44,19 @@ If you are a site administrator for {% data variables.product.product_location % {%- ifversion ghae %} ```shell - $ ssh-keygen -t rsa -b 4096 -C "your_email@example.com" + $ ssh-keygen -t rsa -b 4096 -C "your_email@example.com" + $ ssh-keygen -t rsa -b 4096 -C "your_email@example.com" + ``` {%- else %} ```shell - $ ssh-keygen -t ed25519 -C "your_email@example.com" + $ ssh-keygen -t ed25519 -C "your_email@example.com" ``` {% note %} **Note:** If you are using a legacy system that doesn't support the Ed25519 algorithm, use: ```shell - $ ssh-keygen -t rsa -b 4096 -C "your_email@example.com" + $ ssh-keygen -t rsa -b 4096 -C "your_email@example.com" ``` {% endnote %} @@ -62,14 +64,14 @@ If you are a site administrator for {% data variables.product.product_location % This creates a new SSH key, using the provided email as a label. ```shell - > Generating public/private algorithm key pair. + > Generating public/private ALGORITHM key pair. ``` 3. When you're prompted to "Enter a file in which to save the key," press Enter. This accepts the default file location. {% mac %} ```shell - > Enter a file in which to save the key (/Users/you/.ssh/id_algorithm): [Press enter] + > Enter a file in which to save the key (/Users/YOU/.ssh/id_ALGORITHM: [Press enter] ``` {% endmac %} @@ -77,7 +79,7 @@ If you are a site administrator for {% data variables.product.product_location % {% windows %} ```shell - > Enter a file in which to save the key (/c/Users/you/.ssh/id_algorithm):[Press enter] + > Enter a file in which to save the key (/c/Users/YOU/.ssh/id_ALGORITHM):[Press enter] ``` {% endwindows %} @@ -85,15 +87,15 @@ If you are a site administrator for {% data variables.product.product_location % {% linux %} ```shell - > Enter a file in which to save the key (/home/you/.ssh/algorithm): [Press enter] + > Enter a file in which to save the key (/home/YOU/.ssh/ALGORITHM):[Press enter] ``` {% endlinux %} 4. At the prompt, type a secure passphrase. For more information, see ["Working with SSH key passphrases](/articles/working-with-ssh-key-passphrases)." ```shell - > Enter passphrase (empty for no passphrase): [Type a passphrase] - > Enter same passphrase again: [Type passphrase again] + > Enter passphrase (empty for no passphrase): [Type a passphrase] + > Enter same passphrase again: [Type passphrase again] ``` ## Adding your SSH key to the ssh-agent @@ -110,7 +112,7 @@ Before adding a new SSH key to the ssh-agent to manage your keys, you should hav ```shell $ open ~/.ssh/config - > The file /Users/you/.ssh/config does not exist. + > The file /Users/YOU/.ssh/config does not exist. ``` * If the file doesn't exist, create the file. @@ -198,7 +200,7 @@ If you are using macOS or Linux, you may need to update your SSH client or insta {% data reusables.command_line.open_the_multi_os_terminal %} 3. Paste the text below, substituting in the email address for your account on {% data variables.product.product_name %}. ```shell - $ ssh-keygen -t {% ifversion ghae %}ecdsa{% else %}ed25519{% endif %}-sk -C "your_email@example.com" + $ ssh-keygen -t {% ifversion ghae %}ecdsa{% else %}ed25519{% endif %}-sk -C "YOUR_EMAIL" ``` {%- ifversion not ghae %} @@ -217,7 +219,7 @@ If you are using macOS or Linux, you may need to update your SSH client or insta {% mac %} ```shell - > Enter a file in which to save the key (/Users/you/.ssh/id_{% ifversion ghae %}ecdsa{% else %}ed25519{% endif %}_sk): [Press enter] + > Enter a file in which to save the key (/Users/YOU/.ssh/id_{% ifversion ghae %}ecdsa{% else %}ed25519{% endif %}_sk): [Press enter] ``` {% endmac %} @@ -225,7 +227,7 @@ If you are using macOS or Linux, you may need to update your SSH client or insta {% windows %} ```shell - > Enter a file in which to save the key (/c/Users/you/.ssh/id_{% ifversion ghae %}ecdsa{% else %}ed25519{% endif %}_sk):[Press enter] + > Enter a file in which to save the key (/c/Users/YOU/.ssh/id_{% ifversion ghae %}ecdsa{% else %}ed25519{% endif %}_sk):[Press enter] ``` {% endwindows %} @@ -233,14 +235,14 @@ If you are using macOS or Linux, you may need to update your SSH client or insta {% linux %} ```shell - > Enter a file in which to save the key (/home/you/.ssh/id_{% ifversion ghae %}ecdsa{% else %}ed25519{% endif %}_sk): [Press enter] + > Enter a file in which to save the key (/home/YOU/.ssh/id_{% ifversion ghae %}ecdsa{% else %}ed25519{% endif %}_sk):[Press enter] ``` {% endlinux %} 6. When you are prompted to type a passphrase, press **Enter**. ```shell - > Enter passphrase (empty for no passphrase): [Type a passphrase] - > Enter same passphrase again: [Type passphrase again] + > Enter passphrase (empty for no passphrase): [Type a passphrase] + > Enter same passphrase again: [Type passphrase again] ``` 7. Add the SSH key to your account on {% data variables.product.prodname_dotcom %}. For more information, see "[Adding a new SSH key to your {% data variables.product.prodname_dotcom %} account](/github/authenticating-to-github/adding-a-new-ssh-key-to-your-github-account)." diff --git a/translations/zh-CN/content/authentication/managing-commit-signature-verification/signing-commits.md b/translations/zh-CN/content/authentication/managing-commit-signature-verification/signing-commits.md index cf7d059042..e9b3200e36 100644 --- a/translations/zh-CN/content/authentication/managing-commit-signature-verification/signing-commits.md +++ b/translations/zh-CN/content/authentication/managing-commit-signature-verification/signing-commits.md @@ -36,7 +36,7 @@ If you have multiple keys or are attempting to sign commits or tags with a key t 1. When committing changes in your local branch, add the -S flag to the git commit command: ```shell - $ git commit -S -m "your commit message" + $ git commit -S -m "YOUR_COMMIT_MESSAGE" # Creates a signed commit ``` 2. If you're using GPG, after you create your commit, provide the passphrase you set up when you [generated your GPG key](/articles/generating-a-new-gpg-key). diff --git a/translations/zh-CN/content/authentication/managing-commit-signature-verification/signing-tags.md b/translations/zh-CN/content/authentication/managing-commit-signature-verification/signing-tags.md index fac18fab40..e5371adbc6 100644 --- a/translations/zh-CN/content/authentication/managing-commit-signature-verification/signing-tags.md +++ b/translations/zh-CN/content/authentication/managing-commit-signature-verification/signing-tags.md @@ -19,12 +19,12 @@ topics: 1. To sign a tag, add `-s` to your `git tag` command. ```shell - $ git tag -s mytag + $ git tag -s MYTAG # Creates a signed tag ``` 2. Verify your signed tag by running `git tag -v [tag-name]`. ```shell - $ git tag -v mytag + $ git tag -v MYTAG # Verifies the signed tag ``` diff --git a/translations/zh-CN/content/code-security/dependabot/dependabot-alerts/configuring-notifications-for-dependabot-alerts.md b/translations/zh-CN/content/code-security/dependabot/dependabot-alerts/configuring-notifications-for-dependabot-alerts.md index 359bb0b547..91f2e8d064 100644 --- a/translations/zh-CN/content/code-security/dependabot/dependabot-alerts/configuring-notifications-for-dependabot-alerts.md +++ b/translations/zh-CN/content/code-security/dependabot/dependabot-alerts/configuring-notifications-for-dependabot-alerts.md @@ -1,7 +1,7 @@ --- -title: 为 Dependabot 警报配置通知 +title: Configuring notifications for Dependabot alerts shortTitle: Configure notifications -intro: '优化接收 {% data variables.product.prodname_dependabot_alerts %} 相关通知的方式。' +intro: 'Optimize how you receive notifications about {% data variables.product.prodname_dependabot_alerts %}.' redirect_from: - /github/managing-security-vulnerabilities/configuring-notifications-for-vulnerable-dependencies - /code-security/supply-chain-security/configuring-notifications-for-vulnerable-dependencies @@ -19,50 +19,51 @@ topics: - Vulnerabilities - Dependencies - Repositories -ms.openlocfilehash: b8810c27a10302a7873fc61a32189f33855140bb -ms.sourcegitcommit: ac00e2afa6160341c5b258d73539869720b395a4 -ms.translationtype: HT -ms.contentlocale: zh-CN -ms.lasthandoff: 09/09/2022 -ms.locfileid: '147876034' --- -## 关于 {% data variables.product.prodname_dependabot_alerts %} 的通知 -当 {% data variables.product.prodname_dependabot %} 在存储库中检测到有漏洞依赖项{% ifversion GH-advisory-db-supports-malware %}或恶意软件{% endif %}时,我们将生成 {% data variables.product.prodname_dependabot %} 警报,并将其显示在存储库的“安全”选项卡中。 {% data variables.product.product_name %} 根据通知首选项将新警报通知受影响存储库的维护员。{% ifversion fpt or ghec %} {% data variables.product.prodname_dependabot %} 在所有公共存储库上默认启用。 对于 {% data variables.product.prodname_dependabot_alerts %},默认情况下,您将通过电子邮件收到按特定漏洞分组的 {% data variables.product.prodname_dependabot_alerts %}。 +## About notifications for {% data variables.product.prodname_dependabot_alerts %} + +When {% data variables.product.prodname_dependabot %} detects vulnerable dependencies{% ifversion GH-advisory-db-supports-malware %} or malware{% endif %} in your repositories, we generate a {% data variables.product.prodname_dependabot %} alert and display it on the Security tab for the repository. {% data variables.product.product_name %} notifies the maintainers of affected repositories about the new alert according to their notification preferences.{% ifversion fpt or ghec %} {% data variables.product.prodname_dependabot %} is enabled by default on all public repositories. For {% data variables.product.prodname_dependabot_alerts %}, by default, you will receive {% data variables.product.prodname_dependabot_alerts %} by email, grouped by the specific vulnerability. {% endif %} -{% ifversion fpt or ghec %}如果你是组织所有者,可以对组织中的所有存储库进行一键启用或禁用 {% data variables.product.prodname_dependabot_alerts %}。 还可以设置是否为新创建的存储库启用或禁用 {% data variables.product.prodname_dependabot_alerts %}。 有关详细信息,请参阅“[管理组织的安全和分析设置](/organizations/keeping-your-organization-secure/managing-security-and-analysis-settings-for-your-organization#enabling-or-disabling-a-feature-for-all-new-repositories-when-they-are-added)”。 +{% ifversion fpt or ghec %}If you're an organization owner, you can enable or disable {% data variables.product.prodname_dependabot_alerts %} for all repositories in your organization with one click. You can also set whether {% data variables.product.prodname_dependabot_alerts %} will be enabled or disabled for newly-created repositories. For more information, see "[Managing security and analysis settings for your organization](/organizations/keeping-your-organization-secure/managing-security-and-analysis-settings-for-your-organization#enabling-or-disabling-a-feature-for-all-new-repositories-when-they-are-added)." {% endif %} -{% ifversion ghes or ghae %} 默认情况下,如果你的企业所有者已配置电子邮件以获取有关企业的通知,你将收到 {% data variables.product.prodname_dependabot_alerts %} 电子邮件。 +{% ifversion ghes or ghae %} +By default, if your enterprise owner has configured email for notifications on your enterprise, you will receive {% data variables.product.prodname_dependabot_alerts %} by email. -企业所有者也可以在没有通知的情况下启用 {% data variables.product.prodname_dependabot_alerts %}。 有关详细信息,请参阅“[对企业启用 {% data variables.product.prodname_dependabot %}](/admin/configuration/configuring-github-connect/enabling-dependabot-for-your-enterprise)”。 +Enterprise owners can also enable {% data variables.product.prodname_dependabot_alerts %} without notifications. For more information, see "[Enabling {% data variables.product.prodname_dependabot %} for your enterprise](/admin/configuration/configuring-github-connect/enabling-dependabot-for-your-enterprise)." {% endif %} -## 配置 {% data variables.product.prodname_dependabot_alerts %} 的通知 +## Configuring notifications for {% data variables.product.prodname_dependabot_alerts %} -{% ifversion fpt or ghes or ghec %} 当检测到新的 {% data variables.product.prodname_dependabot %} 警报时,{% data variables.product.product_name %} 根据通知偏好通知所有能够访问存储库的 {% data variables.product.prodname_dependabot_alerts %} 的用户。 如果您正在关注该仓库、已对仓库上的安全警报或所有活动启用通知,并且没有忽略该仓库,您将收到警报。 有关详细信息,请参阅“[配置通知](/github/managing-subscriptions-and-notifications-on-github/configuring-notifications#configuring-your-watch-settings-for-an-individual-repository)”。 +{% ifversion fpt or ghes or ghec %} +When a new {% data variables.product.prodname_dependabot %} alert is detected, {% data variables.product.product_name %} notifies all users with access to {% data variables.product.prodname_dependabot_alerts %} for the repository according to their notification preferences. You will receive alerts if you are watching the repository, have enabled notifications for security alerts or for all the activity on the repository, and are not ignoring the repository. For more information, see "[Configuring notifications](/github/managing-subscriptions-and-notifications-on-github/configuring-notifications#configuring-your-watch-settings-for-an-individual-repository)." {% endif %} -您可以从每个页面顶部显示的管理通知下拉菜单 {% octicon "bell" aria-label="The notifications bell" %} 为您自己或您的组织配置通知设置。 有关详细信息,请参阅“[配置通知](/github/managing-subscriptions-and-notifications-on-github/configuring-notifications#choosing-your-notification-settings)”。 +You can configure notification settings for yourself or your organization from the Manage notifications drop-down {% octicon "bell" aria-label="The notifications bell" %} shown at the top of each page. For more information, see "[Configuring notifications](/github/managing-subscriptions-and-notifications-on-github/configuring-notifications#choosing-your-notification-settings)." -{% data reusables.notifications.vulnerable-dependency-notification-delivery-method-customization2 %} {% data reusables.notifications.vulnerable-dependency-notification-options %} +{% data reusables.notifications.vulnerable-dependency-notification-delivery-method-customization2 %} +{% data reusables.notifications.vulnerable-dependency-notification-options %} + +{% ifversion update-notification-settings-22 %} +![Screenshot of {% data variables.product.prodname_dependabot_alerts %} options](/assets/images/help/dependabot/dependabot-notification-frequency.png){% else %} +![Screenshot of the {% data variables.product.prodname_dependabot_alerts %} options](/assets/images/help/notifications-v2/dependabot-alerts-options.png){% endif %} - ![{% data variables.product.prodname_dependabot_alerts %} 选项](/assets/images/help/notifications-v2/dependabot-alerts-options.png) {% note %} -**注意:** 可以在 {% data variables.product.company_short %} 上筛选通知以显示 {% data variables.product.prodname_dependabot_alerts %}。 有关详细信息,请参阅“[管理收件箱中的通知](/github/managing-subscriptions-and-notifications-on-github/managing-notifications-from-your-inbox#dependabot-custom-filters)”。 +**Note:** You can filter your notifications on {% data variables.product.company_short %} to show {% data variables.product.prodname_dependabot_alerts %}. For more information, see "[Managing notifications from your inbox](/github/managing-subscriptions-and-notifications-on-github/managing-notifications-from-your-inbox#dependabot-custom-filters)." {% endnote %} -{% data reusables.repositories.security-alerts-x-github-severity %} 有关详细信息,请参阅“[配置通知](/github/managing-subscriptions-and-notifications-on-github/configuring-notifications#filtering-email-notifications)”。 +{% data reusables.repositories.security-alerts-x-github-severity %} For more information, see "[Configuring notifications](/github/managing-subscriptions-and-notifications-on-github/configuring-notifications#filtering-email-notifications)." -## 如何减少 {% data variables.product.prodname_dependabot_alerts %} 通知的干扰 +## How to reduce the noise from notifications for {% data variables.product.prodname_dependabot_alerts %} -如果您想要收到太多 {% data variables.product.prodname_dependabot_alerts %} 的通知,我们建议您选择加入每周的电子邮件摘要,或者在保持 {% data variables.product.prodname_dependabot_alerts %} 启用时关闭通知。 仍可导航到存储库的“安全”选项卡来查看 {% data variables.product.prodname_dependabot_alerts %}。有关详细信息,请参阅“[查看并更新 {% data variables.product.prodname_dependabot_alerts %}](/code-security/dependabot/dependabot-alerts/viewing-and-updating-dependabot-alerts)”。 +If you are concerned about receiving too many notifications for {% data variables.product.prodname_dependabot_alerts %}, we recommend you opt into the weekly email digest, or turn off notifications while keeping {% data variables.product.prodname_dependabot_alerts %} enabled. You can still navigate to see your {% data variables.product.prodname_dependabot_alerts %} in your repository's Security tab. For more information, see "[Viewing and updating {% data variables.product.prodname_dependabot_alerts %}](/code-security/dependabot/dependabot-alerts/viewing-and-updating-dependabot-alerts)." -## 延伸阅读 +## Further reading -- “[配置通知](/github/managing-subscriptions-and-notifications-on-github/configuring-notifications)” -- “[从收件箱管理通知](/github/managing-subscriptions-and-notifications-on-github/managing-notifications-from-your-inbox#supported-is-queries)” +- "[Configuring notifications](/github/managing-subscriptions-and-notifications-on-github/configuring-notifications)" +- "[Managing notifications from your inbox](/github/managing-subscriptions-and-notifications-on-github/managing-notifications-from-your-inbox#supported-is-queries)" diff --git a/translations/zh-CN/content/code-security/dependabot/dependabot-version-updates/configuration-options-for-the-dependabot.yml-file.md b/translations/zh-CN/content/code-security/dependabot/dependabot-version-updates/configuration-options-for-the-dependabot.yml-file.md index 9dcf891257..5bd218b446 100644 --- a/translations/zh-CN/content/code-security/dependabot/dependabot-version-updates/configuration-options-for-the-dependabot.yml-file.md +++ b/translations/zh-CN/content/code-security/dependabot/dependabot-version-updates/configuration-options-for-the-dependabot.yml-file.md @@ -33,6 +33,12 @@ You must store this file in the `.github` directory of your repository. When you Any options that also affect security updates are used the next time a security alert triggers a pull request for a security update. For more information, see "[Configuring {% data variables.product.prodname_dependabot_security_updates %}](/code-security/supply-chain-security/managing-vulnerabilities-in-your-projects-dependencies/configuring-dependabot-security-updates)." +{% note %} + +**Note:** You cannot configure {% data variables.product.prodname_dependabot_alerts %} using the *dependabot.yml* file. + +{% endnote %} + The *dependabot.yml* file has two mandatory top-level keys: `version`, and `updates`. You can, optionally, include a top-level `registries` key{% ifversion ghes = 3.5 %} and/or a `enable-beta-ecosystems` key{% endif %}. The file must start with `version: 2`. ## Configuration options for the *dependabot.yml* file diff --git a/translations/zh-CN/content/codespaces/developing-in-codespaces/creating-a-codespace.md b/translations/zh-CN/content/codespaces/developing-in-codespaces/creating-a-codespace.md index fe6e0c705e..559ed6dc38 100644 --- a/translations/zh-CN/content/codespaces/developing-in-codespaces/creating-a-codespace.md +++ b/translations/zh-CN/content/codespaces/developing-in-codespaces/creating-a-codespace.md @@ -73,6 +73,8 @@ Organization owners can specify who can create and use codespaces at the organiz ![New codespace button](/assets/images/help/codespaces/new-codespace-button.png) + If codespaces for this repository are billable, a message is displayed below the **Create codespace on BRANCH** button telling you who will pay for the codespace. + 1. Create your codespace, either using the default options, or after configuring advanced options: * **Use the default options** @@ -131,12 +133,12 @@ To create a new codespace, use the `gh codespace create` subcommand. gh codespace create ``` -You are prompted to choose a repository, a branch, a dev container configuration file (if more than one is available), and a machine type (if more than one is available). +You are prompted to choose a repository. If codespaces for this repository are billable, a message is displayed telling you who will pay for the codespace. You are then prompted to choose a branch, a dev container configuration file (if more than one is available), and a machine type (if more than one is available). Alternatively, you can use flags to specify some or all of the options: ```shell -gh codespace create -r owner/repo -b branch --devcontainer-path path -m machine-type +gh codespace create -r OWNER/REPO -b BRANCH --devcontainer-path PATH -m MACHINE-TYPE ``` In this example, replace `owner/repo` with the repository identifier. Replace `branch` with the name of the branch, or the full SHA hash of the commit, that you want to be initially checked out in the codespace. If you use the `-r` flag without the `b` flag, the codespace is created from the default branch. diff --git a/translations/zh-CN/content/codespaces/developing-in-codespaces/forwarding-ports-in-your-codespace.md b/translations/zh-CN/content/codespaces/developing-in-codespaces/forwarding-ports-in-your-codespace.md index eee506d1f6..c5cea6210c 100644 --- a/translations/zh-CN/content/codespaces/developing-in-codespaces/forwarding-ports-in-your-codespace.md +++ b/translations/zh-CN/content/codespaces/developing-in-codespaces/forwarding-ports-in-your-codespace.md @@ -78,7 +78,7 @@ By default, {% data variables.product.prodname_github_codespaces %} forwards por To forward a port use the `gh codespace ports forward` subcommand. Replace `codespace-port:local-port` with the remote and local ports that you want to connect. After entering the command choose from the list of codespaces that's displayed. ```shell -gh codespace ports forward codespace-port:local-port +gh codespace ports forward CODESPACE-PORT:LOCAL-PORT ``` For more information about this command, see [the {% data variables.product.prodname_cli %} manual](https://cli.github.com/manual/gh_codespace_ports_forward). @@ -132,7 +132,7 @@ To change the visibility of a forwarded port, use the `gh codespace ports visibi Replace `codespace-port` with the forwarded port number. Replace `setting` with `private`, `org`, or `public`. After entering the command choose from the list of codespaces that's displayed. ```shell -gh codespace ports visibility codespace-port:setting +gh codespace ports visibility CODESPACE-PORT:SETTINGS ``` You can set the visibility for multiple ports with one command. For example: diff --git a/translations/zh-CN/content/codespaces/developing-in-codespaces/renaming-a-codespace.md b/translations/zh-CN/content/codespaces/developing-in-codespaces/renaming-a-codespace.md index b296745717..e27f565ffc 100644 --- a/translations/zh-CN/content/codespaces/developing-in-codespaces/renaming-a-codespace.md +++ b/translations/zh-CN/content/codespaces/developing-in-codespaces/renaming-a-codespace.md @@ -50,7 +50,7 @@ Changing the display name of a codespace can be useful if you have multiple code To rename a codespace, use the `gh codespace edit` subcommand: ```shell -gh codespace edit -c permanent name of the codespace -d new display name +gh codespace edit -c PERMANENT-NAME-OF-CODESPACE -d NEW-DISPLAY-NAME ``` In this example, replace `permanent name of the codespace` with the permanent name of the codespace. Replace `new display name` with the desired display name. \ No newline at end of file diff --git a/translations/zh-CN/content/codespaces/developing-in-codespaces/using-github-codespaces-with-github-cli.md b/translations/zh-CN/content/codespaces/developing-in-codespaces/using-github-codespaces-with-github-cli.md index 0a582c1557..14283811fc 100644 --- a/translations/zh-CN/content/codespaces/developing-in-codespaces/using-github-codespaces-with-github-cli.md +++ b/translations/zh-CN/content/codespaces/developing-in-codespaces/using-github-codespaces-with-github-cli.md @@ -62,7 +62,7 @@ For a complete reference of `gh` commands for {% data variables.product.prodname {% note %} -**Note**: The `-c codespace-name` flag, used with many commands, is optional. If you omit it a list of codespaces is displayed for you to choose from. +**Note**: The `-c CODESPACE_NAME` flag, used with many commands, is optional. If you omit it a list of codespaces is displayed for you to choose from. {% endnote %} @@ -77,7 +77,7 @@ The list includes the unique name of each codespace, which you can use in other ### Create a new codespace ```shell -gh codespace create -r owner/repository [-b branch] +gh codespace create -r OWNER/REPO_NAME [-b BRANCH] ``` For more information, see "[Creating a codespace](/codespaces/developing-in-codespaces/creating-a-codespace)." @@ -85,7 +85,7 @@ For more information, see "[Creating a codespace](/codespaces/developing-in-code ### Stop a codespace ```shell -gh codespace stop -c codespace-name +gh codespace stop -c CODESPACE-NAME ``` For more information, see "[Deep dive into {% data variables.product.prodname_github_codespaces %}](/codespaces/getting-started/deep-dive#closing-or-stopping-your-codespace)." @@ -93,7 +93,7 @@ For more information, see "[Deep dive into {% data variables.product.prodname_gi ### Delete a codespace ```shell -gh codespace delete -c codespace-name +gh codespace delete -c CODESPACE-NAME ``` For more information, see "[Deleting a codespace](/codespaces/developing-in-codespaces/deleting-a-codespace)." @@ -103,7 +103,7 @@ For more information, see "[Deleting a codespace](/codespaces/developing-in-code To run commands on the remote codespace machine, from your terminal, you can SSH into the codespace. ```shell -gh codespace ssh -c codespace-name +gh codespace ssh -c CODESPACE-NAME ``` {% data variables.product.prodname_github_codespaces %} copies your GitHub SSH keys into the codespace on creation for a seamless authentication experience. You may be asked to enter the passphrase for your SSH key, after which you will get a command prompt from the remote codespace machine. @@ -113,7 +113,7 @@ If you don't have any SSH keys, follow the instructions in "[Generating a new SS ### Open a codespace in {% data variables.product.prodname_vscode %} ```shell -gh codespace code -c codespace-name +gh codespace code -c CODESPACE-NAME ``` For more information, see "[Using {% data variables.product.prodname_github_codespaces %} in {% data variables.product.prodname_vscode %}](/codespaces/developing-in-codespaces/using-codespaces-in-visual-studio-code)." @@ -121,13 +121,13 @@ For more information, see "[Using {% data variables.product.prodname_github_code ### Open a codespace in JupyterLab ```shell -gh codespace jupyter -c codespace-name +gh codespace jupyter -c CODESPACE-NAME ``` ### Copy a file to/from a codespace ```shell -gh codespace cp [-r] source(s) destination +gh codespace cp [-r] SOURCE(S) DESTINATION ``` Use the prefix `remote:` on a file or directory name to indicate that it's on the codespace. As with the UNIX `cp` command, the first argument specifies the source and the last specifies the destination. If the destination is a directory, you can specify multiple sources. Use the `-r` (recursive) flag if any of the sources is a directory. @@ -171,7 +171,7 @@ For more information about the `gh codespace cp` command, including additional f You can forward a port on a codespace to a local port. The port remains forwarded as long as the process is running. To stop forwarding the port, press Control+C. ```shell -gh codespace ports forward codespace-port-number:local-port-number -c codespace-name +gh codespace ports forward CODESPACE-PORT_NAME:LOCAL-PORT-NAME -c CODESPACE-NAME ``` To see details of forwarded ports enter `gh codespace ports` and then choose a codespace. @@ -179,13 +179,13 @@ To see details of forwarded ports enter `gh codespace ports` and then choose a c You can set the visibility of a forwarded port. {% data reusables.codespaces.port-visibility-settings %} ```shell -gh codespace ports visibility codespace-port:private|org|public -c codespace-name +gh codespace ports visibility CODESPACE-PORT:private|org|public -c CODESPACE-NAME ``` You can set the visibility for multiple ports with one command. For example: ```shell -gh codespace ports visibility 80:private 3000:public 3306:org -c codespace-name +gh codespace ports visibility 80:private 3000:public 3306:org -c CODESPACE-NAME ``` For more information, see "[Forwarding ports in your codespace](/codespaces/developing-in-codespaces/forwarding-ports-in-your-codespace)." @@ -195,7 +195,7 @@ For more information, see "[Forwarding ports in your codespace](/codespaces/deve You can see the creation log for a codespace. After entering this command you will be asked to enter the passphrase for your SSH key. ```shell -gh codespace logs -c codespace-name +gh codespace logs -c CODESPACE-NAME ``` For more information about the creation log, see "[{% data variables.product.prodname_github_codespaces %} logs](/codespaces/troubleshooting/github-codespaces-logs#creation-logs)." diff --git a/translations/zh-CN/content/codespaces/overview.md b/translations/zh-CN/content/codespaces/overview.md index 447eb37a35..4c07f6674a 100644 --- a/translations/zh-CN/content/codespaces/overview.md +++ b/translations/zh-CN/content/codespaces/overview.md @@ -41,3 +41,5 @@ You can also personalize aspects of your codespace environment by using a public For information on pricing, storage, and usage for {% data variables.product.prodname_github_codespaces %}, see "[About billing for {% data variables.product.prodname_github_codespaces %}](/billing/managing-billing-for-github-codespaces/about-billing-for-github-codespaces)." {% data reusables.codespaces.codespaces-spending-limit-requirement %} For information on how organizations owners and billing managers can manage the spending limit for {% data variables.product.prodname_github_codespaces %} for an organization, see "[Managing spending limits for {% data variables.product.prodname_github_codespaces %}](/billing/managing-billing-for-github-codespaces/managing-spending-limits-for-github-codespaces)." + +You can see who will pay for a codespace before you create it. For more information, see "[Creating a codespace](/codespaces/developing-in-codespaces/creating-a-codespace#creating-a-codespace)." \ No newline at end of file diff --git a/translations/zh-CN/content/communities/setting-up-your-project-for-healthy-contributions/setting-guidelines-for-repository-contributors.md b/translations/zh-CN/content/communities/setting-up-your-project-for-healthy-contributions/setting-guidelines-for-repository-contributors.md index 36328dcc4f..17139235ce 100644 --- a/translations/zh-CN/content/communities/setting-up-your-project-for-healthy-contributions/setting-guidelines-for-repository-contributors.md +++ b/translations/zh-CN/content/communities/setting-up-your-project-for-healthy-contributions/setting-guidelines-for-repository-contributors.md @@ -1,6 +1,6 @@ --- -title: 设置仓库参与者指南 -intro: 您可以创建告知人们应如何参与您的项目的指南。 +title: Setting guidelines for repository contributors +intro: You can create guidelines to communicate how people should contribute to your project. versions: fpt: '*' ghes: '*' @@ -13,59 +13,56 @@ redirect_from: topics: - Community shortTitle: Contributor guidelines -ms.openlocfilehash: b418c5a3d10f8b8f7572f33b17a9ebfbb3de27d3 -ms.sourcegitcommit: 47bd0e48c7dba1dde49baff60bc1eddc91ab10c5 -ms.translationtype: HT -ms.contentlocale: zh-CN -ms.lasthandoff: 09/05/2022 -ms.locfileid: '147578786' --- -## 关于参与指南 -为帮助项目参与者做好工作,可以将含有参与指南的文件添加到项目存储库的根目录、`docs` 或 `.github` 文件夹。 有人打开拉取请求或创建议题时,他们将看到指向该文件的链接。 参与指南的链接也会出现在存储库的 `contribute` 页。 有关 `contribute` 页面的示例,请参阅 [github/docs/contribute](https://github.com/github/docs/contribute)。 +## About contributing guidelines +To help your project contributors do good work, you can add a file with contribution guidelines to your project repository's root, `docs`, or `.github` folder. When someone opens a pull request or creates an issue, they will see a link to that file. The link to the contributing guidelines also appears on your repository's `contribute` page. For an example of a `contribute` page, see [github/docs/contribute](https://github.com/github/docs/contribute). -![参与指南](/assets/images/help/pull_requests/contributing-guidelines.png) +![contributing-guidelines](/assets/images/help/pull_requests/contributing-guidelines.png) -对于仓库所有者,参与指南是告知人们应如何参与的一种途径。 +For the repository owner, contribution guidelines are a way to communicate how people should contribute. -对于参与者,该指南帮助他们确认其提交格式规范的拉取请求和打开有用的议题。 +For contributors, the guidelines help them verify that they're submitting well-formed pull requests and opening useful issues. -对于所有者和参与者来说,参与指南节省了由于不正确创建必须拒绝和重新提交的拉取请求或议题而导致的时间和麻烦。 +For both owners and contributors, contribution guidelines save time and hassle caused by improperly created pull requests or issues that have to be rejected and re-submitted. {% ifversion fpt or ghes or ghec %} -可以为组织{% ifversion fpt or ghes or ghec %}或个人帐户{% endif %}创建默认贡献指南。 有关详细信息,请参阅[创建默认社区运行状况文件](//communities/setting-up-your-project-for-healthy-contributions/creating-a-default-community-health-file)。 +You can create default contribution guidelines for your organization{% ifversion fpt or ghes or ghec %} or personal account{% endif %}. For more information, see "[Creating a default community health file](//communities/setting-up-your-project-for-healthy-contributions/creating-a-default-community-health-file)." {% endif %} {% tip %} -提示:存储库维护员可以通过为存储库创建问题或拉取请求模板来设置问题的特定指南。 有关详细信息,请参阅“[关于问题和拉取请求模板](/articles/about-issue-and-pull-request-templates)”。 +**Tip:** Repository maintainers can set specific guidelines for issues by creating an issue or pull request template for the repository. For more information, see "[About issue and pull request templates](/articles/about-issue-and-pull-request-templates)." {% endtip %} -## 添加 CONTRIBUTING 文件 +## Adding a *CONTRIBUTING* file -{% data reusables.repositories.navigate-to-repo %} {% data reusables.files.add-file %} -3. 决定是在存储库的根目录、`docs` 还是 `.github` 目录中存储你的参与指南。 然后,在文件名字段中,输入文件的名称和扩展名。 参与指南文件名不区分大小写。 如果文件扩展名为支持的格式,文件会以富文本格式呈现。 有关详细信息,请参阅“[使用非代码文件](/repositories/working-with-files/using-files/working-with-non-code-files#rendering-differences-in-prose-documents)”。 - “新文件名”![](/assets/images/help/repository/new-file-name.png) - - 要使参与指南在存储库的根目录中显示,请键入“CONTRIBUTING”。 - - 要使参与指南在存储库的 `docs` 目录中可见,请键入“docs/”以创建新目录,然后键入“CONTRIBUTING” 。 - - 如果存储库包含多个 CONTRIBUTING 文件,则按以下顺序从各位置中选择链接中显示的文件:`.github` 目录,然后是存储库的根目录,最后是 `docs` 目录。 -4. 在新文件中,添加参与指南。 这些可能包括: - - 创建良好议题或拉取请求的步骤。 - - 指向外部文档、邮件列表或行为准则的链接。 - - 社区和行为预期。 -{% data reusables.files.write_commit_message %} {% data reusables.files.choose_commit_branch %} {% data reusables.files.propose_new_file %} +{% data reusables.repositories.navigate-to-repo %} +{% data reusables.files.add-file %} +3. Decide whether to store your contributing guidelines in your repository's root, `docs`, or `.github` directory. Then, in the filename field, type the name and extension for the file. Contributing guidelines filenames are not case sensitive. Files are rendered in rich text format if the file extension is in a supported format. For more information, see "[Working with non-code files](/repositories/working-with-files/using-files/working-with-non-code-files#rendering-differences-in-prose-documents)." + ![New file name](/assets/images/help/repository/new-file-name.png) + - To make your contributing guidelines visible in the repository's root directory, type *CONTRIBUTING*. + - To make your contributing guidelines visible in the repository's `docs` directory, type *docs/* to create the new directory, then *CONTRIBUTING*. + - If a repository contains more than one *CONTRIBUTING* file, then the file shown in links is chosen from locations in the following order: the `.github` directory, then the repository's root directory, and finally the `docs` directory. +4. In the new file, add contribution guidelines. These could include: + - Steps for creating good issues or pull requests. + - Links to external documentation, mailing lists, or a code of conduct. + - Community and behavioral expectations. +{% data reusables.files.write_commit_message %} +{% data reusables.files.choose_commit_branch %} +{% data reusables.files.propose_new_file %} -## 参与指南示例 +## Examples of contribution guidelines -如果您觉得难以着手,以下是参与指南的一些良好示例: +If you're stumped, here are some good examples of contribution guidelines: -- Atom 编辑器[参与指南](https://github.com/atom/atom/blob/master/CONTRIBUTING.md)。 -- Ruby on Rails [参与指南](https://github.com/rails/rails/blob/main/CONTRIBUTING.md)。 -- Open Government [参与指南](https://github.com/opengovernment/opengovernment/blob/master/CONTRIBUTING.md)。 +- The {% data variables.product.prodname_docs %} [contribution guidelines](https://github.com/github/docs/blob/main/CONTRIBUTING.md). +- The Ruby on Rails [contribution guidelines](https://github.com/rails/rails/blob/main/CONTRIBUTING.md). +- The Open Government [contribution guidelines](https://github.com/opengovernment/opengovernment/blob/master/CONTRIBUTING.md). -## 延伸阅读 -- 开源指南的“[启动开源项目](https://opensource.guide/starting-a-project/)”部分 {% ifversion fpt or ghec %} +## Further reading +- The Open Source Guides' section "[Starting an Open Source Project](https://opensource.guide/starting-a-project/)"{% ifversion fpt or ghec %} - [{% data variables.product.prodname_learning %}]({% data variables.product.prodname_learning_link %}){% endif %}{% ifversion fpt or ghes or ghec %} -- [添加许可证到存储库](/articles/adding-a-license-to-a-repository){% endif %} +- "[Adding a license to a repository](/articles/adding-a-license-to-a-repository)"{% endif %} diff --git a/translations/zh-CN/content/desktop/contributing-and-collaborating-using-github-desktop/making-changes-in-a-branch/index.md b/translations/zh-CN/content/desktop/contributing-and-collaborating-using-github-desktop/making-changes-in-a-branch/index.md index 3077495d30..42d4793a90 100644 --- a/translations/zh-CN/content/desktop/contributing-and-collaborating-using-github-desktop/making-changes-in-a-branch/index.md +++ b/translations/zh-CN/content/desktop/contributing-and-collaborating-using-github-desktop/making-changes-in-a-branch/index.md @@ -1,6 +1,6 @@ --- -title: 在分支中更改 -intro: '使用你常用的文本编辑器,如 [Atom](https://atom.io/),更改你的项目,然后使用 {% data variables.product.prodname_desktop %} 可视化有用的提交。' +title: Making changes in a branch +intro: 'Use your favorite text editor, such as [{% data variables.product.prodname_vscode %}](https://code.visualstudio.com/), to make changes to your project, then use {% data variables.product.prodname_desktop %} to visualize useful commits.' redirect_from: - /desktop/contributing-to-projects/making-changes-in-a-branch versions: @@ -12,11 +12,5 @@ children: - /viewing-the-branch-history - /pushing-changes-to-github shortTitle: Make changes in a branch -ms.openlocfilehash: 3ff1729cdf050f3604c383d965dda117b5a18e42 -ms.sourcegitcommit: fb047f9450b41b24afc43d9512a5db2a2b750a2a -ms.translationtype: HT -ms.contentlocale: zh-CN -ms.lasthandoff: 09/11/2022 -ms.locfileid: '145085094' --- diff --git a/translations/zh-CN/content/developers/apps/building-github-apps/authenticating-with-github-apps.md b/translations/zh-CN/content/developers/apps/building-github-apps/authenticating-with-github-apps.md index e25b98006d..a8274a92fa 100644 --- a/translations/zh-CN/content/developers/apps/building-github-apps/authenticating-with-github-apps.md +++ b/translations/zh-CN/content/developers/apps/building-github-apps/authenticating-with-github-apps.md @@ -48,7 +48,7 @@ To verify a private key: ![Private key fingerprint](/assets/images/github-apps/github_apps_private_key_fingerprint.png) 2. Generate the fingerprint of your private key (PEM) locally by using the following command: ```shell - $ openssl rsa -in PATH_TO_PEM_FILE -pubout -outform DER | openssl sha256 -binary | openssl base64 + $ openssl rsa -in PATH_TO_PEM_FILE -pubout -outform DER | openssl sha256 -binary | openssl base64 ``` 3. Compare the results of the locally generated fingerprint to the fingerprint you see in {% data variables.product.product_name %}. diff --git a/translations/zh-CN/content/developers/overview/managing-deploy-keys.md b/translations/zh-CN/content/developers/overview/managing-deploy-keys.md index 8dd4778fa5..45e840a023 100644 --- a/translations/zh-CN/content/developers/overview/managing-deploy-keys.md +++ b/translations/zh-CN/content/developers/overview/managing-deploy-keys.md @@ -1,6 +1,6 @@ --- -title: 管理部署密钥 -intro: 了解在自动化部署脚本时管理服务器上的 SSH 密钥的不同方法,以及哪种方法最适合您。 +title: Managing deploy keys +intro: Learn different ways to manage SSH keys on your servers when you automate deployment scripts and which way is best for you. redirect_from: - /guides/managing-deploy-keys - /v3/guides/managing-deploy-keys @@ -14,91 +14,90 @@ versions: ghec: '*' topics: - API -ms.openlocfilehash: 425535eb582c84801d79f00df751bb48d4a5b05e -ms.sourcegitcommit: 47bd0e48c7dba1dde49baff60bc1eddc91ab10c5 -ms.translationtype: HT -ms.contentlocale: zh-CN -ms.lasthandoff: 09/05/2022 -ms.locfileid: '146058466' --- -在自动执行部署脚本时,您可以使用 SSH 代理转发、HTTPS 结合 OAuth 令牌、部署密钥或机器用户来管理服务器上的 SSH 密钥。 -## SSH 代理转发 -在许多情况下,尤其是在项目开始时,SSH 代理转发是最快和最简单的方法。 代理转发与本地开发计算机使用相同的 SSH 密钥。 +You can manage SSH keys on your servers when automating deployment scripts using SSH agent forwarding, HTTPS with OAuth tokens, deploy keys, or machine users. -#### 优点 +## SSH agent forwarding -* 无需生成或跟踪任何新密钥。 -* 没有密钥管理;用户在服务器上具有与本地相同的权限。 -* 服务器上没有存储密钥,因此,万一服务器受到破坏,您不需要搜索并删除泄露的密钥。 +In many cases, especially in the beginning of a project, SSH agent forwarding is the quickest and simplest method to use. Agent forwarding uses the same SSH keys that your local development computer uses. -#### 缺点 +#### Pros -* 用户必须通过 SSH 连接进行部署;无法使用自动部署流程。 -* 对于 Windows 用户来说,使用 SSH 代理转发可能比较麻烦。 +* You do not have to generate or keep track of any new keys. +* There is no key management; users have the same permissions on the server that they do locally. +* No keys are stored on the server, so in case the server is compromised, you don't need to hunt down and remove the compromised keys. -#### 设置 +#### Cons -1. 在本地开启代理转发。 有关详细信息,请参阅[有关 SSH 代理转发的指南][ssh-agent-forwarding]。 -2. 将部署脚本设置为使用代理转发。 例如,在 bash 脚本上,启用代理转发将如下所示:`ssh -A serverA 'bash -s' < deploy.sh` +* Users **must** SSH in to deploy; automated deploy processes can't be used. +* SSH agent forwarding can be troublesome to run for Windows users. -## 使用 OAuth 令牌进行 HTTPS 克隆 +#### Setup -如果不想使用 SSH 密钥,可以将 HTTPS 与 OAuth 令牌结合使用。 +1. Turn on agent forwarding locally. See [our guide on SSH agent forwarding][ssh-agent-forwarding] for more information. +2. Set your deploy scripts to use agent forwarding. For example, on a bash script, enabling agent forwarding would look something like this: +`ssh -A serverA 'bash -s' < deploy.sh` -#### 优点 +## HTTPS cloning with OAuth tokens -* 有权访问服务器的任何人都可以部署仓库。 -* 用户不必更改其本地 SSH 设置。 -* 不需要多个令牌(每个用户一个);每个服务器一个令牌就足够了。 -* 令牌可随时撤销,本质上变成一次性密码。 +If you don't want to use SSH keys, you can use HTTPS with OAuth tokens. + +#### Pros + +* Anyone with access to the server can deploy the repository. +* Users don't have to change their local SSH settings. +* Multiple tokens (one for each user) are not needed; one token per server is enough. +* A token can be revoked at any time, turning it essentially into a one-use password. {% ifversion ghes %} -* 使用 [OAuth API](/rest/reference/oauth-authorizations#create-a-new-authorization) 可以轻松编写生成新令牌的脚本。 +* Generating new tokens can be easily scripted using [the OAuth API](/rest/reference/oauth-authorizations#create-a-new-authorization). {% endif %} -#### 缺点 +#### Cons -* 必须确保使用正确的访问范围配置令牌。 -* 令牌本质上是密码,必须以同样的方式进行保护。 +* You must make sure that you configure your token with the correct access scopes. +* Tokens are essentially passwords, and must be protected the same way. -#### 设置 +#### Setup -请参阅[有关创建个人访问令牌的指南](/authentication/keeping-your-account-and-data-secure/creating-a-personal-access-token)。 +See [our guide on creating a personal access token](/authentication/keeping-your-account-and-data-secure/creating-a-personal-access-token). -## 部署密钥 +## Deploy keys {% data reusables.repositories.deploy-keys %} {% data reusables.repositories.deploy-keys-write-access %} -#### 优点 +#### Pros -* 有权访问仓库和服务器的任何人都能够部署项目。 -* 用户不必更改其本地 SSH 设置。 -* 部署密钥默认为只读,但在将其添加到存储库时可授予它们写入权限。 +* Anyone with access to the repository and server has the ability to deploy the project. +* Users don't have to change their local SSH settings. +* Deploy keys are read-only by default, but you can give them write access when adding them to a repository. -#### 缺点 +#### Cons -* 部署密钥只授予对单个仓库的访问权限。 较复杂的项目可能要将多个仓库拉取到同一服务器。 -* 部署密钥通常不受密码保护,因此在服务器遭到破坏时可轻松访问密钥。 +* Deploy keys only grant access to a single repository. More complex projects may have many repositories to pull to the same server. +* Deploy keys are usually not protected by a passphrase, making the key easily accessible if the server is compromised. -#### 设置 +#### Setup -1. 在服务器上[运行 `ssh-keygen` 过程][generating-ssh-keys],并记住保存生成的公共和专用 rsa 密钥对的位置。 -2. 在任意 {% data variables.product.product_name %} 页面的右上角,单击个人资料照片,然后单击“你的个人资料”。 ![个人资料导航](/assets/images/profile-page.png) -3. 在个人资料页上,单击“存储库”,然后单击存储库的名称。 ![存储库链接](/assets/images/repos.png) -4. 在存储库中,单击“设置”。 ![存储库设置](/assets/images/repo-settings.png) -5. 在边栏中,单击“部署密钥”,然后单击“添加部署密钥” 。 ![添加部署密钥链接](/assets/images/add-deploy-key.png) -6. 提供标题,粘贴到公钥中。 ![部署密钥页面](/assets/images/deploy-key.png) -7. 如果希望此密钥具有对存储库的写入权限,请选择“允许写入权限”。 具有写入权限的部署密钥允许将部署推送到仓库。 -8. 单击“添加密钥”。 +1. [Run the `ssh-keygen` procedure][generating-ssh-keys] on your server, and remember where you save the generated public and private rsa key pair. +{% data reusables.profile.navigating-to-profile %} -#### 在一台服务器上使用多个仓库 + ![Navigation to profile](/assets/images/profile-page.png) +1. On your profile page, click **Repositories**, then click the name of your repository. ![Repositories link](/assets/images/repos.png) +2. From your repository, click **Settings**. ![Repository settings](/assets/images/repo-settings.png) +3. In the sidebar, click **Deploy Keys**, then click **Add deploy key**. ![Add Deploy Keys link](/assets/images/add-deploy-key.png) +4. Provide a title, paste in your public key. ![Deploy Key page](/assets/images/deploy-key.png) +5. Select **Allow write access** if you want this key to have write access to the repository. A deploy key with write access lets a deployment push to the repository. +6. Click **Add key**. -如果在一台服务器上使用多个仓库,则需要为每个仓库生成专用密钥对。 不能对多个仓库重复使用一个部署密钥。 +#### Using multiple repositories on one server -在服务器的 SSH 配置文件中(通常为 `~/.ssh/config`),为每个存储库添加别名条目。 例如: +If you use multiple repositories on one server, you will need to generate a dedicated key pair for each one. You can't reuse a deploy key for multiple repositories. + +In the server's SSH configuration file (usually `~/.ssh/config`), add an alias entry for each repository. For example: ```bash Host {% ifversion fpt or ghec %}github.com{% else %}my-GHE-hostname.com{% endif %}-repo-0 @@ -110,79 +109,79 @@ Host {% ifversion fpt or ghec %}github.com{% else %}my-GHE-hostname.com{% endif IdentityFile=/home/user/.ssh/repo-1_deploy_key ``` -* `Host {% ifversion fpt or ghec %}github.com{% else %}my-GHE-hostname.com{% endif %}-repo-0` - 存储库的别名。 -* `Hostname {% ifversion fpt or ghec %}github.com{% else %}my-GHE-hostname.com{% endif %}` - 将主机名配置为与别名一起使用。 -* `IdentityFile=/home/user/.ssh/repo-0_deploy_key` - 将私钥分配给别名。 +* `Host {% ifversion fpt or ghec %}github.com{% else %}my-GHE-hostname.com{% endif %}-repo-0` - The repository's alias. +* `Hostname {% ifversion fpt or ghec %}github.com{% else %}my-GHE-hostname.com{% endif %}` - Configures the hostname to use with the alias. +* `IdentityFile=/home/user/.ssh/repo-0_deploy_key` - Assigns a private key to the alias. -然后可以使用主机名的别名通过 SSH 与仓库进行交互,SSH 将使用分配给该别名的唯一部署密钥。 例如: +You can then use the hostname's alias to interact with the repository using SSH, which will use the unique deploy key assigned to that alias. For example: ```bash $ git clone git@{% ifversion fpt or ghec %}github.com{% else %}my-GHE-hostname.com{% endif %}-repo-1:OWNER/repo-1.git ``` -## 服务器到服务器令牌 +## Server-to-server tokens -如果服务器需要访问一个或多个组织的存储库,可以使用 GitHub 应用来定义需要的访问权限,然后从该 GitHub 应用生成 tightly-scoped、server-to-server 令牌 。 服务器到服务器令牌可以扩展到单个或多个仓库,并且可以拥有细致的权限。 例如,您可以生成对仓库内容具有只读权限的令牌。 +If your server needs to access repositories across one or more organizations, you can use a GitHub App to define the access you need, and then generate _tightly-scoped_, _server-to-server_ tokens from that GitHub App. The server-to-server tokens can be scoped to single or multiple repositories, and can have fine-grained permissions. For example, you can generate a token with read-only access to a repository's contents. -由于 GitHub 应用程序是 {% data variables.product.product_name %} 上的一类角色,因此服务器到服务器令牌不限于任何 GitHub 用户,这使它们堪比“服务令牌”。 此外,服务器到服务器令牌有专门的速率限制,与它们所依据的组织规模相当。 有关详细信息,请参阅 [{% data variables.product.prodname_github_apps %} 的速率限制](/developers/apps/rate-limits-for-github-apps)。 +Since GitHub Apps are a first class actor on {% data variables.product.product_name %}, the server-to-server tokens are decoupled from any GitHub user, which makes them comparable to "service tokens". Additionally, server-to-server tokens have dedicated rate limits that scale with the size of the organizations that they act upon. For more information, see [Rate limits for {% data variables.product.prodname_github_apps %}](/developers/apps/rate-limits-for-github-apps). -#### 优点 +#### Pros -- 具有明确定义的权限集和到期时间的严格范围令牌(如果使用 API 手动撤销,则为 1 小时或更短时间)。 -- 随组织而增长的专用速率限制。 -- 与 GitHub 用户身份脱钩,因此他们不消耗任何许可席位。 -- 从未授予密码,因此无法直接登录。 +- Tightly-scoped tokens with well-defined permission sets and expiration times (1 hour, or less if revoked manually using the API). +- Dedicated rate limits that grow with your organization. +- Decoupled from GitHub user identities, so they do not consume any licensed seats. +- Never granted a password, so cannot be directly signed in to. -#### 缺点 +#### Cons -- 创建 GitHub 应用程序需要其他设置。 -- 服务器到服务器令牌 1 小时后过期,因此需要重新生成,通常是按需使用代码。 +- Additional setup is needed to create the GitHub App. +- Server-to-server tokens expire after 1 hour, and so need to be re-generated, typically on-demand using code. -#### 设置 +#### Setup -1. 确定您的 GitHub 应用程序是公开的还是私有的。 如果您的 GitHub 应用程序将仅在您组织内的仓库上操作,您可能希望它是私有的。 -1. 确定 GitHub 应用程序所需的权限,例如对仓库内容的只读访问权限。 -1. 通过组织的设置页面创建您的 GitHub 应用程序。 有关详细信息,请参阅[创建 GitHub 应用程序](/developers/apps/creating-a-github-app)。 -1. 记下 GitHub 应用 `id`。 -1. 生成并下载 GitHub 应用程序的私钥,并妥善保管。 有关详细信息,请参阅[生成私钥](/developers/apps/authenticating-with-github-apps#generating-a-private-key)。 -1. 将 GitHub 应用程序安装到需要执行它的仓库中,您可以在组织中的所有仓库上选择性地安装 GitHub 应用程序。 -1. 标识 `installation_id`,它表示 GitHub 应用与其可以访问的组织存储库之间的连接。 每个 GitHub 应用和组织对都最多只有一个 `installation_id`。 可以通过[获取经过身份验证的应用的组织安装](/rest/reference/apps#get-an-organization-installation-for-the-authenticated-app)来标识此 `installation_id`。 这需要使用 JWT 验证为 GitHub 应用,有关详细信息,请参阅[验证为 GitHub 应用](/developers/apps/authenticating-with-github-apps#authenticating-as-a-github-app)。 -1. 使用相应的 REST API 终结点生成服务器到服务器令牌,[为应用创建安装访问令牌](/rest/reference/apps#create-an-installation-access-token-for-an-app)。 这需要使用 JWT 验证为 GitHub 应用,有关详细信息,请参阅[验证为 GitHub 应用](/developers/apps/authenticating-with-github-apps#authenticating-as-a-github-app)以及[验证为安装](/developers/apps/authenticating-with-github-apps#authenticating-as-an-installation)。 -1. 使用此服务器到服务器令牌,通过 REST 或 GraphQL API 或者通过 Git 客户端与您的仓库进行交互。 +1. Determine if your GitHub App should be public or private. If your GitHub App will only act on repositories within your organization, you likely want it private. +1. Determine the permissions your GitHub App requires, such as read-only access to repository contents. +1. Create your GitHub App via your organization's settings page. For more information, see [Creating a GitHub App](/developers/apps/creating-a-github-app). +1. Note your GitHub App `id`. +1. Generate and download your GitHub App's private key, and store this safely. For more information, see [Generating a private key](/developers/apps/authenticating-with-github-apps#generating-a-private-key). +1. Install your GitHub App on the repositories it needs to act upon, optionally you may install the GitHub App on all repositories in your organization. +1. Identify the `installation_id` that represents the connection between your GitHub App and the organization repositories it can access. Each GitHub App and organization pair have at most a single `installation_id`. You can identify this `installation_id` via [Get an organization installation for the authenticated app](/rest/reference/apps#get-an-organization-installation-for-the-authenticated-app). This requires authenticating as a GitHub App using a JWT, for more information see [Authenticating as a GitHub App](/developers/apps/authenticating-with-github-apps#authenticating-as-a-github-app). +1. Generate a server-to-server token using the corresponding REST API endpoint, [Create an installation access token for an app](/rest/reference/apps#create-an-installation-access-token-for-an-app). This requires authenticating as a GitHub App using a JWT, for more information see [Authenticating as a GitHub App](/developers/apps/authenticating-with-github-apps#authenticating-as-a-github-app), and [Authenticating as an installation](/developers/apps/authenticating-with-github-apps#authenticating-as-an-installation). +1. Use this server-to-server token to interact with your repositories, either via the REST or GraphQL APIs, or via a Git client. -## 机器用户 +## Machine users -如果您的服务器需要访问多个仓库,您可以创建一个新的 {% ifversion ghae %}{% data variables.product.product_name %}{% else %}{% data variables.product.product_location %}{% endif %} 帐户并附加一个专用于自动化的 SSH 密钥。 由于人们不会使用 {% ifversion ghae %}{% data variables.product.product_name %}{% else %}{% data variables.product.product_location %}{% endif %} 上的这个帐户,因此它被称为“机器用户”。 可以将机器用户添加为个人存储库上的[协作者][collaborator](授予读取和写入访问权限),或添加为组织存储库上的[外部协作者][outside-collaborator](授予读取、写入或管理员访问权限),或添加到有权访问其需要自动化的存储库的[团队][team](授予团队权限)。 +If your server needs to access multiple repositories, you can create a new account on {% ifversion ghae %}{% data variables.product.product_name %}{% else %}{% data variables.product.product_location %}{% endif %} and attach an SSH key that will be used exclusively for automation. Since this account on {% ifversion ghae %}{% data variables.product.product_name %}{% else %}{% data variables.product.product_location %}{% endif %} won't be used by a human, it's called a _machine user_. You can add the machine user as a [collaborator][collaborator] on a personal repository (granting read and write access), as an [outside collaborator][outside-collaborator] on an organization repository (granting read, write, or admin access), or to a [team][team] with access to the repositories it needs to automate (granting the permissions of the team). {% ifversion fpt or ghec %} {% tip %} -提示:我们的[服务条款][tos]规定: +**Tip:** Our [terms of service][tos] state: -> 不允许通过“机器人”或其他自动方法注册帐户。 +> *Accounts registered by "bots" or other automated methods are not permitted.* -这意味着您不能自动创建帐户。 但是,如果要创建一个机器用户来自动化任务(例如在项目或组织中部署脚本),那就太酷了。 +This means that you cannot automate the creation of accounts. But if you want to create a single machine user for automating tasks such as deploy scripts in your project or organization, that is totally cool. {% endtip %} {% endif %} -#### 优点 +#### Pros -* 有权访问仓库和服务器的任何人都能够部署项目。 -* 没有(人类)用户需要更改其本地 SSH 设置。 -* 不需要多个密钥;每台服务器一个就足够了。 +* Anyone with access to the repository and server has the ability to deploy the project. +* No (human) users need to change their local SSH settings. +* Multiple keys are not needed; one per server is adequate. -#### 缺点 +#### Cons -* 只有组织才能将机器用户限制为只读访问。 个人仓库始终授予协作者读取/写入权限。 -* 机器用户密钥(如部署密钥)通常不受密码保护。 +* Only organizations can restrict machine users to read-only access. Personal repositories always grant collaborators read/write access. +* Machine user keys, like deploy keys, are usually not protected by a passphrase. -#### 设置 +#### Setup -1. [在服务器上运行 `ssh-keygen` 过程][generating-ssh-keys],并将公钥附加到计算机用户帐户。 -2. 授予机器用户帐户访问要自动化的仓库的权限。 可以通过将帐户添加为 [协作者][collaborator]、[外部协作者][outside-collaborator],或添加到组织中的[团队][team]来执行此操作。 +1. [Run the `ssh-keygen` procedure][generating-ssh-keys] on your server and attach the public key to the machine user account. +2. Give the machine user account access to the repositories you want to automate. You can do this by adding the account as a [collaborator][collaborator], as an [outside collaborator][outside-collaborator], or to a [team][team] in an organization. [ssh-agent-forwarding]: /guides/using-ssh-agent-forwarding/ [generating-ssh-keys]: /articles/generating-a-new-ssh-key-and-adding-it-to-the-ssh-agent/#generating-a-new-ssh-key @@ -192,5 +191,5 @@ $ git clone git@{% ifversion fpt or ghec %}github.com{% else %}my-GHE-hostname.c [outside-collaborator]: /articles/adding-outside-collaborators-to-repositories-in-your-organization [team]: /articles/adding-organization-members-to-a-team -## 延伸阅读 -- [配置通知](/account-and-profile/managing-subscriptions-and-notifications-on-github/setting-up-notifications/configuring-notifications#organization-alerts-notification-options) +## Further reading +- [Configuring notifications](/account-and-profile/managing-subscriptions-and-notifications-on-github/setting-up-notifications/configuring-notifications#organization-alerts-notification-options) diff --git a/translations/zh-CN/content/developers/webhooks-and-events/webhooks/webhook-events-and-payloads.md b/translations/zh-CN/content/developers/webhooks-and-events/webhooks/webhook-events-and-payloads.md index 5125f03909..cf32263771 100644 --- a/translations/zh-CN/content/developers/webhooks-and-events/webhooks/webhook-events-and-payloads.md +++ b/translations/zh-CN/content/developers/webhooks-and-events/webhooks/webhook-events-and-payloads.md @@ -106,7 +106,7 @@ Activity related to a branch protection rule. For more information, see "[About - Repository webhooks - Organization webhooks -- {% data variables.product.prodname_github_apps %} with at least `read-only` access on repositories administration +- {% data variables.product.prodname_github_apps %} with **Administration** repository permission ### Webhook payload object @@ -161,7 +161,7 @@ Key | Type | Description - Repository webhooks only receive payloads for the `created` and `completed` event types in a repository - Organization webhooks only receive payloads for the `created` and `completed` event types in repositories -- {% data variables.product.prodname_github_apps %} with the `checks:read` permission receive payloads for the `created` and `completed` events that occur in the repository where the app is installed. The app must have the `checks:write` permission to receive the `rerequested` and `requested_action` event types. The `rerequested` and `requested_action` event type payloads are only sent to the {% data variables.product.prodname_github_app %} being requested. {% data variables.product.prodname_github_apps %} with the `checks:write` are automatically subscribed to this webhook event. +- {% data variables.product.prodname_github_apps %} with **Checks** read permission receive payloads for the `created` and `completed` events that occur in the repository where the app is installed. The app must have **Checks** write permission to receive the `rerequested` and `requested_action` event types. The `rerequested` and `requested_action` event type payloads are only sent to the {% data variables.product.prodname_github_app %} being requested. {% data variables.product.prodname_github_apps %} with **Checks** write permission are automatically subscribed to this webhook event. ### Webhook payload object @@ -185,7 +185,7 @@ Key | Type | Description - Repository webhooks only receive payloads for the `completed` event types in a repository - Organization webhooks only receive payloads for the `completed` event types in repositories -- {% data variables.product.prodname_github_apps %} with the `checks:read` permission receive payloads for the `created` and `completed` events that occur in the repository where the app is installed. The app must have the `checks:write` permission to receive the `requested` and `rerequested` event types. The `requested` and `rerequested` event type payloads are only sent to the {% data variables.product.prodname_github_app %} being requested. {% data variables.product.prodname_github_apps %} with the `checks:write` are automatically subscribed to this webhook event. +- {% data variables.product.prodname_github_apps %} with **Checks** read permission receive payloads for the `created` and `completed` events that occur in the repository where the app is installed. The app must have **Checks** write permission to receive the `requested` and `rerequested` event types. The `requested` and `rerequested` event type payloads are only sent to the {% data variables.product.prodname_github_app %} being requested. {% data variables.product.prodname_github_apps %} with **Checks** write permission are automatically subscribed to this webhook event. ### Webhook payload object @@ -207,7 +207,7 @@ Key | Type | Description - Repository webhooks - Organization webhooks -- {% data variables.product.prodname_github_apps %} with the `security_events :read` permission +- {% data variables.product.prodname_github_apps %} with **Code scanning alerts** permission ### Webhook payload object @@ -229,7 +229,7 @@ Key | Type | Description - Repository webhooks - Organization webhooks -- {% data variables.product.prodname_github_apps %} with the `contents` permission +- {% data variables.product.prodname_github_apps %} with **Contents** permission ### Webhook payload object @@ -273,7 +273,7 @@ Webhook events are triggered based on the specificity of the domain you register - Repository webhooks - Organization webhooks -- {% data variables.product.prodname_github_apps %} with the `contents` permission +- {% data variables.product.prodname_github_apps %} with **Contents** permission ### Webhook payload object @@ -302,7 +302,7 @@ Webhook events are triggered based on the specificity of the domain you register - Repository webhooks - Organization webhooks -- {% data variables.product.prodname_github_apps %} with the `contents` permission +- {% data variables.product.prodname_github_apps %} with **Contents** permission ### Webhook payload object @@ -345,7 +345,7 @@ Webhook events are triggered based on the specificity of the domain you register - Repository webhooks - Organization webhooks -- {% data variables.product.prodname_github_apps %} with the `deployments` permission +- {% data variables.product.prodname_github_apps %} with **Deployments** permission ### Webhook payload object @@ -370,7 +370,7 @@ Key | Type | Description - Repository webhooks - Organization webhooks -- {% data variables.product.prodname_github_apps %} with the `deployments` permission +- {% data variables.product.prodname_github_apps %} with **Deployments** permission ### Webhook payload object @@ -401,7 +401,7 @@ Activity related to a discussion. For more information, see the "[Using the Grap - Repository webhooks - Organization webhooks -- {% data variables.product.prodname_github_apps %} with the `discussions` permission +- {% data variables.product.prodname_github_apps %} with **Discussions** permission ### Webhook payload object @@ -427,7 +427,7 @@ Activity related to a comment in a discussion. For more information, see "[Using - Repository webhooks - Organization webhooks -- {% data variables.product.prodname_github_apps %} with the `discussions` permission +- {% data variables.product.prodname_github_apps %} with **Discussions** permission ### Webhook payload object @@ -475,7 +475,7 @@ Key | Type | Description - Repository webhooks - Organization webhooks -- {% data variables.product.prodname_github_apps %} with the `contents` permission +- {% data variables.product.prodname_github_apps %} with **Contents** permission ### Webhook payload object @@ -518,7 +518,7 @@ Key | Type | Description - Repository webhooks - Organization webhooks -- {% data variables.product.prodname_github_apps %} with the `contents` permission +- {% data variables.product.prodname_github_apps %} with **Contents** permission ### Webhook payload object @@ -576,7 +576,7 @@ Key | Type | Description - Repository webhooks - Organization webhooks -- {% data variables.product.prodname_github_apps %} with the `issues` permission +- {% data variables.product.prodname_github_apps %} with **Issues** permission ### Webhook payload object @@ -599,7 +599,7 @@ Key | Type | Description - Repository webhooks - Organization webhooks -- {% data variables.product.prodname_github_apps %} with the `issues` permission +- {% data variables.product.prodname_github_apps %} with **Issues** permission ### Webhook payload object @@ -622,7 +622,7 @@ Key | Type | Description - Repository webhooks - Organization webhooks -- {% data variables.product.prodname_github_apps %} with the `metadata` permission +- {% data variables.product.prodname_github_apps %} with **Metadata** permission ### Webhook payload object @@ -673,7 +673,7 @@ For a detailed description of this payload and the payload for each type of `act - Repository webhooks - Organization webhooks -- {% data variables.product.prodname_github_apps %} with the `members` permission +- {% data variables.product.prodname_github_apps %} with **Members** permission ### Webhook payload object @@ -695,7 +695,7 @@ For a detailed description of this payload and the payload for each type of `act ### Availability - Organization webhooks -- {% data variables.product.prodname_github_apps %} with the `members` permission +- {% data variables.product.prodname_github_apps %} with **Members** permission ### Webhook payload object @@ -721,7 +721,7 @@ Activity related to merge groups in a merge queue. The type of activity is speci - Repository webhooks - Organization webhooks -- {% data variables.product.prodname_github_apps %} with the `merge_queues` permission +- {% data variables.product.prodname_github_apps %} with **Merge queues** permission ### Webhook payload object @@ -775,7 +775,7 @@ Key | Type | Description - Repository webhooks - Organization webhooks -- {% data variables.product.prodname_github_apps %} with the `pull_requests` permission +- {% data variables.product.prodname_github_apps %} with **Pull requests** permission ### Webhook payload object @@ -798,7 +798,7 @@ Key | Type | Description {% ifversion ghes or ghae %} - GitHub Enterprise webhooks only receive `created` and `deleted` events. For more information, "[Global webhooks](/rest/reference/enterprise-admin#global-webhooks/).{% endif %} - Organization webhooks only receive the `deleted`, `added`, `removed`, `renamed`, and `invited` events -- {% data variables.product.prodname_github_apps %} with the `members` permission +- {% data variables.product.prodname_github_apps %} with **Members** permission ### Webhook payload object @@ -824,7 +824,7 @@ Key | Type | Description ### Availability - Organization webhooks -- {% data variables.product.prodname_github_apps %} with the `organization_administration` permission +- {% data variables.product.prodname_github_apps %} with **Administration** organization permission ### Webhook payload object @@ -870,7 +870,7 @@ Activity related to {% data variables.product.prodname_registry %}. {% data reus - Repository webhooks - Organization webhooks -- {% data variables.product.prodname_github_apps %} with the `pages` permission +- {% data variables.product.prodname_github_apps %} with **Pages** permission ### Webhook payload object @@ -921,7 +921,7 @@ Key | Type | Description - Repository webhooks - Organization webhooks -- {% data variables.product.prodname_github_apps %} with the `repository_projects` or `organization_projects` permission +- {% data variables.product.prodname_github_apps %} with **Projects** repository or organization permission {% ifversion projects-v2 %} {% note %} @@ -953,7 +953,7 @@ Key | Type | Description - Repository webhooks - Organization webhooks -- {% data variables.product.prodname_github_apps %} with the `repository_projects` or `organization_projects` permission +- {% data variables.product.prodname_github_apps %} with **Projects** repository or organization permission {% ifversion projects-v2 %} {% note %} @@ -983,7 +983,7 @@ Key | Type | Description - Repository webhooks - Organization webhooks -- {% data variables.product.prodname_github_apps %} with the `repository_projects` or `organization_projects` permission +- {% data variables.product.prodname_github_apps %} with **Projects** repository or organization permission {% ifversion projects-v2 %} {% note %} @@ -1020,7 +1020,7 @@ Activity related to items in a {% data variables.projects.project_v2 %}. {% data ### Availability - Organization webhooks -- {% data variables.product.prodname_github_apps %} with the `organization_projects` permission +- {% data variables.product.prodname_github_apps %} with **Projects** organization permission ### Webhook payload object @@ -1046,7 +1046,7 @@ Key | Type | Description - Repository webhooks - Organization webhooks -- {% data variables.product.prodname_github_apps %} with the `metadata` permission +- {% data variables.product.prodname_github_apps %} with **Metadata** permission ### Webhook payload object @@ -1073,7 +1073,7 @@ Key | Type | Description - Repository webhooks - Organization webhooks -- {% data variables.product.prodname_github_apps %} with the `pull_requests` permission +- {% data variables.product.prodname_github_apps %} with **Pull requests** permission ### Webhook payload object @@ -1098,7 +1098,7 @@ Deliveries for `review_requested` and `review_request_removed` events will have - Repository webhooks - Organization webhooks -- {% data variables.product.prodname_github_apps %} with the `pull_requests` permission +- {% data variables.product.prodname_github_apps %} with **Pull requests** permission ### Webhook payload object @@ -1120,7 +1120,7 @@ Deliveries for `review_requested` and `review_request_removed` events will have - Repository webhooks - Organization webhooks -- {% data variables.product.prodname_github_apps %} with the `pull_requests` permission +- {% data variables.product.prodname_github_apps %} with **Pull requests** permission ### Webhook payload object @@ -1143,7 +1143,7 @@ Deliveries for `review_requested` and `review_request_removed` events will have - Repository webhooks - Organization webhooks -- {% data variables.product.prodname_github_apps %} with the `pull_requests` permission +- {% data variables.product.prodname_github_apps %} with **Pull requests** permission ### Webhook payload object @@ -1171,7 +1171,7 @@ Deliveries for `review_requested` and `review_request_removed` events will have - Repository webhooks - Organization webhooks -- {% data variables.product.prodname_github_apps %} with the `contents` permission +- {% data variables.product.prodname_github_apps %} with **Contents** permission ### Webhook payload object @@ -1215,7 +1215,7 @@ Key | Type | Description - Repository webhooks - Organization webhooks -- {% data variables.product.prodname_github_apps %} with the `contents` permission +- {% data variables.product.prodname_github_apps %} with **Contents** permission ### Webhook payload object @@ -1236,7 +1236,7 @@ This event occurs when a {% data variables.product.prodname_github_app %} sends ### Availability -- {% data variables.product.prodname_github_apps %} must have the `contents` permission to receive this webhook. +- {% data variables.product.prodname_github_apps %} with **Contents** permission ### Webhook payload example @@ -1250,7 +1250,7 @@ This event occurs when a {% data variables.product.prodname_github_app %} sends - Repository webhooks receive all event types except `deleted` - Organization webhooks -- {% data variables.product.prodname_github_apps %} with the `metadata` permission receive all event types except `deleted` +- {% data variables.product.prodname_github_apps %} with **Metadata** permission receive all event types except `deleted` ### Webhook payload object @@ -1319,7 +1319,7 @@ Key | Type | Description - Repository webhooks - Organization webhooks -- {% data variables.product.prodname_github_apps %} with the `secret_scanning_alerts:read` permission +- {% data variables.product.prodname_github_apps %} with **Secret scanning alerts** permission ### Webhook payload object @@ -1343,7 +1343,7 @@ Key | Type | Description - Repository webhooks - Organization webhooks -- {% data variables.product.prodname_github_apps %} with the `secret_scanning_alerts:read` permission +- {% data variables.product.prodname_github_apps %} with **Secret scanning alerts** permission ### Webhook payload object @@ -1366,7 +1366,7 @@ The security advisory dataset also powers the GitHub {% data variables.product.p ### Availability -- {% data variables.product.prodname_github_apps %} with the `security_events` permission +- {% data variables.product.prodname_github_apps %} ### Webhook payload object @@ -1391,7 +1391,7 @@ Activity related to enabling or disabling code security and analysis features fo - Repository webhooks - Organization webhooks -- {% data variables.product.prodname_github_apps %} with at least `read-only` access on repositories administration +- {% data variables.product.prodname_github_apps %} with **Administration** repository permission ### Webhook payload object @@ -1464,7 +1464,7 @@ You can only create a sponsorship webhook on {% data variables.product.prodname_ - Repository webhooks - Organization webhooks -- {% data variables.product.prodname_github_apps %} with the `statuses` permission +- {% data variables.product.prodname_github_apps %} with **Commit statuses** permission ### Webhook payload object @@ -1492,7 +1492,7 @@ Key | Type | Description ### Availability - Organization webhooks -- {% data variables.product.prodname_github_apps %} with the `members` permission +- {% data variables.product.prodname_github_apps %} with **Members** permission ### Webhook payload object @@ -1523,7 +1523,7 @@ Key | Type | Description - Repository webhooks - Organization webhooks -- {% data variables.product.prodname_github_apps %} with the `members` permission +- {% data variables.product.prodname_github_apps %} with **Members** permission ### Webhook payload object @@ -1564,7 +1564,7 @@ The event’s actor is the [user](/rest/reference/users) who starred a repositor - Repository webhooks - Organization webhooks -- {% data variables.product.prodname_github_apps %} with the `metadata` permission +- {% data variables.product.prodname_github_apps %} with **Metadata** permission ### Webhook payload object @@ -1585,7 +1585,7 @@ This event occurs when someone triggers a workflow run on GitHub or sends a `POS ### Availability -- {% data variables.product.prodname_github_apps %} must have the `contents` permission to receive this webhook. +- {% data variables.product.prodname_github_apps %} with **Contents** permission ### Webhook payload object @@ -1634,7 +1634,7 @@ When a {% data variables.product.prodname_actions %} workflow run is requested o ### Availability -- {% data variables.product.prodname_github_apps %} with the `actions` or `contents` permissions. +- {% data variables.product.prodname_github_apps %} with **Actions** or **Contents** permissions ### Webhook payload object diff --git a/translations/zh-CN/content/get-started/customizing-your-github-workflow/exploring-integrations/github-extensions-and-integrations.md b/translations/zh-CN/content/get-started/customizing-your-github-workflow/exploring-integrations/github-extensions-and-integrations.md index 4a47bb1307..463ad45f8b 100644 --- a/translations/zh-CN/content/get-started/customizing-your-github-workflow/exploring-integrations/github-extensions-and-integrations.md +++ b/translations/zh-CN/content/get-started/customizing-your-github-workflow/exploring-integrations/github-extensions-and-integrations.md @@ -1,6 +1,6 @@ --- -title: GitHub 扩展和集成 -intro: '通过 {% data variables.product.product_name %} 扩展可在第三方应用程序中无缝使用 {% data variables.product.product_name %} 仓库。' +title: GitHub extensions and integrations +intro: 'Use {% data variables.product.product_name %} extensions to work seamlessly in {% data variables.product.product_name %} repositories within third-party applications.' redirect_from: - /articles/about-github-extensions-for-third-party-applications - /articles/github-extensions-and-integrations @@ -10,53 +10,43 @@ versions: fpt: '*' ghec: '*' shortTitle: Extensions & integrations -ms.openlocfilehash: f33ce9b9ae55e523bedff1309f3f2f15202dcf82 -ms.sourcegitcommit: fcf3546b7cc208155fb8acdf68b81be28afc3d2d -ms.translationtype: HT -ms.contentlocale: zh-CN -ms.lasthandoff: 09/11/2022 -ms.locfileid: '147884211' --- -## 编辑器工具 +## Editor tools -可以在第三方编辑器工具中连接到 {% data variables.product.product_name %} 存储库,例如 Atom、Unity 和 {% data variables.product.prodname_vs %} 等工具。 - -### {% data variables.product.product_name %} for Atom - -使用 {% data variables.product.product_name %} for Atom 扩展,您可以从 Atom 编辑器中提交、推送、拉取和解决合并冲突等。 有关详细信息,请参阅官方 [{% data variables.product.product_name %} for Atom 站点](https://github.atom.io/)。 +You can connect to {% data variables.product.product_name %} repositories within third-party editor tools such as Unity and {% data variables.product.prodname_vs %}. ### {% data variables.product.product_name %} for Unity -使用 {% data variables.product.product_name %} for Unity 编辑器扩展,您可以在开源游戏开发平台 Unity 上进行开发,在 {% data variables.product.product_name %} 查看您的工作。 有关详细信息,请参阅官方 Unity 编辑器扩展[站点](https://unity.github.com/)或[文档](https://github.com/github-for-unity/Unity/tree/master/docs)。 +With the {% data variables.product.product_name %} for Unity editor extension, you can develop on Unity, the open source game development platform, and see your work on {% data variables.product.product_name %}. For more information, see the official Unity editor extension [site](https://unity.github.com/) or the [documentation](https://github.com/github-for-unity/Unity/tree/master/docs). -### 适用于 {% data variables.product.prodname_vs %} 的 {% data variables.product.product_name %} +### {% data variables.product.product_name %} for {% data variables.product.prodname_vs %} -通过适用于 {% data variables.product.prodname_vs %} 的 {% data variables.product.product_name %} 扩展,可以在 {% data variables.product.product_name %} 存储库中工作,而无需离开 {% data variables.product.prodname_vs %}。 有关详细信息,请参阅官方 {% data variables.product.prodname_vs %} 扩展[网站](https://visualstudio.github.com/)或[文档](https://github.com/github/VisualStudio/tree/master/docs)。 +With the {% data variables.product.product_name %} for {% data variables.product.prodname_vs %} extension, you can work in {% data variables.product.product_name %} repositories without leaving {% data variables.product.prodname_vs %}. For more information, see the official {% data variables.product.prodname_vs %} extension [site](https://visualstudio.github.com/) or [documentation](https://github.com/github/VisualStudio/tree/master/docs). -### 适用于 {% data variables.product.prodname_vscode %} 的 {% data variables.product.prodname_dotcom %} +### {% data variables.product.prodname_dotcom %} for {% data variables.product.prodname_vscode %} -通过适用于 {% data variables.product.prodname_vscode %} 的 {% data variables.product.prodname_dotcom %} 扩展,可以在 {% data variables.product.prodname_vscode_shortname %} 中查看和管理 {% data variables.product.product_name %} 拉取请求。 有关详细信息,请参阅官方 {% data variables.product.prodname_vscode_shortname %} 扩展[网站](https://vscode.github.com/)或[文档](https://github.com/Microsoft/vscode-pull-request-github)。 +With the {% data variables.product.prodname_dotcom %} for {% data variables.product.prodname_vscode %} extension, you can review and manage {% data variables.product.product_name %} pull requests in {% data variables.product.prodname_vscode_shortname %}. For more information, see the official {% data variables.product.prodname_vscode_shortname %} extension [site](https://vscode.github.com/) or [documentation](https://github.com/Microsoft/vscode-pull-request-github). -## 项目管理工具 +## Project management tools -您可以将 {% data variables.product.product_location %} 上的个人或组织帐户与第三方项目管理工具(如 Jira)集成。 +You can integrate your personal or organization account on {% data variables.product.product_location %} with third-party project management tools, such as Jira. -### Jira Cloud 与 {% data variables.product.product_name %}.com 集成 +### Jira Cloud and {% data variables.product.product_name %}.com integration -您可以将 Jira Cloud 与个人或组织帐户集成,以扫描提交和拉取请求,在任何提及的 Jira 议题中创建相关的元数据和超链接。 有关详细信息,请访问市场中的 [Jira 集成应用](https://github.com/marketplace/jira-software-github)。 +You can integrate Jira Cloud with your personal or organization account to scan commits and pull requests, creating relevant metadata and hyperlinks in any mentioned Jira issues. For more information, visit the [Jira integration app](https://github.com/marketplace/jira-software-github) in the marketplace. -## 团队通信工具 +## Team communication tools -您可以将 {% data variables.product.product_location %} 上的个人或组织帐户与第三方团队通信工具(如 Slack 或 Microsoft Teams)集成。 +You can integrate your personal or organization account on {% data variables.product.product_location %} with third-party team communication tools, such as Slack or Microsoft Teams. -### Slack 与 {% data variables.product.product_name %} 集成 +### Slack and {% data variables.product.product_name %} integration -利用 Slack + {% data variables.product.prodname_dotcom %} 应用,可订阅存储库或组织,并获取有关问题、拉取请求、提交、讨论、发布、部署评审和部署状态的实时更新。 还可以执行打开和关闭问题等活动,并且无需离开 Slack 就能查看对问题和拉取请求的详细引用。 如果频道或个人聊天中收到的任何 {% data variables.product.prodname_dotcom %} 通知中提及了你,该应用还将在 Slack 中单独 ping 你。 +The Slack + {% data variables.product.prodname_dotcom %} app lets you subscribe to your repositories or organizations and get realtime updates about issues, pull requests, commits, discussions, releases, deployment reviews and deployment statuses. You can also perform activities like opening and closing issues, and you can see detailed references to issues and pull requests without leaving Slack. The app will also ping you personally in Slack if you are mentioned as part of any {% data variables.product.prodname_dotcom %} notifications that you receive in your channels or personal chats. -Slack + {% data variables.product.prodname_dotcom %} 应用也与 [Slack Enterprise Grid](https://slack.com/intl/en-in/help/articles/360000281563-Manage-apps-on-Enterprise-Grid) 兼容。 有关详细信息,请访问市场中的 [Slack + {% data variables.product.prodname_dotcom %} 应用](https://github.com/marketplace/slack-github)。 +The Slack + {% data variables.product.prodname_dotcom %} app is also compatible with [Slack Enterprise Grid](https://slack.com/intl/en-in/help/articles/360000281563-Manage-apps-on-Enterprise-Grid). For more information, visit the [Slack + {% data variables.product.prodname_dotcom %} app](https://github.com/marketplace/slack-github) in the marketplace. -### Microsoft Teams 与 {% data variables.product.product_name %} 集成 +### Microsoft Teams and {% data variables.product.product_name %} integration -利用适用于 Teams 应用的 {% data variables.product.prodname_dotcom %} 支持订阅存储库或组织,及获取有关问题、拉取请求、提交、讨论、发布、部署评审和部署状态的实时更新。 还可以执行打开和关闭问题、评论你的问题和拉取请求等活动,并且无需离开 Microsoft Teams 就能查看对问题和拉取请求的详细引用。 如果频道或个人聊天中收到的任何 {% data variables.product.prodname_dotcom %} 通知中提及了你,该应用还将在 Teams 中单独 ping 你。 +The {% data variables.product.prodname_dotcom %} for Teams app lets you subscribe to your repositories or organizations and get realtime updates about issues, pull requests, commits, discussions, releases, deployment reviews and deployment statuses. You can also perform activities like opening and closing issues, commenting on your issues and pull requests, and you can see detailed references to issues and pull requests without leaving Microsoft Teams. The app will also ping you personally in Teams if you are mentioned as part of any {% data variables.product.prodname_dotcom %} notifications that you receive in your channels or personal chats. -有关详细信息,请访问 Microsoft AppSource 中的[适用于 Teams 的 {% data variables.product.prodname_dotcom %} 应用](https://appsource.microsoft.com/en-us/product/office/WA200002077)。 +For more information, visit the [{% data variables.product.prodname_dotcom %} for Teams app](https://appsource.microsoft.com/en-us/product/office/WA200002077) in Microsoft AppSource. diff --git a/translations/zh-CN/content/get-started/getting-started-with-git/associating-text-editors-with-git.md b/translations/zh-CN/content/get-started/getting-started-with-git/associating-text-editors-with-git.md index 8f2804133d..37d6192f7a 100644 --- a/translations/zh-CN/content/get-started/getting-started-with-git/associating-text-editors-with-git.md +++ b/translations/zh-CN/content/get-started/getting-started-with-git/associating-text-editors-with-git.md @@ -1,6 +1,6 @@ --- -title: 关联文本编辑器与 Git -intro: 使用文本编辑器打开文件并通过 Git 编辑。 +title: Associating text editors with Git +intro: Use a text editor to open and edit your files with Git. redirect_from: - /textmate - /articles/using-textmate-as-your-default-editor @@ -15,48 +15,33 @@ versions: ghae: '*' ghec: '*' shortTitle: Associate text editors -ms.openlocfilehash: 0d02c32ff04d4a5a2a1003464175e866630603f4 -ms.sourcegitcommit: 47bd0e48c7dba1dde49baff60bc1eddc91ab10c5 -ms.translationtype: HT -ms.contentlocale: zh-CN -ms.lasthandoff: 09/05/2022 -ms.locfileid: '145148751' --- {% mac %} -## 使用 Atom 作为编辑器 +## Using {% data variables.product.prodname_vscode %} as your editor -1. 安装 [Atom](https://atom.io/)。 有关详细信息,请参阅 Atom 文档中的“[安装 Atom](https://flight-manual.atom.io/getting-started/sections/installing-atom/)”。 +1. Install [{% data variables.product.prodname_vscode %}](https://code.visualstudio.com/) ({% data variables.product.prodname_vscode_shortname %}). For more information, see "[Setting up {% data variables.product.prodname_vscode_shortname %}](https://code.visualstudio.com/Docs/setup/setup-overview)" in the {% data variables.product.prodname_vscode_shortname %} documentation. {% data reusables.command_line.open_the_multi_os_terminal %} -3. 键入以下命令: - ```shell - $ git config --global core.editor "atom --wait" - ``` - -## 将 {% data variables.product.prodname_vscode %} 用作编辑器 - -1. 安装 [{% data variables.product.prodname_vscode %}](https://code.visualstudio.com/) ({% data variables.product.prodname_vscode_shortname %})。 有关详细信息,请参阅 {% data variables.product.prodname_vscode_shortname %} 文档中的“[设置 {% data variables.product.prodname_vscode_shortname %}](https://code.visualstudio.com/Docs/setup/setup-overview)”。 -{% data reusables.command_line.open_the_multi_os_terminal %} -3. 键入以下命令: +3. Type this command: ```shell $ git config --global core.editor "code --wait" ``` -## 使用 Sublime Text 作为编辑器 +## Using Sublime Text as your editor -1. 安装 [Sublime Text](https://www.sublimetext.com/)。 有关详细信息,请参阅 Sublime Text 文档中的“[安装](https://docs.sublimetext.io/guide/getting-started/installation.html)”。 +1. Install [Sublime Text](https://www.sublimetext.com/). For more information, see "[Installation](https://docs.sublimetext.io/guide/getting-started/installation.html)" in the Sublime Text documentation. {% data reusables.command_line.open_the_multi_os_terminal %} -3. 键入以下命令: +3. Type this command: ```shell $ git config --global core.editor "subl -n -w" ``` -## 使用 TextMate 作为编辑器 +## Using TextMate as your editor -1. 安装 [TextMate](https://macromates.com/)。 -2. 安装 TextMate 的 `mate` shell 实用工具。 有关详细信息,请参阅 TextMate 文档中的“[`mate` 和 `rmate`](https://macromates.com/blog/2011/mate-and-rmate/)”。 +1. Install [TextMate](https://macromates.com/). +2. Install TextMate's `mate` shell utility. For more information, see "[`mate` and `rmate`](https://macromates.com/blog/2011/mate-and-rmate/)" in the TextMate documentation. {% data reusables.command_line.open_the_multi_os_terminal %} -4. 键入以下命令: +4. Type this command: ```shell $ git config --global core.editor "mate -w" ``` @@ -64,38 +49,29 @@ ms.locfileid: '145148751' {% windows %} -## 使用 Atom 作为编辑器 +## Using {% data variables.product.prodname_vscode %} as your editor -1. 安装 [Atom](https://atom.io/)。 有关详细信息,请参阅 Atom 文档中的“[安装 Atom](https://flight-manual.atom.io/getting-started/sections/installing-atom/)”。 +1. Install [{% data variables.product.prodname_vscode %}](https://code.visualstudio.com/) ({% data variables.product.prodname_vscode_shortname %}). For more information, see "[Setting up {% data variables.product.prodname_vscode_shortname %}](https://code.visualstudio.com/Docs/setup/setup-overview)" in the {% data variables.product.prodname_vscode_shortname %} documentation. {% data reusables.command_line.open_the_multi_os_terminal %} -3. 键入以下命令: - ```shell - $ git config --global core.editor "atom --wait" - ``` - -## 将 {% data variables.product.prodname_vscode %} 用作编辑器 - -1. 安装 [{% data variables.product.prodname_vscode %}](https://code.visualstudio.com/) ({% data variables.product.prodname_vscode_shortname %})。 有关详细信息,请参阅 {% data variables.product.prodname_vscode_shortname %} 文档中的“[设置 {% data variables.product.prodname_vscode_shortname %}](https://code.visualstudio.com/Docs/setup/setup-overview)”。 -{% data reusables.command_line.open_the_multi_os_terminal %} -3. 键入以下命令: +3. Type this command: ```shell $ git config --global core.editor "code --wait" ``` -## 使用 Sublime Text 作为编辑器 +## Using Sublime Text as your editor -1. 安装 [Sublime Text](https://www.sublimetext.com/)。 有关详细信息,请参阅 Sublime Text 文档中的“[安装](https://docs.sublimetext.io/guide/getting-started/installation.html)”。 +1. Install [Sublime Text](https://www.sublimetext.com/). For more information, see "[Installation](https://docs.sublimetext.io/guide/getting-started/installation.html)" in the Sublime Text documentation. {% data reusables.command_line.open_the_multi_os_terminal %} -3. 键入以下命令: +3. Type this command: ```shell $ git config --global core.editor "'C:/Program Files (x86)/sublime text 3/subl.exe' -w" ``` -## 使用 Notepad++ 作为编辑器 +## Using Notepad++ as your editor -1. 从 https://notepad-plus-plus.org/ 安装 Notepad++。 有关详细信息,请参阅 Notepad++ 文档中的“[入门](https://npp-user-manual.org/docs/getting-started/)”。 +1. Install Notepad++ from https://notepad-plus-plus.org/. For more information, see "[Getting started](https://npp-user-manual.org/docs/getting-started/)" in the Notepad++ documentation. {% data reusables.command_line.open_the_multi_os_terminal %} -3. 键入以下命令: +3. Type this command: ```shell $ git config --global core.editor "'C:/Program Files (x86)/Notepad++/notepad++.exe' -multiInst -notabbar -nosession -noPlugin" ``` @@ -103,29 +79,20 @@ ms.locfileid: '145148751' {% linux %} -## 使用 Atom 作为编辑器 +## Using {% data variables.product.prodname_vscode %} as your editor -1. 安装 [Atom](https://atom.io/)。 有关详细信息,请参阅 Atom 文档中的“[安装 Atom](https://flight-manual.atom.io/getting-started/sections/installing-atom/)”。 +1. Install [{% data variables.product.prodname_vscode %}](https://code.visualstudio.com/) ({% data variables.product.prodname_vscode_shortname %}). For more information, see "[Setting up {% data variables.product.prodname_vscode_shortname %}](https://code.visualstudio.com/Docs/setup/setup-overview)" in the {% data variables.product.prodname_vscode_shortname %} documentation. {% data reusables.command_line.open_the_multi_os_terminal %} -3. 键入以下命令: - ```shell - $ git config --global core.editor "atom --wait" - ``` - -## 将 {% data variables.product.prodname_vscode %} 用作编辑器 - -1. 安装 [{% data variables.product.prodname_vscode %}](https://code.visualstudio.com/) ({% data variables.product.prodname_vscode_shortname %})。 有关详细信息,请参阅 {% data variables.product.prodname_vscode_shortname %} 文档中的“[设置 {% data variables.product.prodname_vscode_shortname %}](https://code.visualstudio.com/Docs/setup/setup-overview)”。 -{% data reusables.command_line.open_the_multi_os_terminal %} -3. 键入以下命令: +3. Type this command: ```shell $ git config --global core.editor "code --wait" ``` -## 使用 Sublime Text 作为编辑器 +## Using Sublime Text as your editor -1. 安装 [Sublime Text](https://www.sublimetext.com/)。 有关详细信息,请参阅 Sublime Text 文档中的“[安装](https://docs.sublimetext.io/guide/getting-started/installation.html)”。 +1. Install [Sublime Text](https://www.sublimetext.com/). For more information, see "[Installation](https://docs.sublimetext.io/guide/getting-started/installation.html)" in the Sublime Text documentation. {% data reusables.command_line.open_the_multi_os_terminal %} -3. 键入以下命令: +3. Type this command: ```shell $ git config --global core.editor "subl -n -w" ``` diff --git a/translations/zh-CN/content/get-started/index.md b/translations/zh-CN/content/get-started/index.md index 672b331cfc..2e358789f0 100644 --- a/translations/zh-CN/content/get-started/index.md +++ b/translations/zh-CN/content/get-started/index.md @@ -32,6 +32,7 @@ featuredLinks: - /get-started/onboarding/getting-started-with-github-enterprise-cloud - /get-started/onboarding/getting-started-with-github-enterprise-server - /get-started/onboarding/getting-started-with-github-ae + - /get-started/writing-on-github/getting-started-with-writing-and-formatting-on-github/quickstart-for-writing-on-github popular: - /github/getting-started-with-github/signing-up-for-a-new-github-account - /get-started/quickstart/hello-world diff --git a/translations/zh-CN/content/get-started/quickstart/communicating-on-github.md b/translations/zh-CN/content/get-started/quickstart/communicating-on-github.md index 4366ed75ad..746d67c59d 100644 --- a/translations/zh-CN/content/get-started/quickstart/communicating-on-github.md +++ b/translations/zh-CN/content/get-started/quickstart/communicating-on-github.md @@ -1,6 +1,6 @@ --- -title: 在 GitHub 上通信 -intro: '您可以在 {% data variables.product.product_name %} 中使用不同类型的讨论来讨论特定项目和更改,以及更广泛的想法或团队目标。' +title: Communicating on GitHub +intro: 'You can discuss specific projects and changes, as well as broader ideas or team goals, using different types of discussions on {% data variables.product.product_name %}.' miniTocMaxHeadingLevel: 3 redirect_from: - /github/collaborating-with-issues-and-pull-requests/getting-started/quickstart-for-communicating-on-github @@ -18,137 +18,137 @@ topics: - Issues - Discussions - Fundamentals -ms.openlocfilehash: 6c7461a01cd0bc44bff93b1eb4e8a013d26bc147 -ms.sourcegitcommit: 47bd0e48c7dba1dde49baff60bc1eddc91ab10c5 -ms.translationtype: HT -ms.contentlocale: zh-CN -ms.lasthandoff: 09/05/2022 -ms.locfileid: '147408889' --- -## 简介 +## Introduction -{% data variables.product.product_name %} 提供内置的协作通信工具,使您能够与社区进行密切互动。 此快速入门指南将指导您如何根据您的需求选择合适的工具。 +{% data variables.product.product_name %} provides built-in collaborative communication tools allowing you to interact closely with your community. This quickstart guide will show you how to pick the right tool for your needs. -{% ifversion discussions %}可以根据想参加的对话类型创建并参与问题、拉取请求、{% data variables.product.prodname_discussions %} 和团队讨论。 -{% else %}可以根据你想参加的对话类型创建并参与问题、拉取请求和团队讨论。 +{% ifversion discussions %} +You can create and participate in issues, pull requests, {% data variables.product.prodname_discussions %}, and team discussions, depending on the type of conversation you'd like to have. +{% else %} +You can create and participate in issues, pull requests and team discussions, depending on the type of conversation you'd like to have. {% endif %} ### {% data variables.product.prodname_github_issues %} -- 适用于讨论项目的具体细节,如漏洞报告、计划的改进和反馈。 -- 是特定于存储库的,通常有一个明确的所有者。 -- 通常被称为 {% data variables.product.prodname_dotcom %} 的错误跟踪系统。 +- are useful for discussing specific details of a project such as bug reports, planned improvements and feedback. +- are specific to a repository, and usually have a clear owner. +- are often referred to as {% data variables.product.prodname_dotcom %}'s bug-tracking system. -### 拉取请求 -- 允许您提出具体的更改。 -- 允许您直接评论其他人建议的更改。 -- 是特定于仓库的。 +### Pull requests +- allow you to propose specific changes. +- allow you to comment directly on proposed changes suggested by others. +- are specific to a repository. {% ifversion fpt or ghec %} ### {% data variables.product.prodname_discussions %} -- 就像一个论坛,最好用来进行合作很重要的开放式想法和讨论。 -- 可能跨越许多仓库。 -- 在代码库之外提供协作体验,从而集思广益,并创建社区知识库。 -- 往往没有明确的所有者。 -- 通常不会导致可操作的任务。 +- are like a forum, and are best used for open-form ideas and discussions where collaboration is important. +- may span many repositories. +- provide a collaborative experience outside the codebase, allowing the brainstorming of ideas, and the creation of a community knowledge base. +- often don’t have a clear owner. +- often do not result in an actionable task. {% endif %} -### 团队讨论 -- 可以在您的团队页面上启动跨项目的对话,不属于特定的议题或拉取请求。 不要在仓库中开启一个议题来讨论一个想法,而可以通过在团队讨论中进行对话将整个团队包括在内。 -- 允许您与您的团队在一个地方就规划、分析、设计、用户研究和一般项目决策进行讨论。{% ifversion ghes or ghae %} -- 在代码库之外提供协作体验,从而可以集思广益。 -- 往往没有明确的所有者。 -- 通常不会导致可操作的任务。{% endif %} +### Team discussions +- can be started on your team's page for conversations that span across projects and don't belong in a specific issue or pull request. Instead of opening an issue in a repository to discuss an idea, you can include the entire team by having a conversation in a team discussion. +- allow you to hold discussions with your team about planning, analysis, design, user research and general project decision making in one place.{% ifversion ghes or ghae %} +- provide a collaborative experience outside the codebase, allowing the brainstorming of ideas. +- often don’t have a clear owner. +- often do not result in an actionable task.{% endif %} -## 我应该使用哪种讨论工具? +## Which discussion tool should I use? -### 议题场景 +### Scenarios for issues -- 我想跟踪任务、增强功能和漏洞。 -- 我想提交错误报告。 -- 我想分享有关特定功能的反馈。 -- 我想询问有关仓库文件的问题。 +- I want to keep track of tasks, enhancements and bugs. +- I want to file a bug report. +- I want to share feedback about a specific feature. +- I want to ask a question about files in the repository. -#### 问题示例 +#### Issue example -此示例说明了 {% data variables.product.prodname_dotcom %} 用户如何在我们的文档开源仓库中创建议题,以便让我们了解错误并讨论修复方法。 +This example illustrates how a {% data variables.product.prodname_dotcom %} user created an issue in our documentation open source repository to make us aware of a bug, and discuss a fix. -![议题实例](/assets/images/help/issues/issue-example.png) +![Example of issue](/assets/images/help/issues/issue-example.png) -- 用户注意到,中文版 {% data variables.product.prodname_dotcom %} 文档页面顶部横幅的蓝色使横幅中的文本不可读。 -- 用户在仓库中创建一个议题,指出了问题并提出了修复建议(即对横幅使用不同的背景色)。 -- 随后进行了讨论,最终就适用的修复方法达成共识。 -- 然后,参与者可以创建包含修复方法的拉取请求。 +- A user noticed that the blue color of the banner at the top of the page in the Chinese version of the {% data variables.product.prodname_dotcom %} Docs makes the text in the banner unreadable. +- The user created an issue in the repository, stating the problem and suggesting a fix (which is, use a different background color for the banner). +- A discussion ensues, and eventually, a consensus will be reached about the fix to apply. +- A contributor can then create a pull request with the fix. -### 拉取请求场景 +### Scenarios for pull requests -- 我想修复仓库中的拼写错误。 -- 我想对仓库进行更改。 -- 我想进行更改以修复问题。 -- 我想评论其他人建议的更改。 +- I want to fix a typo in a repository. +- I want to make changes to a repository. +- I want to make changes to fix an issue. +- I want to comment on changes suggested by others. -#### 拉取请求示例 +#### Pull request example -此示例说明了 {% data variables.product.prodname_dotcom %} 用户如何在我们的文档开源仓库中创建拉取请求以修复拼写错误。 +This example illustrates how a {% data variables.product.prodname_dotcom %} user created a pull request in our documentation open source repository to fix a typo. -在拉取请求的“对话”选项卡,作者解释了其创建拉取请求的原因。 +In the **Conversation** tab of the pull request, the author explains why they created the pull request. -![拉取请求示例 - 对话选项卡](/assets/images/help/pull_requests/pr-conversation-example.png) +![Example of pull request - Conversation tab](/assets/images/help/pull_requests/pr-conversation-example.png) -拉取请求的“文件更改”选项卡显示已实现的修补程序。 +The **Files changed** tab of the pull request shows the implemented fix. -![拉取请求示例 - 文件已更改选项卡](/assets/images/help/pull_requests/pr-files-changed-example.png) +![Example of pull request - Files changed tab](/assets/images/help/pull_requests/pr-files-changed-example.png) -- 此参与者发现仓库中的拼写错误。 -- 用户创建包含修复方法的拉取请求。 -- 仓库维护员审查拉取请求、发表评论并合并它。 +- This contributor notices a typo in the repository. +- The user creates a pull request with the fix. +- A repository maintainer reviews the pull request, comments on it, and merges it. {% ifversion discussions %} -### {% data variables.product.prodname_discussions %} 的场景 +### Scenarios for {% data variables.product.prodname_discussions %} -- 我有一个不一定与仓库中的特定文件相关的问题。 -- 我想与协作者或团队分享消息。 -- 我想发起或参与开放式对话。 -- 我想向社区发布公告。 +- I have a question that's not necessarily related to specific files in the repository. +- I want to share news with my collaborators, or my team. +- I want to start or participate in an open-ended conversation. +- I want to make an announcement to my community. -#### {% data variables.product.prodname_discussions %} 示例 +#### {% data variables.product.prodname_discussions %} example -此示例显示了 {% data variables.product.prodname_dotcom %} 文档开源仓库的 {% data variables.product.prodname_discussions %} 欢迎帖子,并说明了团队希望如何与社区合作。 +This example shows the {% data variables.product.prodname_discussions %} welcome post for the {% data variables.product.prodname_dotcom %} Docs open source repository, and illustrates how the team wants to collaborate with their community. -![{% data variables.product.prodname_discussions %} 示例](/assets/images/help/discussions/github-discussions-example.png) +![Example of {% data variables.product.prodname_discussions %}](/assets/images/help/discussions/github-discussions-example.png) -这位社区维护员发起讨论以欢迎社区成员,并请成员自我介绍。 这个帖子营造了欢迎访客和参与者的氛围。 这个帖子还阐明,团队乐于帮助用户参与仓库。 +This community maintainer started a discussion to welcome the community, and to ask members to introduce themselves. This post fosters an inviting atmosphere for visitors and contributors. The post also clarifies that the team's happy to help with contributions to the repository. {% endif %} -### 团队讨论场景 +### Scenarios for team discussions -- 我有一个不一定与仓库中的特定文件相关的问题。 -- 我想与协作者或团队分享消息。 -- 我想发起或参与开放式对话。 -- 我想向团队发布公告。 +- I have a question that's not necessarily related to specific files in the repository. +- I want to share news with my collaborators, or my team. +- I want to start or participate in an open-ended conversation. +- I want to make an announcement to my team. -{% ifversion fpt or ghec %} 如你所见,团队讨论与 {% data variables.product.prodname_discussions %} 非常类似。 对于 {% data variables.product.prodname_dotcom_the_website %},我们建议使用 {% data variables.product.prodname_discussions %} 作为对话的起点。 您可以使用 {% data variables.product.prodname_discussions %} 与任何社区在 {% data variables.product.prodname_dotcom %} 上进行协作。 如果您是组织成员,希望在您的组织或组织的团队中发起对话,您应该使用团队讨论。 +{% ifversion fpt or ghec %} +As you can see, team discussions are very similar to {% data variables.product.prodname_discussions %}. For {% data variables.product.prodname_dotcom_the_website %}, we recommend using {% data variables.product.prodname_discussions %} as the starting point for conversations. You can use {% data variables.product.prodname_discussions %} to collaborate with any community on {% data variables.product.prodname_dotcom %}. If you are part of an organization, and would like to initiate conversations within your organization or team within that organization, you should use team discussions. {% endif %} -#### 团队讨论示例 +#### Team discussion example -此示例显示 `octo-team` 团队的团队帖子。 +This example shows a team post for the `octo-team` team. -![团队讨论示例](/assets/images/help/projects/team-discussions-example.png) +![Example of team discussion](/assets/images/help/projects/team-discussions-example.png) -`octocat` 团队成员发布了团队讨论,告知团队各种事项: -- 一个叫 Mona 的团队成员开始了远程游戏活动。 -- 有一篇博文描述了团队如何使用 {% data variables.product.prodname_actions %} 来生成文档。 -- 有关 April All Hands 的材料现在可供所有团队成员查看。 +The `octocat` team member posted a team discussion, informing the team of various things: +- A team member called Mona started remote game events. +- There is a blog post describing how the teams use {% data variables.product.prodname_actions %} to produce their docs. +- Material about the April All Hands is now available for all team members to view. -## 后续步骤 +## Next steps -这些示例向您展示了如何决定哪种工具是您在 {% data variables.product.product_name %} 上进行对话的最佳工具。 但这仅仅是个开始;您可以做更多的工作来根据需求定制这些工具。 +These examples showed you how to decide which is the best tool for your conversations on {% data variables.product.product_name %}. But this is only the beginning; there is so much more you can do to tailor these tools to your needs. -例如,对于议题,您可以用标签标记议题以支持更快的搜索,并创建议题模板以帮助参与者打开有意义的议题。 有关详细信息,请参阅“[关于问题](/github/managing-your-work-on-github/about-issues#working-with-issues)”和“[关于问题和拉取请求模板](/communities/using-templates-to-encourage-useful-issues-and-pull-requests/about-issue-and-pull-request-templates)”。 +For issues, for example, you can tag issues with labels for quicker searching and create issue templates to help contributors open meaningful issues. For more information, see "[About issues](/github/managing-your-work-on-github/about-issues#working-with-issues)" and "[About issue and pull request templates](/communities/using-templates-to-encourage-useful-issues-and-pull-requests/about-issue-and-pull-request-templates)." -对于拉取请求,如果您提议的更改仍在进行中,您可以创建拉取请求草稿。 草稿拉取请求在标记为可供审查之前无法合并。 有关详细信息,请参阅“[关于拉取请求](/github/collaborating-with-issues-and-pull-requests/about-pull-requests#draft-pull-requests)”。 +For pull requests, you can create draft pull requests if your proposed changes are still a work in progress. Draft pull requests cannot be merged until they're marked as ready for review. For more information, see "[About pull requests](/github/collaborating-with-issues-and-pull-requests/about-pull-requests#draft-pull-requests)." -{% ifversion discussions %}对于 {% data variables.product.prodname_discussions %},可以{% ifversion fpt or ghec %}设置行为准则并{% endif %}将包含社区重要信息的讨论置顶。 有关详细信息,请参阅“[关于讨论](/discussions/collaborating-with-your-community-using-discussions/about-discussions)”。 +{% ifversion discussions %} +For {% data variables.product.prodname_discussions %}, you can{% ifversion fpt or ghec %} set up a code of conduct and{% endif %} pin discussions that contain important information for your community. For more information, see "[About discussions](/discussions/collaborating-with-your-community-using-discussions/about-discussions)." {% endif %} -对于团队讨论,您可以编辑或删除团队页面上的讨论,还可以为团队讨论配置通知。 有关详细信息,请参阅“[关于团队讨论](/organizations/collaborating-with-your-team/about-team-discussions)”。 +For team discussions, you can edit or delete discussions on a team's page, and you can configure notifications for team discussions. For more information, see "[About team discussions](/organizations/collaborating-with-your-team/about-team-discussions)." + +To learn some advanced formatting features that will help you communicate, see "[Quickstart for writing on {% data variables.product.prodname_dotcom %}](/get-started/writing-on-github/getting-started-with-writing-and-formatting-on-github/quickstart-for-writing-on-github)." \ No newline at end of file diff --git a/translations/zh-CN/content/get-started/quickstart/git-and-github-learning-resources.md b/translations/zh-CN/content/get-started/quickstart/git-and-github-learning-resources.md index 2cf2edee2c..a4f544484c 100644 --- a/translations/zh-CN/content/get-started/quickstart/git-and-github-learning-resources.md +++ b/translations/zh-CN/content/get-started/quickstart/git-and-github-learning-resources.md @@ -1,12 +1,12 @@ --- -title: Git 和 GitHub 学习资源 +title: Git and GitHub learning resources redirect_from: - /articles/good-resources-for-learning-git-and-github - /articles/what-are-other-good-resources-for-learning-git-and-github - /articles/git-and-github-learning-resources - /github/getting-started-with-github/git-and-github-learning-resources - /github/getting-started-with-github/quickstart/git-and-github-learning-resources -intro: 'Web 上有许多有用的 Git 和 {% data variables.product.product_name %} 资源。 这是我们精选的简短列表!' +intro: 'There are a lot of helpful Git and {% data variables.product.product_name %} resources on the web. This is a short list of our favorites!' versions: fpt: '*' ghes: '*' @@ -15,55 +15,49 @@ versions: authors: - GitHub shortTitle: Learning resources -ms.openlocfilehash: d8d0457de2842392febee0c90660285e9b1afef8 -ms.sourcegitcommit: 47bd0e48c7dba1dde49baff60bc1eddc91ab10c5 -ms.translationtype: HT -ms.contentlocale: zh-CN -ms.lasthandoff: 09/05/2022 -ms.locfileid: '146139294' --- -## 使用 Git +## Using Git -通过访问[官方 Git 项目站点](https://git-scm.com)并阅读 [ProGit 书籍](http://git-scm.com/book)熟悉 Git。 还可以查看 [Git 命令列表](https://git-scm.com/docs)。 +Familiarize yourself with Git by visiting the [official Git project site](https://git-scm.com) and reading the [ProGit book](http://git-scm.com/book). You can also review the [Git command list](https://git-scm.com/docs). -## 使用 {% data variables.product.product_name %} +## Using {% data variables.product.product_name %} {% ifversion fpt or ghec %} -{% data variables.product.prodname_learning %} 提供免费互动课程,它们内置于 {% data variables.product.prodname_dotcom %} 中,附有即时自动反馈和帮助。 学习提出第一个拉取请求、做出第一个开源贡献、创建 {% data variables.product.prodname_pages %} 站点等。 有关课程设置的详细信息,请参阅 [{% data variables.product.prodname_learning %}]({% data variables.product.prodname_learning_link %})。 +{% data variables.product.prodname_learning %} offers free interactive courses that are built into {% data variables.product.prodname_dotcom %} with instant automated feedback and help. Learn to open your first pull request, make your first open source contribution, create a {% data variables.product.prodname_pages %} site, and more. For more information about course offerings, see [{% data variables.product.prodname_learning %}]({% data variables.product.prodname_learning_link %}). {% endif %} -通过[入门指南](/categories/getting-started-with-github/)文章更好地熟悉 {% data variables.product.product_name %}。 参阅 [{% data variables.product.prodname_dotcom %} 流程](https://guides.github.com/introduction/flow),了解流程介绍。 阅读[概述指南](https://guides.github.com),了解基本概念。 +Become better acquainted with {% data variables.product.product_name %} through our [getting started](/categories/getting-started-with-github/) articles. See our [{% data variables.product.prodname_dotcom %} flow](https://guides.github.com/introduction/flow) for a process introduction. Refer to our [overview guides](https://guides.github.com) to walk through basic concepts. {% data reusables.support.ask-and-answer-forum %} -### 分支、复刻和拉取请求 +### Branches, forks, and pull requests -使用交互式工具了解 [Git 分支](http://learngitbranching.js.org/)。 阅读有关[分支](/pull-requests/collaborating-with-pull-requests/working-with-forks/about-forks)和[拉取请求](/articles/using-pull-requests)的相关信息并了解[如何在 {% data variables.product.prodname_dotcom %} 上使用拉取请求](https://github.com/blog/1124-how-we-use-pull-requests-to-build-github)。 从[命令行](https://cli.github.com/)访问有关使用 {% data variables.product.prodname_dotcom %} 的参考。 +Learn about [Git branching](http://learngitbranching.js.org/) using an interactive tool. Read about [forks](/pull-requests/collaborating-with-pull-requests/working-with-forks/about-forks) and [pull requests](/articles/using-pull-requests) as well as [how we use pull requests](https://github.com/blog/1124-how-we-use-pull-requests-to-build-github) at {% data variables.product.prodname_dotcom %}. Access references about using {% data variables.product.prodname_dotcom %} from the [command line](https://cli.github.com/). -### 收看视频 +### Tune in -我们的 {% data variables.product.prodname_dotcom %} [YouTube 培训和指南频道](https://youtube.com/githubguides)提供了有关[拉取请求](https://www.youtube.com/watch?v=d5wpJ5VimSU&list=PLg7s6cbtAD15G8lNyoaYDuKZSKyJrgwB-&index=19)、[创建分支](https://www.youtube.com/watch?v=5oJHRbqEofs)、[变基](https://www.youtube.com/watch?v=SxzjZtJwOgo&list=PLg7s6cbtAD15G8lNyoaYDuKZSKyJrgwB-&index=22)和[重置](https://www.youtube.com/watch?v=BKPjPMVB81g)功能的教程。 每个主题介绍 5 分钟或更短时间。 +Our {% data variables.product.prodname_dotcom %} [YouTube Training and Guides channel](https://youtube.com/githubguides) offers tutorials about [pull requests](https://www.youtube.com/watch?v=d5wpJ5VimSU&list=PLg7s6cbtAD15G8lNyoaYDuKZSKyJrgwB-&index=19), [forking](https://www.youtube.com/watch?v=5oJHRbqEofs), [rebase](https://www.youtube.com/watch?v=SxzjZtJwOgo&list=PLg7s6cbtAD15G8lNyoaYDuKZSKyJrgwB-&index=22), and [reset](https://www.youtube.com/watch?v=BKPjPMVB81g) functions. Each topic is covered in 5 minutes or less. -## 培训 +## Training -### 免费课程 +### Free courses -{% data variables.product.product_name %} 提供一系列交互式、[点播培训课程](https://skills.github.com/),包括 [{% data variables.product.prodname_dotcom %} 简介](https://github.com/skills/introduction-to-github);以及关于 {% data variables.product.product_name %} 特定工具(如 {% data variables.product.prodname_actions %})的课程。 +{% data variables.product.product_name %} offers a series of interactive, [on-demand training courses](https://skills.github.com/) including [Introduction to {% data variables.product.prodname_dotcom %}](https://github.com/skills/introduction-to-github); and courses on {% data variables.product.product_name %} specific tools such as {% data variables.product.prodname_actions %}. -### {% data variables.product.prodname_dotcom %} 基于 web 的教育课程 +### {% data variables.product.prodname_dotcom %}'s web-based educational programs -{% data variables.product.prodname_dotcom %} 提供直播[培训](https://services.github.com/#upcoming-events),为喜欢和不喜欢使用命令行的人提供注重实践、基于项目的方法。 +{% data variables.product.prodname_dotcom %} offers live [trainings](https://services.github.com/#upcoming-events) with a hands-on, project-based approach for those who love the command line and those who don't. -### 为您的公司提供培训 +### Training for your company -{% data variables.product.prodname_dotcom %} 提供[现场课程](https://services.github.com/#offerings),由经验丰富的教师讲授。 如需询问有关培训的问题,请[联系我们](https://services.github.com/#contact)。 +{% data variables.product.prodname_dotcom %} offers [in-person classes](https://services.github.com/#offerings) taught by our highly-experienced educators. [Contact us](https://services.github.com/#contact) to ask your training-related questions. -## 附加信息 +## Extras -[Pluralsight](https://www.pluralsight.com/codeschool) 的互动式[在线 Git 课程](https://www.pluralsight.com/courses/code-school-git-real)有七个等级,以有趣的游戏形式提供数许多练习。 你可以根据自己的需求自由调整 [.gitignore 模板](https://github.com/github/gitignore)。 +An interactive [online Git course](https://www.pluralsight.com/courses/code-school-git-real) from [Pluralsight](https://www.pluralsight.com/codeschool) has seven levels with dozens of exercises in a fun game format. Feel free to adapt our [.gitignore templates](https://github.com/github/gitignore) to meet your needs. -通过{% ifversion fpt or ghec %}[集成](/articles/about-integrations){% else %}integrations{% endif %},或者安装 [{% data variables.product.prodname_desktop %}](https://desktop.github.com) 和可靠的 [Atom](https://atom.io) 文本编辑器来扩展 {% data variables.product.prodname_dotcom %} 范围。 +Extend your {% data variables.product.prodname_dotcom %} reach through {% ifversion fpt or ghec %}[integrations](/articles/about-integrations){% else %}integrations{% endif %}, or by installing [{% data variables.product.prodname_desktop %}](https://desktop.github.com) and the robust [{% data variables.product.prodname_vscode %}](https://code.visualstudio.com/) text editor. -通过[开源指南](https://opensource.guide/)了解如何启动和发展开源项目。 +Learn how to launch and grow your open source project with the [Open Source Guides](https://opensource.guide/). 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 index ee6660f6cb..ffec457383 100644 --- 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 @@ -1,6 +1,6 @@ --- -title: 关于在 GitHub 上编写和设置格式 -intro: GitHub 结合了用于格式化文字的语法,称为 GitHub Flavored Markdown,具有一些独特的写作功能。 +title: About writing and formatting on GitHub +intro: GitHub combines a syntax for formatting text called GitHub Flavored Markdown with a few unique writing features. redirect_from: - /articles/about-writing-and-formatting-on-github - /github/writing-on-github/about-writing-and-formatting-on-github @@ -10,40 +10,36 @@ versions: ghes: '*' ghae: '*' ghec: '*' -shortTitle: Write & format on GitHub -ms.openlocfilehash: 7819ebc6bbf3ffa8696c87f82745a19c103c8134 -ms.sourcegitcommit: 478f2931167988096ae6478a257f492ecaa11794 -ms.translationtype: HT -ms.contentlocale: zh-CN -ms.lasthandoff: 09/09/2022 -ms.locfileid: '147860832' +shortTitle: About writing & formatting --- -[Markdown](http://daringfireball.net/projects/markdown/) 是一种易于读取和编写的语法,用于设置纯文本格式。 +[Markdown](http://daringfireball.net/projects/markdown/) is an easy-to-read, easy-to-write syntax for formatting plain text. -我们添加了一些自定义功能来创建 {% data variables.product.prodname_dotcom %} Flavored Markdown,用于格式化网站中的散文和代码。 +We've added some custom functionality to create {% data variables.product.prodname_dotcom %} Flavored Markdown, used to format prose and code across our site. -还可以使用 [@mentions](/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)等功能在拉取请求和问题中与其他用户互动。 +You can also interact with other users in pull requests and issues using features like [@mentions](/articles/basic-writing-and-formatting-syntax/#mentioning-people-and-teams), [issue and PR references](/articles/basic-writing-and-formatting-syntax/#referencing-issues-and-pull-requests), and [emoji](/articles/basic-writing-and-formatting-syntax/#using-emoji). -## 文本格式工具栏 +## Text formatting toolbar -{% data variables.product.product_name %} 上的每个评论字段都包含文本格式工具栏,用于格式化文本,而无需了解 Markdown 语法。 除了 Markdown 格式设置(如粗体和斜体样式)和创建标题、链接及列表等之外,工具栏还包括 {% data variables.product.product_name %} 特定的功能,如 @mentions、任务列表和指向问题和拉取请求的链接。 +Every comment field on {% data variables.product.product_name %} contains a text formatting toolbar, allowing you to format your text without learning Markdown syntax. In addition to Markdown formatting like bold and italic styles and creating headers, links, and lists, the toolbar includes {% data variables.product.product_name %}-specific features such as @mentions, task lists, and links to issues and pull requests. {% ifversion fixed-width-font-gfm-fields %} -## 在编辑器中启用定宽字体 +## Enabling fixed-width fonts in the editor -可以在 {% data variables.product.product_name %} 的每个注释字段中启用定宽字体。 定宽(也称固定宽度)字体中的每个字符占据相同的水平空间,这可以更容易地编辑高级 Markdown 结构,例如表和代码片段。 +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. -![显示 {% data variables.product.product_name %} 注释字段的屏幕截图,其中启用了定宽字体](/assets/images/help/writing/fixed-width-example.png) +![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. 在“Markdown 编辑器字体首选项”下,选择“编辑 Markdown 时使用定宽(固定宽度)字体”。 - ![显示 {% data variables.product.product_name %} 注释字段的屏幕截图,其中启用了定宽字体](/assets/images/help/writing/enable-fixed-width.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 %} -## 延伸阅读 +## Further reading -- [{% data variables.product.prodname_dotcom %} 样式的 Markdown 规范](https://github.github.com/gfm/) -- “[基本撰写和格式设置语法](/articles/basic-writing-and-formatting-syntax)” -- “[使用高级格式设置](/articles/working-with-advanced-formatting)” +- [{% data variables.product.prodname_dotcom %} Flavored Markdown Spec](https://github.github.com/gfm/) +- "[Basic writing and formatting syntax](/articles/basic-writing-and-formatting-syntax)" +- "[Working with advanced formatting](/articles/working-with-advanced-formatting)" +- "[Quickstart for writing on {% data variables.product.prodname_dotcom %}](/get-started/writing-on-github/getting-started-with-writing-and-formatting-on-github/quickstart-for-writing-on-github)" 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 index a7321a27c9..b229b71ca3 100644 --- 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 @@ -179,13 +179,7 @@ You can specify the theme an image is displayed for in Markdown by using the HTM For example, the following code displays a sun image for light themes and a moon for dark themes: -```HTML - - - - Shows an illustrated sun in light color mode and a moon with stars in dark color mode. - -``` +{% data reusables.getting-started.picture-element-example %} The old method of specifying images based on the theme, by using a fragment appended to the URL (`#gh-dark-mode-only` or `#gh-light-mode-only`), is deprecated and will be removed in favor of the new method described above. {% endif %} @@ -216,7 +210,7 @@ To order your list, precede each line with a number. You can create a nested list by indenting one or more list items below another item. -To create a nested list using the web editor on {% data variables.product.product_name %} or a text editor that uses a monospaced font, like [Atom](https://atom.io/), you can align your list visually. Type space characters in front of your nested list item, until the list marker character (- or *) lies directly below the first character of the text in the item above it. +To create a nested list using the web editor on {% data variables.product.product_name %} or a text editor that uses a monospaced font, like [{% data variables.product.prodname_vscode %}](https://code.visualstudio.com/), you can align your list visually. Type space characters in front of your nested list item, until the list marker character (- or *) lies directly below the first character of the text in the item above it. ```markdown 1. First list item @@ -394,3 +388,4 @@ For more information, see Daring Fireball's "[Markdown Syntax](https://daringfir - [{% data variables.product.prodname_dotcom %} Flavored Markdown Spec](https://github.github.com/gfm/) - "[About writing and formatting on GitHub](/articles/about-writing-and-formatting-on-github)" - "[Working with advanced formatting](/articles/working-with-advanced-formatting)" +- "[Quickstart for writing on {% data variables.product.prodname_dotcom %}](/get-started/writing-on-github/getting-started-with-writing-and-formatting-on-github/quickstart-for-writing-on-github)" 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 index a6dbc07efd..485056d460 100644 --- 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 @@ -12,6 +12,7 @@ versions: ghae: '*' ghec: '*' children: + - /quickstart-for-writing-on-github - /about-writing-and-formatting-on-github - /basic-writing-and-formatting-syntax shortTitle: Start writing on GitHub diff --git a/translations/zh-CN/content/issues/planning-and-tracking-with-projects/automating-your-project/using-the-api-to-manage-projects.md b/translations/zh-CN/content/issues/planning-and-tracking-with-projects/automating-your-project/using-the-api-to-manage-projects.md index 44fc59d190..5f0436ff5f 100644 --- a/translations/zh-CN/content/issues/planning-and-tracking-with-projects/automating-your-project/using-the-api-to-manage-projects.md +++ b/translations/zh-CN/content/issues/planning-and-tracking-with-projects/automating-your-project/using-the-api-to-manage-projects.md @@ -70,8 +70,8 @@ You can find the node ID of an organization project if you know the organization ```shell curl --request POST \ --url https://api.github.com/graphql \ - --header 'Authorization: Bearer TOKEN' \ - --data '{"query":"query{organization(login: \"ORGANIZATION\") {projectV2(number: NUMBER){id}}}"}' + --header 'Authorization: Bearer TOKEN' \ + --data '{"query":"query{organization(login: \"ORGANIZATION\") {projectV2(number: NUMBER){id}}}"}' ``` {% endcurl %} @@ -79,8 +79,8 @@ curl --request POST \ ```shell gh api graphql -f query=' query{ - organization(login: "ORGANIZATION"){ - projectV2(number: NUMBER) { + organization(login: "ORGANIZATION"){ + projectV2(number: NUMBER) { id } } @@ -94,8 +94,8 @@ You can also find the node ID of all projects in your organization. The followin ```shell curl --request POST \ --url https://api.github.com/graphql \ - --header 'Authorization: Bearer TOKEN' \ - --data '{"query":"{organization(login: \"ORGANIZATION\") {projectsV2(first: 20) {nodes {id title}}}}"}' + --header 'Authorization: Bearer TOKEN' \ + --data '{"query":"{organization(login: \"ORGANIZATION") {projectsV2(first: 20) {nodes {id title}}}}"}' ``` {% endcurl %} @@ -103,7 +103,7 @@ curl --request POST \ ```shell gh api graphql -f query=' query{ - organization(login: "ORGANIZATION") { + organization(login: "ORGANIZATION") { projectsV2(first: 20) { nodes { id @@ -125,8 +125,8 @@ You can find the node ID of a user project if you know the project number. Repla ```shell curl --request POST \ --url https://api.github.com/graphql \ - --header 'Authorization: Bearer TOKEN' \ - --data '{"query":"query{user(login: \"USER\") {projectV2(number: NUMBER){id}}}"}' + --header 'Authorization: Bearer TOKEN' \ + --data '{"query":"query{user(login: \"USER\") {projectV2(number: NUMBER){id}}}"}' ``` {% endcurl %} @@ -134,8 +134,8 @@ curl --request POST \ ```shell gh api graphql -f query=' query{ - user(login: "USER"){ - projectV2(number: NUMBER) { + user(login: "USER"){ + projectV2(number: NUMBER) { id } } @@ -149,8 +149,8 @@ You can also find the node ID for all of your projects. The following example wi ```shell curl --request POST \ --url https://api.github.com/graphql \ - --header 'Authorization: Bearer TOKEN' \ - --data '{"query":"{user(login: \"USER\") {projectsV2(first: 20) {nodes {id title}}}}"}' + --header 'Authorization: Bearer TOKEN' \ + --data '{"query":"{user(login: \"USER\") {projectsV2(first: 20) {nodes {id title}}}}"}' ``` {% endcurl %} @@ -158,7 +158,7 @@ curl --request POST \ ```shell gh api graphql -f query=' query{ - user(login: "USER") { + user(login: "USER") { projectsV2(first: 20) { nodes { id @@ -180,8 +180,8 @@ The following example will return the ID, name, settings, and configuration for ```shell curl --request POST \ --url https://api.github.com/graphql \ - --header 'Authorization: Bearer TOKEN' \ - --data '{"query":"query{ node(id: \"PROJECT_ID\") { ... on ProjectV2 { fields(first: 20) { nodes { ... on ProjectV2Field { id name } ... on ProjectV2IterationField { id name configuration { iterations { startDate id }}} ... on ProjectV2SingleSelectField { id name options { id name }}}}}}}"}' + --header 'Authorization: Bearer TOKEN' \ + --data '{"query":"query{ node(id: \"PROJECT_ID\") { ... on ProjectV2 { fields(first: 20) { nodes { ... on ProjectV2Field { id name } ... on ProjectV2IterationField { id name configuration { iterations { startDate id }}} ... on ProjectV2SingleSelectField { id name options { id name }}}}}}}"}' ``` {% endcurl %} @@ -189,7 +189,7 @@ curl --request POST \ ```shell gh api graphql -f query=' query{ - node(id: "PROJECT_ID") { + node(id: "PROJECT_ID") { ... on ProjectV2 { fields(first: 20) { nodes { @@ -284,8 +284,8 @@ If you just need the name and ID of a field, and do not need information about i ```shell curl --request POST \ --url https://api.github.com/graphql \ - --header 'Authorization: Bearer TOKEN' \ - --data '{"query":"query{ node(id: \"PROJECT_ID\") { ... on ProjectV2 { fields(first: 20) { nodes { ... on ProjectV2FieldCommon { id name }}}}}}"}' + --header 'Authorization: Bearer TOKEN' \ + --data '{"query":"query{ node(id: \"PROJECT_ID\") { ... on ProjectV2 { fields(first: 20) { nodes { ... on ProjectV2FieldCommon { id name }}}}}}"}' ``` {% endcurl %} @@ -293,7 +293,7 @@ curl --request POST \ ```shell gh api graphql -f query=' query{ - node(id: "PROJECT_ID") { + node(id: "PROJECT_ID") { ... on ProjectV2 { fields(first: 20) { nodes { @@ -354,8 +354,8 @@ The following example will return the first 20 issues, pull requests, and draft ```shell curl --request POST \ --url https://api.github.com/graphql \ - --header 'Authorization: Bearer TOKEN' \ - --data '{"query":"query{ node(id: \"PROJECT_ID\") { ... on ProjectV2 { items(first: 20) { nodes{ id fieldValues(first: 8) { nodes{ ... on ProjectV2ItemFieldTextValue { text field { ... on ProjectV2FieldCommon { name }}} ... on ProjectV2ItemFieldDateValue { date field { ... on ProjectV2FieldCommon { name } } } ... on ProjectV2ItemFieldSingleSelectValue { name field { ... on ProjectV2FieldCommon { name }}}}} content{ ... on DraftIssue { title body } ...on Issue { title assignees(first: 10) { nodes{ login }}} ...on PullRequest { title assignees(first: 10) { nodes{ login }}}}}}}}}"}' + --header 'Authorization: Bearer TOKEN' \ + --data '{"query":"query{ node(id: \"PROJECT_ID\") { ... on ProjectV2 { items(first: 20) { nodes{ id fieldValues(first: 8) { nodes{ ... on ProjectV2ItemFieldTextValue { text field { ... on ProjectV2FieldCommon { name }}} ... on ProjectV2ItemFieldDateValue { date field { ... on ProjectV2FieldCommon { name } } } ... on ProjectV2ItemFieldSingleSelectValue { name field { ... on ProjectV2FieldCommon { name }}}}} content{ ... on DraftIssue { title body } ...on Issue { title assignees(first: 10) { nodes{ login }}} ...on PullRequest { title assignees(first: 10) { nodes{ login }}}}}}}}}"}' ``` {% endcurl %} @@ -363,7 +363,7 @@ curl --request POST \ ```shell gh api graphql -f query=' query{ - node(id: "PROJECT_ID") { + node(id: "PROJECT_ID") { ... on ProjectV2 { items(first: 20) { nodes{ @@ -446,8 +446,8 @@ The following example will add an issue or pull request to your project. Replace ```shell curl --request POST \ --url https://api.github.com/graphql \ - --header 'Authorization: Bearer TOKEN' \ - --data '{"query":"mutation {addProjectV2ItemById(input: {projectId: \"PROJECT_ID\" contentId: \"CONTENT_ID\"}) {item {id}}}"}' + --header 'Authorization: Bearer TOKEN' \ + --data '{"query":"mutation {addProjectV2ItemById(input: {projectId: \"PROJECT_ID\" contentId: \"CONTENT_ID\"}) {item {id}}}"}' ``` {% endcurl %} @@ -455,7 +455,7 @@ curl --request POST \ ```shell gh api graphql -f query=' mutation { - addProjectV2ItemById(input: {projectId: "PROJECT_ID" contentId: "CONTENT_ID"}) { + addProjectV2ItemById(input: {projectId: "PROJECT_ID" contentId: "CONTENT_ID"}) { item { id } @@ -488,8 +488,8 @@ The following example will add a draft issue to your project. Replace `PROJECT_I ```shell curl --request POST \ --url https://api.github.com/graphql \ - --header 'Authorization: Bearer TOKEN' \ - --data '{"query":"mutation {addProjectV2DraftIssue(input: {projectId: "PROJECT_ID" title: "TITLE" body: "BODY"}) {projectItem {id}}}"}' + --header 'Authorization: Bearer TOKEN' \ + --data '{"query":"mutation {addProjectV2DraftIssue(input: {projectId: "PROJECT_ID" title: "TITLE" body: "BODY"}) {projectItem {id}}}"}' ``` {% endcurl %} @@ -497,7 +497,7 @@ curl --request POST \ ```shell gh api graphql -f query=' mutation { - addProjectV2DraftIssue(input: {projectId: "PROJECT_ID" title: "TITLE" body: "BODY"}) { + addProjectV2DraftIssue(input: {projectId: "PROJECT_ID" title: "TITLE" body: "BODY"}) { projectItem { id } @@ -528,8 +528,8 @@ The following example will update your project's settings. Replace `PROJECT_ID` ```shell curl --request POST \ --url https://api.github.com/graphql \ ---header 'Authorization: Bearer TOKEN' \ ---data '{"query":"mutation { updateProjectV2(input: { projectId: \"PROJECT_ID\", title: \"Project title\", public: false, readme: \"# Project README\n\nA long description\", shortDescription: \"A short description\"}) { projectV2 { id, title, readme, shortDescription }}}"}' +--header 'Authorization: Bearer TOKEN' \ +--data '{"query":"mutation { updateProjectV2(input: { projectId: \"PROJECT_ID\", title: \"Project title\", public: false, readme: \"# Project README\n\nA long description\", shortDescription: \"A short description\"}) { projectV2 { id, title, readme, shortDescription }}}"}' ``` {% endcurl %} @@ -539,7 +539,7 @@ gh api graphql -f query=' mutation { updateProjectV2( input: { - projectId: "PROJECT_ID", + projectId: "PROJECT_ID", title: "Project title", public: false, readme: "# Project README\n\nA long description", @@ -565,8 +565,8 @@ The following example will update the value of a text field for an item. Replace ```shell curl --request POST \ --url https://api.github.com/graphql \ - --header 'Authorization: Bearer TOKEN' \ - --data '{"query":"mutation {updateProjectV2ItemFieldValue( input: { projectId: "PROJECT_ID" itemId: "ITEM_ID" fieldId: "FIELD_ID" value: { text: "Updated text" }}) { projectV2Item { id }}}"}' + --header 'Authorization: Bearer TOKEN' \ + --data '{"query":"mutation {updateProjectV2ItemFieldValue( input: { projectId: "PROJECT_ID" itemId: "ITEM_ID" fieldId: "FIELD_ID" value: { text: "Updated text" }}) { projectV2Item { id }}}"}' ``` {% endcurl %} @@ -576,9 +576,9 @@ gh api graphql -f query=' mutation { updateProjectV2ItemFieldValue( input: { - projectId: "PROJECT_ID" - itemId: "ITEM_ID" - fieldId: "FIELD_ID" + projectId: "PROJECT_ID" + itemId: "ITEM_ID" + fieldId: "FIELD_ID" value: { text: "Updated text" } @@ -619,8 +619,8 @@ The following example will update the value of a single select field for an item ```shell curl --request POST \ --url https://api.github.com/graphql \ - --header 'Authorization: Bearer TOKEN' \ - --data '{"query":"mutation {updateProjectV2ItemFieldValue( input: { projectId: "PROJECT_ID" itemId: "ITEM_ID" fieldId: "FIELD_ID" value: { singleSelectOptionId: "OPTION_ID" }}) { projectV2Item { id }}}"}' + --header 'Authorization: Bearer TOKEN' \ + --data '{"query":"mutation {updateProjectV2ItemFieldValue( input: { projectId: "PROJECT_ID" itemId: "ITEM_ID" fieldId: "FIELD_ID" value: { singleSelectOptionId: "OPTION_ID" }}) { projectV2Item { id }}}"}' ``` {% endcurl %} @@ -630,11 +630,11 @@ gh api graphql -f query=' mutation { updateProjectV2ItemFieldValue( input: { - projectId: "PROJECT_ID" - itemId: "ITEM_ID" - fieldId: "FIELD_ID" + projectId: "PROJECT_ID" + itemId: "ITEM_ID" + fieldId: "FIELD_ID" value: { - singleSelectOptionId: "OPTION_ID" + singleSelectOptionId: "OPTION_ID" } } ) { @@ -659,8 +659,8 @@ The following example will update the value of an iteration field for an item. ```shell curl --request POST \ --url https://api.github.com/graphql \ - --header 'Authorization: Bearer TOKEN' \ - --data '{"query":"mutation {updateProjectV2ItemFieldValue( input: { projectId: "PROJECT_ID" itemId: "ITEM_ID" fieldId: "FIELD_ID" value: { singleSelectOptionId: "OPTION_ID" }}) { projectV2Item { id }}}"}' + --header 'Authorization: Bearer TOKEN' \ + --data '{"query":"mutation {updateProjectV2ItemFieldValue( input: { projectId: "PROJECT_ID" itemId: "ITEM_ID" fieldId: "FIELD_ID" value: { singleSelectOptionId: "OPTION_ID" }}) { projectV2Item { id }}}"}' ``` {% endcurl %} @@ -670,11 +670,11 @@ gh api graphql -f query=' mutation { updateProjectV2ItemFieldValue( input: { - projectId: "PROJECT_ID" - itemId: "ITEM_ID" - fieldId: "FIELD_ID" + projectId: "PROJECT_ID" + itemId: "ITEM_ID" + fieldId: "FIELD_ID" value: { - iterationId: "ITERATION_ID" + iterationId: "ITERATION_ID" } } ) { @@ -694,8 +694,8 @@ The following example will delete an item from a project. Replace `PROJECT_ID` w ```shell curl --request POST \ --url https://api.github.com/graphql \ - --header 'Authorization: Bearer TOKEN' \ - --data '{"query":"mutation {deleteProjectV2Item(input: {projectId: \"PROJECT_ID\" itemId: \"ITEM_ID\"}) {deletedItemId}}"}' + --header 'Authorization: Bearer TOKEN' \ + --data '{"query":"mutation {deleteProjectV2Item(input: {projectId: \"PROJECT_ID\" itemId: \"ITEM_ID\"}) {deletedItemId}}"}' ``` {% endcurl %} @@ -705,8 +705,8 @@ gh api graphql -f query=' mutation { deleteProjectV2Item( input: { - projectId: "PROJECT_ID" - itemId: "ITEM_ID" + projectId: "PROJECT_ID" + itemId: "ITEM_ID" } ) { deletedItemId diff --git a/translations/zh-CN/content/issues/tracking-your-work-with-issues/filtering-and-searching-issues-and-pull-requests.md b/translations/zh-CN/content/issues/tracking-your-work-with-issues/filtering-and-searching-issues-and-pull-requests.md index aae7367309..adbebde7ee 100644 --- a/translations/zh-CN/content/issues/tracking-your-work-with-issues/filtering-and-searching-issues-and-pull-requests.md +++ b/translations/zh-CN/content/issues/tracking-your-work-with-issues/filtering-and-searching-issues-and-pull-requests.md @@ -192,7 +192,7 @@ For pull requests, you can also use search to: - Filter pull requests by [reviewer](/articles/about-pull-request-reviews/): `state:open type:pr reviewed-by:octocat` - Filter pull requests by the specific user [requested for review](/pull-requests/collaborating-with-pull-requests/proposing-changes-to-your-work-with-pull-requests/requesting-a-pull-request-review): `state:open type:pr review-requested:octocat`{% ifversion fpt or ghae or ghes > 3.2 or ghec %} - Filter pull requests that someone has asked you directly to review: `state:open type:pr user-review-requested:@me`{% endif %} -- Filter pull requests by the team requested for review: `state:open type:pr team-review-requested:github/atom` +- Filter pull requests by the team requested for review: `state:open type:pr team-review-requested:github/docs` - Filter for pull requests that are linked to an issue that the pull request may close: `linked:issue` ## Sorting issues and pull requests diff --git a/translations/zh-CN/content/packages/working-with-a-github-packages-registry/working-with-the-npm-registry.md b/translations/zh-CN/content/packages/working-with-a-github-packages-registry/working-with-the-npm-registry.md index 8007cd2b6f..cc0d74151d 100644 --- a/translations/zh-CN/content/packages/working-with-a-github-packages-registry/working-with-the-npm-registry.md +++ b/translations/zh-CN/content/packages/working-with-a-github-packages-registry/working-with-the-npm-registry.md @@ -55,14 +55,14 @@ If your instance has subdomain isolation enabled: {% endif %} ```shell -//{% ifversion fpt or ghec %}npm.pkg.github.com{% else %}npm.HOSTNAME/{% endif %}/:_authToken=TOKEN +//{% ifversion fpt or ghec %}npm.pkg.github.com{% else %}npm.HOSTNAME/{% endif %}/:_authToken=TOKEN ``` {% ifversion ghes %} If your instance has subdomain isolation disabled: ```shell -//HOSTNAME/_registry/npm/:_authToken=TOKEN +//HOSTNAME/_registry/npm/:_authToken=TOKEN ``` {% endif %} @@ -75,21 +75,21 @@ If your instance has subdomain isolation enabled: {% endif %} ```shell -$ npm login --scope=@OWNER --registry=https://{% ifversion fpt or ghec %}npm.pkg.github.com{% else %}npm.HOSTNAME/{% endif %} +$ npm login --scope=@OWNER --registry=https://{% ifversion fpt or ghec %}npm.pkg.github.com{% else %}npm.HOSTNAME/{% endif %} -> Username: USERNAME -> Password: TOKEN -> Email: PUBLIC-EMAIL-ADDRESS +> Username: USERNAME +> Password: TOKEN +> Email: PUBLIC-EMAIL-ADDRESS ``` {% ifversion ghes %} If your instance has subdomain isolation disabled: ```shell -$ npm login --scope=@OWNER --registry=https://HOSTNAME/_registry/npm/ -> Username: USERNAME -> Password: TOKEN -> Email: PUBLIC-EMAIL-ADDRESS +$ npm login --scope=@OWNER --registry=https://HOSTNAME/_registry/npm/ +> Username: USERNAME +> Password: TOKEN +> Email: PUBLIC-EMAIL-ADDRESS ``` {% endif %} @@ -142,14 +142,14 @@ You can use `publishConfig` element in the *package.json* file to specify the re {% endif %} ```shell "publishConfig": { - "registry":"https://{% ifversion fpt or ghec %}npm.pkg.github.com{% else %}npm.HOSTNAME/{% endif %}" + "registry":"https://{% ifversion fpt or ghec %}npm.pkg.github.com{% else %}npm.HOSTNAME/{% endif %}" }, ``` {% ifversion ghes %} If your instance has subdomain isolation disabled: ```shell "publishConfig": { - "registry":"https://HOSTNAME/_registry/npm/" + "registry":"https://HOSTNAME/_registry/npm/" }, ``` {% endif %} @@ -165,7 +165,7 @@ To ensure the repository's URL is correct, replace REPOSITORY with the name of t {% data variables.product.prodname_registry %} will match the repository based on the URL, instead of based on the package name. ```shell -"repository":"https://{% ifversion fpt or ghec %}github.com{% else %}HOSTNAME{% endif %}/OWNER/REPOSITORY", +"repository":"https://{% ifversion fpt or ghec %}github.com{% else %}HOSTNAME{% endif %}/OWNER/REPOSITORY", ``` ## Installing a package @@ -213,16 +213,16 @@ If your instance has subdomain isolation enabled: {% endif %} ```shell -@OWNER:registry=https://{% ifversion fpt or ghec %}npm.pkg.github.com{% else %}npm.HOSTNAME{% endif %} -@OWNER:registry=https://{% ifversion fpt or ghec %}npm.pkg.github.com{% else %}npm.HOSTNAME{% endif %} +@OWNER:registry=https://{% ifversion fpt or ghec %}npm.pkg.github.com{% else %}npm.HOSTNAME{% endif %} +@OWNER:registry=https://{% ifversion fpt or ghec %}npm.pkg.github.com{% else %}npm.HOSTNAME{% endif %} ``` {% ifversion ghes %} If your instance has subdomain isolation disabled: ```shell -@OWNER:registry=https://HOSTNAME/_registry/npm -@OWNER:registry=https://HOSTNAME/_registry/npm +@OWNER:registry=https://HOSTNAME/_registry/npm +@OWNER:registry=https://HOSTNAME/_registry/npm ``` {% endif %} diff --git a/translations/zh-CN/content/pages/configuring-a-custom-domain-for-your-github-pages-site/managing-a-custom-domain-for-your-github-pages-site.md b/translations/zh-CN/content/pages/configuring-a-custom-domain-for-your-github-pages-site/managing-a-custom-domain-for-your-github-pages-site.md index e1c0cc329d..44bb21d747 100644 --- a/translations/zh-CN/content/pages/configuring-a-custom-domain-for-your-github-pages-site/managing-a-custom-domain-for-your-github-pages-site.md +++ b/translations/zh-CN/content/pages/configuring-a-custom-domain-for-your-github-pages-site/managing-a-custom-domain-for-your-github-pages-site.md @@ -62,11 +62,11 @@ For more information on Punycodes, see [Internationalized domain name](https://e {% data reusables.command_line.open_the_multi_os_terminal %} 6. To confirm that your DNS record configured correctly, use the `dig` command, replacing _WWW.EXAMPLE.COM_ with your subdomain. ```shell - $ dig WWW.EXAMPLE.COM +nostats +nocomments +nocmd - > ;WWW.EXAMPLE.COM. IN A - > WWW.EXAMPLE.COM. 3592 IN CNAME YOUR-USERNAME.github.io. - > YOUR-USERNAME.github.io. 43192 IN CNAME GITHUB-PAGES-SERVER . - > GITHUB-PAGES-SERVER . 22 IN A 192.0.2.1 + $ dig WWW.EXAMPLE.COM +nostats +nocomments +nocmd + > ;WWW.EXAMPLE.COM. IN A + > WWW.EXAMPLE.COM. 3592 IN CNAME YOUR-USERNAME.github.io. + > YOUR-USERNAME.github.io. 43192 IN CNAME GITHUB-PAGES-SERVER . + > GITHUB-PAGES-SERVER . 22 IN A 192.0.2.1 ``` {% data reusables.pages.build-locally-download-cname %} {% data reusables.pages.enforce-https-custom-domain %} @@ -104,19 +104,19 @@ To set up an apex domain, such as `example.com`, you must configure a custom dom 6. To confirm that your DNS record configured correctly, use the `dig` command, replacing _EXAMPLE.COM_ with your apex domain. Confirm that the results match the IP addresses for {% data variables.product.prodname_pages %} above. - For `A` records. ```shell - $ dig EXAMPLE.COM +noall +answer -t A - > EXAMPLE.COM 3600 IN A 185.199.108.153 - > EXAMPLE.COM 3600 IN A 185.199.109.153 - > EXAMPLE.COM 3600 IN A 185.199.110.153 - > EXAMPLE.COM 3600 IN A 185.199.111.153 + $ dig EXAMPLE.COM +noall +answer -t A + > EXAMPLE.COM 3600 IN A 185.199.108.153 + > EXAMPLE.COM 3600 IN A 185.199.109.153 + > EXAMPLE.COM 3600 IN A 185.199.110.153 + > EXAMPLE.COM 3600 IN A 185.199.111.153 ``` - For `AAAA` records. ```shell - $ dig EXAMPLE.COM +noall +answer -t AAAA - > EXAMPLE.COM 3600 IN AAAA 2606:50c0:8000::153 - > EXAMPLE.COM 3600 IN AAAA 2606:50c0:8001::153 - > EXAMPLE.COM 3600 IN AAAA 2606:50c0:8002::153 - > EXAMPLE.COM 3600 IN AAAA 2606:50c0:8003::153 + $ dig EXAMPLE.COM +noall +answer -t AAAA + > EXAMPLE.COM 3600 IN AAAA 2606:50c0:8000::153 + > EXAMPLE.COM 3600 IN AAAA 2606:50c0:8001::153 + > EXAMPLE.COM 3600 IN AAAA 2606:50c0:8002::153 + > EXAMPLE.COM 3600 IN AAAA 2606:50c0:8003::153 ``` {% data reusables.pages.build-locally-download-cname %} {% data reusables.pages.enforce-https-custom-domain %} @@ -132,11 +132,11 @@ After you configure the apex domain, you must configure a CNAME record with your 1. Navigate to your DNS provider and create a `CNAME` record that points `www.example.com` to the default domain for your site: `.github.io` or `.github.io`. Do not include the repository name. {% data reusables.pages.contact-dns-provider %} {% data reusables.pages.default-domain-information %} 2. To confirm that your DNS record configured correctly, use the `dig` command, replacing _WWW.EXAMPLE.COM_ with your `www` subdomain variant. ```shell - $ dig WWW.EXAMPLE.COM +nostats +nocomments +nocmd - > ;WWW.EXAMPLE.COM. IN A - > WWW.EXAMPLE.COM. 3592 IN CNAME YOUR-USERNAME.github.io. - > YOUR-USERNAME.github.io. 43192 IN CNAME GITHUB-PAGES-SERVER . - > GITHUB-PAGES-SERVER . 22 IN A 192.0.2.1 + $ dig WWW.EXAMPLE.COM +nostats +nocomments +nocmd + > ;WWW.EXAMPLE.COM IN A + > WWW.EXAMPLE.COM. 3592 IN CNAME YOUR-USERNAME.github.io. + > YOUR-USERNAME.github.io. 43192 IN CNAME GITHUB-PAGES-SERVER. + > GITHUB-PAGES-SERVER. 22 IN A 192.0.2.1 ``` ## Removing a custom domain diff --git a/translations/zh-CN/content/pull-requests/collaborating-with-pull-requests/addressing-merge-conflicts/resolving-a-merge-conflict-using-the-command-line.md b/translations/zh-CN/content/pull-requests/collaborating-with-pull-requests/addressing-merge-conflicts/resolving-a-merge-conflict-using-the-command-line.md index ba7d87cfcd..a53dcfa122 100644 --- a/translations/zh-CN/content/pull-requests/collaborating-with-pull-requests/addressing-merge-conflicts/resolving-a-merge-conflict-using-the-command-line.md +++ b/translations/zh-CN/content/pull-requests/collaborating-with-pull-requests/addressing-merge-conflicts/resolving-a-merge-conflict-using-the-command-line.md @@ -1,6 +1,6 @@ --- -title: 使用命令行解决合并冲突 -intro: 您可以使用命令行和文本编辑器解决合并冲突。 +title: Resolving a merge conflict using the command line +intro: You can resolve merge conflicts using the command line and a text editor. redirect_from: - /github/collaborating-with-issues-and-pull-requests/addressing-merge-conflicts/resolving-a-merge-conflict-using-the-command-line - /articles/resolving-a-merge-conflict-from-the-command-line @@ -15,33 +15,27 @@ versions: topics: - Pull requests shortTitle: Resolve merge conflicts in Git -ms.openlocfilehash: 1d4ff97c2a93d3e5a7aebaa8752810e284203bc1 -ms.sourcegitcommit: fcf3546b7cc208155fb8acdf68b81be28afc3d2d -ms.translationtype: HT -ms.contentlocale: zh-CN -ms.lasthandoff: 09/11/2022 -ms.locfileid: '147883455' --- -当对文件的同一行进行竞争更改时,或者当一个人编辑文件而另一个人删除同一文件时,会发生合并冲突。 有关详细信息,请参阅“[关于合并冲突](/articles/about-merge-conflicts/)”。 +Merge conflicts occur when competing changes are made to the same line of a file, or when one person edits a file and another person deletes the same file. For more information, see "[About merge conflicts](/articles/about-merge-conflicts/)." {% tip %} -**提示:** 可以使用冲突编辑器在 {% data variables.product.product_name %} 上解决作为拉取请求组成部分的各分支之间的竞争行更改合并冲突。 有关详细信息,请参阅“[在 GitHub 上解决合并冲突](/pull-requests/collaborating-with-pull-requests/addressing-merge-conflicts/resolving-a-merge-conflict-on-github)”。 +**Tip:** You can use the conflict editor on {% data variables.product.product_name %} to resolve competing line change merge conflicts between branches that are part of a pull request. For more information, see "[Resolving a merge conflict on GitHub](/pull-requests/collaborating-with-pull-requests/addressing-merge-conflicts/resolving-a-merge-conflict-on-github)." {% endtip %} -## 竞争行更改合并冲突 +## Competing line change merge conflicts -要解决由竞争行更改导致的合并冲突,您必须从新提交的不同分支中选择要合并的更改。 +To resolve a merge conflict caused by competing line changes, you must choose which changes to incorporate from the different branches in a new commit. -例如,如果你和另一个人都在同一 Git 存储库不同分支的同一行中编辑了 styleguide.md 文件,则在尝试合并这些分支时会发生合并冲突错误。 必须使用新提交解决这一合并冲突,然后才能合并这些分支。 +For example, if you and another person both edited the file _styleguide.md_ on the same lines in different branches of the same Git repository, you'll get a merge conflict error when you try to merge these branches. You must resolve this merge conflict with a new commit before you can merge these branches. {% data reusables.command_line.open_the_multi_os_terminal %} -2. 导航到有合并冲突的本地 Git 仓库中。 +2. Navigate into the local Git repository that has the merge conflict. ```shell - cd REPOSITORY-NAME + cd REPOSITORY-NAME ``` -3. 生成受合并冲突影响的文件列表。 在此示例中,styleguide.md 文件存在合并冲突。 +3. Generate a list of the files affected by the merge conflict. In this example, the file *styleguide.md* has a merge conflict. ```shell $ git status > # On branch branch-b @@ -55,8 +49,8 @@ ms.locfileid: '147883455' > # > no changes added to commit (use "git add" and/or "git commit -a") ``` -4. 打开你首选的文本编辑器,例如 [Atom](https://atom.io/),然后导航到有合并冲突的文件。 -5. 要在文件中查看合并冲突的开头,请在文件中搜索冲突标记 `<<<<<<<`。 当你在文本编辑器中打开文件时,你将在行 `<<<<<<< HEAD` 后看到头部分支或基本分支。 接下来,你将看到 `=======`,它将你的更改与其他分支中的更改分开,后跟 `>>>>>>> BRANCH-NAME`。 在本例中,一个人在基本或头部分支中编写了“open an issue”,而另一个人在比较分支或 `branch-a` 中编写了“ask your question in IRC”。 +4. Open your favorite text editor, such as [{% data variables.product.prodname_vscode %}](https://code.visualstudio.com/), and navigate to the file that has merge conflicts. +5. To see the beginning of the merge conflict in your file, search the file for the conflict marker `<<<<<<<`. When you open the file in your text editor, you'll see the changes from the HEAD or base branch after the line `<<<<<<< HEAD`. Next, you'll see `=======`, which divides your changes from the changes in the other branch, followed by `>>>>>>> BRANCH-NAME`. In this example, one person wrote "open an issue" in the base or HEAD branch and another person wrote "ask your question in IRC" in the compare branch or `branch-a`. ``` If you have questions, please @@ -66,34 +60,34 @@ ms.locfileid: '147883455' ask your question in IRC. >>>>>>> branch-a ``` -{% data reusables.pull_requests.decide-how-to-resolve-competing-line-change-merge-conflict %} 在本例中,两个更改均整合到最终合并: +{% data reusables.pull_requests.decide-how-to-resolve-competing-line-change-merge-conflict %} In this example, both changes are incorporated into the final merge: ```shell If you have questions, please open an issue or ask in our IRC channel if it's more urgent. ``` -7. 添加或暂存您的更改。 +7. Add or stage your changes. ```shell $ git add . ``` -8. 提交您的更改及注释。 +8. Commit your changes with a comment. ```shell $ git commit -m "Resolved merge conflict by incorporating both suggestions." ``` -现在,可以在命令行上合并分支,或者在 {% data variables.product.product_name %} 上[将更改推送到远程存储库](/github/getting-started-with-github/pushing-commits-to-a-remote-repository/),然后在拉取请求中[合并更改](/articles/merging-a-pull-request/)。 +You can now merge the branches on the command line or [push your changes to your remote repository](/github/getting-started-with-github/pushing-commits-to-a-remote-repository/) on {% data variables.product.product_name %} and [merge your changes](/articles/merging-a-pull-request/) in a pull request. -## 删除的文件合并冲突 +## Removed file merge conflicts -要解决由对文件进行竞争更改而导致的合并冲突,对于一个人删除分支中的文件而另一个人编辑同一文件的情况,您必须选择是删除还是将删除的文件保留在新提交中。 +To resolve a merge conflict caused by competing changes to a file, where a person deletes a file in one branch and another person edits the same file, you must choose whether to delete or keep the removed file in a new commit. -例如,如果你编辑了一个文件(如 README.md),而另一个人在同一 Git 存储库的另一个分支中删除了同一文件,那么当你尝试合并这些分支时将发生合并冲突错误。 必须使用新提交解决这一合并冲突,然后才能合并这些分支。 +For example, if you edited a file, such as *README.md*, and another person removed the same file in another branch in the same Git repository, you'll get a merge conflict error when you try to merge these branches. You must resolve this merge conflict with a new commit before you can merge these branches. {% data reusables.command_line.open_the_multi_os_terminal %} -2. 导航到有合并冲突的本地 Git 仓库中。 +2. Navigate into the local Git repository that has the merge conflict. ```shell - cd REPOSITORY-NAME + cd REPOSITORY-NAME ``` -2. 生成受合并冲突影响的文件列表。 在此示例中,文件 README.md 存在合并冲突。 +2. Generate a list of the files affected by the merge conflict. In this example, the file *README.md* has a merge conflict. ```shell $ git status > # On branch main @@ -106,32 +100,32 @@ ms.locfileid: '147883455' > # Unmerged paths: > # (use "git add/rm ..." as appropriate to mark resolution) > # - > # deleted by us: README.md + > # deleted by us: README.md > # > # no changes added to commit (use "git add" and/or "git commit -a") ``` -3. 打开你首选的文本编辑器,例如 [Atom](https://atom.io/),然后导航到有合并冲突的文件。 -6. 决定是否要保留删除的文件。 您可能想要在文本编辑器中查看对删除的文件所做的最新更改。 +3. Open your favorite text editor, such as [{% data variables.product.prodname_vscode %}](https://code.visualstudio.com/), and navigate to the file that has merge conflicts. +6. Decide if you want keep the removed file. You may want to view the latest changes made to the removed file in your text editor. - 要将已删除的文件重新添加到仓库: + To add the removed file back to your repository: ```shell $ git add README.md ``` - 要从仓库中删除此文件: + To remove this file from your repository: ```shell $ git rm README.md > README.md: needs merge > rm 'README.md' ``` -7. 提交您的更改及注释。 +7. Commit your changes with a comment. ```shell $ git commit -m "Resolved merge conflict by keeping README.md file." > [branch-d 6f89e49] Merge branch 'branch-c' into branch-d ``` -现在,可以在命令行上合并分支,或者在 {% data variables.product.product_name %} 上[将更改推送到远程存储库](/github/getting-started-with-github/pushing-commits-to-a-remote-repository/),然后在拉取请求中[合并更改](/articles/merging-a-pull-request/)。 +You can now merge the branches on the command line or [push your changes to your remote repository](/github/getting-started-with-github/pushing-commits-to-a-remote-repository/) on {% data variables.product.product_name %} and [merge your changes](/articles/merging-a-pull-request/) in a pull request. -## 延伸阅读 +## Further reading -- “[关于合并冲突](/pull-requests/collaborating-with-pull-requests/addressing-merge-conflicts/about-merge-conflicts)” -- “[在本地签出拉取请求](/articles/checking-out-pull-requests-locally/)” +- "[About merge conflicts](/pull-requests/collaborating-with-pull-requests/addressing-merge-conflicts/about-merge-conflicts)" +- "[Checking out pull requests locally](/articles/checking-out-pull-requests-locally/)" diff --git a/translations/zh-CN/content/pull-requests/collaborating-with-pull-requests/incorporating-changes-from-a-pull-request/merging-a-pull-request.md b/translations/zh-CN/content/pull-requests/collaborating-with-pull-requests/incorporating-changes-from-a-pull-request/merging-a-pull-request.md index ca86371e9b..a137dad617 100644 --- a/translations/zh-CN/content/pull-requests/collaborating-with-pull-requests/incorporating-changes-from-a-pull-request/merging-a-pull-request.md +++ b/translations/zh-CN/content/pull-requests/collaborating-with-pull-requests/incorporating-changes-from-a-pull-request/merging-a-pull-request.md @@ -83,7 +83,7 @@ If you decide you don't want the changes in a topic branch to be merged to the u To merge a pull request, use the `gh pr merge` subcommand. Replace `pull-request` with the number, URL, or head branch of the pull request. ```shell -gh pr merge pull-request +gh pr merge PULL-REQUEST ``` Follow the interactive prompts to complete the merge. For more information about the merge methods that you can choose, see "[About pull request merges](/github/collaborating-with-pull-requests/incorporating-changes-from-a-pull-request/about-pull-request-merges)." diff --git a/translations/zh-CN/content/repositories/releasing-projects-on-github/managing-releases-in-a-repository.md b/translations/zh-CN/content/repositories/releasing-projects-on-github/managing-releases-in-a-repository.md index 75f9b96723..2805786381 100644 --- a/translations/zh-CN/content/repositories/releasing-projects-on-github/managing-releases-in-a-repository.md +++ b/translations/zh-CN/content/repositories/releasing-projects-on-github/managing-releases-in-a-repository.md @@ -90,7 +90,7 @@ You can choose whether {% data variables.large_files.product_name_long %} ({% da 1. To create a release, use the `gh release create` subcommand. Replace `tag` with the desired tag for the release. ```shell - gh release create tag + gh release create TAG ``` 2. Follow the interactive prompts. Alternatively, you can specify arguments to skip these prompts. For more information about possible arguments, see [the {% data variables.product.prodname_cli %} manual](https://cli.github.com/manual/gh_release_create). For example, this command creates a prerelease with the specified title and notes. @@ -153,7 +153,7 @@ Releases cannot currently be edited with {% data variables.product.prodname_cli 1. To delete a release, use the `gh release delete` subcommand. Replace `tag` with the tag of the release to delete. Use the `-y` flag to skip confirmation. ```shell - gh release delete tag -y + gh release delete TAG -y ``` {% endcli %} diff --git a/translations/zh-CN/content/repositories/working-with-files/using-files/working-with-non-code-files.md b/translations/zh-CN/content/repositories/working-with-files/using-files/working-with-non-code-files.md index 2621f90997..229230ac98 100644 --- a/translations/zh-CN/content/repositories/working-with-files/using-files/working-with-non-code-files.md +++ b/translations/zh-CN/content/repositories/working-with-files/using-files/working-with-non-code-files.md @@ -340,7 +340,7 @@ To view a fully interactive version of your Jupyter Notebook, you can set up a n If you're having trouble rendering Jupyter Notebook files in static HTML, you can convert the file locally on the command line by using the [`nbconvert` command](https://github.com/jupyter/nbconvert): ```shell -$ jupyter nbconvert --to html NOTEBOOK-NAME.ipynb +$ jupyter nbconvert --to html NOTEBOOK-NAME.ipynb ``` ### Further reading 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 083950084d..a744b76793 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 @@ -163,7 +163,7 @@ With cURL, you will send an `Authorization` header with your token. Replace `YOU ```shell curl --request GET \ --url "https://api.github.com/octocat" \ ---header "Authorization: Bearer YOUR-TOKEN" +--header "Authorization: Bearer YOUR-TOKEN" ``` {% note %} @@ -326,7 +326,7 @@ To send a header with cURL, use the `--header` or `-H` flag followed by the head curl --request GET \ --url "https://api.github.com/octocat" \ --header "Accept: application/vnd.github.v3+json" \ ---header "Authorization: Bearer YOUR-TOKEN" +--header "Authorization: Bearer YOUR-TOKEN" ``` {% endcurl %} @@ -390,7 +390,7 @@ To get issues from the `octocat/Spoon-Knife` repository, replace `{owner}` with curl --request GET \ --url "https://api.github.com/repos/octocat/Spoon-Knife/issues" \ --header "Accept: application/vnd.github.v3+json" \ ---header "Authorization: Bearer YOUR-TOKEN" +--header "Authorization: Bearer YOUR-TOKEN" ``` {% endcurl %} @@ -443,7 +443,7 @@ For cURL, add a `?` to the end of the path, then append your query parameter nam curl --request GET \ --url "https://api.github.com/repos/octocat/Spoon-Knife/issues?per_page=2&sort=updated&direction=asc" \ --header "Accept: application/vnd.github.v3+json" \ ---header "Authorization: Bearer YOUR-TOKEN" +--header "Authorization: Bearer YOUR-TOKEN" ``` {% endcurl %} @@ -495,7 +495,7 @@ For cURL, use the `--data` flag to pass the body parameters in a JSON object. curl --request POST \ --url "https://api.github.com/repos/octocat/Spoon-Knife/issues" \ --header "Accept: application/vnd.github.v3+json" \ ---header "Authorization: Bearer YOUR-TOKEN" \ +--header "Authorization: Bearer YOUR-TOKEN" \ --data '{ "title": "Created with the REST API", "body": "This is a test issue created by the REST API" @@ -593,7 +593,7 @@ For example, this request: curl --request GET \ --url "https://api.github.com/repos/octocat/Spoon-Knife/issues?per_page=2" \ --header "Accept: application/vnd.github.v3+json" \ ---header "Authorization: Bearer YOUR-TOKEN" \ +--header "Authorization: Bearer YOUR-TOKEN" \ --include ``` @@ -661,7 +661,7 @@ await octokit.request("GET /repos/{owner}/{repo}/issues", { curl --request GET \ --url "https://api.github.com/repos/octocat/Spoon-Knife/issues?per_page=2" \ --header "Accept: application/vnd.github.v3+json" \ ---header "Authorization: Bearer YOUR-TOKEN" +--header "Authorization: Bearer YOUR-TOKEN" ``` {% endcurl %} @@ -730,7 +730,7 @@ For example, you can use `>` to redirect the response to a file: curl --request GET \ --url "https://api.github.com/repos/octocat/Spoon-Knife/issues?per_page=2" \ --header "Accept: application/vnd.github.v3+json" \ ---header "Authorization: Bearer YOUR-TOKEN" > data.json +--header "Authorization: Bearer YOUR-TOKEN" > data.json ``` Then you can use jq to get the title and author ID of each issue: diff --git a/translations/zh-CN/content/rest/overview/other-authentication-methods.md b/translations/zh-CN/content/rest/overview/other-authentication-methods.md index d8147fdb5d..9cebcf591a 100644 --- a/translations/zh-CN/content/rest/overview/other-authentication-methods.md +++ b/translations/zh-CN/content/rest/overview/other-authentication-methods.md @@ -45,7 +45,7 @@ response. The solution is to manually craft the `Authorization` header. We recommend you use OAuth tokens to authenticate to the GitHub API. OAuth tokens include [personal access tokens][personal-access-tokens] and enable the user to revoke access at any time. ```shell -$ curl -u username:token {% data variables.product.api_url_pre %}/user +$ curl -u USERNAME:TOKEN {% data variables.product.api_url_pre %}/user ``` This approach is useful if your tools only support Basic Authentication but you want to take advantage of OAuth access token security features. @@ -71,7 +71,7 @@ would authenticate you if you replace `` with your {% data variables.p (cURL will prompt you to enter the password.) ```shell -$ curl -u username {% data variables.product.api_url_pre %}/user +$ curl -u USERNAME {% data variables.product.api_url_pre %}/user ``` If you have two-factor authentication enabled, make sure you understand how to [work with two-factor authentication](/rest/overview/other-authentication-methods#working-with-two-factor-authentication). @@ -95,7 +95,7 @@ If you have two-factor authentication enabled, make sure you understand how to [ If you're using the API to access an organization that enforces [SAML SSO][saml-sso] for authentication, you'll need to create a personal access token (PAT) and [authorize the token][allowlist] for that organization. Visit the URL specified in `X-GitHub-SSO` to authorize the token for the organization. ```shell -$ curl -v -H "Authorization: Bearer TOKEN" {% data variables.product.api_url_pre %}/repos/octodocs-test/test +$ curl -v -H "Authorization: Bearer TOKEN" {% data variables.product.api_url_pre %}/repos/octodocs-test/test > X-GitHub-SSO: required; url=https://github.com/orgs/octodocs-test/sso?authorization_request=AZSCKtL4U8yX1H3sCQIVnVgmjmon5fWxks5YrqhJgah0b2tlbl9pZM4EuMz4 { @@ -107,7 +107,7 @@ $ curl -v -H "Authorization: Bearer TOKEN" {% data variables.product.ap When requesting data that could come from multiple organizations (for example, [requesting a list of issues created by the user][user-issues]), the `X-GitHub-SSO` header indicates which organizations require you to authorize your personal access token: ```shell -$ curl -v -H "Authorization: Bearer TOKEN" {% data variables.product.api_url_pre %}/user/issues +$ curl -v -H "Authorization: Bearer TOKEN" {% data variables.product.api_url_pre %}/user/issues > X-GitHub-SSO: partial-results; organizations=21955855,20582480 ``` @@ -136,9 +136,9 @@ This header tells you how your account receives its two-factor authentication co ```shell $ curl --request POST \ --url https://api.github.com/authorizations \ - --header 'authorization: Basic PASSWORD' \ + --header 'authorization: Basic PASSWORD' \ --header 'content-type: application/json' \ - --header 'x-github-otp: OTP' \ + --header 'x-github-otp: OTP' \ --data '{"scopes": ["public_repo"], "note": "test"}' ``` {% endif %} 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 033f0ccd78..0432d216c9 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 @@ -91,7 +91,7 @@ $ curl -u "username" {% data variables.product.api_url_pre %} ### OAuth2 token (sent in a header) ```shell -$ curl -H "Authorization: Bearer OAUTH-TOKEN" {% data variables.product.api_url_pre %} +$ curl -H "Authorization: Bearer OAUTH-TOKEN" {% data variables.product.api_url_pre %} ``` {% note %} @@ -150,7 +150,7 @@ the API will temporarily reject all authentication attempts for that user ```shell $ curl -i {% data variables.product.api_url_pre %} -u {% ifversion fpt or ghae or ghec %} --u valid_username:valid_token {% endif %}{% ifversion ghes %}-u valid_username:valid_password {% endif %} +-u VALID_USERNAME:VALID_TOKEN {% endif %}{% ifversion ghes %}-u VALID_USERNAME:VALID_PASSWORD {% endif %} > HTTP/2 403 > { > "message": "Maximum number of login attempts exceeded. Please try again later.", @@ -185,7 +185,7 @@ You can issue a `GET` request to the root endpoint to get all the endpoint categ ```shell $ curl {% ifversion fpt or ghae or ghec %} --u username:token {% endif %}{% ifversion ghes %}-u username:password {% endif %}{% data variables.product.api_url_pre %} +-u USERNAME:TOKEN {% endif %}{% ifversion ghes %}-u USERNAME:PASSWORD {% endif %}{% data variables.product.api_url_pre %} ``` ## GraphQL global node IDs 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 dcf929a857..4e6d036ae3 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 @@ -268,7 +268,7 @@ You can filter pull requests based on their [review status](/pull-requests/colla | reviewed-by:USERNAME | [**type:pr reviewed-by:gjtorikian**](https://github.com/search?utf8=%E2%9C%93&q=type%3Apr+reviewed-by%3Agjtorikian&type=Issues) matches pull requests reviewed by a particular person. | review-requested:USERNAME | [**type:pr review-requested:benbalter**](https://github.com/search?utf8=%E2%9C%93&q=type%3Apr+review-requested%3Abenbalter&type=Issues) matches pull requests where a specific person is requested for review. Requested reviewers are no longer listed in the search results after they review a pull request. If the requested person is on a team that is requested for review, then review requests for that team will also appear in the search results.{% ifversion fpt or ghae or ghes > 3.2 or ghec %} | user-review-requested:@me | [**type:pr user-review-requested:@me**](https://github.com/search?q=is%3Apr+user-review-requested%3A%40me+) matches pull requests that you have directly been asked to review.{% endif %} -| team-review-requested:TEAMNAME | [**type:pr team-review-requested:atom/design**](https://github.com/search?q=type%3Apr+team-review-requested%3Aatom%2Fdesign&type=Issues) matches pull requests that have review requests from the team `atom/design`. Requested reviewers are no longer listed in the search results after they review a pull request. +| team-review-requested:TEAMNAME | [**type:pr team-review-requested:github/docs**](https://github.com/search?q=type%3Apr+team-review-requested%3Agithub%2Fdocs&type=pullrequests) matches pull requests that have review requests from the team `github/docs`. Requested reviewers are no longer listed in the search results after they review a pull request. ## Search by when an issue or pull request was created or last updated diff --git a/translations/zh-CN/data/reusables/actions/link-to-example-library.md b/translations/zh-CN/data/reusables/actions/link-to-example-library.md deleted file mode 100644 index 3d6e7bc555..0000000000 --- a/translations/zh-CN/data/reusables/actions/link-to-example-library.md +++ /dev/null @@ -1,9 +0,0 @@ ---- -ms.openlocfilehash: ad73c4455042d29d72d3f76dbbdc512487c9303a -ms.sourcegitcommit: 47bd0e48c7dba1dde49baff60bc1eddc91ab10c5 -ms.translationtype: HT -ms.contentlocale: zh-CN -ms.lasthandoff: 09/05/2022 -ms.locfileid: "146139464" ---- -有关演示 {% data variables.product.prodname_actions %} 更复杂功能的示例,请参阅“[示例](/actions/examples)”。 你可以看到一些详细示例,这些示例说明如何在运行器上测试代码、访问 {% data variables.product.prodname_dotcom %} CLI 以及使用高级功能(如并发和测试矩阵)。 diff --git a/translations/zh-CN/data/reusables/codespaces/creating-a-codespace-in-vscode.md b/translations/zh-CN/data/reusables/codespaces/creating-a-codespace-in-vscode.md index 4f150af299..c89126ae76 100644 --- a/translations/zh-CN/data/reusables/codespaces/creating-a-codespace-in-vscode.md +++ b/translations/zh-CN/data/reusables/codespaces/creating-a-codespace-in-vscode.md @@ -15,6 +15,8 @@ After you connect your account on {% data variables.product.product_location %} ![Searching for repository to create a new codespace](/assets/images/help/codespaces/choose-repository-vscode.png) + If codespaces are billable for the repository you choose, a message will be displayed in subsequent prompts telling you who will pay for the codespace. + 4. Click the branch you want to develop on. ![Searching for a branch to create a new codespace](/assets/images/help/codespaces/choose-branch-vscode.png) diff --git a/translations/zh-CN/data/reusables/notifications/vulnerable-dependency-notification-options.md b/translations/zh-CN/data/reusables/notifications/vulnerable-dependency-notification-options.md index 9163efa5f5..4f702e6e70 100644 --- a/translations/zh-CN/data/reusables/notifications/vulnerable-dependency-notification-options.md +++ b/translations/zh-CN/data/reusables/notifications/vulnerable-dependency-notification-options.md @@ -1,27 +1,22 @@ ---- -ms.openlocfilehash: 5120f840aab87ca243eed66c5bb6256e80aefeea -ms.sourcegitcommit: 47bd0e48c7dba1dde49baff60bc1eddc91ab10c5 -ms.translationtype: HT -ms.contentlocale: zh-CN -ms.lasthandoff: 09/05/2022 -ms.locfileid: "147064176" ---- -{% ifversion fpt or ghec %}默认情况下,你将收到通知:{% endif %}{% ifversion ghes or ghae %}默认情况下,如果企业所有者在实例上已配置通知电子邮件,你将收到 {% data variables.product.prodname_dependabot_alerts %}:{% endif %} +{% ifversion fpt or ghec %}By default, you will receive notifications:{% endif %}{% ifversion ghes or ghae %}By default, if your enterprise owner has configured email for notifications on your instance, you will receive {% data variables.product.prodname_dependabot_alerts %}:{% endif %} -- 通过电子邮件,在为存储库启用 {% data variables.product.prodname_dependabot %} 时,当有新的清单文件提交到存储库,以及当发现具有关键或高严重性的新漏洞时,将发送一封电子邮件(“每次找到漏洞时发送电子邮件”选项)。 -- 在用户界面中,如果存在任何不安全的依赖项,则会在存储库的文件和代码视图中显示一条警告(“UI 警报”选项) -- 在命令行上,当你推送到具有任何不安全的依赖项的存储库时,警告将显示为回叫(“命令行”选项)。 -- 在你的收件箱中,作为 Web 通知。 当为存储库启用 {% data variables.product.prodname_dependabot %}、将新的清单文件提交到存储库以及发现具有极高或高严重性的新漏洞时,将发送一条 Web 通知(“Web”选项)。{% ifversion not ghae %} -- 在 {% data variables.product.prodname_mobile %} 上,作为 web 通知。 有关详细信息,请参阅“[使用 GitHub Mobile 启用推送通知](/github/managing-subscriptions-and-notifications-on-github/configuring-notifications#enabling-push-notifications-with-github-mobile)。”{% endif %} +- by email, an email is sent when {% data variables.product.prodname_dependabot %} is enabled for a repository, when a new manifest file is committed to the repository, and when a new vulnerability with a critical or high severity is found (**Email each time a vulnerability is found** option). +- in the user interface, a warning is shown in your repository's file and code views if there are any insecure dependencies (**UI alerts** option). +- on the command line, warnings are displayed as callbacks when you push to repositories with any insecure dependencies (**Command Line** option). +- in your inbox, as web notifications. A web notification is sent when {% data variables.product.prodname_dependabot %} is enabled for a repository, when a new manifest file is committed to the repository, and when a new vulnerability with a critical or high severity is found (**Web** option).{% ifversion not ghae %} +- on {% data variables.product.prodname_mobile %}, as web notifications. For more information, see "[Enabling push notifications with GitHub Mobile](/github/managing-subscriptions-and-notifications-on-github/configuring-notifications#enabling-push-notifications-with-github-mobile)."{% endif %} {% note %} -注意:电子邮件和 web{% ifversion not ghae %}/{% data variables.product.prodname_mobile %}{% endif %} 通知是: +**Note:** The email and web{% ifversion not ghae %}/{% data variables.product.prodname_mobile %}{% endif %} notifications are: -- 按存储库:在存储库中启用 {% data variables.product.prodname_dependabot %} 时,或者当新的清单文件提交到存储库时。 +- _per repository_ when {% data variables.product.prodname_dependabot %} is enabled on the repository, or when a new manifest file is committed to the repository. -- 按组织:当发现新的漏洞时。 +- _per organization_ when a new vulnerability is discovered. {% endnote %} -可以自定义有关 {% data variables.product.prodname_dependabot_alerts %} 的通知方式。 例如,可以使用“以电子邮件发送漏洞摘要”和“每周安全性电子邮件摘要”选项通过电子邮件接收最多 10 个存储库的每周警报摘要 。 +{% ifversion update-notification-settings-22 %} +You can customize the way you are notified about {% data variables.product.prodname_dependabot_alerts %}. For example, you can receive a daily or weekly digest email summarizing alerts for up to 10 of your repositories using the **Email weekly digest** option. +{% else %} +You can customize the way you are notified about {% data variables.product.prodname_dependabot_alerts %}. For example, you can receive a weekly digest email summarizing alerts for up to 10 of your repositories using the **Email a digest summary of vulnerabilities** and **Weekly security email digest** options.{% endif %}

Vo&$mlnM9uIg{y( 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 DeJqUh literal 0 HcmV?d00001 diff --git a/assets/images/help/profile/markdown-quote-example.png b/assets/images/help/profile/markdown-quote-example.png new file mode 100644 index 0000000000000000000000000000000000000000..7459ec47a1b3e559dc97386e5e584bbcf4387311 GIT binary patch literal 19135 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 M)78&qol`;+0AjN55C8xG literal 0 HcmV?d00001 diff --git a/assets/images/help/profile/markdown-table-example.png b/assets/images/help/profile/markdown-table-example.png new file mode 100644 index 0000000000000000000000000000000000000000..77f74063af81f4bb3234367df8e98eb376b4d58f GIT binary patch literal 30130 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%0AcWG^zZYbFw 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 - - - Shows an illustrated sun in light color mode and a moon with stars in dark color mode. - -``` +{% data reusables.getting-started.picture-element-example %} The old method of specifying images based on the theme, by using a fragment appended to the URL (`#gh-dark-mode-only` or `#gh-light-mode-only`), is deprecated and will be removed in favor of the new method described above. {% endif %} @@ -394,3 +388,4 @@ For more information, see Daring Fireball's "[Markdown Syntax](https://daringfir - [{% data variables.product.prodname_dotcom %} Flavored Markdown Spec](https://github.github.com/gfm/) - "[About writing and formatting on GitHub](/articles/about-writing-and-formatting-on-github)" - "[Working with advanced formatting](/articles/working-with-advanced-formatting)" +- "[Quickstart for writing on {% data variables.product.prodname_dotcom %}](/get-started/writing-on-github/getting-started-with-writing-and-formatting-on-github/quickstart-for-writing-on-github)" diff --git a/content/get-started/writing-on-github/getting-started-with-writing-and-formatting-on-github/index.md b/content/get-started/writing-on-github/getting-started-with-writing-and-formatting-on-github/index.md index dbd50c1ca9..8a64a3b4fc 100644 --- a/content/get-started/writing-on-github/getting-started-with-writing-and-formatting-on-github/index.md +++ b/content/get-started/writing-on-github/getting-started-with-writing-and-formatting-on-github/index.md @@ -12,6 +12,7 @@ versions: ghae: '*' ghec: '*' children: + - /quickstart-for-writing-on-github - /about-writing-and-formatting-on-github - /basic-writing-and-formatting-syntax shortTitle: Start writing on GitHub diff --git a/content/get-started/writing-on-github/getting-started-with-writing-and-formatting-on-github/quickstart-for-writing-on-github.md b/content/get-started/writing-on-github/getting-started-with-writing-and-formatting-on-github/quickstart-for-writing-on-github.md new file mode 100644 index 0000000000..f9ce600b7e --- /dev/null +++ b/content/get-started/writing-on-github/getting-started-with-writing-and-formatting-on-github/quickstart-for-writing-on-github.md @@ -0,0 +1,244 @@ +--- +title: Quickstart for writing on GitHub +intro: Learn advanced formatting features by creating a {% ifversion ghae %}gist to describe yourself{% else %}README for your {% data variables.product.prodname_dotcom %} profile{% endif %}. +versions: + fpt: '*' + ghes: '*' + ghae: '*' + ghec: '*' +shortTitle: Quickstart +--- + +## Introduction + +Markdown is an easy-to-read, easy-to-write language for formatting plain text. You can use Markdown syntax, along with some additional HTML tags, to format your writing on {% data variables.product.prodname_dotcom %}, in places like repository READMEs and comments on pull requests and issues. In this guide, you'll learn some advanced formatting features by creating {% ifversion ghae %}a gist{% else %}or editing a README for your {% data variables.product.prodname_dotcom %} profile{% endif %}. + +If you're new to Markdown, you might want to start with "[Basic writing and formatting syntax](/articles/basic-writing-and-formatting-syntax)" or the [Communicate using Markdown](https://github.com/skills/communicate-using-markdown) {% data variables.product.prodname_learning %} course. + +{% ifversion not ghae %} + +If you already have a profile README, you can follow this guide by adding some features to your existing README, or by creating a gist with a Markdown file called something like `about-me.md`. For more information, see "[Creating gists](/get-started/writing-on-github/editing-and-sharing-content-with-gists/creating-gists)." + +{% endif %} + +{% ifversion ghae %} + +## Creating a gist + +Gists let you store or share code snippets and other pieces of information with others on {% data variables.product.product_location %}. To use formatting features in gists, add a gist file with a `.md` extension. + +1. Navigate to your {% data variables.gists.gist_homepage %}. +1. Optionally, type a description for the gist, such as "About me." +1. In the **Filename including extension...** field, type `about-me.md`. + +For more information, see "[Creating gists](/get-started/writing-on-github/editing-and-sharing-content-with-gists/creating-gists)." + +{% else %} + +## Creating or editing your profile README + +Your profile README lets you share information about yourself with the community on {% data variables.product.product_location %}. The README is displayed at the top of your profile page. + +If you don't already have a profile README, you can add one. + +1. Create a repository with the same name as your {% data variables.product.prodname_dotcom %} username, initializing the repository with a `README.md` file. For more information, see "[Managing your profile README](/account-and-profile/setting-up-and-managing-your-github-profile/customizing-your-profile/managing-your-profile-readme#adding-a-profile-readme)." +1. Edit the `README.md` file and delete the template text (beginning `### Hi there`) that is automatically added when you create the file. + +If you already have a profile README, you can edit it from your profile page. + +{% data reusables.profile.navigating-to-profile %} +1. Click the {% octicon "pencil" aria-label="The Pencil icon" %} next to your profile README. + + ![Screenshot of a profile page, with the pencil icon highlighted next to the profile README](/assets/images/help/profile/edit-profile-readme.png) + +{% endif %} + +## Adding an image to suit your visitors + +You can include images in your communication on {% data variables.product.prodname_dotcom %}. Here, you'll add a responsive image, such as a banner, to the top of your {% ifversion ghae %}gist{% else %}profile README{% endif %}. + +By using the HTML `` element with the `prefers-color-scheme` media feature, you can add an image that changes depending on whether a visitor is using light or dark mode. For more information, see "[Managing your theme settings](/account-and-profile/setting-up-and-managing-your-personal-account-on-github/managing-personal-account-settings/managing-your-theme-settings)." + +1. Copy and paste the following markup into your {% ifversion ghae %}`about-me.md`{% else %}`README.md`{% endif %} file. + + ```HTML{:copy} + + + + YOUR-ALT-TEXT + + ``` +1. Replace the placeholders in the markup with the URLs of your chosen images. Alternatively, to try the feature first, you can copy the URLs from our example below. + + - Replace `YOUR-DARKMODE-IMAGE` with the URL of an image to display for visitors using dark mode. + - Replace `YOUR-LIGHTMODE-IMAGE` with the URL of an image to display for visitors using light mode. + - Replace `YOUR-DEFAULT-IMAGE` with the URL of an image to display in case neither of the other images can be matched, for example if the visitor is using a browser that does not support the `prefers-color-scheme` feature. +1. To make the image accessible for visitors who are using a screen reader, replace `YOUR-ALT-TEXT` with a description of the image. +1. To check the image has rendered correctly, click the **Preview** tab. + +For more information on using images in Markdown, see "[Basic writing and formatting syntax](/get-started/writing-on-github/getting-started-with-writing-and-formatting-on-github/basic-writing-and-formatting-syntax#images)." + +### Example + +{% data reusables.getting-started.picture-element-example %} + +### How it looks + +![Screenshot of the Preview tab in light mode, with an image of a smiling sun displayed](/assets/images/help/profile/lightmode-image-example.png) + +## Adding a table + +You can use Markdown tables to organize information. Here, you'll use a table to introduce yourself by ranking something, such as your most-used programming languages or frameworks, the things you're spending your time learning, or your favorite hobbies. When a table column contains numbers, it's useful to right-align the column by using the syntax `--:` below the header row. + +1. Return to the **Edit {% ifversion ghae %}new {% endif %}file** tab. +1. To introduce yourself, two lines below the `` tag, add an `## About me` header and a short paragraph about yourself, like the following. + + ```Markdown + ## About me + + Hi, I'm Mona. You might recognize me as {% data variables.product.prodname_dotcom %}'s mascot. + ``` +1. Two lines below this paragraph, insert a table by copying and pasting the following markup. + + ```Markdown{:copy} + | Rank | THING-TO-RANK | + |-----:|---------------| + | 1| | + | 2| | + | 3| | + ``` +1. In the column on the right, replace `THING-TO-RANK` with "Languages," "Hobbies," or anything else, and fill in the column with your list of things. +1. To check the table has rendered correctly, click the **Preview** tab. + +For more information, see "[Organizing information with tables](/get-started/writing-on-github/working-with-advanced-formatting/organizing-information-with-tables)." + +### Example + +```Markdown +## About me + +Hi, I'm Mona. You might recognize me as {% data variables.product.prodname_dotcom %}'s mascot. + +| Rank | Languages | +|-----:|-----------| +| 1| Javascript| +| 2| Python | +| 3| SQL | +``` + +### How it looks + +![Screenshot of the Preview tab, showing an "About me" heading and a rendered table with a list of languages](/assets/images/help/profile/markdown-table-example.png) + +## Adding a collapsed section + +To keep your content tidy, you can use the `